diff --git a/Data/Scripts/001_Settings.rb b/Data/Scripts/001_Settings.rb index a798ae79e..8983222ab 100644 --- a/Data/Scripts/001_Settings.rb +++ b/Data/Scripts/001_Settings.rb @@ -46,7 +46,7 @@ module Settings #----------------------------------------------------------------------------- # The maximum amount of money the player can have. - MAX_MONEY = 999_999 + MAX_MONEY = 9_999_999 # The maximum number of Game Corner coins the player can have. MAX_COINS = 99_999 # The maximum number of Battle Points the player can have. @@ -54,7 +54,7 @@ module Settings # The maximum amount of soot the player can have. MAX_SOOT = 9_999 # The maximum length, in characters, that the player's name can be. - MAX_PLAYER_NAME_SIZE = 10 + MAX_PLAYER_NAME_SIZE = 12 # A set of arrays each containing a trainer type followed by a Game Variable # number. If the Variable isn't set to 0, then all trainers with the # associated trainer type will be named as whatever is in that Variable. @@ -88,13 +88,13 @@ module Settings SAFARI_STEPS = 600 # The number of seconds a Bug-Catching Contest lasts for (0=infinite). BUG_CONTEST_TIME = 20 * 60 # 20 minutes - # Pairs of map IDs, where the location signpost isn't shown when moving from - # one of the maps in a pair to the other (and vice versa). Useful for single - # long routes/towns that are spread over multiple maps. + # Pairs of map IDs, where the location sign isn't shown when moving from one + # of the maps in a pair to the other (and vice versa). Useful for single long + # routes/towns that are spread over multiple maps. # e.g. [4,5,16,17,42,43] will be map pairs 4,5 and 16,17 and 42,43. # Moving between two maps that have the exact same name won't show the - # location signpost anyway, so you don't need to list those maps here. - NO_SIGNPOSTS = [] + # location sign anyway, so you don't need to list those maps here. + NO_LOCATION_SIGNS = [] # Whether poisoned Pokémon will lose HP while walking around in the field. POISON_IN_FIELD = (MECHANICS_GENERATION <= 4) # Whether poisoned Pokémon will faint while walking around in the field @@ -186,30 +186,58 @@ module Settings 66 => [5, 21, 28, 31, 39, 41, 44, 47, 69], 69 => [5, 21, 28, 31, 39, 41, 44, 47, 66 ] } - # A set of arrays, each containing the details of a roaming Pokémon. The - # information within each array is as follows: - # * Species. - # * Level. - # * Game Switch; the Pokémon roams while this is ON. - # * Encounter type (see def pbRoamingMethodAllowed for their use): - # 0 = grass, walking in cave, surfing - # 1 = grass, walking in cave - # 2 = surfing - # 3 = fishing - # 4 = surfing, fishing - # * Name of BGM to play for that encounter (optional). - # * Roaming areas specifically for this Pokémon (optional; used instead of - # ROAMING_AREAS). + # A set of hashes, each containing the details of a roaming Pokémon. The + # information within each hash is as follows: + # * :species + # * :level + # * :icon - Filename in Graphics/UI/Town Map/ of the roamer's Town Map icon. + # * :game_switch - The Pokémon roams if this is nil or <=0 or if that Game + # Switch is ON. Optional. + # * :encounter_type - One of: + # :all = grass, walking in cave, surfing (default) + # :land = grass, walking in cave + # :water = surfing, fishing + # :surfing = surfing + # :fishing = fishing + # * :bgm - The BGM to play for the encounter. Optional. + # * :areas - A hash of map IDs that determine where this Pokémon roams. Used + # instead of ROAMING_AREAS above. Optional. ROAMING_SPECIES = [ - [:LATIAS, 30, 53, 0, "Battle roaming"], - [:LATIOS, 30, 53, 0, "Battle roaming"], - [:KYOGRE, 40, 54, 2, nil, { - 2 => [ 21, 31 ], - 21 => [2, 31, 69], - 31 => [2, 21, 69], - 69 => [ 21, 31 ] - }], - [:ENTEI, 40, 55, 1] + { + :species => :LATIAS, + :level => 30, + :icon => "pin_latias", + :game_switch => 53, + :encounter_type => :all, + :bgm => "Battle roaming" + }, + { + :species => :LATIOS, + :level => 30, + :icon => "pin_latios", + :game_switch => 53, + :encounter_type => :all, + :bgm => "Battle roaming" + }, + { + :species => :KYOGRE, + :level => 40, + :game_switch => 54, + :encounter_type => :surfing, + :areas => { + 2 => [ 21, 31 ], + 21 => [2, 31, 69], + 31 => [2, 21, 69], + 69 => [ 21, 31 ] + } + }, + { + :species => :ENTEI, + :level => 40, + :icon => "pin_entei", + :game_switch => 55, + :encounter_type => :land + } ] #----------------------------------------------------------------------------- @@ -259,31 +287,6 @@ module Settings # this number. ITEM_SELL_PRICE_DIVISOR = (MECHANICS_GENERATION >= 9) ? 4 : 2 - #----------------------------------------------------------------------------- - # Bag - #----------------------------------------------------------------------------- - - # The names of each pocket of the Bag. - def self.bag_pocket_names - return [ - _INTL("Items"), - _INTL("Medicine"), - _INTL("Poké Balls"), - _INTL("TMs & HMs"), - _INTL("Berries"), - _INTL("Mail"), - _INTL("Battle Items"), - _INTL("Key Items") - ] - end - # The maximum number of slots per pocket (-1 means infinite number). - BAG_MAX_POCKET_SIZE = [-1, -1, -1, -1, -1, -1, -1, -1] - # Whether each pocket in turn auto-sorts itself by the order items are defined - # in the PBS file items.txt. - BAG_POCKET_AUTO_SORT = [false, false, false, true, true, false, false, false] - # The maximum number of items each slot in the Bag can hold. - BAG_MAX_PER_SLOT = 999 - #----------------------------------------------------------------------------- # Pokédex #----------------------------------------------------------------------------- diff --git a/Data/Scripts/002_Save data/001_SaveData.rb b/Data/Scripts/002_Save data/001_SaveData.rb index 0ddc1eed0..d4bcb7c89 100644 --- a/Data/Scripts/002_Save data/001_SaveData.rb +++ b/Data/Scripts/002_Save data/001_SaveData.rb @@ -6,16 +6,25 @@ # @see SaveData.register_conversion #=============================================================================== module SaveData - # Contains the file path of the save file. - FILE_PATH = if File.directory?(System.data_directory) - System.data_directory + "/Game.rxdata" - else - "./Game.rxdata" - end + DIRECTORY = (File.directory?(System.data_directory)) ? System.data_directory : "./" + FILENAME_REGEX = /Game(\d*)\.rxdata$/ - # @return [Boolean] whether the save file exists + # @return [Boolean] whether any save files exist def self.exists? - return File.file?(FILE_PATH) + return !all_save_files.empty? + end + + # @return[Array] array of filenames in the save folder that are save files + def self.all_save_files + files = Dir.get(DIRECTORY, "*", false) + ret = [] + files.each do |file| + next if !file[FILENAME_REGEX] + ret.push([$~[1].to_i, file]) + end + ret.sort! { |a, b| a[0] <=> b[0] } + ret.map! { |val| val[1] } + return ret end # Fetches the save data from the given file. @@ -45,7 +54,7 @@ module SaveData def self.read_from_file(file_path) validate file_path => String save_data = get_data_from_file(file_path) - save_data = to_hash_format(save_data) if save_data.is_a?(Array) + save_data = to_hash_format(save_data) if save_data.is_a?(Array) # Pre-v19 save file support if !save_data.empty? && run_conversions(save_data) File.open(file_path, "wb") { |file| Marshal.dump(save_data, file) } end @@ -64,9 +73,14 @@ module SaveData # Deletes the save file (and a possible .bak backup file if one exists) # @raise [Error::ENOENT] - def self.delete_file - File.delete(FILE_PATH) - File.delete(FILE_PATH + ".bak") if File.file?(FILE_PATH + ".bak") + def self.delete_file(filename) + File.delete(DIRECTORY + filename) + File.delete(DIRECTORY + filename + ".bak") if File.file?(DIRECTORY + filename + ".bak") + end + + def self.filename_from_index(index = 0) + return "Game.rxdata" if index <= 0 + return "Game#{index}.rxdata" end # Converts the pre-v19 format data to the new format. diff --git a/Data/Scripts/002_Save data/002_SaveData_Value.rb b/Data/Scripts/002_Save data/002_SaveData_Value.rb index 86a3af3e2..31c6ae20b 100644 --- a/Data/Scripts/002_Save data/002_SaveData_Value.rb +++ b/Data/Scripts/002_Save data/002_SaveData_Value.rb @@ -259,9 +259,9 @@ module SaveData # been set to be loaded during bootup. Done when a save file exists. # @param save_data [Hash] save data to load # @raise [InvalidValueError] if an invalid value is being loaded - def self.load_bootup_values(save_data) + def self.load_bootup_values(save_data, reload = false) validate save_data => Hash - load_values(save_data) { |value| !value.loaded? && value.load_in_bootup? } + load_values(save_data) { |value| (reload || !value.loaded?) && value.load_in_bootup? } end # Goes through each value with {Value#load_in_bootup} enabled and loads their diff --git a/Data/Scripts/002_Save data/003_SaveData_Conversion.rb b/Data/Scripts/002_Save data/003_SaveData_Conversion.rb index d1469124b..9eb81688a 100644 --- a/Data/Scripts/002_Save data/003_SaveData_Conversion.rb +++ b/Data/Scripts/002_Save data/003_SaveData_Conversion.rb @@ -201,7 +201,8 @@ module SaveData validate save_data => Hash conversions_to_run = self.get_conversions(save_data) return false if conversions_to_run.none? - File.open(SaveData::FILE_PATH + ".bak", "wb") { |f| Marshal.dump(save_data, f) } + filepath = SaveData::DIRECTORY + SaveData.filename_from_index(save_data[:stats].save_filename_number || 0) + File.open(filepath + ".bak", "wb") { |f| Marshal.dump(save_data, f) } Console.echo_h1(_INTL("Converting save file")) conversions_to_run.each do |conversion| Console.echo_li("#{conversion.title}...") diff --git a/Data/Scripts/002_Save data/004_Game_SaveValues.rb b/Data/Scripts/002_Save data/004_Game_SaveValues.rb index 5c21c2bfa..cc844b3db 100644 --- a/Data/Scripts/002_Save data/004_Game_SaveValues.rb +++ b/Data/Scripts/002_Save data/004_Game_SaveValues.rb @@ -10,16 +10,14 @@ SaveData.register(:player) do end SaveData.register(:game_system) do - load_in_bootup ensure_class :Game_System save_value { $game_system } load_value { |value| $game_system = value } new_game_value { Game_System.new } - reset_on_new_game end SaveData.register(:pokemon_system) do - load_in_bootup + load_in_bootup # Because this contains values for the Options screen ensure_class :PokemonSystem save_value { $PokemonSystem } load_value { |value| $PokemonSystem = value } @@ -96,7 +94,6 @@ SaveData.register(:storage_system) do end SaveData.register(:essentials_version) do - load_in_bootup ensure_class :String save_value { Essentials::VERSION } load_value { |value| $save_engine_version = value } @@ -104,7 +101,6 @@ SaveData.register(:essentials_version) do end SaveData.register(:game_version) do - load_in_bootup ensure_class :String save_value { Settings::GAME_VERSION } load_value { |value| $save_game_version = value } @@ -112,10 +108,8 @@ SaveData.register(:game_version) do end SaveData.register(:stats) do - load_in_bootup ensure_class :GameStats save_value { $stats } load_value { |value| $stats = value } new_game_value { GameStats.new } - reset_on_new_game end diff --git a/Data/Scripts/002_Save data/005_Game_SaveConversions.rb b/Data/Scripts/002_Save data/005_Game_SaveConversions.rb index cfa60dea9..6f2b4dde9 100644 --- a/Data/Scripts/002_Save data/005_Game_SaveConversions.rb +++ b/Data/Scripts/002_Save data/005_Game_SaveConversions.rb @@ -72,6 +72,18 @@ end #=============================================================================== +SaveData.register_conversion(:v22_add_adventure_magic_number) do + essentials_version 22 + display_title "Adding adventure ID" + to_value :game_system do |game_system| + game_system.instance_eval do + @adventure_magic_number ||= rand(2**32) + end + end +end + +#=============================================================================== + SaveData.register_conversion(:v22_add_new_stats) do essentials_version 22 display_title "Adding some more stats" @@ -83,3 +95,40 @@ SaveData.register_conversion(:v22_add_new_stats) do end end end + +#=============================================================================== + +SaveData.register_conversion(:v22_convert_bag_object) do + essentials_version 22 + display_title "Converting Bag's pockets" + to_value :bag do |bag| + bag.instance_eval do + all_pockets = GameData::BagPocket.all_pockets + if @pockets.is_a?(Array) + new_pockets = {} + all_pockets.each { |pckt| new_pockets[pckt] = [] } + @pockets.each_with_index do |value, i| + next if i == 0 + value.each do |item| + pckt = GameData::Item.get(item[0]).bag_pocket + new_pockets[pckt].push(item) + end + end + @pockets = new_pockets + end + if @last_viewed_pocket.is_a?(Integer) + @last_viewed_pocket = all_pockets[@last_viewed_pocket - 1] || all_pockets.first + end + if @last_pocket_selections.is_a?(Array) + new_sels = {} + all_pockets.each { |pckt| new_sels[pckt] = 0 } + @last_pocket_selections.each_with_index do |value, i| + next if i == 0 + pckt = all_pockets[i - 1] + new_sels[pckt] = value if pckt && value <= @pockets[pckt].length - 1 + end + @last_pocket_selections = new_sels + end + end + end +end diff --git a/Data/Scripts/003_Game processing/001_StartGame.rb b/Data/Scripts/003_Game processing/001_StartGame.rb index 69bb29425..ca4917a89 100644 --- a/Data/Scripts/003_Game processing/001_StartGame.rb +++ b/Data/Scripts/003_Game processing/001_StartGame.rb @@ -23,17 +23,11 @@ module Game # Loads bootup data from save file (if it exists) or creates bootup data (if # it doesn't). def set_up_system - save_data = (SaveData.exists?) ? SaveData.read_from_file(SaveData::FILE_PATH) : {} - if save_data.empty? - SaveData.initialize_bootup_values - else - SaveData.load_bootup_values(save_data) - end - # Set resize factor + SaveData.initialize_bootup_values pbSetResizeFactor([$PokemonSystem.screensize, 4].min) # Set language (and choose language if there is no save file) if !Settings::LANGUAGES.empty? - $PokemonSystem.language = pbChooseLanguage if save_data.empty? && Settings::LANGUAGES.length >= 2 + $PokemonSystem.language = pbChooseLanguage if !SaveData.exists? && Settings::LANGUAGES.length >= 2 MessageTypes.load_message_files(Settings::LANGUAGES[$PokemonSystem.language][1]) end end @@ -45,7 +39,6 @@ module Game $game_map.events.each_value { |event| event.clear_starting } end $game_temp.common_event_id = 0 if $game_temp - $game_temp.begun_new_game = true pbMapInterpreter&.clear pbMapInterpreter&.setup(nil, 0, 0) $scene = Scene_Map.new @@ -108,18 +101,21 @@ module Game end # Saves the game. Returns whether the operation was successful. - # @param save_file [String] the save file path + # @param index [Integer] the number to put in the save file's name Game#.rzdata + # @param directory [String] the folder to put the save file in # @param safe [Boolean] whether $PokemonGlobal.safesave should be set to true # @return [Boolean] whether the operation was successful # @raise [SaveData::InvalidValueError] if an invalid value is being saved - def save(save_file = SaveData::FILE_PATH, safe: false) - validate save_file => String, safe => [TrueClass, FalseClass] + def save(index, directory = SaveData::DIRECTORY, safe: false) + validate index => Integer, directory => String, safe => [TrueClass, FalseClass] + filename = SaveData.filename_from_index(index) $PokemonGlobal.safesave = safe $game_system.save_count += 1 $game_system.magic_number = $data_system.magic_number $stats.set_time_last_saved + $stats.save_filename_number = index begin - SaveData.save_to_file(save_file) + SaveData.save_to_file(directory + filename) Graphics.frame_reset rescue IOError, SystemCallError $game_system.save_count -= 1 diff --git a/Data/Scripts/003_Game processing/002_Scene_Map.rb b/Data/Scripts/003_Game processing/002_Scene_Map.rb index 60219098e..4e00b8f57 100644 --- a/Data/Scripts/003_Game processing/002_Scene_Map.rb +++ b/Data/Scripts/003_Game processing/002_Scene_Map.rb @@ -103,9 +103,7 @@ class Scene_Map $game_temp.in_menu = true $game_player.straighten $game_map.update - sscene = PokemonPauseMenu_Scene.new - sscreen = PokemonPauseMenu.new(sscene) - sscreen.pbStartPokemonMenu + UI::PauseMenu.new.main $game_temp.in_menu = false end diff --git a/Data/Scripts/003_Game processing/004_Interpreter_Commands.rb b/Data/Scripts/003_Game processing/004_Interpreter_Commands.rb index 1f862cdcb..3abd9cf09 100644 --- a/Data/Scripts/003_Game processing/004_Interpreter_Commands.rb +++ b/Data/Scripts/003_Game processing/004_Interpreter_Commands.rb @@ -1153,9 +1153,7 @@ class Interpreter # * Call Save Screen #----------------------------------------------------------------------------- def command_352 - scene = PokemonSave_Scene.new - screen = PokemonSaveScreen.new(scene) - screen.pbSaveScreen + pbFadeOutIn { UI::Save.new.main } return true end diff --git a/Data/Scripts/003_Game processing/005_Event_Handlers.rb b/Data/Scripts/003_Game processing/005_Event_Handlers.rb index 8e6f098cc..18954c372 100644 --- a/Data/Scripts/003_Game processing/005_Event_Handlers.rb +++ b/Data/Scripts/003_Game processing/005_Event_Handlers.rb @@ -104,6 +104,10 @@ class HandlerHash return nil end + def keys + return @hash.keys + end + def add(id, handler = nil, &handlerBlock) if ![Proc, Hash].include?(handler.class) && !block_given? raise ArgumentError, "#{self.class.name} for #{id.inspect} has no valid handler (#{handler.inspect} was given)" @@ -160,6 +164,10 @@ class HandlerHashSymbol return nil end + def keys + return @hash.keys + end + def add(sym, handler = nil, &handlerBlock) if ![Proc, Hash].include?(handler.class) && !block_given? raise ArgumentError, "#{self.class.name} for #{sym.inspect} has no valid handler (#{handler.inspect} was given)" @@ -225,6 +233,10 @@ class HandlerHashEnum return ret end + def keys + return @hash.keys + end + def fromSymbol(sym) return sym unless sym.is_a?(Symbol) || sym.is_a?(String) mod = Object.const_get(@mod) rescue nil diff --git a/Data/Scripts/003_Game processing/006_Event_HandlerCollections.rb b/Data/Scripts/003_Game processing/006_Event_HandlerCollections.rb index ea9cdd628..4ae837a99 100644 --- a/Data/Scripts/003_Game processing/006_Event_HandlerCollections.rb +++ b/Data/Scripts/003_Game processing/006_Event_HandlerCollections.rb @@ -97,6 +97,10 @@ module MenuHandlers @@handlers[menu]&.clear end + def get(menu, option) + return @@handlers[menu][option] + end + def each(menu) return if !@@handlers.has_key?(menu) @@handlers[menu].each { |option, hash| yield option, hash } @@ -110,8 +114,19 @@ module MenuHandlers sorted_keys.each do |option| hash = options[option] next if hash["condition"] && !hash["condition"].call(*args) + if hash["multi_options"] + extra_options = hash["multi_options"].call(*args) + if extra_options && extra_options.length > 0 + if extra_options[0].is_a?(Array) + extra_options.each { |opt| yield *opt } + else + yield *extra_options + end + end + next + end if hash["name"].is_a?(Proc) - name = hash["name"].call + name = hash["name"].call(*args) else name = _INTL(hash["name"]) end @@ -125,3 +140,34 @@ module MenuHandlers return option_hash[function].call(*args) end end + +#=============================================================================== +# +#=============================================================================== +module UIActionHandlers + @@handlers = {} + + module_function + + def add(menu, action, hash) + @@handlers[menu] = HandlerHash.new if !@@handlers.has_key?(menu) + @@handlers[menu].add(action, hash) + end + + def remove(menu, action) + @@handlers[menu]&.remove(action) + end + + def clear(menu) + @@handlers[menu]&.clear + end + + def get(menu, action) + return @@handlers[menu][action] + end + + def each(menu) + return if !@@handlers.has_key?(menu) + @@handlers[menu].each { |action, hash| yield action, hash } + end +end diff --git a/Data/Scripts/003_New_UI_Settings.rb b/Data/Scripts/003_New_UI_Settings.rb new file mode 100644 index 000000000..21931b7d8 --- /dev/null +++ b/Data/Scripts/003_New_UI_Settings.rb @@ -0,0 +1,62 @@ +#=============================================================================== +# NOTE: Some Settings in here will be moved elsewhere eventually. They're all +# just gathered here while the new UI is being written. +#=============================================================================== +module Settings + # :one, :adventure, :multiple + SAVE_SLOTS = :multiple + + # Whether the main color of a move's name in the Fight menu in battle matches + # the pixel at coordinate (10,34) in cursor_fight.png for that move's type + # (true), or whether the move name's color is the default black (false). + BATTLE_MOVE_NAME_COLOR_FROM_GRAPHIC = true + + # Whether "Town Map" will show as an option in the pause menu if the player + # has that item in the Bag and doesn't have a Pokégear. + SHOW_TOWN_MAP_IN_PAUSE_MENU = true + + # The filename of a location sign graphic to be used if the map metadata for a + # map doesn't define one. Make this nil to use the default menu windowskin. + DEFAULT_LOCATION_SIGN_GRAPHIC = "Pt default" + # Assigns location sign graphics to text styles (numbers). These are used in + # class LocationWindow to display the text appropriately for the graphic being + # used. Style :none is reserved for the "no graphic" style. A filename may + # instead be an array of [filename, text base color, text shadow color]. + LOCATION_SIGN_GRAPHIC_STYLES = { + :dp => [["DP", Color.new(72, 80, 72), Color.new(144, 160, 160)]], + :hgss => [["HGSS cave", Color.new(232, 232, 232), Color.new(120, 144, 160)], + ["HGSS city", Color.new(56, 64, 72), Color.new(152, 152, 144)], + ["HGSS default", Color.new(48, 64, 72), Color.new(144, 144, 96)], + ["HGSS forest", Color.new(232, 232, 232), Color.new(120, 176, 144)], + ["HGSS lake", Color.new(40, 48, 56), Color.new(104, 144, 192)], + ["HGSS park", Color.new(40, 48, 56), Color.new(120, 136, 152)], + ["HGSS route", Color.new(48, 64, 72), Color.new(136, 136, 104)], + ["HGSS sea", Color.new(216, 240, 248), Color.new(24, 96, 144)], + ["HGSS town", Color.new(48, 56, 64), Color.new(144, 120, 80)]], + :platinum => ["Pt cave", "Pt city", "Pt default", "Pt forest", "Pt lake", + "Pt park", "Pt route", "Pt sea", "Pt town"] + } + + # Whether a move's power/type/category/etc. as shown in battle, the summary + # screen and the Move Reminder screen will appear as their calculated values + # (true) or their values from the PBS file moves.txt (false). For example, if + # this is true, Judgment's displayed type will depend on the Plate being held + # by the Pokémon that knows it. + SHOW_MODIFIED_MOVE_PROPERTIES = false + + # Whether pressing Use in the Town Map will zoom it in to 200% and show a text + # pane on the right showing the selected point's description. The cursor can + # still be moved while zoomed in. + ENABLE_TOWN_MAP_ZOOM_IN_FOR_DETAILS = true + # Whether points in the Town Map can be marked. + ENABLE_TOWN_MAP_MARKING = true + + # TODO: Allow renaming a Pokémon from the party screen/summary screen (not + # sure which). Gen 9 feature. + # TODO: Allow forgetting/remembering moves from the summary screen. Gen 9 + # feature. + # TODO: Show usability party balls in the Bag. Maybe? + # TODO: Replace Run with Call in battle; don't have this depend on the Shadow + # type existing? + # TODO: Whether new items go at the top or bottom of its Bag pocket? +end diff --git a/Data/Scripts/004_Game classes/001_Switches and Variables/001_Game_Temp.rb b/Data/Scripts/004_Game classes/001_Switches and Variables/001_Game_Temp.rb index 1e622ffe6..a08dfc479 100644 --- a/Data/Scripts/004_Game classes/001_Switches and Variables/001_Game_Temp.rb +++ b/Data/Scripts/004_Game classes/001_Switches and Variables/001_Game_Temp.rb @@ -13,6 +13,8 @@ class Game_Temp attr_accessor :battle_abort # battle flag: interrupt (unused) attr_accessor :title_screen_calling # return to title screen flag attr_accessor :common_event_id # common event ID to start + attr_accessor :field_move_to_use + attr_accessor :field_move_user # Flags indicating something is happening attr_accessor :in_menu # menu is open attr_accessor :in_storage # in-Pokémon storage flag @@ -39,7 +41,6 @@ class Game_Temp attr_accessor :background_bitmap attr_accessor :fadestate # for sprite hashes # Other - attr_accessor :begun_new_game # new game flag (true fron new game until saving) attr_accessor :menu_beep # menu: play sound effect flag attr_accessor :menu_last_choice # pause menu: index of last selection attr_accessor :memorized_bgm # set when trainer intro BGM is played @@ -77,7 +78,6 @@ class Game_Temp @transition_name = "" @fadestate = 0 # Other - @begun_new_game = false @menu_beep = false @memorized_bgm = nil @memorized_bgm_position = 0 diff --git a/Data/Scripts/004_Game classes/002_Game_System.rb b/Data/Scripts/004_Game classes/002_Game_System.rb index c401a5d27..58e90cadd 100644 --- a/Data/Scripts/004_Game classes/002_Game_System.rb +++ b/Data/Scripts/004_Game classes/002_Game_System.rb @@ -22,21 +22,27 @@ class Game_System attr_accessor :bgm_position def initialize - @map_interpreter = Interpreter.new(0, true) - @battle_interpreter = Interpreter.new(0, false) - @timer_start = nil - @timer_duration = 0 - @save_disabled = false - @menu_disabled = false - @encounter_disabled = false - @message_position = 2 - @message_frame = 0 - @save_count = 0 - @magic_number = 0 - @autoscroll_x_speed = 0 - @autoscroll_y_speed = 0 - @bgm_position = 0 - @bgs_position = 0 + @map_interpreter = Interpreter.new(0, true) + @battle_interpreter = Interpreter.new(0, false) + @timer_start = nil + @timer_duration = 0 + @save_disabled = false + @menu_disabled = false + @encounter_disabled = false + @message_position = 2 + @message_frame = 0 + @save_count = 0 + @magic_number = 0 + @adventure_magic_number = rand(2**32) + @autoscroll_x_speed = 0 + @autoscroll_y_speed = 0 + @bgm_position = 0 + @bgs_position = 0 + end + + def adventure_magic_number + @adventure_magic_number ||= rand(2**32) + return @adventure_magic_number end def battle_bgm diff --git a/Data/Scripts/004_Game classes/012_Game_Stats.rb b/Data/Scripts/004_Game classes/012_Game_Stats.rb index 64dab8cb4..241d2bc2c 100644 --- a/Data/Scripts/004_Game classes/012_Game_Stats.rb +++ b/Data/Scripts/004_Game classes/012_Game_Stats.rb @@ -61,6 +61,8 @@ class GameStats attr_writer :play_time # In seconds; the reader also updates the value attr_accessor :play_sessions attr_accessor :time_last_saved # In seconds + attr_reader :real_time_saved + attr_accessor :save_filename_number # -1 if haven't saved yet def initialize # Travel @@ -149,6 +151,8 @@ class GameStats @play_time = 0 @play_sessions = 0 @time_last_saved = 0 + @real_time_saved = 0 + @save_filename_number = -1 end def distance_moved @@ -183,12 +187,18 @@ class GameStats return @play_time end + # For looking at a save file's play time. + def real_play_time + return @play_time + end + def play_time_per_session return play_time / @play_sessions end def set_time_last_saved @time_last_saved = play_time + @real_time_saved = Time.now.to_i end def time_since_last_save diff --git a/Data/Scripts/007_Objects and windows/002_MessageConfig.rb b/Data/Scripts/007_Objects and windows/002_MessageConfig.rb index 2affba22c..179e3305b 100644 --- a/Data/Scripts/007_Objects and windows/002_MessageConfig.rb +++ b/Data/Scripts/007_Objects and windows/002_MessageConfig.rb @@ -243,17 +243,15 @@ end def pbRepositionMessageWindow(msgwindow, linecount = 2) msgwindow.height = (32 * linecount) + msgwindow.borderY msgwindow.y = (Graphics.height) - (msgwindow.height) - if $game_system - case $game_system.message_position - when 0 # up - msgwindow.y = 0 - when 1 # middle - msgwindow.y = (Graphics.height / 2) - (msgwindow.height / 2) - when 2 - msgwindow.y = (Graphics.height) - (msgwindow.height) - end - msgwindow.opacity = 0 if $game_system.message_frame != 0 + case $game_system&.message_position || 2 + when 0 # top + msgwindow.y = 0 + when 1 # middle + msgwindow.y = (Graphics.height - msgwindow.height) / 2 + when 2 # bottom + msgwindow.y = Graphics.height - msgwindow.height end + msgwindow.opacity = 0 if ($game_system&.message_frame || 0) != 0 end # internal function @@ -376,7 +374,7 @@ def get_text_colors_for_windowskin(windowskin, color, isDarkSkin) end # Light background, dark text if textcolors[2 * (color - 1)].is_a?(Color) - return textcolors[2 * (color - 1)], textcolors[2 * (color - 1) + 1] + return textcolors[2 * (color - 1)], textcolors[(2 * (color - 1)) + 1] end return Color.new(*textcolors[2 * (color - 1)]), Color.new(*textcolors[(2 * (color - 1)) + 1]) end @@ -497,7 +495,7 @@ def using(window) end def pbUpdateSpriteHash(windows) - windows.each do |i| + windows&.each do |i| window = i[1] if window if window.is_a?(Sprite) || window.is_a?(Window) @@ -597,7 +595,7 @@ def pbFadeOutIn(z = 99999, nofadeout = false) end end -def pbFadeOutInWithUpdate(z, sprites, nofadeout = false) +def pbFadeOutInWithUpdate(sprites, z = 99999, nofadeout = false) duration = 0.4 # In seconds col = Color.new(0, 0, 0, 0) viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) diff --git a/Data/Scripts/007_Objects and windows/005_SpriteWindow_text.rb b/Data/Scripts/007_Objects and windows/005_SpriteWindow_text.rb index bb50e0e82..75df4c0b9 100644 --- a/Data/Scripts/007_Objects and windows/005_SpriteWindow_text.rb +++ b/Data/Scripts/007_Objects and windows/005_SpriteWindow_text.rb @@ -231,7 +231,7 @@ class Window_AdvancedTextPokemon < SpriteWindow_Base dims = [0, 0] cwidth = (maxwidth < 0) ? Graphics.width : maxwidth chars = getFormattedTextForDims(self.contents, 0, 0, - cwidth - self.borderX - 2 - 6, -1, text, @lineHeight, true) + cwidth - self.borderX - SpriteWindow_Base::TEXT_PADDING, -1, text, @lineHeight, true) chars.each do |ch| dims[0] = [dims[0], ch[1] + ch[3]].max dims[1] = [dims[1], ch[2] + ch[4]].max @@ -244,7 +244,7 @@ class Window_AdvancedTextPokemon < SpriteWindow_Base oldstarting = @starting @starting = true self.width = (width < 0) ? Graphics.width : width - self.height = dims[1] + self.borderY + self.height = dims[1] + self.borderY + 2 # TEXT OFFSET @starting = oldstarting redrawText end @@ -565,8 +565,8 @@ class Window_AdvancedTextPokemon < SpriteWindow_Base elsif @textchars[@curchar] == "\1" @pausing = true if @curchar < @numtextchars - 1 self.startPause - refresh end + refresh end end end @@ -602,8 +602,8 @@ class Window_AdvancedTextPokemon < SpriteWindow_Base ret = true @curchar += 1 break if @textchars[@curchar] == "\n" || # newline - @textchars[@curchar] == "\1" || # pause - @textchars[@curchar] == "\2" || # letter-by-letter break + @textchars[@curchar] == "\1" || # pause: "\!" + @textchars[@curchar] == "\2" || # letter-by-letter break: "\wt[]", "\wtnp[]", "\.", "\|" @textchars[@curchar].nil? end return ret @@ -835,12 +835,11 @@ class SpriteWindow_Selectable < SpriteWindow_Base if item < 0 || item >= @item_max || item < self.top_item || item > self.top_item + self.page_item_max return Rect.new(0, 0, 0, 0) - else - cursor_width = (self.width - self.borderX - ((@column_max - 1) * @column_spacing)) / @column_max - x = item % @column_max * (cursor_width + @column_spacing) - y = (item / @column_max * @row_height) - @virtualOy - return Rect.new(x, y, cursor_width, @row_height) end + cursor_width = (self.width - self.borderX - ((@column_max - 1) * @column_spacing)) / @column_max + x = item % @column_max * (cursor_width + @column_spacing) + y = (item / @column_max * @row_height) - @virtualOy + return Rect.new(x, y, cursor_width, @row_height) end def refresh; end @@ -954,7 +953,7 @@ class SpriteWindow_Selectable < SpriteWindow_Base new_top_row = [[new_top_row, self.row_max - self.page_row_max].min, 0].max if self.top_row != new_top_row self.top_row = new_top_row -# dorefresh = true + dorefresh = true end # End of code cursor_width = (self.width - self.borderX) / @column_max @@ -1243,19 +1242,6 @@ end class Window_AdvancedCommandPokemon < Window_DrawableCommand attr_reader :commands - def textWidth(bitmap, text) - dims = [nil, 0] - chars = getFormattedText(bitmap, 0, 0, - Graphics.width - self.borderX - SpriteWindow_Base::TEXT_PADDING - 16, - -1, text, self.rowHeight, true, true) - chars.each do |ch| - dims[0] = dims[0] ? [dims[0], ch[1]].min : ch[1] - dims[1] = [dims[1], ch[1] + ch[3]].max - end - dims[0] = 0 if !dims[0] - return dims[1] - dims[0] - end - def initialize(commands, width = nil) @starting = true @commands = [] @@ -1321,11 +1307,60 @@ class Window_AdvancedCommandPokemon < Window_DrawableCommand end end + def textWidth(bitmap, text) + dims = [nil, 0] + chars = getFormattedText(bitmap, 0, 0, + Graphics.width - self.borderX - SpriteWindow_Base::TEXT_PADDING - 16, + -1, text, self.rowHeight, true, true) + chars.each do |ch| + dims[0] = dims[0] ? [dims[0], ch[1]].min : ch[1] + dims[1] = [dims[1], ch[1] + ch[3]].max + end + dims[0] = 0 if !dims[0] + return dims[1] - dims[0] + end + + def getAutoDims(commands, dims, width = nil) + rowMax = ((commands.length + self.columns - 1) / self.columns).to_i + windowheight = (rowMax * self.rowHeight) + windowheight += self.borderY + if !width || width < 0 + width = 0 + tmp_bitmap = Bitmap.new(1, 1) + pbSetSystemFont(tmp_bitmap) + commands.each do |cmd| + txt = toUnformattedText(cmd).gsub(/\n/, "") + txt_width = tmp_bitmap.text_size(txt).width + check_text = cmd + while check_text[FORMATREGEXP] + if $~[2].downcase == "icon" && $~[3] + check_text = $~.post_match + filename = $~[4].sub(/\s+$/, "") + temp_graphic = Bitmap.new("Graphics/Icons/#{filename}") + txt_width += temp_graphic.width + temp_graphic.dispose + else + check_text = $~.post_match + end + end + width = [width, txt_width].max + end + # one 16 to allow cursor + width += 16 + 16 + SpriteWindow_Base::TEXT_PADDING + tmp_bitmap.dispose + end + # Store suggested width and height of window + dims[0] = [self.borderX + 1, + (width * self.columns) + self.borderX + ((self.columns - 1) * self.columnSpacing)].max + dims[1] = [self.borderY + 1, windowheight].max + dims[1] = [dims[1], Graphics.height].min + end + def resizeToFit(commands, width = nil) dims = [] getAutoDims(commands, dims, width) self.width = dims[0] - self.height = dims[1] - 6 + self.height = dims[1] end def itemCount @@ -1340,8 +1375,8 @@ class Window_AdvancedCommandPokemon < Window_DrawableCommand pbDrawShadowText(self.contents, rect.x, rect.y + (self.contents.text_offset_y || 0), rect.width, rect.height, @commands[index], self.baseColor, self.shadowColor) else - chars = getFormattedText(self.contents, rect.x, rect.y + (self.contents.text_offset_y || 0), - rect.width, rect.height, @commands[index], rect.height, true, true) + chars = getFormattedText(self.contents, rect.x, rect.y + (self.contents.text_offset_y || 0) + 2, # TEXT OFFSET + rect.width, rect.height, @commands[index], rect.height, true, true, false, self) drawFormattedChars(self.contents, chars) end end diff --git a/Data/Scripts/007_Objects and windows/007_BitmapSprite.rb b/Data/Scripts/007_Objects and windows/007_BitmapSprite.rb index c19283a81..475c978ef 100644 --- a/Data/Scripts/007_Objects and windows/007_BitmapSprite.rb +++ b/Data/Scripts/007_Objects and windows/007_BitmapSprite.rb @@ -3,19 +3,117 @@ # This bitmap can't be changed to a different one. #=============================================================================== class BitmapSprite < Sprite + attr_reader :text_themes + def initialize(width, height, viewport = nil) super(viewport) self.bitmap = Bitmap.new(width, height) + @text_themes = {} @initialized = true end + def dispose + self.bitmap.dispose if !self.disposed? + super + end + def bitmap=(value) super(value) if !@initialized end - def dispose - self.bitmap.dispose if !self.disposed? - super + #----------------------------------------------------------------------------- + + def add_text_theme(id, base_color, shadow_color = nil) + @text_themes[id] = [base_color, shadow_color] + end + + # TODO: Replaces def pbDrawTextPositions. + def draw_themed_text(string, text_x, text_y, align = :left, theme = :default, outline = :shadow) + string_size = self.bitmap.text_size(string) + case align + when :right + text_x -= string_size.width + when :center + text_x -= (string_size.width / 2) + end + if !@text_themes[theme] + theme = (@text_themes[:default]) ? :default : @text_themes.keys.first + end + case outline || :shadow + when :shadow + draw_shadowed_text(string, text_x, text_y, theme) + when :outline + draw_outlined_text(string, text_x, text_y, theme) + when :none + draw_plain_text(string, text_x, text_y, theme) + end + end + + # TODO: Replaces def pbDrawShadowText. + def draw_shadowed_text(string, text_x, text_y, theme) + return if !@text_themes[theme] + base_color, shadow_color = @text_themes[theme] + string_size = self.bitmap.text_size(string) + string_width = string_size.width + 1 + string_height = string_size.height + 1 + if shadow_color && shadow_color.alpha > 0 + self.bitmap.font.color = shadow_color + self.bitmap.draw_text(text_x + 2, text_y, string_width, string_height, string, 0) + self.bitmap.draw_text(text_x, text_y + 2, string_width, string_height, string, 0) + self.bitmap.draw_text(text_x + 2, text_y + 2, string_width, string_height, string, 0) + end + if base_color && base_color.alpha > 0 + self.bitmap.font.color = base_color + self.bitmap.draw_text(text_x, text_y, string_width, string_height, string, 0) + end + end + + # TODO: Replaces def pbDrawOutlineText. + def draw_outlined_text(string, text_x, text_y, theme) + return if !@text_themes[theme] + base_color, shadow_color = @text_themes[theme] + string_size = self.bitmap.text_size(string) + string_width = string_size.width + 1 + string_height = string_size.height + 1 + if shadow_color && shadow_color.alpha > 0 + self.bitmap.font.color = shadow_color + self.bitmap.draw_text(text_x - 2, text_y - 2, string_width, string_height, string, 0) + self.bitmap.draw_text(text_x, text_y - 2, string_width, string_height, string, 0) + self.bitmap.draw_text(text_x + 2, text_y - 2, string_width, string_height, string, 0) + self.bitmap.draw_text(text_x - 2, text_y, string_width, string_height, string, 0) + self.bitmap.draw_text(text_x + 2, text_y, string_width, string_height, string, 0) + self.bitmap.draw_text(text_x - 2, text_y + 2, string_width, string_height, string, 0) + self.bitmap.draw_text(text_x, text_y + 2, string_width, string_height, string, 0) + self.bitmap.draw_text(text_x + 2, text_y + 2, string_width, string_height, string, 0) + end + if base_color && base_color.alpha > 0 + self.bitmap.font.color = base_color + self.bitmap.draw_text(text_x, text_y, string_width, string_height, string, 0) + end + end + + # TODO: Replaces def pbDrawPlainText. + def draw_plain_text(string, text_x, text_y, theme) + return if !@text_themes[theme] + base_color = @text_themes[theme][0] + return if !base_color || base_color.alpha == 0 + string_size = self.bitmap.text_size(string) + string_width = string_size.width + 1 + string_height = string_size.height + 1 + self.bitmap.font.color = base_color + self.bitmap.draw_text(text_x, text_y, string_width, string_height, string, 0) + end + + #----------------------------------------------------------------------------- + + # TODO: Replaces def pbDrawImagePositions. + def draw_image(filename, image_x, image_y, src_x = 0, src_y = 0, src_width = -1, src_height = -1) + src_bitmap = (filename.is_a?(AnimatedBitmap)) ? filename : AnimatedBitmap.new(pbBitmapName(filename)) + src_width = (src_width >= 0) ? src_width : src_bitmap.width + src_height = (src_height >= 0) ? src_height : src_bitmap.height + src_rect = Rect.new(src_x, src_y, src_width, src_height) + self.bitmap.blt(image_x, image_y, src_bitmap.bitmap, src_rect) + src_bitmap.dispose if !filename.is_a?(AnimatedBitmap) end end @@ -210,22 +308,24 @@ end # Sprite class that stores multiple bitmaps, and displays only one at once. #=============================================================================== class ChangelingSprite < Sprite + # Key is the mode (a symbol). + # Value is one of: + # filepath + # [filepath, src_x, src_y, src_width, src_height] + BITMAPS = {} + def initialize(x = 0, y = 0, viewport = nil) super(viewport) self.x = x self.y = y @bitmaps = {} - @currentBitmap = nil + @changeling_data = {} + @current_bitmap = nil + initialize_changeling_data end - def addBitmap(key, path) - @bitmaps[key]&.dispose - @bitmaps[key] = AnimatedBitmap.new(path) - end - - def changeBitmap(key) - @currentBitmap = @bitmaps[key] - self.bitmap = (@currentBitmap) ? @currentBitmap.bitmap : nil + def initialize_changeling_data + self.class::BITMAPS.each_pair { |mode, data| add_bitmap(mode, data) } end def dispose @@ -235,9 +335,37 @@ class ChangelingSprite < Sprite super end + #----------------------------------------------------------------------------- + + def add_bitmap(mode, *data) + raise ArgumentError.new(_INTL("wrong number of arguments (given {1}, expected 2 or 6)", data.length + 1)) if ![1, 5].include?(data.length) + filepath = (data[0].is_a?(Array)) ? data[0][0] : data[0] + @bitmaps[filepath] = AnimatedBitmap.new(filepath) if !@bitmaps[filepath] + @changeling_data[mode] = (data[0].is_a?(Array) ? data[0].clone : [data[0]]) + end + + def change_bitmap(mode) + @current_mode = mode + if @current_mode && @changeling_data[@current_mode] + data = @changeling_data[@current_mode] + @current_bitmap = @bitmaps[data[0]] + self.bitmap = @current_bitmap.bitmap + if data.length > 1 + self.src_rect.set(data[1], data[2], data[3], data[4]) + else + self.src_rect.set(0, 0, self.bitmap.width, self.bitmap.height) + end + else + @current_bitmap = nil + self.bitmap = nil + end + end + + #----------------------------------------------------------------------------- + def update return if disposed? @bitmaps.each_value { |bm| bm.update } - self.bitmap = (@currentBitmap) ? @currentBitmap.bitmap : nil + self.bitmap = @current_bitmap.bitmap if @current_bitmap end end diff --git a/Data/Scripts/007_Objects and windows/010_DrawText.rb b/Data/Scripts/007_Objects and windows/010_DrawText.rb index a18f98a33..6724a224a 100644 --- a/Data/Scripts/007_Objects and windows/010_DrawText.rb +++ b/Data/Scripts/007_Objects and windows/010_DrawText.rb @@ -66,7 +66,9 @@ def fmtReplaceEscapes(text) end def toUnformattedText(text) - text2 = text.gsub(FORMATREGEXP, "") + text2 = text.clone + pbReplaceMessageText(text2, nil) + text2 = text2.gsub(FORMATREGEXP, "") fmtReplaceEscapes(text2) return text2 end @@ -147,7 +149,7 @@ def getFormattedTextFast(bitmap, xDst, yDst, widthDst, heightDst, text, lineheig elsif isspace hadspace = true end - texty = (lineheight * y) + yDst + yStart + texty = (lineheight * y) + yDst + yStart - 2 # TEXT OFFSET # Push character if heightDst < 0 || yStart < yDst + heightDst havenl = true if isWaitChar(textchars[position]) @@ -314,7 +316,7 @@ end #=============================================================================== def getFormattedText(bitmap, xDst, yDst, widthDst, heightDst, text, lineheight = 32, newlineBreaks = true, explicitBreaksOnly = false, - collapseAlignments = false) + collapseAlignments = false, msg_window = nil) dummybitmap = nil if !bitmap || bitmap.disposed? # allows function to be called with nil bitmap dummybitmap = Bitmap.new(1, 1) @@ -327,6 +329,7 @@ def getFormattedText(bitmap, xDst, yDst, widthDst, heightDst, text, lineheight = textchunks = [] controls = [] # oldtext = text + pbReplaceMessageText(text, msg_window) while text[FORMATREGEXP] textchunks.push($~.pre_match) if $~[3] @@ -376,7 +379,11 @@ def getFormattedText(bitmap, xDst, yDst, widthDst, heightDst, text, lineheight = fontsize = defaultfontsize fontnamestack = [] fontsizestack = [] - defaultcolors = [oldfont.color.clone, nil] + if msg_window + defaultcolors = [msg_window.baseColor, msg_window.shadowColor] + else + defaultcolors = [oldfont.color.clone, nil] + end if defaultfontname.is_a?(Array) defaultfontname = defaultfontname.find { |i| Font.exist?(i) } || "Arial" elsif !Font.exist?(defaultfontname) @@ -917,17 +924,18 @@ def drawSingleFormattedChar(bitmap, ch) if ch[5] # If a graphic graphic = Bitmap.new(ch[0]) graphicRect = ch[15] - bitmap.blt(ch[1], ch[2], graphic, graphicRect, ch[8].alpha) + bitmap.blt(ch[1], ch[2] - (bitmap.text_offset_y || 0), graphic, graphicRect, ch[8].alpha) graphic.dispose return end bitmap.font.size = ch[13] if bitmap.font.size != ch[13] if ch[9] # shadow if ch[10] # underline - bitmap.fill_rect(ch[1], ch[2] + ch[4] - [(ch[4] - bitmap.font.size) / 2, 0].max - 2, ch[3], 4, ch[9]) + bitmap.fill_rect(ch[1], ch[2] + ch[4] - [(ch[4] - bitmap.font.size) / 2, 0].max - 2 - (bitmap.text_offset_y || 0), + ch[3], 4, ch[9]) end if ch[11] # strikeout - bitmap.fill_rect(ch[1], ch[2] + 2 + (ch[4] / 2), ch[3], 4, ch[9]) + bitmap.fill_rect(ch[1], ch[2] + 2 + (ch[4] / 2) - (bitmap.text_offset_y || 0), ch[3], 4, ch[9]) end end if ch[0] == "\n" || ch[0] == "\r" || ch[0] == " " || isWaitChar(ch[0]) @@ -969,10 +977,11 @@ def drawSingleFormattedChar(bitmap, ch) bitmap.draw_text(ch[1] + offset, ch[2] + offset, ch[3], ch[4], ch[0]) end if ch[10] # underline - bitmap.fill_rect(ch[1], ch[2] + ch[4] - [(ch[4] - bitmap.font.size) / 2, 0].max - 2, ch[3] - 2, 2, ch[8]) + bitmap.fill_rect(ch[1], ch[2] + ch[4] - [(ch[4] - bitmap.font.size) / 2, 0].max - 2 - (bitmap.text_offset_y || 0), + ch[3] - 2, 2, ch[8]) end if ch[11] # strikeout - bitmap.fill_rect(ch[1], ch[2] + 2 + (ch[4] / 2), ch[3] - 2, 2, ch[8]) + bitmap.fill_rect(ch[1], ch[2] + 2 + (ch[4] / 2) - (bitmap.text_offset_y || 0), ch[3] - 2, 2, ch[8]) end end diff --git a/Data/Scripts/007_Objects and windows/011_Messages.rb b/Data/Scripts/007_Objects and windows/011_Messages.rb index e4db675f0..3a42e0621 100644 --- a/Data/Scripts/007_Objects and windows/011_Messages.rb +++ b/Data/Scripts/007_Objects and windows/011_Messages.rb @@ -254,9 +254,10 @@ end def pbGetMapNameFromId(id) name = GameData::MapMetadata.try_get(id)&.name - if nil_or_empty?(name) - name = pbGetBasicMapNameFromId(id) - name.gsub!(/\\PN/, $player.name) if $player + name = pbGetBasicMapNameFromId(id) if nil_or_empty?(name) + name = name.gsub(/\\PN/, $player.name) if $player + if $game_variables + name = name.gsub(/\\v\[(\d+)\]/) { |num| $game_variables[$~[1].to_i].to_s } end return name end @@ -304,6 +305,44 @@ def pbCsvPosInt!(str) return ret.to_i end +def pbReplaceMessageText(text, msg_window) + # \sign[something] gets turned into \op\cl\ts[]\w[something] + text.gsub!(/\\sign\[([^\]]*)\]/i) { next "\\op\\cl\\ts[]\\w[" + $1 + "]" } + # Escaped characters + text.gsub!(/\\\\/, "\5") + text.gsub!(/\\1/, "\1") + text.gsub!(/\\n/i, "\n") + # Text placeholders + text.gsub!(/\\pn/i, $player.name) if $player + text.gsub!(/\\pm/i, _INTL("${1}", $player.money.to_s_formatted)) if $player + loop do + last_text = text.clone + text.gsub!(/\\v\[([0-9]+)\]/i) { $game_variables[$1.to_i] } + break if text == last_text + end + if $game_actors + text.gsub!(/\\n\[([1-8])\]/i) { next $game_actors[$1.to_i].name } + end + # Male/female text colors + text.gsub!(/\\pg/i, "\\b") if $player&.male? + text.gsub!(/\\pg/i, "\\r") if $player&.female? + text.gsub!(/\\pog/i, "\\r") if $player&.male? + text.gsub!(/\\pog/i, "\\b") if $player&.female? + text.gsub!(/\\pg/i, "") + text.gsub!(/\\pog/i, "") + male_text_tag = shadowc3tag(MessageConfig::MALE_TEXT_MAIN_COLOR, MessageConfig::MALE_TEXT_SHADOW_COLOR) + female_text_tag = shadowc3tag(MessageConfig::FEMALE_TEXT_MAIN_COLOR, MessageConfig::FEMALE_TEXT_SHADOW_COLOR) + text.gsub!(/\\b/i, male_text_tag) + text.gsub!(/\\r/i, female_text_tag) + # Other text colors + text.gsub!(/\\\[([0-9a-f]{8,8})\]/i) { "" } + isDarkSkin = msg_window && isDarkWindowskin(msg_window.windowskin) + text.gsub!(/\\c\[([0-9]+)\]/i) do + main_color, shadow_color = get_text_colors_for_windowskin(msg_window&.windowskin, $1.to_i, isDarkSkin) + next shadowc3tag(main_color, shadow_color) + end +end + #=============================================================================== # Money and coins windows. #=============================================================================== @@ -419,28 +458,7 @@ def pbMessageDisplay(msgwindow, message, letterbyletter = true, commandProc = ni text = message.clone linecount = (Graphics.height > 400) ? 3 : 2 ### Text replacement - text.gsub!(/\\sign\[([^\]]*)\]/i) do # \sign[something] gets turned into - next "\\op\\cl\\ts[]\\w[" + $1 + "]" # \op\cl\ts[]\w[something] - end - text.gsub!(/\\\\/, "\5") - text.gsub!(/\\1/, "\1") - if $game_actors - text.gsub!(/\\n\[([1-8])\]/i) { next $game_actors[$1.to_i].name } - end - text.gsub!(/\\pn/i, $player.name) if $player - text.gsub!(/\\pm/i, _INTL("${1}", $player.money.to_s_formatted)) if $player - text.gsub!(/\\n/i, "\n") - text.gsub!(/\\\[([0-9a-f]{8,8})\]/i) { "" } - text.gsub!(/\\pg/i, "\\b") if $player&.male? - text.gsub!(/\\pg/i, "\\r") if $player&.female? - text.gsub!(/\\pog/i, "\\r") if $player&.male? - text.gsub!(/\\pog/i, "\\b") if $player&.female? - text.gsub!(/\\pg/i, "") - text.gsub!(/\\pog/i, "") - male_text_tag = shadowc3tag(MessageConfig::MALE_TEXT_MAIN_COLOR, MessageConfig::MALE_TEXT_SHADOW_COLOR) - female_text_tag = shadowc3tag(MessageConfig::FEMALE_TEXT_MAIN_COLOR, MessageConfig::FEMALE_TEXT_SHADOW_COLOR) - text.gsub!(/\\b/i, male_text_tag) - text.gsub!(/\\r/i, female_text_tag) + pbReplaceMessageText(text, msgwindow) text.gsub!(/\\[Ww]\[([^\]]*)\]/) do w = $1.to_s if w == "" @@ -450,16 +468,6 @@ def pbMessageDisplay(msgwindow, message, letterbyletter = true, commandProc = ni end next "" end - isDarkSkin = isDarkWindowskin(msgwindow.windowskin) - text.gsub!(/\\c\[([0-9]+)\]/i) do - main_color, shadow_color = get_text_colors_for_windowskin(msgwindow.windowskin, $1.to_i, isDarkSkin) - next shadowc3tag(main_color, shadow_color) - end - loop do - last_text = text.clone - text.gsub!(/\\v\[([0-9]+)\]/i) { $game_variables[$1.to_i] } - break if text == last_text - end loop do last_text = text.clone text.gsub!(/\\l\[([0-9]+)\]/i) do @@ -473,6 +481,7 @@ def pbMessageDisplay(msgwindow, message, letterbyletter = true, commandProc = ni main_color, shadow_color = get_text_colors_for_windowskin(msgwindow.windowskin, 0, true) colortag = shadowc3tag(main_color, shadow_color) else + isDarkSkin = isDarkWindowskin(msgwindow.windowskin) main_color, shadow_color = get_text_colors_for_windowskin(msgwindow.windowskin, 0, isDarkSkin) colortag = shadowc3tag(main_color, shadow_color) end @@ -723,7 +732,7 @@ end def pbShowCommands(msgwindow, commands = nil, cmdIfCancel = 0, defaultCmd = 0) return 0 if !commands - cmdwindow = Window_CommandPokemonEx.new(commands) + cmdwindow = Window_AdvancedCommandPokemon.new(commands) cmdwindow.z = 99999 cmdwindow.visible = true cmdwindow.resizeToFit(cmdwindow.commands) @@ -763,7 +772,7 @@ def pbShowCommandsWithHelp(msgwindow, commands, help, cmdIfCancel = 0, defaultCm oldlbl = msgwin.letterbyletter msgwin.letterbyletter = false if commands - cmdwindow = Window_CommandPokemonEx.new(commands) + cmdwindow = Window_AdvancedCommandPokemon.new(commands) cmdwindow.z = 99999 cmdwindow.visible = true cmdwindow.resizeToFit(cmdwindow.commands) diff --git a/Data/Scripts/010_Data/001_Hardcoded data/008_Stat.rb b/Data/Scripts/010_Data/001_Hardcoded data/008_Stat.rb index 48e7b97f2..4aa273c1a 100644 --- a/Data/Scripts/010_Data/001_Hardcoded data/008_Stat.rb +++ b/Data/Scripts/010_Data/001_Hardcoded data/008_Stat.rb @@ -9,6 +9,7 @@ module GameData class Stat attr_reader :id attr_reader :real_name + attr_reader :real_name_semi_brief attr_reader :real_name_brief attr_reader :type attr_reader :pbs_order @@ -39,11 +40,12 @@ module GameData #--------------------------------------------------------------------------- def initialize(hash) - @id = hash[:id] - @real_name = hash[:name] || "Unnamed" - @real_name_brief = hash[:name_brief] || "None" - @type = hash[:type] || :none - @pbs_order = hash[:pbs_order] || -1 + @id = hash[:id] + @real_name = hash[:name] || "Unnamed" + @real_name_semi_brief = hash[:name_semi_brief] + @real_name_brief = hash[:name_brief] || "None" + @type = hash[:type] || :none + @pbs_order = hash[:pbs_order] || -1 end # @return [String] the translated name of this stat @@ -51,6 +53,10 @@ module GameData return _INTL(@real_name) end + def name_semi_brief + return _INTL(@real_name_semi_brief || @real_name) + end + # @return [String] the translated brief name of this stat def name_brief return _INTL(@real_name_brief) @@ -87,19 +93,21 @@ GameData::Stat.register({ }) GameData::Stat.register({ - :id => :SPECIAL_ATTACK, - :name => _INTL("Special Attack"), - :name_brief => _INTL("SpAtk"), - :type => :main_battle, - :pbs_order => 4 + :id => :SPECIAL_ATTACK, + :name => _INTL("Special Attack"), + :name_semi_brief => _INTL("Sp. Attack"), + :name_brief => _INTL("SpAtk"), + :type => :main_battle, + :pbs_order => 4 }) GameData::Stat.register({ - :id => :SPECIAL_DEFENSE, - :name => _INTL("Special Defense"), - :name_brief => _INTL("SpDef"), - :type => :main_battle, - :pbs_order => 5 + :id => :SPECIAL_DEFENSE, + :name => _INTL("Special Defense"), + :name_semi_brief => _INTL("Sp. Defense"), + :name_brief => _INTL("SpDef"), + :type => :main_battle, + :pbs_order => 5 }) GameData::Stat.register({ diff --git a/Data/Scripts/010_Data/001_Hardcoded data/018_BagPocket.rb b/Data/Scripts/010_Data/001_Hardcoded data/018_BagPocket.rb new file mode 100644 index 000000000..608d5e10e --- /dev/null +++ b/Data/Scripts/010_Data/001_Hardcoded data/018_BagPocket.rb @@ -0,0 +1,160 @@ +#=============================================================================== +# +#=============================================================================== +module GameData + class BagPocket + attr_reader :id + attr_reader :real_name + attr_reader :icon_position # Where this pocket's icon is within icon_pocket.png + attr_reader :order + attr_reader :max_slots + attr_reader :auto_sort + + DATA = {} + + extend ClassMethodsSymbols + include InstanceMethods + + def self.load; end + def self.save; end + + def self.all_pockets + ret = [] + DATA.each_value { |pocket| ret.push([pocket.bag_pocket]) } + ret.uniq! + ret.each { |data| data.push(self.get(data[0]).order) } + ret.sort_by! { |pckt| pckt[1] } + ret.map! { |pckt| pckt[0] } + return ret + end + + def self.index(pocket) + return self.all_pockets.index(pocket) + end + + # @param other [Symbol, self, String] + # @return [self] + def self.get(other) + validate other => [Symbol, self, String, Integer] + return other if other.is_a?(self) + other = self.all_pockets[other - 1] if other.is_a?(Integer) + other = other.to_sym if other.is_a?(String) + raise "Unknown ID #{other}." unless self::DATA.has_key?(other) + return self::DATA[other] + end + + # @param other [Symbol, self, String] + # @return [self, nil] + def try_get(other) + return nil if other.nil? + validate other => [Symbol, self, String, Integer] + return other if other.is_a?(self) + other = self.all_pockets[other - 1] if other.is_a?(Integer) + other = other.to_sym if other.is_a?(String) + return (self::DATA.has_key?(other)) ? self::DATA[other] : nil + end + + #--------------------------------------------------------------------------- + + def initialize(hash) + @id = hash[:id] + @real_name = hash[:name] || "Unnamed" + @icon_position = hash[:icon_position] || 0 + @order = hash[:order] || 999 + @max_slots = hash[:max_slots] || -1 + @auto_sort = hash[:auto_sort] || false + @parent_pocket = hash[:parent_pocket] + end + + # @return [String] the translated name of this nature + def name + return _INTL(@real_name) + end + + def bag_pocket + return @parent_pocket || @id + end + end +end + +#=============================================================================== +# NOTE: If :parent_pocket is defined for a BagPocket below, that parent pocket +# is assumed to be one that appears in the Bag. They don't chain. +# i.e. You can't give "MegaStones" a :parent_pocket of "HeldItems", and +# "HeldItems" a :parent_pocket of "Items" (where "Items" is the only one +# of these pockets that appears in the Bag). Both "MegaStones" and +# "HeldItems" should have a :parent_pocket of "Items". +#=============================================================================== + +GameData::BagPocket.register({ + :id => :Items, + :name => _INTL("Other Items"), + :icon_position => 0, + :order => 10 +}) + +GameData::BagPocket.register({ + :id => :Mail, + :parent_pocket => :Items +}) + +GameData::BagPocket.register({ + :id => :Medicine, + :name => _INTL("Medicine"), + :icon_position => 1, + :order => 20 +}) + +GameData::BagPocket.register({ + :id => :PokeBalls, + :name => _INTL("Poké Balls"), + :icon_position => 2, + :order => 30 +}) + +GameData::BagPocket.register({ + :id => :Berries, + :name => _INTL("Berries"), + :icon_position => 3, + :order => 40, + :auto_sort => true +}) + +GameData::BagPocket.register({ + :id => :HeldItems, + :name => _INTL("Held Items"), + :icon_position => 4, + :order => 50 +}) + +GameData::BagPocket.register({ + :id => :MegaStones, + :parent_pocket => :HeldItems +}) + +GameData::BagPocket.register({ + :id => :BattleItems, + :name => _INTL("Battle Items"), + :icon_position => 5, + :order => 60 +}) + +# This pocket is hardcoded to allow showing the details of a machine item in +# this pocket in the Bag. The display of this information is toggled by pressing +# the Action input. It is not possible to open the screen menu with the Action +# input in this pocket (although you also can't open it if the pocket auto-sorts +# so that's not a problem). +GameData::BagPocket.register({ + :id => :Machines, + :name => _INTL("TMs & HMs"), + :icon_position => 6, + :order => 70, + :auto_sort => true +}) + +GameData::BagPocket.register({ + :id => :KeyItems, + :name => _INTL("Key Items"), + :icon_position => 7, + :order => 80 +}) diff --git a/Data/Scripts/010_Data/002_PBS data/002_TownMap.rb b/Data/Scripts/010_Data/002_PBS data/002_TownMap.rb index 07d3a167f..6a8c4d056 100644 --- a/Data/Scripts/010_Data/002_PBS data/002_TownMap.rb +++ b/Data/Scripts/010_Data/002_PBS data/002_TownMap.rb @@ -6,7 +6,10 @@ module GameData attr_reader :id attr_reader :real_name attr_reader :filename - attr_reader :point + attr_reader :margins + attr_reader :point_size + attr_reader :size + attr_reader :points attr_reader :flags attr_reader :pbs_file_suffix @@ -14,23 +17,43 @@ module GameData DATA_FILENAME = "town_map.dat" PBS_BASE_FILENAME = "town_map" SCHEMA = { - "SectionName" => [:id, "u"], - "Name" => [:real_name, "s"], - "Filename" => [:filename, "s"], - "Point" => [:point, "^uusSUUUU"], - "Flags" => [:flags, "*s"] + "SectionName" => [:id, "u"], + "Name" => [:real_name, "s"], + "Filename" => [:filename, "s"], + "Margins" => [:margins, "uu"], # Left/right and top/bottom padding in pixels + "PointSize" => [:point_size, "vv"], # Size of a point in pixels + "Size" => [:size, "vv"], # Width and height in points + "Point" => [:points, "^uusSUUUU"], + "Flags" => [:flags, "*s"] + } + # This schema is for definable properties of individual points (apart from + # position and name which are above). + SUB_SCHEMA = { + "Image" => [:image, "s"], + "Description" => [:real_description, "q"], + "FlySpot" => [:fly_spot, "vuu"], # Map ID, x coord, y coord + "HideFlyIcon" => [:hide_fly_icon, "b"], + "FlyIconOffset" => [:fly_icon_offset, "ii"], # x and y offsets in pixels + "Switch" => [:switch, "v"] # Game Switch ID } extend ClassMethodsIDNumbers include InstanceMethods + def self.sub_schema + return SUB_SCHEMA + end + #--------------------------------------------------------------------------- def initialize(hash) @id = hash[:id] @real_name = hash[:real_name] || "???" @filename = hash[:filename] - @point = hash[:point] || [] + @margins = hash[:margins] || [0, 0] + @point_size = hash[:point_size] || [16, 16] + @size = hash[:size] || [30, 20] + @points = hash[:points] || [] @flags = hash[:flags] || [] @pbs_file_suffix = hash[:pbs_file_suffix] || "" end @@ -43,5 +66,18 @@ module GameData def has_flag?(flag) return @flags.any? { |f| f.downcase == flag.downcase } end + + def get_point_property_for_PBS(key, index = 0) + return [*@points[index][:position], @points[index][:real_name]] if key == "Point" + ret = @points[index][SUB_SCHEMA[key][0]] + ret = nil if ret == false || (ret.is_a?(Array) && ret.length == 0) || ret == "" + case key + when "Margins" + ret = nil if ret == [0, 0] + when "FlySpot" + ret = nil if ret && ret.compact.empty? + end + return ret + end end end diff --git a/Data/Scripts/010_Data/002_PBS data/005_Move.rb b/Data/Scripts/010_Data/002_PBS data/005_Move.rb index 9b6f2e257..e9f655ce9 100644 --- a/Data/Scripts/010_Data/002_PBS data/005_Move.rb +++ b/Data/Scripts/010_Data/002_PBS data/005_Move.rb @@ -103,132 +103,132 @@ module GameData end def display_type(pkmn, move = nil) -=begin - case @function_code - when "TypeDependsOnUserIVs" - return pbHiddenPower(pkmn)[0] - when "TypeAndPowerDependOnUserBerry" - item_data = pkmn.item - if item_data - item_data.flags.each do |flag| - next if !flag[/^NaturalGift_(\w+)_(?:\d+)$/i] - typ = $~[1].to_sym - ret = typ if GameData::Type.exists?(typ) - break + if Settings::SHOW_MODIFIED_MOVE_PROPERTIES + case @function_code + when "TypeDependsOnUserIVs" + return pbHiddenPower(pkmn)[0] + when "TypeAndPowerDependOnUserBerry" + item_data = pkmn.item + if item_data + item_data.flags.each do |flag| + next if !flag[/^NaturalGift_(\w+)_(?:\d+)$/i] + typ = $~[1].to_sym + ret = typ if GameData::Type.exists?(typ) + break + end end - end - return :NORMAL - when "TypeDependsOnUserPlate" - item_types = { - :FISTPLATE => :FIGHTING, - :SKYPLATE => :FLYING, - :TOXICPLATE => :POISON, - :EARTHPLATE => :GROUND, - :STONEPLATE => :ROCK, - :INSECTPLATE => :BUG, - :SPOOKYPLATE => :GHOST, - :IRONPLATE => :STEEL, - :FLAMEPLATE => :FIRE, - :SPLASHPLATE => :WATER, - :MEADOWPLATE => :GRASS, - :ZAPPLATE => :ELECTRIC, - :MINDPLATE => :PSYCHIC, - :ICICLEPLATE => :ICE, - :DRACOPLATE => :DRAGON, - :DREADPLATE => :DARK, - :PIXIEPLATE => :FAIRY - } - if pkmn.hasItem? - item_types.each do |item, item_type| - return item_type if pkmn.item_id == item && GameData::Type.exists?(item_type) + return :NORMAL + when "TypeDependsOnUserPlate" + item_types = { + :FISTPLATE => :FIGHTING, + :SKYPLATE => :FLYING, + :TOXICPLATE => :POISON, + :EARTHPLATE => :GROUND, + :STONEPLATE => :ROCK, + :INSECTPLATE => :BUG, + :SPOOKYPLATE => :GHOST, + :IRONPLATE => :STEEL, + :FLAMEPLATE => :FIRE, + :SPLASHPLATE => :WATER, + :MEADOWPLATE => :GRASS, + :ZAPPLATE => :ELECTRIC, + :MINDPLATE => :PSYCHIC, + :ICICLEPLATE => :ICE, + :DRACOPLATE => :DRAGON, + :DREADPLATE => :DARK, + :PIXIEPLATE => :FAIRY + } + if pkmn.hasItem? + item_types.each do |item, item_type| + return item_type if pkmn.item_id == item && GameData::Type.exists?(item_type) + end end - end - when "TypeDependsOnUserMemory" - item_types = { - :FIGHTINGMEMORY => :FIGHTING, - :FLYINGMEMORY => :FLYING, - :POISONMEMORY => :POISON, - :GROUNDMEMORY => :GROUND, - :ROCKMEMORY => :ROCK, - :BUGMEMORY => :BUG, - :GHOSTMEMORY => :GHOST, - :STEELMEMORY => :STEEL, - :FIREMEMORY => :FIRE, - :WATERMEMORY => :WATER, - :GRASSMEMORY => :GRASS, - :ELECTRICMEMORY => :ELECTRIC, - :PSYCHICMEMORY => :PSYCHIC, - :ICEMEMORY => :ICE, - :DRAGONMEMORY => :DRAGON, - :DARKMEMORY => :DARK, - :FAIRYMEMORY => :FAIRY - } - if pkmn.hasItem? - item_types.each do |item, item_type| - return item_type if pkmn.item_id == item && GameData::Type.exists?(item_type) + when "TypeDependsOnUserMemory" + item_types = { + :FIGHTINGMEMORY => :FIGHTING, + :FLYINGMEMORY => :FLYING, + :POISONMEMORY => :POISON, + :GROUNDMEMORY => :GROUND, + :ROCKMEMORY => :ROCK, + :BUGMEMORY => :BUG, + :GHOSTMEMORY => :GHOST, + :STEELMEMORY => :STEEL, + :FIREMEMORY => :FIRE, + :WATERMEMORY => :WATER, + :GRASSMEMORY => :GRASS, + :ELECTRICMEMORY => :ELECTRIC, + :PSYCHICMEMORY => :PSYCHIC, + :ICEMEMORY => :ICE, + :DRAGONMEMORY => :DRAGON, + :DARKMEMORY => :DARK, + :FAIRYMEMORY => :FAIRY + } + if pkmn.hasItem? + item_types.each do |item, item_type| + return item_type if pkmn.item_id == item && GameData::Type.exists?(item_type) + end end - end - when "TypeDependsOnUserDrive" - item_types = { - :SHOCKDRIVE => :ELECTRIC, - :BURNDRIVE => :FIRE, - :CHILLDRIVE => :ICE, - :DOUSEDRIVE => :WATER - } - if pkmn.hasItem? - item_types.each do |item, item_type| - return item_type if pkmn.item_id == item && GameData::Type.exists?(item_type) + when "TypeDependsOnUserDrive" + item_types = { + :SHOCKDRIVE => :ELECTRIC, + :BURNDRIVE => :FIRE, + :CHILLDRIVE => :ICE, + :DOUSEDRIVE => :WATER + } + if pkmn.hasItem? + item_types.each do |item, item_type| + return item_type if pkmn.item_id == item && GameData::Type.exists?(item_type) + end end + when "TypeIsUserFirstType" + return pkmn.types[0] end - when "TypeIsUserFirstType" - return pkmn.types[0] end -=end return @type end - def display_damage(pkmn, move = nil) -=begin - case @function_code - when "TypeDependsOnUserIVs" - return pbHiddenPower(pkmn)[1] - when "TypeAndPowerDependOnUserBerry" - item_data = pkmn.item - if item_data - item_data.flags.each do |flag| - return [$~[1].to_i, 10].max if flag[/^NaturalGift_(?:\w+)_(\d+)$/i] + def display_power(pkmn, move = nil) + if Settings::SHOW_MODIFIED_MOVE_PROPERTIES + case @function_code + when "TypeDependsOnUserIVs" + return pbHiddenPower(pkmn)[1] + when "TypeAndPowerDependOnUserBerry" + item_data = pkmn.item + if item_data + item_data.flags.each do |flag| + return [$~[1].to_i, 10].max if flag[/^NaturalGift_(?:\w+)_(\d+)$/i] + end end - end - return 1 - when "ThrowUserItemAtTarget" - item_data = pkmn.item - if item_data - item_data.flags.each do |flag| - return [$~[1].to_i, 10].max if flag[/^Fling_(\d+)$/i] + return 1 + when "ThrowUserItemAtTarget" + item_data = pkmn.item + if item_data + item_data.flags.each do |flag| + return [$~[1].to_i, 10].max if flag[/^Fling_(\d+)$/i] + end + return 10 end - return 10 + return 0 + when "PowerHigherWithUserHP" + return [150 * pkmn.hp / pkmn.totalhp, 1].max + when "PowerLowerWithUserHP" + n = 48 * pkmn.hp / pkmn.totalhp + return 200 if n < 2 + return 150 if n < 5 + return 100 if n < 10 + return 80 if n < 17 + return 40 if n < 33 + return 20 + when "PowerHigherWithUserHappiness" + return [(pkmn.happiness * 2 / 5).floor, 1].max + when "PowerLowerWithUserHappiness" + return [((255 - pkmn.happiness) * 2 / 5).floor, 1].max + when "PowerHigherWithLessPP" + dmgs = [200, 80, 60, 50, 40] + ppLeft = [[(move&.pp || @total_pp) - 1, 0].max, dmgs.length - 1].min + return dmgs[ppLeft] end - return 0 - when "PowerHigherWithUserHP" - return [150 * pkmn.hp / pkmn.totalhp, 1].max - when "PowerLowerWithUserHP" - n = 48 * pkmn.hp / pkmn.totalhp - return 200 if n < 2 - return 150 if n < 5 - return 100 if n < 10 - return 80 if n < 17 - return 40 if n < 33 - return 20 - when "PowerHigherWithUserHappiness" - return [(pkmn.happiness * 2 / 5).floor, 1].max - when "PowerLowerWithUserHappiness" - return [((255 - pkmn.happiness) * 2 / 5).floor, 1].max - when "PowerHigherWithLessPP" - dmgs = [200, 80, 60, 50, 40] - ppLeft = [[(move&.pp || @total_pp) - 1, 0].max, dmgs.length - 1].min - return dmgs[ppLeft] end -=end return @power end diff --git a/Data/Scripts/010_Data/002_PBS data/006_Item.rb b/Data/Scripts/010_Data/002_PBS data/006_Item.rb index 7d7e5eccf..a358da904 100644 --- a/Data/Scripts/010_Data/002_PBS data/006_Item.rb +++ b/Data/Scripts/010_Data/002_PBS data/006_Item.rb @@ -30,7 +30,7 @@ module GameData "NamePlural" => [:real_name_plural, "s"], "PortionName" => [:real_portion_name, "s"], "PortionNamePlural" => [:real_portion_name_plural, "s"], - "Pocket" => [:pocket, "v"], + "Pocket" => [:pocket, "y", :BagPocket], "Price" => [:price, "u"], "SellPrice" => [:sell_price, "u"], "BPPrice" => [:bp_price, "u"], @@ -126,7 +126,7 @@ module GameData @real_name_plural = hash[:real_name_plural] || "Unnamed" @real_portion_name = hash[:real_portion_name] @real_portion_name_plural = hash[:real_portion_name_plural] - @pocket = hash[:pocket] || 1 + @pocket = hash[:pocket] || :None @price = hash[:price] || 0 @sell_price = hash[:sell_price] || (@price / Settings::ITEM_SELL_PRICE_DIVISOR) @bp_price = hash[:bp_price] || 1 @@ -146,6 +146,15 @@ module GameData return pbGetMessageFromHash(MessageTypes::ITEM_NAMES, @real_name) end + def display_name + ret = name + if is_machine? + machine = @move + ret = sprintf("%s %s", ret, GameData::Move.get(@move).name) + end + return ret + end + # @return [String] the translated plural version of the name of this item def name_plural return pbGetMessageFromHash(MessageTypes::ITEM_NAME_PLURALS, @real_name_plural) @@ -168,6 +177,10 @@ module GameData return pbGetMessageFromHash(MessageTypes::ITEM_DESCRIPTIONS, @real_description) end + def bag_pocket + return GameData::BagPocket.get(@pocket).bag_pocket + end + def has_flag?(flag) return @flags.any? { |f| f.downcase == flag.downcase } end diff --git a/Data/Scripts/010_Data/002_PBS data/018_MapMetadata.rb b/Data/Scripts/010_Data/002_PBS data/018_MapMetadata.rb index d938d4555..49f953905 100644 --- a/Data/Scripts/010_Data/002_PBS data/018_MapMetadata.rb +++ b/Data/Scripts/010_Data/002_PBS data/018_MapMetadata.rb @@ -7,6 +7,7 @@ module GameData attr_reader :real_name attr_reader :outdoor_map attr_reader :announce_location + attr_reader :location_sign attr_reader :can_bicycle attr_reader :always_bicycle attr_reader :teleport_destination @@ -37,6 +38,7 @@ module GameData "Name" => [:real_name, "s"], "Outdoor" => [:outdoor_map, "b"], "ShowArea" => [:announce_location, "b"], + "LocationSign" => [:location_sign, "s"], "Bicycle" => [:can_bicycle, "b"], "BicycleAlways" => [:always_bicycle, "b"], "HealingSpot" => [:teleport_destination, "vuu"], @@ -68,6 +70,7 @@ module GameData ["Name", StringProperty, _INTL("The name of the map, as seen by the player. Can be different to the map's name as seen in RMXP.")], ["Outdoor", BooleanProperty, _INTL("If true, this map is an outdoor map and will be tinted according to time of day.")], ["ShowArea", BooleanProperty, _INTL("If true, the game will display the map's name upon entry.")], + ["LocationSign", StringProperty, _INTL("Filename in 'Graphics/UI/Location/' to be used as the location sign.")], ["Bicycle", BooleanProperty, _INTL("If true, the bicycle can be used on this map.")], ["BicycleAlways", BooleanProperty, _INTL("If true, the bicycle will be mounted automatically on this map and cannot be dismounted.")], ["HealingSpot", MapCoordsProperty, _INTL("Map ID of this Pokémon Center's town, and X and Y coordinates of its entrance within that town.")], @@ -98,6 +101,7 @@ module GameData @real_name = hash[:real_name] @outdoor_map = hash[:outdoor_map] @announce_location = hash[:announce_location] + @location_sign = hash[:location_sign] @can_bicycle = hash[:can_bicycle] @always_bicycle = hash[:always_bicycle] @teleport_destination = hash[:teleport_destination] diff --git a/Data/Scripts/011_Battle/001_Battle/001_Battle.rb b/Data/Scripts/011_Battle/001_Battle/001_Battle.rb index 0be402f9b..53723a5b2 100644 --- a/Data/Scripts/011_Battle/001_Battle/001_Battle.rb +++ b/Data/Scripts/011_Battle/001_Battle/001_Battle.rb @@ -785,17 +785,17 @@ class Battle when :HarshSun if !pbCheckGlobalAbility(:DESOLATELAND) @field.weather = :None - pbDisplay("The harsh sunlight faded!") + pbDisplay(_INTL("The harsh sunlight faded!")) end when :HeavyRain if !pbCheckGlobalAbility(:PRIMORDIALSEA) @field.weather = :None - pbDisplay("The heavy rain has lifted!") + pbDisplay(_INTL("The heavy rain has lifted!")) end when :StrongWinds if !pbCheckGlobalAbility(:DELTASTREAM) @field.weather = :None - pbDisplay("The mysterious air current has dissipated!") + pbDisplay(_INTL("The mysterious air current has dissipated!")) end end if @field.weather != oldWeather diff --git a/Data/Scripts/011_Battle/003_Move/001_Battle_Move.rb b/Data/Scripts/011_Battle/003_Move/001_Battle_Move.rb index 094a190d7..8e3dac768 100644 --- a/Data/Scripts/011_Battle/003_Move/001_Battle_Move.rb +++ b/Data/Scripts/011_Battle/003_Move/001_Battle_Move.rb @@ -159,40 +159,38 @@ class Battle::Move if battler.isSpecies?(:MORPEKO) || battler.effects[PBEffects::TransformSpecies] == :MORPEKO return pbBaseType(battler) end -=begin when "TypeDependsOnUserPlate", "TypeDependsOnUserMemory", "TypeDependsOnUserDrive", "TypeAndPowerDependOnUserBerry", "TypeIsUserFirstType", "TypeAndPowerDependOnWeather", "TypeAndPowerDependOnTerrain" - return pbBaseType(battler) -=end + return pbBaseType(battler) if Settings::SHOW_MODIFIED_MOVE_PROPERTIES end return @realMove.display_type(battler.pokemon) end - def display_damage(battler) -=begin - case @function_code - when "TypeAndPowerDependOnUserBerry" - return pbNaturalGiftBaseDamage(battler.item_id) - when "TypeAndPowerDependOnWeather", "TypeAndPowerDependOnTerrain", - "PowerHigherWithUserHP", "PowerLowerWithUserHP", - "PowerHigherWithUserHappiness", "PowerLowerWithUserHappiness", - "PowerHigherWithUserPositiveStatStages", "PowerDependsOnUserStockpile" - return pbBaseType(@power, battler, nil) + def display_power(battler) + if Settings::SHOW_MODIFIED_MOVE_PROPERTIES + case @function_code + when "TypeAndPowerDependOnUserBerry" + return pbNaturalGiftBaseDamage(battler.item_id) + when "TypeAndPowerDependOnWeather", "TypeAndPowerDependOnTerrain", + "PowerHigherWithUserHP", "PowerLowerWithUserHP", + "PowerHigherWithUserHappiness", "PowerLowerWithUserHappiness", + "PowerHigherWithUserPositiveStatStages", "PowerDependsOnUserStockpile" + return pbBaseType(@power, battler, nil) + end end -=end - return @realMove.display_damage(battler.pokemon) + return @realMove.display_power(battler.pokemon) end def display_category(battler) -=begin - case @function_code - when "CategoryDependsOnHigherDamageIgnoreTargetAbility" - pbOnStartUse(user, nil) - return @calcCategory + if Settings::SHOW_MODIFIED_MOVE_PROPERTIES + case @function_code + when "CategoryDependsOnHigherDamageIgnoreTargetAbility" + pbOnStartUse(user, nil) + return @calcCategory + end end -=end return @realMove.display_category(battler.pokemon) end diff --git a/Data/Scripts/011_Battle/003_Move/002_Move_Usage.rb b/Data/Scripts/011_Battle/003_Move/002_Move_Usage.rb index d1bb0c1fe..6d0babe9c 100644 --- a/Data/Scripts/011_Battle/003_Move/002_Move_Usage.rb +++ b/Data/Scripts/011_Battle/003_Move/002_Move_Usage.rb @@ -209,23 +209,21 @@ class Battle::Move elsif target.effects[PBEffects::Endure] target.damageState.endured = true damage -= 1 - elsif damage == target.totalhp - if target.hasActiveAbility?(:STURDY) && !target.beingMoldBroken? - target.damageState.sturdy = true + elsif target.hasActiveAbility?(:STURDY) && !target.beingMoldBroken? && target.hp == target.totalhp + target.damageState.sturdy = true + damage -= 1 + elsif target.hasActiveItem?(:FOCUSSASH) && target.hp == target.totalhp + target.damageState.focusSash = true + damage -= 1 + elsif target.hasActiveItem?(:FOCUSBAND) && @battle.pbRandom(100) < 10 + target.damageState.focusBand = true + damage -= 1 + elsif Settings::AFFECTION_EFFECTS && @battle.internalBattle && + target.pbOwnedByPlayer? && !target.mega? + chance = [0, 0, 0, 10, 15, 25][target.affection_level] + if chance > 0 && @battle.pbRandom(100) < chance + target.damageState.affection_endured = true damage -= 1 - elsif target.hasActiveItem?(:FOCUSSASH) && target.hp == target.totalhp - target.damageState.focusSash = true - damage -= 1 - elsif target.hasActiveItem?(:FOCUSBAND) && @battle.pbRandom(100) < 10 - target.damageState.focusBand = true - damage -= 1 - elsif Settings::AFFECTION_EFFECTS && @battle.internalBattle && - target.pbOwnedByPlayer? && !target.mega? - chance = [0, 0, 0, 10, 15, 25][target.affection_level] - if chance > 0 && @battle.pbRandom(100) < chance - target.damageState.affection_endured = true - damage -= 1 - end end end end diff --git a/Data/Scripts/011_Battle/004_Scene/003_Scene_ChooseCommands.rb b/Data/Scripts/011_Battle/004_Scene/003_Scene_ChooseCommands.rb index 952ad7f93..5097e8d70 100644 --- a/Data/Scripts/011_Battle/004_Scene/003_Scene_ChooseCommands.rb +++ b/Data/Scripts/011_Battle/004_Scene/003_Scene_ChooseCommands.rb @@ -152,46 +152,33 @@ class Battle::Scene partyStart, _partyEnd = @battle.pbTeamIndexRangeFromBattlerIndex(idxBattler) modParty = @battle.pbPlayerDisplayParty(idxBattler) # Start party screen - scene = PokemonParty_Scene.new - switchScreen = PokemonPartyScreen.new(scene, modParty) - msg = _INTL("Choose a Pokémon.") - msg = _INTL("Send which Pokémon to Boxes?") if mode == 1 - switchScreen.pbStartScene(msg, @battle.pbNumPositions(0, 0)) - # Loop while in party screen - loop do - # Select a Pokémon - scene.pbSetHelpText(msg) - idxParty = switchScreen.pbChoosePokemon - if idxParty < 0 - next if !canCancel - break - end + party_mode = (mode == 1) ? :battle_choose_to_box : :battle_choose_pokemon + screen = UI::Party.new(modParty, mode: party_mode) + screen.choose_pokemon do |pkmn, party_index| + next canCancel if party_index < 0 # Choose a command for the selected Pokémon - cmdSwitch = -1 - cmdBoxes = -1 - cmdSummary = -1 - commands = [] - commands[cmdSwitch = commands.length] = _INTL("Switch In") if mode == 0 && modParty[idxParty].able? && - (@battle.canSwitch || !canCancel) - commands[cmdBoxes = commands.length] = _INTL("Send to Boxes") if mode == 1 - commands[cmdSummary = commands.length] = _INTL("Summary") - commands[commands.length] = _INTL("Cancel") - command = scene.pbShowCommands(_INTL("Do what with {1}?", modParty[idxParty].name), commands) - if (cmdSwitch >= 0 && command == cmdSwitch) || # Switch In - (cmdBoxes >= 0 && command == cmdBoxes) # Send to Boxes - idxPartyRet = -1 + commands = {} + commands[:switch_in] = _INTL("Switch In") if mode == 0 && pkmn.able? && + (@battle.canSwitch || !canCancel) + commands[:send_to_boxes] = _INTL("Send to Boxes") if mode == 1 + commands[:summary] = _INTL("Summary") + commands[:cancel] = _INTL("Cancel") + choice = screen.show_menu(_INTL("Do what with {1}?", pkmn.name), commands) + next canCancel if choice.nil? + case choice + when :switch_in, :send_to_boxes + real_party_index = -1 partyPos.each_with_index do |pos, i| - next if pos != idxParty + partyStart - idxPartyRet = i + next if pos != party_index + partyStart + real_party_index = i break end - break if yield idxPartyRet, switchScreen - elsif cmdSummary >= 0 && command == cmdSummary # Summary - scene.pbSummary(idxParty, true) + next true if yield real_party_index, screen + when :summary + screen.perform_action(:summary) end + next false end - # Close party screen - switchScreen.pbEndScene # Fade back into battle screen pbFadeInAndShow(@sprites, visibleSprites) end @@ -212,128 +199,127 @@ class Battle::Scene else $bag.reset_last_selections end - # Start Bag screen - itemScene = PokemonBag_Scene.new - itemScene.pbStartScene($bag, true, - proc { |item| - useType = GameData::Item.get(item).battle_use - next useType && useType > 0 - }, false) - # Loop while in Bag screen wasTargeting = false - loop do - # Select an item - item = itemScene.pbChooseItem - break if !item - # Choose a command for the selected item - item = GameData::Item.get(item) - itemName = item.name - useType = item.battle_use - cmdUse = -1 - commands = [] - commands[cmdUse = commands.length] = _INTL("Use") if useType && useType != 0 - commands[commands.length] = _INTL("Cancel") - command = itemScene.pbShowCommands(_INTL("{1} is selected.", itemName), commands) - next unless cmdUse >= 0 && command == cmdUse # Use - # Use types: - # 0 = not usable in battle - # 1 = use on Pokémon (lots of items, Blue Flute) - # 2 = use on Pokémon's move (Ethers) - # 3 = use on battler (X items, Persim Berry, Red/Yellow Flutes) - # 4 = use on opposing battler (Poké Balls) - # 5 = use no target (Poké Doll, Guard Spec., Poké Flute, Launcher items) - case useType - when 1, 2, 3 # Use on Pokémon/Pokémon's move/battler - # Auto-choose the Pokémon/battler whose action is being decided if they - # are the only available Pokémon/battler to use the item on + # Start Bag screen + bag_screen = UI::Bag.new($bag, mode: :choose_item_in_battle) + bag_screen.set_filter_proc(proc { |itm| + use_type = GameData::Item.get(itm).battle_use + next use_type && use_type > 0 + }) + bag_screen.show_and_hide do + # Loop while in Bag screen + loop do + # Select an item + item = bag_screen.choose_item_core + break if !item + # Choose a command for the selected item + item = GameData::Item.get(item) + itemName = item.name + useType = item.battle_use + cmdUse = -1 + commands = [] + commands[cmdUse = commands.length] = _INTL("Use") if useType && useType != 0 + commands[commands.length] = _INTL("Cancel") + command = bag_screen.show_menu(_INTL("{1} is selected.", itemName), commands) + next unless cmdUse >= 0 && command == cmdUse # Use + # Use types: + # 0 = not usable in battle + # 1 = use on Pokémon (lots of items, Blue Flute) + # 2 = use on Pokémon's move (Ethers) + # 3 = use on battler (X items, Persim Berry, Red/Yellow Flutes) + # 4 = use on opposing battler (Poké Balls) + # 5 = use no target (Poké Doll, Guard Spec., Poké Flute, Launcher items) case useType - when 1 # Use on Pokémon - if @battle.pbTeamLengthFromBattlerIndex(idxBattler) == 1 - if yield item.id, useType, @battle.battlers[idxBattler].pokemonIndex, -1, itemScene - break - else - next + when 1, 2, 3 # Use on Pokémon/Pokémon's move/battler + # Auto-choose the Pokémon/battler whose action is being decided if they + # are the only available Pokémon/battler to use the item on + case useType + when 1 # Use on Pokémon + if @battle.pbTeamLengthFromBattlerIndex(idxBattler) == 1 + if yield item.id, useType, @battle.battlers[idxBattler].pokemonIndex, -1, bag_screen + break + else + next + end + end + when 3 # Use on battler + if @battle.pbPlayerBattlerCount == 1 + if yield item.id, useType, @battle.battlers[idxBattler].pokemonIndex, -1, bag_screen + break + else + next + end end end - when 3 # Use on battler - if @battle.pbPlayerBattlerCount == 1 - if yield item.id, useType, @battle.battlers[idxBattler].pokemonIndex, -1, itemScene - break - else - next - end - end - end - # Fade out and hide Bag screen - itemScene.pbFadeOutScene - # Get player's party - party = @battle.pbParty(idxBattler) - partyPos = @battle.pbPartyOrder(idxBattler) - partyStart, _partyEnd = @battle.pbTeamIndexRangeFromBattlerIndex(idxBattler) - modParty = @battle.pbPlayerDisplayParty(idxBattler) - # Start party screen - pkmnScene = PokemonParty_Scene.new - pkmnScreen = PokemonPartyScreen.new(pkmnScene, modParty) - pkmnScreen.pbStartScene(_INTL("Use on which Pokémon?"), @battle.pbNumPositions(0, 0)) - idxParty = -1 - # Loop while in party screen - loop do - # Select a Pokémon - pkmnScene.pbSetHelpText(_INTL("Use on which Pokémon?")) - idxParty = pkmnScreen.pbChoosePokemon - break if idxParty < 0 - idxPartyRet = -1 - partyPos.each_with_index do |pos, i| - next if pos != idxParty + partyStart - idxPartyRet = i - break - end - next if idxPartyRet < 0 - pkmn = party[idxPartyRet] - next if !pkmn || pkmn.egg? - idxMove = -1 - if useType == 2 # Use on Pokémon's move - idxMove = pkmnScreen.pbChooseMove(pkmn, _INTL("Restore which move?")) - next if idxMove < 0 - end - break if yield item.id, useType, idxPartyRet, idxMove, pkmnScene - end - pkmnScene.pbEndScene - break if idxParty >= 0 - # Cancelled choosing a Pokémon; show the Bag screen again - itemScene.pbFadeInScene - when 4 # Use on opposing battler (Poké Balls) - idxTarget = -1 - if @battle.pbOpposingBattlerCount(idxBattler) == 1 - @battle.allOtherSideBattlers(idxBattler).each { |b| idxTarget = b.index } - break if yield item.id, useType, idxTarget, -1, itemScene - else - wasTargeting = true # Fade out and hide Bag screen - itemScene.pbFadeOutScene - # Fade in and show the battle screen, choosing a target - tempVisibleSprites = visibleSprites.clone - tempVisibleSprites["commandWindow"] = false - tempVisibleSprites["targetWindow"] = true - idxTarget = pbChooseTarget(idxBattler, GameData::Target.get(:Foe), tempVisibleSprites) - if idxTarget >= 0 - break if yield item.id, useType, idxTarget, -1, self + bag_sprites_status = pbFadeOutAndHide(bag_screen.sprites) + # Get player's party + party = @battle.pbParty(idxBattler) + partyPos = @battle.pbPartyOrder(idxBattler) + partyStart, _partyEnd = @battle.pbTeamIndexRangeFromBattlerIndex(idxBattler) + modParty = @battle.pbPlayerDisplayParty(idxBattler) + # Start party screen + party_idx = -1 + party_screen = UI::Party.new(modParty, mode: :battle_use_item) + party_screen.choose_pokemon do |pkmn, party_index| + party_idx = party_index + next true if party_index < 0 + # Use the item on the selected Pokémon + real_party_index = -1 + partyPos.each_with_index do |pos, i| + next if pos != party_index + partyStart + real_party_index = i + break + end + next false if real_party_index < 0 + next false if !pkmn || pkmn.egg? + move_index = -1 + if useType == 2 # Use on Pokémon's move + move_index = party_screen.choose_move(pkmn, _INTL("Restore which move?")) + next false if move_index < 0 + end + if yield item.id, useType, real_party_index, move_index, party_screen + bag_screen.silent_end_screen + next true + end + party_idx = -1 + next false end - # Target invalid/cancelled choosing a target; show the Bag screen again - wasTargeting = false - pbFadeOutAndHide(@sprites) - itemScene.pbFadeInScene + break if party_idx >= 0 # Item was used; close the Bag screen + # Cancelled choosing a Pokémon; show the Bag screen again + pbFadeInAndShow(bag_screen.sprites, bag_sprites_status) + when 4 # Use on opposing battler (Poké Balls) + idxTarget = -1 + if @battle.pbOpposingBattlerCount(idxBattler) == 1 + @battle.allOtherSideBattlers(idxBattler).each { |b| idxTarget = b.index } + break if yield item.id, useType, idxTarget, -1, bag_screen + else + wasTargeting = true + # Fade out and hide Bag screen + bag_sprites_status = pbFadeOutAndHide(bag_screen.sprites) + # Fade in and show the battle screen, choosing a target + tempVisibleSprites = visibleSprites.clone + tempVisibleSprites["commandWindow"] = false + tempVisibleSprites["targetWindow"] = true + idxTarget = pbChooseTarget(idxBattler, GameData::Target.get(:Foe), tempVisibleSprites) + if idxTarget >= 0 + break if yield item.id, useType, idxTarget, -1, self + end + # Target invalid/cancelled choosing a target; show the Bag screen again + wasTargeting = false + pbFadeOutAndHide(@sprites) + pbFadeInAndShow(bag_screen.sprites, bag_sprites_status) + end + when 5 # Use with no target + break if yield item.id, useType, idxBattler, -1, bag_screen end - when 5 # Use with no target - break if yield item.id, useType, idxBattler, -1, itemScene end + next true end @bagLastPocket = $bag.last_viewed_pocket @bagChoices = $bag.last_pocket_selections.clone $bag.last_viewed_pocket = oldLastPocket $bag.last_pocket_selections = oldChoices - # Close Bag screen - itemScene.pbEndScene # Fade back into battle screen (if not already showing it) pbFadeInAndShow(@sprites, visibleSprites) if !wasTargeting end @@ -465,9 +451,8 @@ class Battle::Scene def pbForgetMove(pkmn, moveToLearn) ret = -1 pbFadeOutIn do - scene = PokemonSummary_Scene.new - screen = PokemonSummaryScreen.new(scene) - ret = screen.pbStartForgetScreen([pkmn], 0, moveToLearn) + screen = UI::PokemonSummary.new([pkmn], 0, mode: :choose_move, new_move: moveToLearn) + ret = screen.choose_move end return ret end diff --git a/Data/Scripts/011_Battle/004_Scene/005_Battle_Scene_Menus.rb b/Data/Scripts/011_Battle/004_Scene/005_Battle_Scene_Menus.rb index 3c5965de6..eee21b5a4 100644 --- a/Data/Scripts/011_Battle/004_Scene/005_Battle_Scene_Menus.rb +++ b/Data/Scripts/011_Battle/004_Scene/005_Battle_Scene_Menus.rb @@ -199,8 +199,6 @@ class Battle::Scene::FightMenu < Battle::Scene::MenuBase attr_reader :battler attr_reader :shiftMode - GET_MOVE_TEXT_COLOR_FROM_MOVE_BUTTON = true - # If true, displays graphics from Graphics/UI/Battle/overlay_fight.png # and Graphics/UI/Battle/cursor_fight.png. # If false, just displays text and the command window over the graphic @@ -350,7 +348,7 @@ class Battle::Scene::FightMenu < Battle::Scene::MenuBase x = button.x - self.x + (button.src_rect.width / 2) y = button.y - self.y + 14 moveNameBase = TEXT_BASE_COLOR - if GET_MOVE_TEXT_COLOR_FROM_MOVE_BUTTON && moves[i].display_type(@battler) + if Settings::BATTLE_MOVE_NAME_COLOR_FROM_GRAPHIC && moves[i].display_type(@battler) # NOTE: This takes a color from a particular pixel in the button # graphic and makes the move name's base color that same color. # The pixel is at coordinates 10,34 in the button box. If you diff --git a/Data/Scripts/011_Battle/007_Other battle code/004_Battle_Peers.rb b/Data/Scripts/011_Battle/007_Other battle code/004_Battle_Peers.rb index 785d364a1..0c0f0e4da 100644 --- a/Data/Scripts/011_Battle/007_Other battle code/004_Battle_Peers.rb +++ b/Data/Scripts/011_Battle/007_Other battle code/004_Battle_Peers.rb @@ -24,7 +24,7 @@ class Battle::Peer end def pbGetStorageCreatorName - return pbGetStorageCreator if $player.seen_storage_creator + return UI::PC.pbGetStorageCreator if $player.seen_storage_creator return nil end diff --git a/Data/Scripts/011_Battle/007_Other battle code/005_Battle_CatchAndStoreMixin.rb b/Data/Scripts/011_Battle/007_Other battle code/005_Battle_CatchAndStoreMixin.rb index 717b0ac29..32c6fd20d 100644 --- a/Data/Scripts/011_Battle/007_Other battle code/005_Battle_CatchAndStoreMixin.rb +++ b/Data/Scripts/011_Battle/007_Other battle code/005_Battle_CatchAndStoreMixin.rb @@ -63,9 +63,7 @@ module Battle::CatchAndStoreMixin break when 2 # See X's summary pbFadeOutIn do - summary_scene = PokemonSummary_Scene.new - summary_screen = PokemonSummaryScreen.new(summary_scene, true) - summary_screen.pbStartScreen([pkmn], 0) + UI::PokemonSummary.new(pkmn, mode: :in_battle).main end when 3 # Check party @scene.pbPartyScreen(0, true, 2) diff --git a/Data/Scripts/012_Overworld/001_Overworld visuals/002_Overworld_Overlays.rb b/Data/Scripts/012_Overworld/001_Overworld visuals/002_Overworld_Overlays.rb index 6d93c37eb..b0cc0f449 100644 --- a/Data/Scripts/012_Overworld/001_Overworld visuals/002_Overworld_Overlays.rb +++ b/Data/Scripts/012_Overworld/001_Overworld visuals/002_Overworld_Overlays.rb @@ -1,20 +1,98 @@ #=============================================================================== -# Location signpost +# Location sign. #=============================================================================== class LocationWindow APPEAR_TIME = 0.4 # In seconds; is also the disappear time LINGER_TIME = 1.6 # In seconds; time during which self is fully visible - def initialize(name) + def initialize(name, graphic_name = nil) + initialize_viewport + initialize_graphic(graphic_name) + initialize_text_window(name) + apply_style(graphic_name) + @current_map = $game_map.map_id + @timer_start = System.uptime + @delayed = !$game_temp.fly_destination.nil? + end + + def initialize_viewport + @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) + @viewport.z = 99999 + end + + def initialize_graphic(graphic_name) + return if graphic_name.nil? || !pbResolveBitmap("Graphics/UI/Location/#{graphic_name}") + @graphic = Sprite.new(@viewport) + @graphic.bitmap = RPG::Cache.ui("Location/#{graphic_name}") + @graphic.x = 0 + @graphic.y = -@graphic.height + end + + def initialize_text_window(name) @window = Window_AdvancedTextPokemon.new(name) @window.resizeToFit(name, Graphics.width) @window.x = 0 @window.y = -@window.height - @window.viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) - @window.viewport.z = 99999 - @currentmap = $game_map.map_id - @timer_start = System.uptime - @delayed = !$game_temp.fly_destination.nil? + @window.z = 1 + @window.viewport = @viewport + end + + def apply_style(graphic_name) + # Set up values to be used elsewhere + @graphic_offset = [0, 0] + @window_offset = [0, 0] + @y_distance = @window.height + return if graphic_name.nil? + # Determine the style and base/shadow colors + style = :none + base_color = nil + shadow_color = nil + Settings::LOCATION_SIGN_GRAPHIC_STYLES.each_pair do |val, filenames| + filenames.each do |filename| + if filename.is_a?(Array) + next if filename[0] != graphic_name + base_color = filename[1] + shadow_color = filename[2] + else + next if filename != graphic_name + end + style = val + break + end + break if style != :none + end + return if style == :none + # Apply the style + @y_distance = @graphic&.height || @window.height + @window.back_opacity = 0 + case style + when :dp + @window.baseColor = base_color if base_color + @window.shadowColor = shadow_color if shadow_color + @window.text = @window.text # Because the text colors were changed + @window_offset = [8, -10] + @graphic&.dispose + @graphic = Window_AdvancedTextPokemon.new("") + @graphic.setSkin("Graphics/UI/Location/#{graphic_name}") + @graphic.width = @window.width + (@window_offset[0] * 2) - 4 + @graphic.height = 48 + @graphic.x = 0 + @graphic.y = -@graphic.height + @graphic.z = 0 + @graphic.viewport = @viewport + @y_distance = @graphic.height + when :hgss + @window.baseColor = base_color if base_color + @window.shadowColor = shadow_color if shadow_color + @window.width = @graphic.width + @window.text = "" + @window.text + when :platinum + @window.baseColor = base_color || Color.black + @window.shadowColor = shadow_color || Color.new(144, 144, 160) + @window.text = @window.text # Because the text colors were changed + @window_offset = [10, 16] + end + @window.x = @window_offset[0] end def disposed? @@ -22,25 +100,32 @@ class LocationWindow end def dispose + @graphic&.dispose @window.dispose + @viewport.dispose end def update - return if @window.disposed? || $game_temp.fly_destination + return if disposed? || $game_temp.fly_destination if @delayed @timer_start = System.uptime @delayed = false end + @graphic&.update @window.update - if $game_temp.message_window_showing || @currentmap != $game_map.map_id - @window.dispose + if $game_temp.message_window_showing || @current_map != $game_map.map_id + dispose return end if System.uptime - @timer_start >= APPEAR_TIME + LINGER_TIME - @window.y = lerp(0, -@window.height, APPEAR_TIME, @timer_start + APPEAR_TIME + LINGER_TIME, System.uptime) - @window.dispose if @window.y + @window.height <= 0 + y_pos = lerp(0, -@y_distance, APPEAR_TIME, @timer_start + APPEAR_TIME + LINGER_TIME, System.uptime) + @window.y = y_pos + @window_offset[1] + @graphic&.y = y_pos + @graphic_offset[1] + dispose if y_pos <= -@y_distance else - @window.y = lerp(-@window.height, 0, APPEAR_TIME, @timer_start, System.uptime) + y_pos = lerp(-@y_distance, 0, APPEAR_TIME, @timer_start, System.uptime) + @window.y = y_pos + @window_offset[1] + @graphic&.y = y_pos + @graphic_offset[1] end end end diff --git a/Data/Scripts/012_Overworld/001_Overworld.rb b/Data/Scripts/012_Overworld/001_Overworld.rb index ae386b9c3..40d9a70ad 100644 --- a/Data/Scripts/012_Overworld/001_Overworld.rb +++ b/Data/Scripts/012_Overworld/001_Overworld.rb @@ -319,23 +319,27 @@ EventHandlers.add(:on_map_or_spriteset_change, :show_darkness, } ) -# Show location signpost. -EventHandlers.add(:on_map_or_spriteset_change, :show_location_window, +# Show location sign. +EventHandlers.add(:on_map_or_spriteset_change, :show_location_sign, proc { |scene, map_changed| next if !scene || !scene.spriteset next if !map_changed || !$game_map.metadata&.announce_location - nosignpost = false + no_sign = false if $PokemonGlobal.mapTrail[1] - (Settings::NO_SIGNPOSTS.length / 2).times do |i| - nosignpost = true if Settings::NO_SIGNPOSTS[2 * i] == $PokemonGlobal.mapTrail[1] && - Settings::NO_SIGNPOSTS[(2 * i) + 1] == $game_map.map_id - nosignpost = true if Settings::NO_SIGNPOSTS[(2 * i) + 1] == $PokemonGlobal.mapTrail[1] && - Settings::NO_SIGNPOSTS[2 * i] == $game_map.map_id - break if nosignpost + (Settings::NO_LOCATION_SIGNS.length / 2).times do |i| + no_sign = true if Settings::NO_LOCATION_SIGNS[2 * i] == $PokemonGlobal.mapTrail[1] && + Settings::NO_LOCATION_SIGNS[(2 * i) + 1] == $game_map.map_id + no_sign = true if Settings::NO_LOCATION_SIGNS[(2 * i) + 1] == $PokemonGlobal.mapTrail[1] && + Settings::NO_LOCATION_SIGNS[2 * i] == $game_map.map_id + break if no_sign end - nosignpost = true if $game_map.name == pbGetMapNameFromId($PokemonGlobal.mapTrail[1]) + no_sign = true if $game_map.name == pbGetMapNameFromId($PokemonGlobal.mapTrail[1]) end - scene.spriteset.addUserSprite(LocationWindow.new($game_map.name)) if !nosignpost + next if no_sign + map_name = $game_map.name + location_sign_graphic = $game_map.metadata&.location_sign || Settings::DEFAULT_LOCATION_SIGN_GRAPHIC + location_sign_graphic = Settings::DEFAULT_LOCATION_SIGN_GRAPHIC + scene.spriteset.addUserSprite(LocationWindow.new(map_name, location_sign_graphic)) } ) @@ -684,7 +688,7 @@ def pbItemBall(item, quantity = 1) item = GameData::Item.get(item) return false if !item || quantity < 1 itemname = (quantity > 1) ? item.portion_name_plural : item.portion_name - pocket = item.pocket + pocket = item.bag_pocket move = item.move if $bag.add(item, quantity) # If item can be picked up meName = (item.is_key_item?) ? "Key item get" : "Item get" @@ -706,7 +710,7 @@ def pbItemBall(item, quantity = 1) pbMessage("\\me[#{meName}]" + _INTL("You found a \\c[1]{1}\\c[0]!", itemname) + "\\wtnp[40]") end pbMessage(_INTL("You put the {1} in\nyour Bag's \\c[1]{3}\\c[0] pocket.", - itemname, pocket, PokemonBag.pocket_names[pocket - 1])) + itemname, pocket, GameData::BagPocket.get(pocket).name)) return true end # Can't add the item @@ -734,7 +738,7 @@ def pbReceiveItem(item, quantity = 1) item = GameData::Item.get(item) return false if !item || quantity < 1 itemname = (quantity > 1) ? item.portion_name_plural : item.portion_name - pocket = item.pocket + pocket = item.bag_pocket move = item.move meName = (item.is_key_item?) ? "Key item get" : "Item get" if item == :DNASPLICERS @@ -756,7 +760,7 @@ def pbReceiveItem(item, quantity = 1) end if $bag.add(item, quantity) # If item can be added pbMessage(_INTL("You put the {1} in\nyour Bag's \\c[1]{3}\\c[0] pocket.", - itemname, pocket, PokemonBag.pocket_names[pocket - 1])) + itemname, pocket, GameData::BagPocket.get(pocket).name)) return true end return false # Can't add the item @@ -769,9 +773,9 @@ def pbBuyPrize(item, quantity = 1) item = GameData::Item.get(item) return false if !item || quantity < 1 item_name = (quantity > 1) ? item.portion_name_plural : item.portion_name - pocket = item.pocket + pocket = item.bag_pocket return false if !$bag.add(item, quantity) pbMessage("\\CN" + _INTL("You put the {1} in\nyour Bag's \\c[1]{3}\\c[0] pocket.", - item_name, pocket, PokemonBag.pocket_names[pocket - 1])) + item_name, pocket, GameData::BagPocket.get(pocket).name)) return true end diff --git a/Data/Scripts/012_Overworld/002_Battle triggering/005_Overworld_RoamingPokemon.rb b/Data/Scripts/012_Overworld/002_Battle triggering/005_Overworld_RoamingPokemon.rb index f7738fc5f..5ef6c81a3 100644 --- a/Data/Scripts/012_Overworld/002_Battle triggering/005_Overworld_RoamingPokemon.rb +++ b/Data/Scripts/012_Overworld/002_Battle triggering/005_Overworld_RoamingPokemon.rb @@ -17,6 +17,15 @@ end #=============================================================================== # Making roaming Pokémon roam around. #=============================================================================== +def each_active_roamer(ignore_caught = true) + Settings::ROAMING_SPECIES.each_with_index do |roamer, i| + next if !GameData::Species.exists?(roamer[:species]) + next if roamer[:game_switch] && roamer[:game_switch] > 0 && !$game_switches[roamer[:game_switch]] + next if ignore_caught && $PokemonGlobal.roamPokemon[i] == true # Has been caught + yield roamer, i + end +end + # Resets all roaming Pokemon that were defeated without having been caught. def pbResetAllRoamers return if !$PokemonGlobal.roamPokemon @@ -30,7 +39,7 @@ end def pbRoamingAreas(idxRoamer) # [species ID, level, Game Switch, encounter type, battle BGM, area maps hash] roamData = Settings::ROAMING_SPECIES[idxRoamer] - return roamData[5] if roamData && roamData[5] + return roamData[:areas] if roamData && roamData[:areas] return Settings::ROAMING_AREAS end @@ -47,8 +56,8 @@ def pbRoamPokemon # Start all roamers off in random maps if !$PokemonGlobal.roamPosition $PokemonGlobal.roamPosition = {} - Settings::ROAMING_SPECIES.length.times do |i| - next if !GameData::Species.exists?(Settings::ROAMING_SPECIES[i][0]) + Settings::ROAMING_SPECIES.each_with_index do |roamer, i| + next if !GameData::Species.exists?(roamer[:species]) keys = pbRoamingAreas(i).keys $PokemonGlobal.roamPosition[i] = keys[rand(keys.length)] end @@ -62,10 +71,9 @@ end # Makes a single roaming Pokémon roam to another map. Doesn't roam if it isn't # currently possible to encounter it (i.e. its Game Switch is off). def pbRoamPokemonOne(idxRoamer) - # [species ID, level, Game Switch, encounter type, battle BGM, area maps hash] - roamData = Settings::ROAMING_SPECIES[idxRoamer] - return if roamData[2] > 0 && !$game_switches[roamData[2]] # Game Switch is off - return if !GameData::Species.exists?(roamData[0]) + roamer = Settings::ROAMING_SPECIES[idxRoamer] + return if !GameData::Species.exists?(roamer[:species]) + return if roamer[:game_switch] && roamer[:game_switch] > 0 && !$game_switches[roamer[:game_switch]] # Get hash of area patrolled by the roaming Pokémon mapIDs = pbRoamingAreas(idxRoamer).keys return if !mapIDs || mapIDs.length == 0 # No roaming area defined somehow @@ -81,10 +89,10 @@ def pbRoamPokemonOne(idxRoamer) return if !nextMaps nextMaps.each { |map| newMapChoices.push(map) } # Rarely, add a random possible map into the mix - newMapChoices.push(mapIDs[rand(mapIDs.length)]) if rand(32) == 0 + newMapChoices.push(mapIDs.sample) if rand(32) == 0 # Choose a random new map to roam to if newMapChoices.length > 0 - $PokemonGlobal.roamPosition[idxRoamer] = newMapChoices[rand(newMapChoices.length)] + $PokemonGlobal.roamPosition[idxRoamer] = newMapChoices.sample end end @@ -118,16 +126,16 @@ def pbRoamingMethodAllowed(roamer_method) enc_type = $PokemonEncounters.encounter_type type = GameData::EncounterType.get(enc_type).type case roamer_method - when 0 # Any step-triggered method (except Bug Contest) + when :all # Any step-triggered method (except Bug Contest) return [:land, :cave, :water].include?(type) - when 1 # Walking (except Bug Contest) + when :land # Walking (except Bug Contest) return [:land, :cave].include?(type) - when 2 # Surfing - return type == :water - when 3 # Fishing - return type == :fishing - when 4 # Water-based + when :water # Surfing or rishing return [:water, :fishing].include?(type) + when :surfing # Surfing + return type == :water + when :fishing # Fishing + return type == :fishing end return false end @@ -146,11 +154,7 @@ EventHandlers.add(:on_wild_species_chosen, :roaming_pokemon, currentRegion = pbGetCurrentRegion currentMapName = $game_map.name possible_roamers = [] - Settings::ROAMING_SPECIES.each_with_index do |data, i| - # data = [species, level, Game Switch, roamer method, battle BGM, area maps hash] - next if !GameData::Species.exists?(data[0]) - next if data[2] > 0 && !$game_switches[data[2]] # Isn't roaming - next if $PokemonGlobal.roamPokemon[i] == true # Roaming Pokémon has been caught + each_active_roamer do |roamer, i| # Get the roamer's current map roamerMap = $PokemonGlobal.roamPosition[i] if !roamerMap @@ -168,9 +172,9 @@ EventHandlers.add(:on_wild_species_chosen, :roaming_pokemon, next if pbGetMapNameFromId(roamerMap) != currentMapName end # Check whether the roamer's roamer method is currently possible - next if !pbRoamingMethodAllowed(data[3]) + next if !pbRoamingMethodAllowed(roamer[:encounter_type]) # Add this roaming Pokémon to the list of possible roaming Pokémon to encounter - possible_roamers.push([i, data[0], data[1], data[4]]) # [i, species, level, BGM] + possible_roamers.push([i, roamer[:species], roamer[:level], roamer[:bgm]]) end # No encounterable roaming Pokémon were found, just have the regular encounter next if possible_roamers.length == 0 diff --git a/Data/Scripts/012_Overworld/002_Overworld_Metadata.rb b/Data/Scripts/012_Overworld/002_Overworld_Metadata.rb index 7cf9401f7..db8edf6da 100644 --- a/Data/Scripts/012_Overworld/002_Overworld_Metadata.rb +++ b/Data/Scripts/012_Overworld/002_Overworld_Metadata.rb @@ -23,6 +23,8 @@ class PokemonGlobalMetadata attr_accessor :pokedexDex # Dex currently looking at (-1 is National Dex) attr_accessor :pokedexIndex # Last species viewed per Dex attr_accessor :pokedexMode # Search mode + # Town Map + attr_accessor :townMapMarkings # Day Care attr_accessor :day_care # Special battle modes @@ -78,6 +80,8 @@ class PokemonGlobalMetadata (numRegions + 1).times do |i| # National Dex isn't a region, but is included @pokedexIndex[i] = 0 end + # Town Map + @townMapMarkings = [] # Day Care @day_care = DayCare.new # Special battle modes diff --git a/Data/Scripts/012_Overworld/004_Overworld_FieldMoves.rb b/Data/Scripts/012_Overworld/004_Overworld_FieldMoves.rb index 3b07ef7dd..088792402 100644 --- a/Data/Scripts/012_Overworld/004_Overworld_FieldMoves.rb +++ b/Data/Scripts/012_Overworld/004_Overworld_FieldMoves.rb @@ -14,6 +14,11 @@ module HiddenMoveHandlers return !CanUseMove[item].nil? && !UseMove[item].nil? end + def self.eachHandler + ret = CanUseMove.keys & UseMove.keys + ret.each { |key| yield key } + end + # Returns whether move can be used def self.triggerCanUseMove(item, pokemon, showmsg) return false if !CanUseMove[item] diff --git a/Data/Scripts/012_Overworld/006_Overworld_BerryPlants.rb b/Data/Scripts/012_Overworld/006_Overworld_BerryPlants.rb index 21bb0fad3..a69e6c440 100644 --- a/Data/Scripts/012_Overworld/006_Overworld_BerryPlants.rb +++ b/Data/Scripts/012_Overworld/006_Overworld_BerryPlants.rb @@ -382,9 +382,9 @@ def pbBerryPlant when 0 # Fertilize mulch = nil pbFadeOutIn do - scene = PokemonBag_Scene.new - screen = PokemonBagScreen.new(scene, $bag) - mulch = screen.pbChooseItemScreen(proc { |item| GameData::Item.get(item).is_mulch? }) + bag_screen = UI::Bag.new($bag, mode: :choose_item) + bag_screen.set_filter_proc(proc { |item| GameData::Item.get(item).is_mulch? }) + mulch = bag_screen.choose_item end return if !mulch mulch_data = GameData::Item.get(mulch) @@ -409,9 +409,9 @@ def pbBerryPlant end if !ask_to_plant || pbConfirmMessage(_INTL("Want to plant a Berry?")) pbFadeOutIn do - scene = PokemonBag_Scene.new - screen = PokemonBagScreen.new(scene, $bag) - berry = screen.pbChooseItemScreen(proc { |item| GameData::Item.get(item).is_berry? }) + bag_screen = UI::Bag.new($bag, mode: :choose_item) + bag_screen.set_filter_proc(proc { |item| GameData::Item.get(item).is_berry? }) + berry = bag_screen.choose_item end if berry $stats.berries_planted += 1 @@ -457,9 +457,9 @@ def pbPickBerry(berry, qty = 1) else pbMessage("\\me[Berry get]" + _INTL("You picked the \\c[1]{1}\\c[0].", berry_name) + "\\wtnp[30]") end - pocket = berry.pocket + pocket = berry.bag_pocket pbMessage(_INTL("You put the {1} in\nyour Bag's \\c[1]{3}\\c[0] pocket.", - berry_name, pocket, PokemonBag.pocket_names[pocket - 1]) + "\1") + berry_name, pocket, GameData::BagPocket.get(pocket).name) + "\1") if Settings::NEW_BERRY_PLANTS pbMessage(_INTL("The soil returned to its soft and earthy state.")) else diff --git a/Data/Scripts/013_Items/001_Item_Utilities.rb b/Data/Scripts/013_Items/001_Item_Utilities.rb index ad3a40d45..c89cb4d95 100644 --- a/Data/Scripts/013_Items/001_Item_Utilities.rb +++ b/Data/Scripts/013_Items/001_Item_Utilities.rb @@ -6,6 +6,7 @@ module ItemHandlers UseFromBag = ItemHandlerHash.new ConfirmUseInField = ItemHandlerHash.new UseInField = ItemHandlerHash.new + UsableOnPokemon = ItemHandlerHash.new UseOnPokemon = ItemHandlerHash.new UseOnPokemonMaximum = ItemHandlerHash.new CanUseInBattle = ItemHandlerHash.new @@ -29,6 +30,10 @@ module ItemHandlers return !UseInField[item].nil? end + def hasUsableOnPokemon(item) + return !UsableOnPokemon[item].nil? + end + def hasUseOnPokemon(item) return !UseOnPokemon[item].nil? end @@ -58,8 +63,8 @@ module ItemHandlers # 0 - Item not used # 1 - Item used, don't end screen # 2 - Item used, end screen - def triggerUseFromBag(item) - return UseFromBag.trigger(item) if UseFromBag[item] + def triggerUseFromBag(item, bag_screen = nil) + return UseFromBag.trigger(item, bag_screen) if UseFromBag[item] # No UseFromBag handler exists; check the UseInField handler if present if UseInField[item] return (UseInField.trigger(item)) ? 1 : 0 @@ -82,6 +87,12 @@ module ItemHandlers return (UseInField.trigger(item)) ? 1 : 0 end + # Returns whether item will have an effect if used on pkmn. + def triggerUsableOnPokemon(item, pkmn) + return false if !UsableOnPokemon[item] + return UsableOnPokemon.trigger(item, pkmn) + end + # Returns whether item was used. def triggerUseOnPokemon(item, qty, pkmn, scene) return false if !UseOnPokemon[item] @@ -120,91 +131,6 @@ end #=============================================================================== # #=============================================================================== -def pbCanRegisterItem?(item) - return ItemHandlers.hasUseInFieldHandler(item) -end - -def pbCanUseOnPokemon?(item) - return ItemHandlers.hasUseOnPokemon(item) || GameData::Item.get(item).is_machine? -end - -#=============================================================================== -# Change a Pokémon's level. -#=============================================================================== -def pbChangeLevel(pkmn, new_level, scene) - new_level = new_level.clamp(1, GameData::GrowthRate.max_level) - if pkmn.level == new_level - if scene.is_a?(PokemonPartyScreen) - scene.pbDisplay(_INTL("{1}'s level remained unchanged.", pkmn.name)) - else - pbMessage(_INTL("{1}'s level remained unchanged.", pkmn.name)) - end - return - end - old_level = pkmn.level - old_total_hp = pkmn.totalhp - old_attack = pkmn.attack - old_defense = pkmn.defense - old_special_attack = pkmn.spatk - old_special_defense = pkmn.spdef - old_speed = pkmn.speed - pkmn.level = new_level - pkmn.calc_stats - pkmn.hp = 1 if new_level > old_level && pkmn.species_data.base_stats[:HP] == 1 - scene.pbRefresh - if old_level > new_level - if scene.is_a?(PokemonPartyScreen) - scene.pbDisplay(_INTL("{1} dropped to Lv. {2}!", pkmn.name, pkmn.level)) - else - pbMessage(_INTL("{1} dropped to Lv. {2}!", pkmn.name, pkmn.level)) - end - total_hp_diff = pkmn.totalhp - old_total_hp - attack_diff = pkmn.attack - old_attack - defense_diff = pkmn.defense - old_defense - special_attack_diff = pkmn.spatk - old_special_attack - special_defense_diff = pkmn.spdef - old_special_defense - speed_diff = pkmn.speed - old_speed - pbTopRightWindow(_INTL("Max. HP{1}\nAttack{2}\nDefense{3}\nSp. Atk{4}\nSp. Def{5}\nSpeed{6}", - total_hp_diff, attack_diff, defense_diff, special_attack_diff, special_defense_diff, speed_diff), scene) - pbTopRightWindow(_INTL("Max. HP{1}\nAttack{2}\nDefense{3}\nSp. Atk{4}\nSp. Def{5}\nSpeed{6}", - pkmn.totalhp, pkmn.attack, pkmn.defense, pkmn.spatk, pkmn.spdef, pkmn.speed), scene) - else - pkmn.changeHappiness("vitamin") - if scene.is_a?(PokemonPartyScreen) - scene.pbDisplay(_INTL("{1} grew to Lv. {2}!", pkmn.name, pkmn.level)) - else - pbMessage(_INTL("{1} grew to Lv. {2}!", pkmn.name, pkmn.level)) - end - total_hp_diff = pkmn.totalhp - old_total_hp - attack_diff = pkmn.attack - old_attack - defense_diff = pkmn.defense - old_defense - special_attack_diff = pkmn.spatk - old_special_attack - special_defense_diff = pkmn.spdef - old_special_defense - speed_diff = pkmn.speed - old_speed - pbTopRightWindow(_INTL("Max. HP+{1}\nAttack+{2}\nDefense+{3}\nSp. Atk+{4}\nSp. Def+{5}\nSpeed+{6}", - total_hp_diff, attack_diff, defense_diff, special_attack_diff, special_defense_diff, speed_diff), scene) - pbTopRightWindow(_INTL("Max. HP{1}\nAttack{2}\nDefense{3}\nSp. Atk{4}\nSp. Def{5}\nSpeed{6}", - pkmn.totalhp, pkmn.attack, pkmn.defense, pkmn.spatk, pkmn.spdef, pkmn.speed), scene) - # Learn new moves upon level up - movelist = pkmn.getMoveList - movelist.each do |i| - next if i[0] <= old_level || i[0] > pkmn.level - pbLearnMove(pkmn, i[1], true) { scene.pbUpdate } - end - # Check for evolution - new_species = pkmn.check_evolution_on_level_up - if new_species - pbFadeOutInWithMusic do - evo = PokemonEvolutionScene.new - evo.pbStartScreen(pkmn, new_species) - evo.pbEvolution - evo.pbEndScreen - scene.pbRefresh if scene.is_a?(PokemonPartyScreen) - end - end - end -end - def pbTopRightWindow(text, scene = nil) window = Window_AdvancedTextPokemon.new(text) window.width = 198 @@ -222,13 +148,301 @@ def pbTopRightWindow(text, scene = nil) window.dispose end -def pbChangeExp(pkmn, new_exp, scene) - new_exp = new_exp.clamp(0, pkmn.growth_rate.maximum_exp) - if pkmn.exp == new_exp - if scene.is_a?(PokemonPartyScreen) - scene.pbDisplay(_INTL("{1}'s Exp. Points remained unchanged.", pkmn.name)) +#=============================================================================== +# +#=============================================================================== +def pbCanRegisterItem?(item) + return ItemHandlers.hasUseInFieldHandler(item) +end + +# Returns whether pkmn is able to have an item used on it. +def pbCanPokemonHaveItemUsedOnIt?(pkmn, item) + return pkmn && !pkmn.egg? && (!pkmn.hyper_mode || GameData::Item.get(item)&.is_scent?) +end + +# Used to filter the Bag when choosing an item to use on a party Pokémon. +# Also used in the Bag to indicate which party Pokémon the selected item is +# usable on. +def pbCanUseItemOnPokemon?(item) + return ItemHandlers.hasUseOnPokemon(item) || + ItemHandlers.hasUsableOnPokemon(item) || + GameData::Item.get(item).is_machine? +end + +# This method assumes the item is usable on a Pokémon. It returns whether the +# item will have an effect when used on pkmn, i.e. it won't have no effect. +# Used in the Bag to indicate which party Pokémon the selected item is usable +# on. +def pbItemHasEffectOnPokemon?(item, pkmn) + return false if !pbCanPokemonHaveItemUsedOnIt?(pkmn, item) + ret = ItemHandlers.triggerUsableOnPokemon(item, pkmn) + return ret +end + +#=============================================================================== +# Use an item from the Bag and/or on a Pokémon. +#=============================================================================== +# Called from the Bag screen and also when prompted to use a Repel when one runs +# out (bag_screen will be nil for the latter). +# @return [Integer] 0 = item wasn't used; 1 = item used; 2 = close Bag to use in field +def pbUseItem(bag, item, bag_screen = nil) + item_data = GameData::Item.get(item) + useType = item_data.field_use + if useType == 1 # Item is usable on a Pokémon + if $player.pokemon_count == 0 + pbMessage(_INTL("There is no Pokémon.")) + return 0 + end + ret = false + annot = nil + if item_data.is_evolution_stone? + annot = [] + $player.party.each do |pkmn| + elig = pkmn.check_evolution_on_use_item(item) + annot.push((elig) ? _INTL("ABLE") : _INTL("NOT ABLE")) + end + end + pbFadeOutIn do + screen = UI::Party.new($player.party, mode: :use_item) + if item_data.is_evolution_stone? + screen.set_able_annotation_proc(proc { |pkmn| next pkmn.check_evolution_on_use_item(item) }) + end + screen.choose_pokemon do |pkmn, party_index| + next true if party_index < 0 + next false if !pbCanPokemonHaveItemUsedOnIt?(pkmn, item) + qty = 1 + max_at_once = ItemHandlers.triggerUseOnPokemonMaximum(item, pkmn) + max_at_once = [max_at_once, bag.quantity(item)].min + if max_at_once > 1 + pbPlayDecisionSE + qty = screen.choose_number( + _INTL("How many {1} do you want to use?", GameData::Item.get(item).portion_name_plural), max_at_once + ) + screen.set_help_text("") + end + next false if qty <= 0 + ret = ItemHandlers.triggerUseOnPokemon(item, qty, pkmn, screen) + if ret && item_data.consumed_after_use? + bag.remove(item, qty) + if !bag.has?(item) + screen.show_message(_INTL("You used your last {1}.", item_data.portion_name)) + next true + end + end + next false + end + bag_screen&.pbRefresh + end + return (ret) ? 1 : 0 + elsif useType == 2 || item_data.is_machine? # Item is usable from Bag or teaches a move + intret = ItemHandlers.triggerUseFromBag(item, bag_screen) + if intret >= 0 + bag.remove(item) if intret == 1 && item_data.consumed_after_use? + return intret + end + pbMessage(_INTL("Can't use that here.")) + return 0 + end + pbMessage(_INTL("Can't use that here.")) + return 0 +end + +# Only called when in the party screen and having chosen an item to be used on +# the selected Pokémon. screen is the party screen. +def pbUseItemOnPokemon(item, pkmn, screen) + item_data = GameData::Item.get(item) + # TM or HM + if item_data.is_machine? + move = item_data.move + return false if !move + move_name = GameData::Move.get(move).name + if pkmn.shadowPokemon? + screen.show_message(_INTL("Shadow Pokémon can't be taught any moves.")) + elsif !pkmn.compatible_with_move?(move) + screen.show_message(_INTL("{1} can't learn {2}.", pkmn.name, move_name)) else - pbMessage(_INTL("{1}'s Exp. Points remained unchanged.", pkmn.name)) + pbSEPlay("PC access") + screen.show_message(_INTL("You booted up the {1}.", item_data.portion_name) + "\1") + if screen.show_confirm_message(_INTL("Do you want to teach {1} to {2}?", move_name, pkmn.name)) + if pbLearnMove(pkmn, move, false, true) { screen.update } + $bag.remove(item) if item_data.consumed_after_use? + return true + end + end + end + return false + end + # Other item + qty = 1 + max_at_once = ItemHandlers.triggerUseOnPokemonMaximum(item, pkmn) + max_at_once = [max_at_once, $bag.quantity(item)].min + if max_at_once > 1 + qty = screen.choose_number( + _INTL("How many {1} do you want to use?", item_data.portion_name_plural), max_at_once + ) + screen.set_help_text("") + end + return false if qty <= 0 + ret = ItemHandlers.triggerUseOnPokemon(item, qty, pkmn, screen) + screen.clear_annotations + screen.refresh + if ret && item_data.consumed_after_use? + $bag.remove(item, qty) + if !$bag.has?(item) + screen.show_message(_INTL("You used your last {1}.", item_data.portion_name)) + end + end + return ret +end + +def pbUseKeyItemInField(item) + ret = ItemHandlers.triggerUseInField(item) + if ret == -1 # Item effect not found + pbMessage(_INTL("Can't use that here.")) + elsif ret > 0 && GameData::Item.get(item).consumed_after_use? + $bag.remove(item) + end + return ret > 0 +end + +def pbUseItemMessage(item) + itemname = GameData::Item.get(item).portion_name + if itemname.starts_with_vowel? + pbMessage(_INTL("You used an {1}.", itemname)) + else + pbMessage(_INTL("You used a {1}.", itemname)) + end +end + +#=============================================================================== +# Give an item to a Pokémon to hold, and take a held item from a Pokémon. +#=============================================================================== +# screen is either the party screen or the summary screen. +def pbGiveItemToPokemon(item, pkmn, screen, pkmnid = 0) + return false if item.nil? + # Check if the Pokémon can hold the item, or have its item removed if it's + # already holding one + if pkmn.egg? + screen.show_message(_INTL("Eggs can't hold items.")) + return false + elsif pkmn.mail + screen.show_message(_INTL("{1}'s mail must be removed before giving it an item.", pkmn.name)) + return false if !pbTakeItemFromPokemon(pkmn, screen) + end + new_item_name = GameData::Item.get(item).portion_name + if pkmn.hasItem? + # Swap existing held item with the new item + old_item_name = pkmn.item.portion_name + if old_item_name.starts_with_vowel? + screen.show_message(_INTL("{1} is already holding an {2}.", pkmn.name, old_item_name) + "\1") + else + screen.show_message(_INTL("{1} is already holding a {2}.", pkmn.name, old_item_name) + "\1") + end + if screen.show_confirm_message(_INTL("Would you like to switch the two items?")) + $bag.remove(item) + if !$bag.add(pkmn.item) + raise _INTL("Couldn't re-store deleted item in Bag somehow") if !$bag.add(item) + screen.show_message(_INTL("The Bag is full. The Pokémon's item could not be removed.")) + elsif GameData::Item.get(item).is_mail? + if pbWriteMail(item, pkmn, pkmnid, screen) + pkmn.item = item + screen.show_message(_INTL("Took the {1} from {2} and gave it the {3}.", old_item_name, pkmn.name, new_item_name)) + return true + elsif !$bag.add(item) + raise _INTL("Couldn't re-store deleted item in Bag somehow") + end + else + pkmn.item = item + screen.show_message(_INTL("Took the {1} from {2} and gave it the {3}.", old_item_name, pkmn.name, new_item_name)) + return true + end + end + elsif !GameData::Item.get(item).is_mail? || pbWriteMail(item, pkmn, pkmnid, screen) + # Give the new item + $bag.remove(item) + pkmn.item = item + screen.show_message(_INTL("{1} is now holding the {2}.", pkmn.name, new_item_name)) + return true + end + return false +end + +# screen is either the party screen or the summary screen. +def pbTakeItemFromPokemon(pkmn, screen) + ret = false + # Check if the Pokémon has an item to remove, and whether the item can be put + # in the Bag + if !pkmn.hasItem? + screen.show_message(_INTL("{1} isn't holding anything.", pkmn.name)) + return false + elsif !$bag.can_add?(pkmn.item) + screen.show_message(_INTL("The Bag is full. The Pokémon's item could not be removed.")) + return false + end + if pkmn.mail + # Remove a mail item + if screen.show_confirm_message(_INTL("Save the removed mail in your PC?")) + if pbMoveToMailbox(pkmn) + pkmn.item = nil + screen.show_message(_INTL("The mail was saved in your PC.")) + ret = true + else + screen.show_message(_INTL("Your PC's Mailbox is full.")) + end + elsif screen.show_confirm_message(_INTL("If the mail is removed, its message will be lost. OK?")) + item_name = pkmn.item.portion_name + $bag.add(pkmn.item) + pkmn.item = nil + screen.show_message(_INTL("Received the {1} from {2}.", item_name, pkmn.name)) + ret = true + end + else + # Remove a regular item + item_name = pkmn.item.portion_name + $bag.add(pkmn.item) + pkmn.item = nil + screen.show_message(_INTL("Received the {1} from {2}.", item_name, pkmn.name)) + ret = true + end + return ret +end + +#=============================================================================== +# Choose an item from a given list. Only lets you choose an item you have at +# least 1 of in the Bag. The chosen item's ID is stored in the given Game +# Variable. +#=============================================================================== +def pbChooseItemFromList(message, variable, *args) + commands = {} + args.each do |item| + item_data = GameData::Item.try_get(item) + next if !item_data || !$bag.has?(item_data.id) + commands[item_data.id] = item_data.name + end + if commands.length == 0 + $game_variables[variable] = :NONE + return nil + end + commands[:NONE] = _INTL("Cancel") + ret = pbMessage(message, commands.values, -1) + if ret < 0 || ret >= commands.length - 1 + $game_variables[variable] = :NONE + return nil + end + $game_variables[variable] = commands.keys[ret] || :NONE + return commands.keys[ret] +end + +#=============================================================================== +# Change a Pokémon's level. +#=============================================================================== +def pbChangeLevel(pkmn, new_level, scene) + new_level = new_level.clamp(1, GameData::GrowthRate.max_level) + if pkmn.level == new_level + if scene.is_a?(UI::Party) + scene.show_message(_INTL("{1}'s level remained unchanged.", pkmn.name)) + else + pbMessage(_INTL("{1}'s level remained unchanged.", pkmn.name)) end return end @@ -239,20 +453,13 @@ def pbChangeExp(pkmn, new_exp, scene) old_special_attack = pkmn.spatk old_special_defense = pkmn.spdef old_speed = pkmn.speed - if pkmn.exp > new_exp # Loses Exp - difference = pkmn.exp - new_exp - if scene.is_a?(PokemonPartyScreen) - scene.pbDisplay(_INTL("{1} lost {2} Exp. Points!", pkmn.name, difference)) - else - pbMessage(_INTL("{1} lost {2} Exp. Points!", pkmn.name, difference)) - end - pkmn.exp = new_exp - pkmn.calc_stats - scene.pbRefresh - return if pkmn.level == old_level - # Level changed - if scene.is_a?(PokemonPartyScreen) - scene.pbDisplay(_INTL("{1} dropped to Lv. {2}!", pkmn.name, pkmn.level)) + pkmn.level = new_level + pkmn.calc_stats + pkmn.hp = 1 if new_level > old_level && pkmn.species_data.base_stats[:HP] == 1 + scene.pbRefresh + if old_level > new_level + if scene.is_a?(UI::Party) + scene.show_message(_INTL("{1} dropped to Lv. {2}!", pkmn.name, pkmn.level)) else pbMessage(_INTL("{1} dropped to Lv. {2}!", pkmn.name, pkmn.level)) end @@ -266,21 +473,10 @@ def pbChangeExp(pkmn, new_exp, scene) total_hp_diff, attack_diff, defense_diff, special_attack_diff, special_defense_diff, speed_diff), scene) pbTopRightWindow(_INTL("Max. HP{1}\nAttack{2}\nDefense{3}\nSp. Atk{4}\nSp. Def{5}\nSpeed{6}", pkmn.totalhp, pkmn.attack, pkmn.defense, pkmn.spatk, pkmn.spdef, pkmn.speed), scene) - else # Gains Exp - difference = new_exp - pkmn.exp - if scene.is_a?(PokemonPartyScreen) - scene.pbDisplay(_INTL("{1} gained {2} Exp. Points!", pkmn.name, difference)) - else - pbMessage(_INTL("{1} gained {2} Exp. Points!", pkmn.name, difference)) - end - pkmn.exp = new_exp + else pkmn.changeHappiness("vitamin") - pkmn.calc_stats - scene.pbRefresh - return if pkmn.level == old_level - # Level changed - if scene.is_a?(PokemonPartyScreen) - scene.pbDisplay(_INTL("{1} grew to Lv. {2}!", pkmn.name, pkmn.level)) + if scene.is_a?(UI::Party) + scene.show_message(_INTL("{1} grew to Lv. {2}!", pkmn.name, pkmn.level)) else pbMessage(_INTL("{1} grew to Lv. {2}!", pkmn.name, pkmn.level)) end @@ -308,7 +504,102 @@ def pbChangeExp(pkmn, new_exp, scene) evo.pbStartScreen(pkmn, new_species) evo.pbEvolution evo.pbEndScreen - scene.pbRefresh if scene.is_a?(PokemonPartyScreen) + scene.refresh if scene.is_a?(UI::Party) + end + end + end +end + +#=============================================================================== +# Change a Pokémon's Experience amount. +#=============================================================================== +def pbChangeExp(pkmn, new_exp, scene) + new_exp = new_exp.clamp(0, pkmn.growth_rate.maximum_exp) + if pkmn.exp == new_exp + if scene.is_a?(UI::Party) + scene.show_message(_INTL("{1}'s Exp. Points remained unchanged.", pkmn.name)) + else + pbMessage(_INTL("{1}'s Exp. Points remained unchanged.", pkmn.name)) + end + return + end + old_level = pkmn.level + old_total_hp = pkmn.totalhp + old_attack = pkmn.attack + old_defense = pkmn.defense + old_special_attack = pkmn.spatk + old_special_defense = pkmn.spdef + old_speed = pkmn.speed + if pkmn.exp > new_exp # Loses Exp + difference = pkmn.exp - new_exp + if scene.is_a?(UI::Party) + scene.show_message(_INTL("{1} lost {2} Exp. Points!", pkmn.name, difference)) + else + pbMessage(_INTL("{1} lost {2} Exp. Points!", pkmn.name, difference)) + end + pkmn.exp = new_exp + pkmn.calc_stats + scene.pbRefresh + return if pkmn.level == old_level + # Level changed + if scene.is_a?(UI::Party) + scene.show_message(_INTL("{1} dropped to Lv. {2}!", pkmn.name, pkmn.level)) + else + pbMessage(_INTL("{1} dropped to Lv. {2}!", pkmn.name, pkmn.level)) + end + total_hp_diff = pkmn.totalhp - old_total_hp + attack_diff = pkmn.attack - old_attack + defense_diff = pkmn.defense - old_defense + special_attack_diff = pkmn.spatk - old_special_attack + special_defense_diff = pkmn.spdef - old_special_defense + speed_diff = pkmn.speed - old_speed + pbTopRightWindow(_INTL("Max. HP{1}\nAttack{2}\nDefense{3}\nSp. Atk{4}\nSp. Def{5}\nSpeed{6}", + total_hp_diff, attack_diff, defense_diff, special_attack_diff, special_defense_diff, speed_diff), scene) + pbTopRightWindow(_INTL("Max. HP{1}\nAttack{2}\nDefense{3}\nSp. Atk{4}\nSp. Def{5}\nSpeed{6}", + pkmn.totalhp, pkmn.attack, pkmn.defense, pkmn.spatk, pkmn.spdef, pkmn.speed), scene) + else # Gains Exp + difference = new_exp - pkmn.exp + if scene.is_a?(UI::Party) + scene.show_message(_INTL("{1} gained {2} Exp. Points!", pkmn.name, difference)) + else + pbMessage(_INTL("{1} gained {2} Exp. Points!", pkmn.name, difference)) + end + pkmn.exp = new_exp + pkmn.changeHappiness("vitamin") + pkmn.calc_stats + scene.pbRefresh + return if pkmn.level == old_level + # Level changed + if scene.is_a?(UI::Party) + scene.show_message(_INTL("{1} grew to Lv. {2}!", pkmn.name, pkmn.level)) + else + pbMessage(_INTL("{1} grew to Lv. {2}!", pkmn.name, pkmn.level)) + end + total_hp_diff = pkmn.totalhp - old_total_hp + attack_diff = pkmn.attack - old_attack + defense_diff = pkmn.defense - old_defense + special_attack_diff = pkmn.spatk - old_special_attack + special_defense_diff = pkmn.spdef - old_special_defense + speed_diff = pkmn.speed - old_speed + pbTopRightWindow(_INTL("Max. HP+{1}\nAttack+{2}\nDefense+{3}\nSp. Atk+{4}\nSp. Def+{5}\nSpeed+{6}", + total_hp_diff, attack_diff, defense_diff, special_attack_diff, special_defense_diff, speed_diff), scene) + pbTopRightWindow(_INTL("Max. HP{1}\nAttack{2}\nDefense{3}\nSp. Atk{4}\nSp. Def{5}\nSpeed{6}", + pkmn.totalhp, pkmn.attack, pkmn.defense, pkmn.spatk, pkmn.spdef, pkmn.speed), scene) + # Learn new moves upon level up + movelist = pkmn.getMoveList + movelist.each do |i| + next if i[0] <= old_level || i[0] > pkmn.level + pbLearnMove(pkmn, i[1], true) { scene.pbUpdate } + end + # Check for evolution + new_species = pkmn.check_evolution_on_level_up + if new_species + pbFadeOutInWithMusic do + evo = PokemonEvolutionScene.new + evo.pbStartScreen(pkmn, new_species) + evo.pbEvolution + evo.pbEndScreen + scene.refresh if scene.is_a?(UI::Party) end end end @@ -320,7 +611,7 @@ def pbGainExpFromExpCandy(pkmn, base_amt, qty, scene) return false end pbSEPlay("Pkmn level up") - scene.scene.pbSetHelpText("") if scene.is_a?(PokemonPartyScreen) + scene.set_help_text("") if scene.is_a?(UI::Party) if qty > 1 (qty - 1).times { pkmn.changeHappiness("vitamin") } end @@ -581,9 +872,12 @@ end #=============================================================================== # Teach and forget a move. #=============================================================================== -def pbLearnMove(pkmn, move, ignore_if_known = false, by_machine = false, &block) +def pbLearnMove(pkmn, move, ignore_if_known = false, by_machine = false, screen = nil, &block) return false if !pkmn + pkmn_name = pkmn.name move = GameData::Move.get(move).id + move_name = GameData::Move.get(move).name + # Check if Pokémon is unable to learn any moves if pkmn.egg? && !$DEBUG pbMessage(_INTL("Eggs can't be taught any moves."), &block) return false @@ -591,30 +885,32 @@ def pbLearnMove(pkmn, move, ignore_if_known = false, by_machine = false, &block) pbMessage(_INTL("Shadow Pokémon can't be taught any moves."), &block) return false end - pkmn_name = pkmn.name - move_name = GameData::Move.get(move).name + # Check if Pokémon can learn this move if pkmn.hasMove?(move) - pbMessage(_INTL("{1} already knows {2}.", pkmn_name, move_name), &block) if !ignore_if_known + if !ignore_if_known + pbMessage(_INTL("{1} already knows {2}.", pkmn_name, move_name), &block) + end return false elsif pkmn.numMoves < Pokemon::MAX_MOVES pkmn.learn_move(move) pbMessage("\\se[]" + _INTL("{1} learned {2}!", pkmn_name, move_name) + "\\se[Pkmn move learnt]", &block) return true end + # Pokémon needs to forget a move to learn this one pbMessage(_INTL("{1} wants to learn {2}, but it already knows {3} moves.", pkmn_name, move_name, pkmn.numMoves.to_word) + "\1", &block) if pbConfirmMessage(_INTL("Should {1} forget a move to learn {2}?", pkmn_name, move_name), &block) loop do - move_index = pbForgetMove(pkmn, move) + move_index = pbForgetMove(pkmn, move, screen) if move_index >= 0 old_move_name = pkmn.moves[move_index].name - oldmovepp = pkmn.moves[move_index].pp + old_move_pp = pkmn.moves[move_index].pp pkmn.moves[move_index] = Pokemon::Move.new(move) # Replaces current/total PP if by_machine && Settings::TAUGHT_MACHINES_KEEP_OLD_PP - pkmn.moves[move_index].pp = [oldmovepp, pkmn.moves[move_index].total_pp].min + pkmn.moves[move_index].pp = [old_move_pp, pkmn.moves[move_index].total_pp].min end pbMessage(_INTL("1, 2, and...\\wt[16] ...\\wt[16] ...\\wt[16] Ta-da!") + "\\se[Battle ball drop]\1", &block) - pbMessage(_INTL("{1} forgot how to use {2}.\nAnd..." + "\1", pkmn_name, old_move_name), &block) + pbMessage(_INTL("{1} forgot how to use {2}.\nAnd...", pkmn_name, old_move_name) + "\1", &block) pbMessage("\\se[]" + _INTL("{1} learned {2}!", pkmn_name, move_name) + "\\se[Pkmn move learnt]", &block) pkmn.changeHappiness("machine") if by_machine return true @@ -629,291 +925,11 @@ def pbLearnMove(pkmn, move, ignore_if_known = false, by_machine = false, &block) return false end -def pbForgetMove(pkmn, moveToLearn) +def pbForgetMove(pkmn, move_to_learn, screen = nil) ret = -1 - pbFadeOutIn do - scene = PokemonSummary_Scene.new - screen = PokemonSummaryScreen.new(scene) - ret = screen.pbStartForgetScreen([pkmn], 0, moveToLearn) + pbFadeOutInWithUpdate(screen&.sprites) do + summary_screen = UI::PokemonSummary.new([pkmn], 0, mode: :choose_move, new_move: move_to_learn) + ret = summary_screen.choose_move end return ret end - -#=============================================================================== -# Use an item from the Bag and/or on a Pokémon. -#=============================================================================== -# @return [Integer] 0 = item wasn't used; 1 = item used; 2 = close Bag to use in field -def pbUseItem(bag, item, bagscene = nil) - itm = GameData::Item.get(item) - useType = itm.field_use - if useType == 1 # Item is usable on a Pokémon - if $player.pokemon_count == 0 - pbMessage(_INTL("There is no Pokémon.")) - return 0 - end - ret = false - annot = nil - if itm.is_evolution_stone? - annot = [] - $player.party.each do |pkmn| - elig = pkmn.check_evolution_on_use_item(item) - annot.push((elig) ? _INTL("ABLE") : _INTL("NOT ABLE")) - end - end - pbFadeOutIn do - scene = PokemonParty_Scene.new - screen = PokemonPartyScreen.new(scene, $player.party) - screen.pbStartScene(_INTL("Use on which Pokémon?"), false, annot) - loop do - scene.pbSetHelpText(_INTL("Use on which Pokémon?")) - chosen = screen.pbChoosePokemon - if chosen < 0 - ret = false - break - end - pkmn = $player.party[chosen] - next if !pbCheckUseOnPokemon(item, pkmn, screen) - qty = 1 - max_at_once = ItemHandlers.triggerUseOnPokemonMaximum(item, pkmn) - max_at_once = [max_at_once, $bag.quantity(item)].min - if max_at_once > 1 - qty = screen.scene.pbChooseNumber( - _INTL("How many {1} do you want to use?", GameData::Item.get(item).portion_name_plural), max_at_once - ) - screen.scene.pbSetHelpText("") if screen.is_a?(PokemonPartyScreen) - end - next if qty <= 0 - ret = ItemHandlers.triggerUseOnPokemon(item, qty, pkmn, screen) - next unless ret && itm.consumed_after_use? - bag.remove(item, qty) - next if bag.has?(item) - pbMessage(_INTL("You used your last {1}.", itm.portion_name)) { screen.pbUpdate } - break - end - screen.pbEndScene - bagscene&.pbRefresh - end - return (ret) ? 1 : 0 - elsif useType == 2 || itm.is_machine? # Item is usable from Bag or teaches a move - intret = ItemHandlers.triggerUseFromBag(item) - if intret >= 0 - bag.remove(item) if intret == 1 && itm.consumed_after_use? - return intret - end - pbMessage(_INTL("Can't use that here.")) - return 0 - end - pbMessage(_INTL("Can't use that here.")) - return 0 -end - -# Only called when in the party screen and having chosen an item to be used on -# the selected Pokémon. -def pbUseItemOnPokemon(item, pkmn, scene) - itm = GameData::Item.get(item) - # TM or HM - if itm.is_machine? - machine = itm.move - return false if !machine - movename = GameData::Move.get(machine).name - if pkmn.shadowPokemon? - pbMessage(_INTL("Shadow Pokémon can't be taught any moves.")) { scene.pbUpdate } - elsif !pkmn.compatible_with_move?(machine) - pbMessage(_INTL("{1} can't learn {2}.", pkmn.name, movename)) { scene.pbUpdate } - else - pbMessage("\\se[PC access]" + _INTL("You booted up the {1}.", itm.portion_name) + "\1") { scene.pbUpdate } - if pbConfirmMessage(_INTL("Do you want to teach {1} to {2}?", movename, pkmn.name)) { scene.pbUpdate } - if pbLearnMove(pkmn, machine, false, true) { scene.pbUpdate } - $bag.remove(item) if itm.consumed_after_use? - return true - end - end - end - return false - end - # Other item - qty = 1 - max_at_once = ItemHandlers.triggerUseOnPokemonMaximum(item, pkmn) - max_at_once = [max_at_once, $bag.quantity(item)].min - if max_at_once > 1 - qty = scene.scene.pbChooseNumber( - _INTL("How many {1} do you want to use?", itm.portion_name_plural), max_at_once - ) - scene.scene.pbSetHelpText("") if scene.is_a?(PokemonPartyScreen) - end - return false if qty <= 0 - ret = ItemHandlers.triggerUseOnPokemon(item, qty, pkmn, scene) - scene.pbClearAnnotations - scene.pbHardRefresh - if ret && itm.consumed_after_use? - $bag.remove(item, qty) - if !$bag.has?(item) - pbMessage(_INTL("You used your last {1}.", itm.portion_name)) { scene.pbUpdate } - end - end - return ret -end - -def pbUseKeyItemInField(item) - ret = ItemHandlers.triggerUseInField(item) - if ret == -1 # Item effect not found - pbMessage(_INTL("Can't use that here.")) - elsif ret > 0 && GameData::Item.get(item).consumed_after_use? - $bag.remove(item) - end - return ret > 0 -end - -def pbUseItemMessage(item) - itemname = GameData::Item.get(item).portion_name - if itemname.starts_with_vowel? - pbMessage(_INTL("You used an {1}.", itemname)) - else - pbMessage(_INTL("You used a {1}.", itemname)) - end -end - -def pbCheckUseOnPokemon(item, pkmn, _screen) - return pkmn && !pkmn.egg? && (!pkmn.hyper_mode || GameData::Item.get(item)&.is_scent?) -end - -#=============================================================================== -# Give an item to a Pokémon to hold, and take a held item from a Pokémon. -#=============================================================================== -def pbGiveItemToPokemon(item, pkmn, scene, pkmnid = 0) - newitemname = GameData::Item.get(item).portion_name - if pkmn.egg? - scene.pbDisplay(_INTL("Eggs can't hold items.")) - return false - elsif pkmn.mail - scene.pbDisplay(_INTL("{1}'s mail must be removed before giving it an item.", pkmn.name)) - return false if !pbTakeItemFromPokemon(pkmn, scene) - end - if pkmn.hasItem? - olditemname = pkmn.item.portion_name - if newitemname.starts_with_vowel? - scene.pbDisplay(_INTL("{1} is already holding an {2}.", pkmn.name, olditemname) + "\1") - else - scene.pbDisplay(_INTL("{1} is already holding a {2}.", pkmn.name, olditemname) + "\1") - end - if scene.pbConfirm(_INTL("Would you like to switch the two items?")) - $bag.remove(item) - if !$bag.add(pkmn.item) - raise _INTL("Couldn't re-store deleted item in Bag somehow") if !$bag.add(item) - scene.pbDisplay(_INTL("The Bag is full. The Pokémon's item could not be removed.")) - elsif GameData::Item.get(item).is_mail? - if pbWriteMail(item, pkmn, pkmnid, scene) - pkmn.item = item - scene.pbDisplay(_INTL("Took the {1} from {2} and gave it the {3}.", olditemname, pkmn.name, newitemname)) - return true - elsif !$bag.add(item) - raise _INTL("Couldn't re-store deleted item in Bag somehow") - end - else - pkmn.item = item - scene.pbDisplay(_INTL("Took the {1} from {2} and gave it the {3}.", olditemname, pkmn.name, newitemname)) - return true - end - end - elsif !GameData::Item.get(item).is_mail? || pbWriteMail(item, pkmn, pkmnid, scene) - $bag.remove(item) - pkmn.item = item - scene.pbDisplay(_INTL("{1} is now holding the {2}.", pkmn.name, newitemname)) - return true - end - return false -end - -def pbTakeItemFromPokemon(pkmn, scene) - ret = false - if !pkmn.hasItem? - scene.pbDisplay(_INTL("{1} isn't holding anything.", pkmn.name)) - elsif !$bag.can_add?(pkmn.item) - scene.pbDisplay(_INTL("The Bag is full. The Pokémon's item could not be removed.")) - elsif pkmn.mail - if scene.pbConfirm(_INTL("Save the removed mail in your PC?")) - if pbMoveToMailbox(pkmn) - scene.pbDisplay(_INTL("The mail was saved in your PC.")) - pkmn.item = nil - ret = true - else - scene.pbDisplay(_INTL("Your PC's Mailbox is full.")) - end - elsif scene.pbConfirm(_INTL("If the mail is removed, its message will be lost. OK?")) - $bag.add(pkmn.item) - scene.pbDisplay(_INTL("Received the {1} from {2}.", pkmn.item.portion_name, pkmn.name)) - pkmn.item = nil - pkmn.mail = nil - ret = true - end - else - $bag.add(pkmn.item) - scene.pbDisplay(_INTL("Received the {1} from {2}.", pkmn.item.portion_name, pkmn.name)) - pkmn.item = nil - ret = true - end - return ret -end - -#=============================================================================== -# Choose an item from the Bag. -#=============================================================================== -def pbChooseItem(var = 0, *args) - ret = nil - pbFadeOutIn do - scene = PokemonBag_Scene.new - screen = PokemonBagScreen.new(scene, $bag) - ret = screen.pbChooseItemScreen - end - $game_variables[var] = ret || :NONE if var > 0 - return ret -end - -def pbChooseApricorn(var = 0) - ret = nil - pbFadeOutIn do - scene = PokemonBag_Scene.new - screen = PokemonBagScreen.new(scene, $bag) - ret = screen.pbChooseItemScreen(proc { |item| GameData::Item.get(item).is_apricorn? }) - end - $game_variables[var] = ret || :NONE if var > 0 - return ret -end - -def pbChooseFossil(var = 0) - ret = nil - pbFadeOutIn do - scene = PokemonBag_Scene.new - screen = PokemonBagScreen.new(scene, $bag) - ret = screen.pbChooseItemScreen(proc { |item| GameData::Item.get(item).is_fossil? }) - end - $game_variables[var] = ret || :NONE if var > 0 - return ret -end - -# Shows a list of items to choose from, with the chosen item's ID being stored -# in the given Game Variable. Only items which the player has are listed. -def pbChooseItemFromList(message, variable, *args) - commands = [] - itemid = [] - args.each do |item| - next if !GameData::Item.exists?(item) - itm = GameData::Item.get(item) - next if !$bag.has?(itm) - commands.push(itm.name) - itemid.push(itm.id) - end - if commands.length == 0 - $game_variables[variable] = :NONE - return nil - end - commands.push(_INTL("Cancel")) - itemid.push(nil) - ret = pbMessage(message, commands, -1) - if ret < 0 || ret >= commands.length - 1 - $game_variables[variable] = :NONE - return nil - end - $game_variables[variable] = itemid[ret] || :NONE - return itemid[ret] -end diff --git a/Data/Scripts/013_Items/002_Item_Effects.rb b/Data/Scripts/013_Items/002_Item_Effects.rb index d0d703ac2..b70eca1b6 100644 --- a/Data/Scripts/013_Items/002_Item_Effects.rb +++ b/Data/Scripts/013_Items/002_Item_Effects.rb @@ -1,118 +1,20 @@ #=============================================================================== +# Items that aren't used on a Pokémon. +#=============================================================================== # UseText handlers. -#=============================================================================== - -ItemHandlers::UseText.add(:BICYCLE, proc { |item| - next ($PokemonGlobal.bicycle) ? _INTL("Walk") : _INTL("Use") -}) - -ItemHandlers::UseText.copy(:BICYCLE, :MACHBIKE, :ACROBIKE) - -ItemHandlers::UseText.add(:EXPALLOFF, proc { |item| - next _INTL("Turn on") -}) - -ItemHandlers::UseText.add(:EXPALL, proc { |item| - next _INTL("Turn off") -}) - -#=============================================================================== +#------------------------------------------------------------------------------- # UseFromBag handlers. # Return values: 0 = not used # 1 = used # 2 = close the Bag to use # If there is no UseFromBag handler for an item being used from the Bag (not on # a Pokémon), calls the UseInField handler for it instead. -#=============================================================================== - -ItemHandlers::UseFromBag.add(:HONEY, proc { |item| - next 2 -}) - -ItemHandlers::UseFromBag.add(:ESCAPEROPE, proc { |item| - if !$game_player.can_map_transfer_with_follower? - pbMessage(_INTL("It can't be used when you have someone with you.")) - next 0 - end - if ($PokemonGlobal.escapePoint rescue false) && $PokemonGlobal.escapePoint.length > 0 - next 2 # End screen and use item - end - pbMessage(_INTL("Can't use that here.")) - next 0 -}) - -ItemHandlers::UseFromBag.add(:BICYCLE, proc { |item| - next (pbBikeCheck) ? 2 : 0 -}) - -ItemHandlers::UseFromBag.copy(:BICYCLE, :MACHBIKE, :ACROBIKE) - -ItemHandlers::UseFromBag.add(:OLDROD, proc { |item| - notCliff = $game_map.passable?($game_player.x, $game_player.y, $game_player.direction, $game_player) - next 2 if $game_player.pbFacingTerrainTag.can_fish && ($PokemonGlobal.surfing || notCliff) - pbMessage(_INTL("Can't use that here.")) - next 0 -}) - -ItemHandlers::UseFromBag.copy(:OLDROD, :GOODROD, :SUPERROD) - -ItemHandlers::UseFromBag.add(:ITEMFINDER, proc { |item| - next 2 -}) - -ItemHandlers::UseFromBag.copy(:ITEMFINDER, :DOWSINGMCHN, :DOWSINGMACHINE) - -ItemHandlers::UseFromBag.add(:TOWNMAP, proc { |item| - pbFadeOutIn do - scene = PokemonRegionMap_Scene.new(-1, false) - screen = PokemonRegionMapScreen.new(scene) - ret = screen.pbStartScreen - $game_temp.fly_destination = ret if ret - next 99999 if ret # Ugly hack to make Bag scene not reappear if flying - end - next ($game_temp.fly_destination) ? 2 : 0 -}) - -ItemHandlers::UseFromBag.addIf(:move_machines, - proc { |item| GameData::Item.get(item).is_machine? }, - proc { |item| - if $player.pokemon_count == 0 - pbMessage(_INTL("There is no Pokémon.")) - next 0 - end - item_data = GameData::Item.get(item) - move = item_data.move - next 0 if !move - pbMessage("\\se[PC access]" + _INTL("You booted up the {1}.", item_data.name) + "\1") - next 0 if !pbConfirmMessage(_INTL("Do you want to teach {1} to a Pokémon?", - GameData::Move.get(move).name)) - next 1 if pbMoveTutorChoose(move, nil, true, item_data.is_TR?) - next 0 - } -) - -#=============================================================================== +#------------------------------------------------------------------------------- # ConfirmUseInField handlers. # Return values: true/false # Called when an item is used from the Ready Menu. # If an item does not have this handler, it is treated as returning true. -#=============================================================================== - -ItemHandlers::ConfirmUseInField.add(:ESCAPEROPE, proc { |item| - escape = ($PokemonGlobal.escapePoint rescue nil) - if !escape || escape == [] - pbMessage(_INTL("Can't use that here.")) - next false - end - if !$game_player.can_map_transfer_with_follower? - pbMessage(_INTL("It can't be used when you have someone with you.")) - next false - end - mapname = pbGetMapNameFromId(escape[0]) - next pbConfirmMessage(_INTL("Want to escape from here and return to {1}?", mapname)) -}) - -#=============================================================================== +#------------------------------------------------------------------------------- # UseInField handlers. # Return values: false = not used # true = used @@ -159,14 +61,19 @@ EventHandlers.add(:on_player_step_taken, :repel_counter, next if !pbConfirmMessage(_INTL("The repellent's effect wore off! Would you like to use another one?")) ret = nil pbFadeOutIn do - scene = PokemonBag_Scene.new - screen = PokemonBagScreen.new(scene, $bag) - ret = screen.pbChooseItemScreen(proc { |item| repels.include?(item) }) + bag_screen = UI::Bag.new($bag, mode: :choose_item) + bag_screen.set_filter_proc(proc { |item| repels.include?(item) }) + ret = bag_screen.choose_item end + # TODO: Would be nice if this didn't call pbUseItem, so that pbUseItem would + # be exclusively called from the Bag screen and could rely on that + # screen existing. pbUseItem($bag, ret) if ret } ) +#------------------------------------------------------------------------------- + ItemHandlers::UseInField.add(:BLACKFLUTE, proc { |item| pbUseItemMessage(item) if Settings::FLUTES_CHANGE_WILD_ENCOUNTER_LEVELS @@ -195,13 +102,31 @@ ItemHandlers::UseInField.add(:WHITEFLUTE, proc { |item| next true }) +#------------------------------------------------------------------------------- + +ItemHandlers::UseFromBag.add(:HONEY, proc { |item, bag_screen| + next 2 +}) ItemHandlers::UseInField.add(:HONEY, proc { |item| pbUseItemMessage(item) pbSweetScent next true }) -ItemHandlers::UseInField.add(:ESCAPEROPE, proc { |item| +#------------------------------------------------------------------------------- + +ItemHandlers::UseFromBag.add(:ESCAPEROPE, proc { |item, bag_screen| + if !$game_player.can_map_transfer_with_follower? + pbMessage(_INTL("It can't be used when you have someone with you.")) + next 0 + end + if ($PokemonGlobal.escapePoint rescue false) && $PokemonGlobal.escapePoint.length > 0 + next 2 # End screen and use item + end + pbMessage(_INTL("Can't use that here.")) + next 0 +}) +ItemHandlers::ConfirmUseInField.add(:ESCAPEROPE, proc { |item| # Called from Ready Menu escape = ($PokemonGlobal.escapePoint rescue nil) if !escape || escape == [] pbMessage(_INTL("Can't use that here.")) @@ -211,6 +136,18 @@ ItemHandlers::UseInField.add(:ESCAPEROPE, proc { |item| pbMessage(_INTL("It can't be used when you have someone with you.")) next false end + mapname = pbGetMapNameFromId(escape[0]) + next pbConfirmMessage(_INTL("Want to escape from here and return to {1}?", mapname)) +}) +ItemHandlers::UseInField.add(:ESCAPEROPE, proc { |item| + escape = ($PokemonGlobal.escapePoint rescue nil) + if !escape || escape == [] + pbMessage(_INTL("Can't use that here.")) + next false + elsif !$game_player.can_map_transfer_with_follower? + pbMessage(_INTL("It can't be used when you have someone with you.")) + next false + end pbUseItemMessage(item) pbFadeOutIn do $game_temp.player_new_map_id = escape[0] @@ -226,54 +163,63 @@ ItemHandlers::UseInField.add(:ESCAPEROPE, proc { |item| next true }) +#------------------------------------------------------------------------------- + ItemHandlers::UseInField.add(:SACREDASH, proc { |item| if $player.pokemon_count == 0 pbMessage(_INTL("There is no Pokémon.")) next false - end - canrevive = false - $player.pokemon_party.each do |i| - next if !i.fainted? - canrevive = true - break - end - if !canrevive + elsif $player.pokemon_party.none? { |pkmn| pkmn.fainted? } pbMessage(_INTL("It won't have any effect.")) next false end revived = 0 pbFadeOutIn do - scene = PokemonParty_Scene.new - screen = PokemonPartyScreen.new(scene, $player.party) - screen.pbStartScene(_INTL("Using item..."), false) - pbSEPlay("Use item in party") - $player.party.each_with_index do |pkmn, i| - next if !pkmn.fainted? - revived += 1 - pkmn.heal - screen.pbRefreshSingle(i) - screen.pbDisplay(_INTL("{1}'s HP was restored.", pkmn.name)) + screen = UI::Party.new($player.party, mode: :choose_pokemon) + screen.set_help_text(_INTL("Using item...")) + screen.show_and_hide do + $player.party.each_with_index do |pkmn, i| + next if !pkmn.fainted? + revived += 1 + pkmn.heal + screen.refresh + pbSEPlay("Use item in party") + screen.show_message(_INTL("{1}'s HP was restored.", pkmn.name)) + end + screen.show_message(_INTL("It won't have any effect.")) if revived == 0 end - screen.pbDisplay(_INTL("It won't have any effect.")) if revived == 0 - screen.pbEndScene end next (revived > 0) }) +#------------------------------------------------------------------------------- + +ItemHandlers::UseText.add(:BICYCLE, proc { |item| + next ($PokemonGlobal.bicycle) ? _INTL("Walk") : _INTL("Use") +}) +ItemHandlers::UseFromBag.add(:BICYCLE, proc { |item, bag_screen| + next (pbBikeCheck) ? 2 : 0 +}) ItemHandlers::UseInField.add(:BICYCLE, proc { |item| if pbBikeCheck - if $PokemonGlobal.bicycle - pbDismountBike - else - pbMountBike - end + ($PokemonGlobal.bicycle) ? pbDismountBike : pbMountBike next true end next false }) +ItemHandlers::UseText.copy(:BICYCLE, :MACHBIKE, :ACROBIKE) +ItemHandlers::UseFromBag.copy(:BICYCLE, :MACHBIKE, :ACROBIKE) ItemHandlers::UseInField.copy(:BICYCLE, :MACHBIKE, :ACROBIKE) +#------------------------------------------------------------------------------- + +ItemHandlers::UseFromBag.add(:OLDROD, proc { |item, bag_screen| + notCliff = $game_map.passable?($game_player.x, $game_player.y, $game_player.direction, $game_player) + next 2 if $game_player.pbFacingTerrainTag.can_fish && ($PokemonGlobal.surfing || notCliff) + pbMessage(_INTL("Can't use that here.")) + next 0 +}) ItemHandlers::UseInField.add(:OLDROD, proc { |item| notCliff = $game_map.passable?($game_player.x, $game_player.y, $game_player.direction, $game_player) if !$game_player.pbFacingTerrainTag.can_fish || (!$PokemonGlobal.surfing && !notCliff) @@ -288,6 +234,7 @@ ItemHandlers::UseInField.add(:OLDROD, proc { |item| next true }) +ItemHandlers::UseFromBag.copy(:OLDROD, :GOODROD) ItemHandlers::UseInField.add(:GOODROD, proc { |item| notCliff = $game_map.passable?($game_player.x, $game_player.y, $game_player.direction, $game_player) if !$game_player.pbFacingTerrainTag.can_fish || (!$PokemonGlobal.surfing && !notCliff) @@ -302,6 +249,7 @@ ItemHandlers::UseInField.add(:GOODROD, proc { |item| next true }) +ItemHandlers::UseFromBag.copy(:OLDROD, :SUPERROD) ItemHandlers::UseInField.add(:SUPERROD, proc { |item| notCliff = $game_map.passable?($game_player.x, $game_player.y, $game_player.direction, $game_player) if !$game_player.pbFacingTerrainTag.can_fish || (!$PokemonGlobal.surfing && !notCliff) @@ -316,6 +264,11 @@ ItemHandlers::UseInField.add(:SUPERROD, proc { |item| next true }) +#------------------------------------------------------------------------------- + +ItemHandlers::UseFromBag.add(:ITEMFINDER, proc { |item, bag_screen| + next 2 +}) ItemHandlers::UseInField.add(:ITEMFINDER, proc { |item| $stats.itemfinder_count += 1 pbSEPlay("Itemfinder") @@ -353,37 +306,100 @@ ItemHandlers::UseInField.add(:ITEMFINDER, proc { |item| next true }) +ItemHandlers::UseFromBag.copy(:ITEMFINDER, :DOWSINGMCHN, :DOWSINGMACHINE) ItemHandlers::UseInField.copy(:ITEMFINDER, :DOWSINGMCHN, :DOWSINGMACHINE) +#------------------------------------------------------------------------------- + +ItemHandlers::UseFromBag.add(:TOWNMAP, proc { |item, bag_screen| + pbFadeOutInWithUpdate(bag_screen&.sprites) do + town_map_screen = UI::TownMap.new + town_map_screen.main + if town_map_screen.result + $game_temp.fly_destination = town_map_screen.result + bag_screen&.silent_end_screen + end + end + next ($game_temp.fly_destination) ? 2 : 0 +}) ItemHandlers::UseInField.add(:TOWNMAP, proc { |item| pbShowMap(-1, false) if $game_temp.fly_destination.nil? pbFlyToNewLocation next true }) +#------------------------------------------------------------------------------- + ItemHandlers::UseInField.add(:COINCASE, proc { |item| pbMessage(_INTL("Coins: {1}", $player.coins.to_s_formatted)) next true }) -ItemHandlers::UseInField.add(:EXPALL, proc { |item| - $bag.replace_item(:EXPALL, :EXPALLOFF) - pbMessage(_INTL("The Exp Share was turned off.")) - next true -}) +#------------------------------------------------------------------------------- +ItemHandlers::UseText.add(:EXPALLOFF, proc { |item| + next _INTL("Turn on") +}) ItemHandlers::UseInField.add(:EXPALLOFF, proc { |item| $bag.replace_item(:EXPALLOFF, :EXPALL) pbMessage(_INTL("The Exp Share was turned on.")) next true }) +ItemHandlers::UseText.add(:EXPALL, proc { |item| + next _INTL("Turn off") +}) +ItemHandlers::UseInField.add(:EXPALL, proc { |item| + $bag.replace_item(:EXPALL, :EXPALLOFF) + pbMessage(_INTL("The Exp Share was turned off.")) + next true +}) + +#------------------------------------------------------------------------------- + +ItemHandlers::UseFromBag.addIf(:move_machines, + proc { |item| GameData::Item.get(item).is_machine? }, + proc { |item, bag_screen| + if $player.pokemon_count == 0 + pbMessage(_INTL("There is no Pokémon.")) + next 0 + end + item_data = GameData::Item.get(item) + move = item_data.move + next 0 if !move + pbSEPlay("PC access") + pbMessage(_INTL("You booted up the {1}.", item_data.portion_name) + "\1") + next 0 if !pbConfirmMessage(_INTL("Do you want to teach {1} to a Pokémon?", + GameData::Move.get(move).name)) + next 1 if pbMoveTutorChoose(move, nil, true, item_data.is_TR?) + next 0 + } +) + #=============================================================================== -# UseOnPokemon handlers. +# Items that are used on a Pokémon. #=============================================================================== +# Applies to all TRs, TMs and HMs. +ItemHandlers::UsableOnPokemon.addIf(:machines, + proc { |item| GameData::Item.get(item).is_machine? }, + proc { |item, pkmn| + move = GameData::Item.get(item).move + next !pkmn.hasMove?(move) && pkmn.compatible_with_move?(move) + } +) + +#------------------------------------------------------------------------------- + # Applies to all items defined as an evolution stone. # No need to add more code for new ones. +ItemHandlers::UsableOnPokemon.addIf(:evolution_stones, + proc { |item| GameData::Item.get(item).is_evolution_stone? }, + proc { |item, pkmn| + next true if pkmn.check_evolution_on_use_item(item) + next false + } +) ItemHandlers::UseOnPokemon.addIf(:evolution_stones, proc { |item| GameData::Item.get(item).is_evolution_stone? }, proc { |item, qty, pkmn, scene| @@ -391,16 +407,16 @@ ItemHandlers::UseOnPokemon.addIf(:evolution_stones, scene.pbDisplay(_INTL("It won't have any effect.")) next false end - newspecies = pkmn.check_evolution_on_use_item(item) - if newspecies + new_species = pkmn.check_evolution_on_use_item(item) + if new_species pbFadeOutInWithMusic do evo = PokemonEvolutionScene.new - evo.pbStartScreen(pkmn, newspecies) + evo.pbStartScreen(pkmn, new_species) evo.pbEvolution(false) evo.pbEndScreen - if scene.is_a?(PokemonPartyScreen) - scene.pbRefreshAnnotations(proc { |p| !p.check_evolution_on_use_item(item).nil? }) - scene.pbRefresh + if scene.is_a?(UI::Party) + scene.set_able_annotation_proc(proc { |pkmn| !pkmn.check_evolution_on_use_item(item).nil? }) + scene.refresh end end next true @@ -410,22 +426,26 @@ ItemHandlers::UseOnPokemon.addIf(:evolution_stones, } ) +ItemHandlers::UsableOnPokemon.add(:SCROLLOFWATERS, proc { |item, pkmn| + next true if pkmn.check_evolution_on_use_item(item) + next false +}) ItemHandlers::UseOnPokemon.add(:SCROLLOFWATERS, proc { |item, qty, pkmn, scene| if pkmn.shadowPokemon? scene.pbDisplay(_INTL("It won't have any effect.")) next false end - newspecies = pkmn.check_evolution_on_use_item(item) - if newspecies + new_species = pkmn.check_evolution_on_use_item(item) + if new_species pkmn.form = 1 # NOTE: This is the only difference to the generic evolution stone code. pbFadeOutInWithMusic do evo = PokemonEvolutionScene.new - evo.pbStartScreen(pkmn, newspecies) + evo.pbStartScreen(pkmn, new_species) evo.pbEvolution(false) evo.pbEndScreen - if scene.is_a?(PokemonPartyScreen) - scene.pbRefreshAnnotations(proc { |p| !p.check_evolution_on_use_item(item).nil? }) - scene.pbRefresh + if scene.is_a?(UI::Party) + scene.set_able_annotation_proc(proc { |p| !p.check_evolution_on_use_item(item).nil? }) + scene.refresh end end next true @@ -434,49 +454,97 @@ ItemHandlers::UseOnPokemon.add(:SCROLLOFWATERS, proc { |item, qty, pkmn, scene| next false }) +ItemHandlers::UsableOnPokemon.copy(:SCROLLOFWATERS, :SCROLLOFDARKNESS) +ItemHandlers::UseOnPokemon.add(:SCROLLOFDARKNESS, proc { |item, qty, pkmn, scene| + if pkmn.shadowPokemon? + scene.pbDisplay(_INTL("It won't have any effect.")) + next false + end + new_species = pkmn.check_evolution_on_use_item(item) + if new_species + pbFadeOutInWithMusic do + evo = PokemonEvolutionScene.new + evo.pbStartScreen(pkmn, new_species) + evo.pbEvolution(false) + evo.pbEndScreen + if scene.is_a?(UI::Party) + scene.set_able_annotation_proc(proc { |pkmn| !pkmn.check_evolution_on_use_item(item).nil? }) + scene.refresh + end + end + next true + end + scene.pbDisplay(_INTL("It won't have any effect.")) + next false +}) + +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:POTION, proc { |item, pkmn| + next pkmn.able? && pkmn.hp < pkmn.totalhp +}) ItemHandlers::UseOnPokemon.add(:POTION, proc { |item, qty, pkmn, scene| next pbHPItem(pkmn, 20, scene) }) +ItemHandlers::UsableOnPokemon.copy(:POTION, :BERRYJUICE, :SWEETHEART) ItemHandlers::UseOnPokemon.copy(:POTION, :BERRYJUICE, :SWEETHEART) -ItemHandlers::UseOnPokemon.copy(:POTION, :RAGECANDYBAR) if !Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS +if !Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS + ItemHandlers::UsableOnPokemon.copy(:POTION, :RAGECANDYBAR) + ItemHandlers::UseOnPokemon.copy(:POTION, :RAGECANDYBAR) +end + +ItemHandlers::UsableOnPokemon.copy(:POTION, :SUPERPOTION) ItemHandlers::UseOnPokemon.add(:SUPERPOTION, proc { |item, qty, pkmn, scene| next pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 60 : 50, scene) }) +ItemHandlers::UsableOnPokemon.copy(:POTION, :HYPERPOTION) ItemHandlers::UseOnPokemon.add(:HYPERPOTION, proc { |item, qty, pkmn, scene| next pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 120 : 200, scene) }) +ItemHandlers::UsableOnPokemon.copy(:POTION, :MAXPOTION) ItemHandlers::UseOnPokemon.add(:MAXPOTION, proc { |item, qty, pkmn, scene| next pbHPItem(pkmn, pkmn.totalhp - pkmn.hp, scene) }) +ItemHandlers::UsableOnPokemon.copy(:POTION, :FRESHWATER) ItemHandlers::UseOnPokemon.add(:FRESHWATER, proc { |item, qty, pkmn, scene| next pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 30 : 50, scene) }) +ItemHandlers::UsableOnPokemon.copy(:POTION, :SODAPOP) ItemHandlers::UseOnPokemon.add(:SODAPOP, proc { |item, qty, pkmn, scene| next pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 50 : 60, scene) }) +ItemHandlers::UsableOnPokemon.copy(:POTION, :LEMONADE) ItemHandlers::UseOnPokemon.add(:LEMONADE, proc { |item, qty, pkmn, scene| next pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 70 : 80, scene) }) +ItemHandlers::UsableOnPokemon.copy(:POTION, :MOOMOOMILK) ItemHandlers::UseOnPokemon.add(:MOOMOOMILK, proc { |item, qty, pkmn, scene| next pbHPItem(pkmn, 100, scene) }) +ItemHandlers::UsableOnPokemon.copy(:POTION, :ORANBERRY) ItemHandlers::UseOnPokemon.add(:ORANBERRY, proc { |item, qty, pkmn, scene| next pbHPItem(pkmn, 10, scene) }) +ItemHandlers::UsableOnPokemon.copy(:POTION, :SITRUSBERRY) ItemHandlers::UseOnPokemon.add(:SITRUSBERRY, proc { |item, qty, pkmn, scene| next pbHPItem(pkmn, pkmn.totalhp / 4, scene) }) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:AWAKENING, proc { |item, pkmn| + next pkmn.able? && pkmn.status == :SLEEP +}) ItemHandlers::UseOnPokemon.add(:AWAKENING, proc { |item, qty, pkmn, scene| if pkmn.fainted? || pkmn.status != :SLEEP scene.pbDisplay(_INTL("It won't have any effect.")) @@ -489,8 +557,12 @@ ItemHandlers::UseOnPokemon.add(:AWAKENING, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:AWAKENING, :CHESTOBERRY, :BLUEFLUTE, :POKEFLUTE) ItemHandlers::UseOnPokemon.copy(:AWAKENING, :CHESTOBERRY, :BLUEFLUTE, :POKEFLUTE) +ItemHandlers::UsableOnPokemon.add(:ANTIDOTE, proc { |item, pkmn| + next pkmn.able? && pkmn.status == :POISON +}) ItemHandlers::UseOnPokemon.add(:ANTIDOTE, proc { |item, qty, pkmn, scene| if pkmn.fainted? || pkmn.status != :POISON scene.pbDisplay(_INTL("It won't have any effect.")) @@ -503,8 +575,12 @@ ItemHandlers::UseOnPokemon.add(:ANTIDOTE, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:ANTIDOTE, :PECHABERRY) ItemHandlers::UseOnPokemon.copy(:ANTIDOTE, :PECHABERRY) +ItemHandlers::UsableOnPokemon.add(:BURNHEAL, proc { |item, pkmn| + next pkmn.able? && pkmn.status == :BURN +}) ItemHandlers::UseOnPokemon.add(:BURNHEAL, proc { |item, qty, pkmn, scene| if pkmn.fainted? || pkmn.status != :BURN scene.pbDisplay(_INTL("It won't have any effect.")) @@ -517,8 +593,12 @@ ItemHandlers::UseOnPokemon.add(:BURNHEAL, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:BURNHEAL, :RAWSTBERRY) ItemHandlers::UseOnPokemon.copy(:BURNHEAL, :RAWSTBERRY) +ItemHandlers::UsableOnPokemon.add(:PARALYZEHEAL, proc { |item, pkmn| + next pkmn.able? && pkmn.status == :PARALYSIS +}) ItemHandlers::UseOnPokemon.add(:PARALYZEHEAL, proc { |item, qty, pkmn, scene| if pkmn.fainted? || pkmn.status != :PARALYSIS scene.pbDisplay(_INTL("It won't have any effect.")) @@ -531,8 +611,12 @@ ItemHandlers::UseOnPokemon.add(:PARALYZEHEAL, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:PARALYZEHEAL, :PARLYZHEAL, :CHERIBERRY) ItemHandlers::UseOnPokemon.copy(:PARALYZEHEAL, :PARLYZHEAL, :CHERIBERRY) +ItemHandlers::UsableOnPokemon.add(:ICEHEAL, proc { |item, pkmn| + next pkmn.able? && pkmn.status == :FROZEN +}) ItemHandlers::UseOnPokemon.add(:ICEHEAL, proc { |item, qty, pkmn, scene| if pkmn.fainted? || pkmn.status != :FROZEN scene.pbDisplay(_INTL("It won't have any effect.")) @@ -545,8 +629,12 @@ ItemHandlers::UseOnPokemon.add(:ICEHEAL, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:ICEHEAL, :ASPEARBERRY) ItemHandlers::UseOnPokemon.copy(:ICEHEAL, :ASPEARBERRY) +ItemHandlers::UsableOnPokemon.add(:FULLHEAL, proc { |item, pkmn| + next pkmn.able? && pkmn.status != :NONE +}) ItemHandlers::UseOnPokemon.add(:FULLHEAL, proc { |item, qty, pkmn, scene| if pkmn.fainted? || pkmn.status == :NONE scene.pbDisplay(_INTL("It won't have any effect.")) @@ -559,12 +647,25 @@ ItemHandlers::UseOnPokemon.add(:FULLHEAL, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:FULLHEAL, + :LAVACOOKIE, :OLDGATEAU, :CASTELIACONE, + :LUMIOSEGALETTE, :SHALOURSABLE, :BIGMALASADA, + :PEWTERCRUNCHIES, :LUMBERRY) ItemHandlers::UseOnPokemon.copy(:FULLHEAL, :LAVACOOKIE, :OLDGATEAU, :CASTELIACONE, :LUMIOSEGALETTE, :SHALOURSABLE, :BIGMALASADA, :PEWTERCRUNCHIES, :LUMBERRY) -ItemHandlers::UseOnPokemon.copy(:FULLHEAL, :RAGECANDYBAR) if Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS +if Settings::RAGE_CANDY_BAR_CURES_STATUS_PROBLEMS + ItemHandlers::UsableOnPokemon.copy(:FULLHEAL, :RAGECANDYBAR) + ItemHandlers::UseOnPokemon.copy(:FULLHEAL, :RAGECANDYBAR) +end + +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:FULLRESTORE, proc { |item, pkmn| + next pkmn.able? && (pkmn.hp < pkmn.totalhp || pkmn.status != :NONE) +}) ItemHandlers::UseOnPokemon.add(:FULLRESTORE, proc { |item, qty, pkmn, scene| if pkmn.fainted? || (pkmn.hp == pkmn.totalhp && pkmn.status == :NONE) scene.pbDisplay(_INTL("It won't have any effect.")) @@ -582,6 +683,11 @@ ItemHandlers::UseOnPokemon.add(:FULLRESTORE, proc { |item, qty, pkmn, scene| next true }) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:REVIVE, proc { |item, pkmn| + next pkmn.fainted? +}) ItemHandlers::UseOnPokemon.add(:REVIVE, proc { |item, qty, pkmn, scene| if !pkmn.fainted? scene.pbDisplay(_INTL("It won't have any effect.")) @@ -596,6 +702,7 @@ ItemHandlers::UseOnPokemon.add(:REVIVE, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:REVIVE, :MAXREVIVE) ItemHandlers::UseOnPokemon.add(:MAXREVIVE, proc { |item, qty, pkmn, scene| if !pkmn.fainted? scene.pbDisplay(_INTL("It won't have any effect.")) @@ -609,8 +716,14 @@ ItemHandlers::UseOnPokemon.add(:MAXREVIVE, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:MAXREVIVE, :MAXHONEY) ItemHandlers::UseOnPokemon.copy(:MAXREVIVE, :MAXHONEY) +ItemHandlers::UsableOnPokemon.copy(:REVIVE, :SACREDASH) + +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.copy(:POTION, :ENERGYPOWDER) ItemHandlers::UseOnPokemon.add(:ENERGYPOWDER, proc { |item, qty, pkmn, scene| if pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 60 : 50, scene) pkmn.changeHappiness("powder") @@ -619,6 +732,7 @@ ItemHandlers::UseOnPokemon.add(:ENERGYPOWDER, proc { |item, qty, pkmn, scene| next false }) +ItemHandlers::UsableOnPokemon.copy(:POTION, :ENERGYROOT) ItemHandlers::UseOnPokemon.add(:ENERGYROOT, proc { |item, qty, pkmn, scene| if pbHPItem(pkmn, (Settings::REBALANCED_HEALING_ITEM_AMOUNTS) ? 120 : 200, scene) pkmn.changeHappiness("energyroot") @@ -627,6 +741,7 @@ ItemHandlers::UseOnPokemon.add(:ENERGYROOT, proc { |item, qty, pkmn, scene| next false }) +ItemHandlers::UsableOnPokemon.copy(:FULLHEAL, :HEALPOWDER) ItemHandlers::UseOnPokemon.add(:HEALPOWDER, proc { |item, qty, pkmn, scene| if pkmn.fainted? || pkmn.status == :NONE scene.pbDisplay(_INTL("It won't have any effect.")) @@ -640,6 +755,7 @@ ItemHandlers::UseOnPokemon.add(:HEALPOWDER, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:REVIVE, :REVIVALHERB) ItemHandlers::UseOnPokemon.add(:REVIVALHERB, proc { |item, qty, pkmn, scene| if !pkmn.fainted? scene.pbDisplay(_INTL("It won't have any effect.")) @@ -654,6 +770,11 @@ ItemHandlers::UseOnPokemon.add(:REVIVALHERB, proc { |item, qty, pkmn, scene| next true }) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:ETHER, proc { |item, pkmn| + next pkmn.moves.any? { |mov| mov.total_pp > 0 && mov.pp < mov.total_pp } +}) ItemHandlers::UseOnPokemon.add(:ETHER, proc { |item, qty, pkmn, scene| move = scene.pbChooseMove(pkmn, _INTL("Restore which move?")) next false if move < 0 @@ -666,8 +787,10 @@ ItemHandlers::UseOnPokemon.add(:ETHER, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:ETHER, :LEPPABERRY) ItemHandlers::UseOnPokemon.copy(:ETHER, :LEPPABERRY) +ItemHandlers::UsableOnPokemon.copy(:ETHER, :MAXETHER) ItemHandlers::UseOnPokemon.add(:MAXETHER, proc { |item, qty, pkmn, scene| move = scene.pbChooseMove(pkmn, _INTL("Restore which move?")) next false if move < 0 @@ -680,6 +803,7 @@ ItemHandlers::UseOnPokemon.add(:MAXETHER, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:ETHER, :ELIXIR) ItemHandlers::UseOnPokemon.add(:ELIXIR, proc { |item, qty, pkmn, scene| pprestored = 0 pkmn.moves.length.times do |i| @@ -694,6 +818,7 @@ ItemHandlers::UseOnPokemon.add(:ELIXIR, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:ETHER, :MAXELIXIR) ItemHandlers::UseOnPokemon.add(:MAXELIXIR, proc { |item, qty, pkmn, scene| pprestored = 0 pkmn.moves.length.times do |i| @@ -708,6 +833,11 @@ ItemHandlers::UseOnPokemon.add(:MAXELIXIR, proc { |item, qty, pkmn, scene| next true }) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:PPUP, proc { |item, pkmn| + next pkmn.moves.any? { |mov| mov.ppup < 3 } +}) ItemHandlers::UseOnPokemon.add(:PPUP, proc { |item, qty, pkmn, scene| move = scene.pbChooseMove(pkmn, _INTL("Boost PP of which move?")) next false if move < 0 @@ -722,6 +852,7 @@ ItemHandlers::UseOnPokemon.add(:PPUP, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:PPUP, :PPMAX) ItemHandlers::UseOnPokemon.add(:PPMAX, proc { |item, qty, pkmn, scene| move = scene.pbChooseMove(pkmn, _INTL("Boost PP of which move?")) next false if move < 0 @@ -736,150 +867,171 @@ ItemHandlers::UseOnPokemon.add(:PPMAX, proc { |item, qty, pkmn, scene| next true }) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:HPUP, proc { |item, pkmn| + next pkmn.ev[:HP] < (Settings::NO_VITAMIN_EV_CAP ? Pokemon::EV_STAT_LIMIT : 100) +}) ItemHandlers::UseOnPokemonMaximum.add(:HPUP, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:HP, 10, pkmn, Settings::NO_VITAMIN_EV_CAP) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:HPUP, :HEALTHMOCHI) - ItemHandlers::UseOnPokemon.add(:HPUP, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:HP, 10, qty, pkmn, "vitamin", scene, Settings::NO_VITAMIN_EV_CAP) }) +ItemHandlers::UsableOnPokemon.copy(:HPUP, :HEALTHMOCHI) +ItemHandlers::UseOnPokemonMaximum.copy(:HPUP, :HEALTHMOCHI) ItemHandlers::UseOnPokemon.copy(:HPUP, :HEALTHMOCHI) +ItemHandlers::UsableOnPokemon.add(:PROTEIN, proc { |item, pkmn| + next pkmn.ev[:ATTACK] < (Settings::NO_VITAMIN_EV_CAP ? Pokemon::EV_STAT_LIMIT : 100) +}) ItemHandlers::UseOnPokemonMaximum.add(:PROTEIN, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:ATTACK, 10, pkmn, Settings::NO_VITAMIN_EV_CAP) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:PROTEIN, :MUSCLEMOCHI) - ItemHandlers::UseOnPokemon.add(:PROTEIN, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:ATTACK, 10, qty, pkmn, "vitamin", scene, Settings::NO_VITAMIN_EV_CAP) }) +ItemHandlers::UsableOnPokemon.copy(:PROTEIN, :MUSCLEMOCHI) +ItemHandlers::UseOnPokemonMaximum.copy(:PROTEIN, :MUSCLEMOCHI) ItemHandlers::UseOnPokemon.copy(:PROTEIN, :MUSCLEMOCHI) +ItemHandlers::UsableOnPokemon.add(:IRON, proc { |item, pkmn| + next pkmn.ev[:DEFENSE] < (Settings::NO_VITAMIN_EV_CAP ? Pokemon::EV_STAT_LIMIT : 100) +}) ItemHandlers::UseOnPokemonMaximum.add(:IRON, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:DEFENSE, 10, pkmn, Settings::NO_VITAMIN_EV_CAP) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:IRON, :RESISTMOCHI) - ItemHandlers::UseOnPokemon.add(:IRON, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:DEFENSE, 10, qty, pkmn, "vitamin", scene, Settings::NO_VITAMIN_EV_CAP) }) +ItemHandlers::UsableOnPokemon.copy(:IRON, :RESISTMOCHI) +ItemHandlers::UseOnPokemonMaximum.copy(:IRON, :RESISTMOCHI) ItemHandlers::UseOnPokemon.copy(:IRON, :RESISTMOCHI) +ItemHandlers::UsableOnPokemon.add(:CALCIUM, proc { |item, pkmn| + next pkmn.ev[:SPECIAL_ATTACK] < (Settings::NO_VITAMIN_EV_CAP ? Pokemon::EV_STAT_LIMIT : 100) +}) ItemHandlers::UseOnPokemonMaximum.add(:CALCIUM, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:SPECIAL_ATTACK, 10, pkmn, Settings::NO_VITAMIN_EV_CAP) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:CALCIUM, :GENIUSMOCHI) - ItemHandlers::UseOnPokemon.add(:CALCIUM, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:SPECIAL_ATTACK, 10, qty, pkmn, "vitamin", scene, Settings::NO_VITAMIN_EV_CAP) }) +ItemHandlers::UsableOnPokemon.copy(:CALCIUM, :GENIUSMOCHI) +ItemHandlers::UseOnPokemonMaximum.copy(:CALCIUM, :GENIUSMOCHI) ItemHandlers::UseOnPokemon.copy(:CALCIUM, :GENIUSMOCHI) +ItemHandlers::UsableOnPokemon.add(:ZINC, proc { |item, pkmn| + next pkmn.ev[:SPECIAL_DEFENSE] < (Settings::NO_VITAMIN_EV_CAP ? Pokemon::EV_STAT_LIMIT : 100) +}) ItemHandlers::UseOnPokemonMaximum.add(:ZINC, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:SPECIAL_DEFENSE, 10, pkmn, Settings::NO_VITAMIN_EV_CAP) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:ZINC, :CLEVERMOCHI) - ItemHandlers::UseOnPokemon.add(:ZINC, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:SPECIAL_DEFENSE, 10, qty, pkmn, "vitamin", scene, Settings::NO_VITAMIN_EV_CAP) }) +ItemHandlers::UsableOnPokemon.copy(:ZINC, :CLEVERMOCHI) +ItemHandlers::UseOnPokemonMaximum.copy(:ZINC, :CLEVERMOCHI) ItemHandlers::UseOnPokemon.copy(:ZINC, :CLEVERMOCHI) +ItemHandlers::UsableOnPokemon.add(:CARBOS, proc { |item, pkmn| + next pkmn.ev[:SPEED] < (Settings::NO_VITAMIN_EV_CAP ? Pokemon::EV_STAT_LIMIT : 100) +}) ItemHandlers::UseOnPokemonMaximum.add(:CARBOS, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:SPEED, 10, pkmn, Settings::NO_VITAMIN_EV_CAP) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:CARBOS, :SWIFTMOCHI) - ItemHandlers::UseOnPokemon.add(:CARBOS, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:SPEED, 10, qty, pkmn, "vitamin", scene, Settings::NO_VITAMIN_EV_CAP) }) +ItemHandlers::UsableOnPokemon.copy(:CARBOS, :SWIFTMOCHI) +ItemHandlers::UseOnPokemonMaximum.copy(:CARBOS, :SWIFTMOCHI) ItemHandlers::UseOnPokemon.copy(:CARBOS, :SWIFTMOCHI) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.copy(:HPUP, :HEALTHFEATHER) ItemHandlers::UseOnPokemonMaximum.add(:HEALTHFEATHER, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:HP, 1, pkmn, true) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:HEALTHFEATHER, :HEALTHWING) - ItemHandlers::UseOnPokemon.add(:HEALTHFEATHER, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:HP, 1, qty, pkmn, "wing", scene, true) }) +ItemHandlers::UsableOnPokemon.copy(:HEALTHFEATHER, :HEALTHWING) +ItemHandlers::UseOnPokemonMaximum.copy(:HEALTHFEATHER, :HEALTHWING) ItemHandlers::UseOnPokemon.copy(:HEALTHFEATHER, :HEALTHWING) +ItemHandlers::UsableOnPokemon.copy(:PROTEIN, :MUSCLEFEATHER) ItemHandlers::UseOnPokemonMaximum.add(:MUSCLEFEATHER, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:ATTACK, 1, pkmn, true) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:MUSCLEFEATHER, :MUSCLEWING) - ItemHandlers::UseOnPokemon.add(:MUSCLEFEATHER, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:ATTACK, 1, qty, pkmn, "wing", scene, true) }) +ItemHandlers::UsableOnPokemon.copy(:MUSCLEFEATHER, :MUSCLEWING) +ItemHandlers::UseOnPokemonMaximum.copy(:MUSCLEFEATHER, :MUSCLEWING) ItemHandlers::UseOnPokemon.copy(:MUSCLEFEATHER, :MUSCLEWING) +ItemHandlers::UsableOnPokemon.copy(:IRON, :RESISTFEATHER) ItemHandlers::UseOnPokemonMaximum.add(:RESISTFEATHER, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:DEFENSE, 1, pkmn, true) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:RESISTFEATHER, :RESISTWING) - ItemHandlers::UseOnPokemon.add(:RESISTFEATHER, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:DEFENSE, 1, qty, pkmn, "wing", scene, true) }) +ItemHandlers::UsableOnPokemon.copy(:RESISTFEATHER, :RESISTWING) +ItemHandlers::UseOnPokemonMaximum.copy(:RESISTFEATHER, :RESISTWING) ItemHandlers::UseOnPokemon.copy(:RESISTFEATHER, :RESISTWING) +ItemHandlers::UsableOnPokemon.copy(:CALCIUM, :GENIUSFEATHER) ItemHandlers::UseOnPokemonMaximum.add(:GENIUSFEATHER, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:SPECIAL_ATTACK, 1, pkmn, true) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:GENIUSFEATHER, :GENIUSWING) - ItemHandlers::UseOnPokemon.add(:GENIUSFEATHER, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:SPECIAL_ATTACK, 1, qty, pkmn, "wing", scene, true) }) +ItemHandlers::UsableOnPokemon.copy(:GENIUSFEATHER, :GENIUSWING) +ItemHandlers::UseOnPokemonMaximum.copy(:GENIUSFEATHER, :GENIUSWING) ItemHandlers::UseOnPokemon.copy(:GENIUSFEATHER, :GENIUSWING) +ItemHandlers::UsableOnPokemon.copy(:ZINC, :CLEVERFEATHER) ItemHandlers::UseOnPokemonMaximum.add(:CLEVERFEATHER, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:SPECIAL_DEFENSE, 1, pkmn, true) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:CLEVERFEATHER, :CLEVERWING) - ItemHandlers::UseOnPokemon.add(:CLEVERFEATHER, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:SPECIAL_DEFENSE, 1, qty, pkmn, "wing", scene, true) }) +ItemHandlers::UsableOnPokemon.copy(:CLEVERFEATHER, :CLEVERWING) +ItemHandlers::UseOnPokemonMaximum.copy(:CLEVERFEATHER, :CLEVERWING) ItemHandlers::UseOnPokemon.copy(:CLEVERFEATHER, :CLEVERWING) +ItemHandlers::UsableOnPokemon.copy(:CARBOS, :SWIFTFEATHER) ItemHandlers::UseOnPokemonMaximum.add(:SWIFTFEATHER, proc { |item, pkmn| next pbMaxUsesOfEVRaisingItem(:SPEED, 1, pkmn, true) }) - -ItemHandlers::UseOnPokemonMaximum.copy(:SWIFTFEATHER, :SWIFTWING) - ItemHandlers::UseOnPokemon.add(:SWIFTFEATHER, proc { |item, qty, pkmn, scene| next pbUseEVRaisingItem(:SPEED, 1, qty, pkmn, "wing", scene, true) }) +ItemHandlers::UsableOnPokemon.copy(:SWIFTFEATHER, :SWIFTWING) +ItemHandlers::UseOnPokemonMaximum.copy(:SWIFTFEATHER, :SWIFTWING) ItemHandlers::UseOnPokemon.copy(:SWIFTFEATHER, :SWIFTWING) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:FRESHSTARTMOCHI, proc { |item, pkmn| + next pkmn.ev.any? { |stat, value| value > 0 } +}) ItemHandlers::UseOnPokemon.add(:FRESHSTARTMOCHI, proc { |item, qty, pkmn, scene| if !pkmn.ev.any? { |stat, value| value > 0 } scene.pbDisplay(_INTL("It won't have any effect.")) @@ -890,94 +1042,163 @@ ItemHandlers::UseOnPokemon.add(:FRESHSTARTMOCHI, proc { |item, qty, pkmn, scene| next true }) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:LONELYMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :LONELY +}) ItemHandlers::UseOnPokemon.add(:LONELYMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:LONELY, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:ADAMANTMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :ADAMANT +}) ItemHandlers::UseOnPokemon.add(:ADAMANTMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:ADAMANT, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:NAUGHTYMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :NAUGHTY +}) ItemHandlers::UseOnPokemon.add(:NAUGHTYMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:NAUGHTY, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:BRAVEMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :BRAVE +}) ItemHandlers::UseOnPokemon.add(:BRAVEMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:BRAVE, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:BOLDMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :BOLD +}) ItemHandlers::UseOnPokemon.add(:BOLDMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:BOLD, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:IMPISHMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :IMPISH +}) ItemHandlers::UseOnPokemon.add(:IMPISHMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:IMPISH, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:LAXMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :LAX +}) ItemHandlers::UseOnPokemon.add(:LAXMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:LAX, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:RELAXEDMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :RELAXED +}) ItemHandlers::UseOnPokemon.add(:RELAXEDMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:RELAXED, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:MODESTMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :MODEST +}) ItemHandlers::UseOnPokemon.add(:MODESTMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:MODEST, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:MILDMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :MILD +}) ItemHandlers::UseOnPokemon.add(:MILDMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:MILD, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:RASHMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :RASH +}) ItemHandlers::UseOnPokemon.add(:RASHMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:RASH, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:QUIETMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :QUIET +}) ItemHandlers::UseOnPokemon.add(:QUIETMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:QUIET, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:CALMMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :CALM +}) ItemHandlers::UseOnPokemon.add(:CALMMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:CALM, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:GENTLEMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :GENTLE +}) ItemHandlers::UseOnPokemon.add(:GENTLEMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:GENTLE, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:CAREFULMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :CAREFUL +}) ItemHandlers::UseOnPokemon.add(:CAREFULMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:CAREFUL, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:SASSYMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :SASSY +}) ItemHandlers::UseOnPokemon.add(:SASSYMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:SASSY, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:TIMIDMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :TIMID +}) ItemHandlers::UseOnPokemon.add(:TIMIDMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:TIMID, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:HASTYMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :HASTY +}) ItemHandlers::UseOnPokemon.add(:HASTYMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:HASTY, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:JOLLYMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :JOLLY +}) ItemHandlers::UseOnPokemon.add(:JOLLYMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:JOLLY, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:NAIVEMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :NAIVE +}) ItemHandlers::UseOnPokemon.add(:NAIVEMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:NAIVE, item, pkmn, scene) }) +ItemHandlers::UsableOnPokemon.add(:SERIOUSMINT, proc { |item, pkmn| + next pkmn.nature_for_stats != :SERIOUS +}) ItemHandlers::UseOnPokemon.add(:SERIOUSMINT, proc { |item, qty, pkmn, scene| pbNatureChangingMint(:SERIOUS, item, pkmn, scene) }) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:RARECANDY, proc { |item, pkmn| + next pkmn.level < GameData::GrowthRate.max_level +}) ItemHandlers::UseOnPokemonMaximum.add(:RARECANDY, proc { |item, pkmn| next GameData::GrowthRate.max_level - pkmn.level }) - ItemHandlers::UseOnPokemon.add(:RARECANDY, proc { |item, qty, pkmn, scene| if pkmn.shadowPokemon? scene.pbDisplay(_INTL("It won't have any effect.")) @@ -995,7 +1216,7 @@ ItemHandlers::UseOnPokemon.add(:RARECANDY, proc { |item, qty, pkmn, scene| evo.pbStartScreen(pkmn, new_species) evo.pbEvolution evo.pbEndScreen - scene.pbRefresh if scene.is_a?(PokemonPartyScreen) + scene.refresh if scene.is_a?(UI::Party) end next true end @@ -1006,55 +1227,59 @@ ItemHandlers::UseOnPokemon.add(:RARECANDY, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:RARECANDY, :EXPCANDYXS) ItemHandlers::UseOnPokemonMaximum.add(:EXPCANDYXS, proc { |item, pkmn| gain_amount = 100 next ((pkmn.growth_rate.maximum_exp - pkmn.exp) / gain_amount.to_f).ceil }) - ItemHandlers::UseOnPokemon.add(:EXPCANDYXS, proc { |item, qty, pkmn, scene| next pbGainExpFromExpCandy(pkmn, 100, qty, scene) }) +ItemHandlers::UsableOnPokemon.copy(:RARECANDY, :EXPCANDYS) ItemHandlers::UseOnPokemonMaximum.add(:EXPCANDYS, proc { |item, pkmn| gain_amount = 800 next ((pkmn.growth_rate.maximum_exp - pkmn.exp) / gain_amount.to_f).ceil }) - ItemHandlers::UseOnPokemon.add(:EXPCANDYS, proc { |item, qty, pkmn, scene| next pbGainExpFromExpCandy(pkmn, 800, qty, scene) }) +ItemHandlers::UsableOnPokemon.copy(:RARECANDY, :EXPCANDYM) ItemHandlers::UseOnPokemonMaximum.add(:EXPCANDYM, proc { |item, pkmn| gain_amount = 3_000 next ((pkmn.growth_rate.maximum_exp - pkmn.exp) / gain_amount.to_f).ceil }) - ItemHandlers::UseOnPokemon.add(:EXPCANDYM, proc { |item, qty, pkmn, scene| next pbGainExpFromExpCandy(pkmn, 3_000, qty, scene) }) +ItemHandlers::UsableOnPokemon.copy(:RARECANDY, :EXPCANDYL) ItemHandlers::UseOnPokemonMaximum.add(:EXPCANDYL, proc { |item, pkmn| gain_amount = 10_000 next ((pkmn.growth_rate.maximum_exp - pkmn.exp) / gain_amount.to_f).ceil }) - ItemHandlers::UseOnPokemon.add(:EXPCANDYL, proc { |item, qty, pkmn, scene| next pbGainExpFromExpCandy(pkmn, 10_000, qty, scene) }) +ItemHandlers::UsableOnPokemon.copy(:RARECANDY, :EXPCANDYXL) ItemHandlers::UseOnPokemonMaximum.add(:EXPCANDYXL, proc { |item, pkmn| gain_amount = 30_000 next ((pkmn.growth_rate.maximum_exp - pkmn.exp) / gain_amount.to_f).ceil }) - ItemHandlers::UseOnPokemon.add(:EXPCANDYXL, proc { |item, qty, pkmn, scene| next pbGainExpFromExpCandy(pkmn, 30_000, qty, scene) }) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:POMEGBERRY, proc { |item, pkmn| + next pkmn.happiness < 255 || pkmn.ev[:HP] > 0 +}) ItemHandlers::UseOnPokemonMaximum.add(:POMEGBERRY, proc { |item, pkmn| next pbMaxUsesOfEVLoweringBerry(:HP, pkmn) }) - ItemHandlers::UseOnPokemon.add(:POMEGBERRY, proc { |item, qty, pkmn, scene| next pbRaiseHappinessAndLowerEV( pkmn, scene, :HP, qty, [ @@ -1065,10 +1290,12 @@ ItemHandlers::UseOnPokemon.add(:POMEGBERRY, proc { |item, qty, pkmn, scene| ) }) +ItemHandlers::UsableOnPokemon.add(:KELPSYBERRY, proc { |item, pkmn| + next pkmn.happiness < 255 || pkmn.ev[:ATTACK] > 0 +}) ItemHandlers::UseOnPokemonMaximum.add(:KELPSYBERRY, proc { |item, pkmn| next pbMaxUsesOfEVLoweringBerry(:ATTACK, pkmn) }) - ItemHandlers::UseOnPokemon.add(:KELPSYBERRY, proc { |item, qty, pkmn, scene| next pbRaiseHappinessAndLowerEV( pkmn, scene, :ATTACK, qty, [ @@ -1079,10 +1306,12 @@ ItemHandlers::UseOnPokemon.add(:KELPSYBERRY, proc { |item, qty, pkmn, scene| ) }) +ItemHandlers::UsableOnPokemon.add(:QUALOTBERRY, proc { |item, pkmn| + next pkmn.happiness < 255 || pkmn.ev[:DEFENSE] > 0 +}) ItemHandlers::UseOnPokemonMaximum.add(:QUALOTBERRY, proc { |item, pkmn| next pbMaxUsesOfEVLoweringBerry(:DEFENSE, pkmn) }) - ItemHandlers::UseOnPokemon.add(:QUALOTBERRY, proc { |item, qty, pkmn, scene| next pbRaiseHappinessAndLowerEV( pkmn, scene, :DEFENSE, qty, [ @@ -1093,10 +1322,12 @@ ItemHandlers::UseOnPokemon.add(:QUALOTBERRY, proc { |item, qty, pkmn, scene| ) }) +ItemHandlers::UsableOnPokemon.add(:HONDEWBERRY, proc { |item, pkmn| + next pkmn.happiness < 255 || pkmn.ev[:SPECIAL_ATTACK] > 0 +}) ItemHandlers::UseOnPokemonMaximum.add(:HONDEWBERRY, proc { |item, pkmn| next pbMaxUsesOfEVLoweringBerry(:SPECIAL_ATTACK, pkmn) }) - ItemHandlers::UseOnPokemon.add(:HONDEWBERRY, proc { |item, qty, pkmn, scene| next pbRaiseHappinessAndLowerEV( pkmn, scene, :SPECIAL_ATTACK, qty, [ @@ -1107,10 +1338,12 @@ ItemHandlers::UseOnPokemon.add(:HONDEWBERRY, proc { |item, qty, pkmn, scene| ) }) +ItemHandlers::UsableOnPokemon.add(:GREPABERRY, proc { |item, pkmn| + next pkmn.happiness < 255 || pkmn.ev[:SPECIAL_DEFENSE] > 0 +}) ItemHandlers::UseOnPokemonMaximum.add(:GREPABERRY, proc { |item, pkmn| next pbMaxUsesOfEVLoweringBerry(:SPECIAL_DEFENSE, pkmn) }) - ItemHandlers::UseOnPokemon.add(:GREPABERRY, proc { |item, qty, pkmn, scene| next pbRaiseHappinessAndLowerEV( pkmn, scene, :SPECIAL_DEFENSE, qty, [ @@ -1121,10 +1354,12 @@ ItemHandlers::UseOnPokemon.add(:GREPABERRY, proc { |item, qty, pkmn, scene| ) }) +ItemHandlers::UsableOnPokemon.add(:TAMATOBERRY, proc { |item, pkmn| + next pkmn.happiness < 255 || pkmn.ev[:SPEED] > 0 +}) ItemHandlers::UseOnPokemonMaximum.add(:TAMATOBERRY, proc { |item, pkmn| next pbMaxUsesOfEVLoweringBerry(:SPEED, pkmn) }) - ItemHandlers::UseOnPokemon.add(:TAMATOBERRY, proc { |item, qty, pkmn, scene| next pbRaiseHappinessAndLowerEV( pkmn, scene, :SPEED, qty, [ @@ -1135,6 +1370,18 @@ ItemHandlers::UseOnPokemon.add(:TAMATOBERRY, proc { |item, qty, pkmn, scene| ) }) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:ABILITYCAPSULE, proc { |item, pkmn| + abils = pkmn.getAbilityList + abil1 = nil + abil2 = nil + abils.each do |i| + abil1 = i[0] if i[1] == 0 + abil2 = i[0] if i[1] == 1 + end + next !abil1.nil? && !abil2.nil? && !pkmn.hasHiddenAbility? && !pkmn.isSpecies?(:ZYGARDE) +}) ItemHandlers::UseOnPokemon.add(:ABILITYCAPSULE, proc { |item, qty, pkmn, scene| if scene.pbConfirm(_INTL("Do you want to change {1}'s Ability?", pkmn.name)) abils = pkmn.getAbilityList @@ -1159,6 +1406,16 @@ ItemHandlers::UseOnPokemon.add(:ABILITYCAPSULE, proc { |item, qty, pkmn, scene| next false }) +ItemHandlers::UsableOnPokemon.add(:ABILITYPATCH, proc { |item, pkmn| + abils = pkmn.getAbilityList + new_ability_id = nil + if pkmn.hasHiddenAbility? + new_ability_id = 0 if Settings::MECHANICS_GENERATION >= 9 # First regular ability + else + abils.each { |a| new_ability_id = a[0] if a[1] == 2 } # Hidden ability + end + next !new_ability_id.nil? && !pkmn.isSpecies?(:ZYGARDE) +}) ItemHandlers::UseOnPokemon.add(:ABILITYPATCH, proc { |item, qty, pkmn, scene| if scene.pbConfirm(_INTL("Do you want to change {1}'s Ability?", pkmn.name)) abils = pkmn.getAbilityList @@ -1182,6 +1439,11 @@ ItemHandlers::UseOnPokemon.add(:ABILITYPATCH, proc { |item, qty, pkmn, scene| next false }) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:METEORITE, proc { |item, pkmn| + next pkmn.isSpecies?(:DEOXYS) && pkmn.able? +}) ItemHandlers::UseOnPokemon.add(:METEORITE, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:DEOXYS) scene.pbDisplay(_INTL("It had no effect.")) @@ -1198,6 +1460,9 @@ ItemHandlers::UseOnPokemon.add(:METEORITE, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:GRACIDEA, proc { |item, pkmn| + next pkmn.isSpecies?(:SHAYMIN) && pkmn.able? && pkmn.form == 0 && pkmn.status != :FROZEN && !PBDayNight.isNight? +}) ItemHandlers::UseOnPokemon.add(:GRACIDEA, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:SHAYMIN) || pkmn.form != 0 || pkmn.status == :FROZEN || PBDayNight.isNight? @@ -1214,6 +1479,9 @@ ItemHandlers::UseOnPokemon.add(:GRACIDEA, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:REDNECTAR, proc { |item, pkmn| + next pkmn.isSpecies?(:ORICORIO) && pkmn.able? && pkmn.form != 0 +}) ItemHandlers::UseOnPokemon.add(:REDNECTAR, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:ORICORIO) || pkmn.form == 0 scene.pbDisplay(_INTL("It had no effect.")) @@ -1229,6 +1497,9 @@ ItemHandlers::UseOnPokemon.add(:REDNECTAR, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:YELLOWNECTAR, proc { |item, pkmn| + next pkmn.isSpecies?(:ORICORIO) && pkmn.able? && pkmn.form != 1 +}) ItemHandlers::UseOnPokemon.add(:YELLOWNECTAR, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:ORICORIO) || pkmn.form == 1 scene.pbDisplay(_INTL("It had no effect.")) @@ -1244,6 +1515,9 @@ ItemHandlers::UseOnPokemon.add(:YELLOWNECTAR, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:PINKNECTAR, proc { |item, pkmn| + next pkmn.isSpecies?(:ORICORIO) && pkmn.able? && pkmn.form != 2 +}) ItemHandlers::UseOnPokemon.add(:PINKNECTAR, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:ORICORIO) || pkmn.form == 2 scene.pbDisplay(_INTL("It had no effect.")) @@ -1259,6 +1533,9 @@ ItemHandlers::UseOnPokemon.add(:PINKNECTAR, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:PURPLENECTAR, proc { |item, pkmn| + next pkmn.isSpecies?(:ORICORIO) && pkmn.able? && pkmn.form != 3 +}) ItemHandlers::UseOnPokemon.add(:PURPLENECTAR, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:ORICORIO) || pkmn.form == 3 scene.pbDisplay(_INTL("It had no effect.")) @@ -1274,6 +1551,13 @@ ItemHandlers::UseOnPokemon.add(:PURPLENECTAR, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:REVEALGLASS, proc { |item, pkmn| + next false if pkmn.fainted? + next pkmn.isSpecies?(:TORNADUS) || + pkmn.isSpecies?(:THUNDURUS) || + pkmn.isSpecies?(:LANDORUS) || + pkmn.isSpecies?(:ENAMORUS) +}) ItemHandlers::UseOnPokemon.add(:REVEALGLASS, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:TORNADUS) && !pkmn.isSpecies?(:THUNDURUS) && @@ -1293,6 +1577,9 @@ ItemHandlers::UseOnPokemon.add(:REVEALGLASS, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:PRISONBOTTLE, proc { |item, pkmn| + next pkmn.isSpecies?(:HOOPA) && pkmn.able? +}) ItemHandlers::UseOnPokemon.add(:PRISONBOTTLE, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:HOOPA) scene.pbDisplay(_INTL("It had no effect.")) @@ -1309,6 +1596,9 @@ ItemHandlers::UseOnPokemon.add(:PRISONBOTTLE, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:ROTOMCATALOG, proc { |item, pkmn| + next pkmn.isSpecies?(:ROTOM) && pkmn.able? +}) ItemHandlers::UseOnPokemon.add(:ROTOMCATALOG, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:ROTOM) scene.pbDisplay(_INTL("It had no effect.")) @@ -1340,6 +1630,9 @@ ItemHandlers::UseOnPokemon.add(:ROTOMCATALOG, proc { |item, qty, pkmn, scene| next false }) +ItemHandlers::UsableOnPokemon.add(:ZYGARDECUBE, proc { |item, pkmn| + next pkmn.isSpecies?(:ZYGARDE) && pkmn.able? +}) ItemHandlers::UseOnPokemon.add(:ZYGARDECUBE, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:ZYGARDE) scene.pbDisplay(_INTL("It had no effect.")) @@ -1368,6 +1661,11 @@ ItemHandlers::UseOnPokemon.add(:ZYGARDECUBE, proc { |item, qty, pkmn, scene| next false }) +#------------------------------------------------------------------------------- + +ItemHandlers::UsableOnPokemon.add(:DNASPLICERS, proc { |item, pkmn| + next pkmn.isSpecies?(:KYUREM) && pkmn.able? && pkmn.fused.nil? +}) ItemHandlers::UseOnPokemon.add(:DNASPLICERS, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:KYUREM) || !pkmn.fused.nil? scene.pbDisplay(_INTL("It had no effect.")) @@ -1406,6 +1704,9 @@ ItemHandlers::UseOnPokemon.add(:DNASPLICERS, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:DNASPLICERSUSED, proc { |item, pkmn| + next pkmn.isSpecies?(:KYUREM) && pkmn.able? && pkmn.fused && !$player.party_full? +}) ItemHandlers::UseOnPokemon.add(:DNASPLICERSUSED, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:KYUREM) || pkmn.fused.nil? scene.pbDisplay(_INTL("It had no effect.")) @@ -1428,6 +1729,9 @@ ItemHandlers::UseOnPokemon.add(:DNASPLICERSUSED, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:NSOLARIZER, proc { |item, pkmn| + next pkmn.isSpecies?(:NECROZMA) && pkmn.able? && pkmn.fused.nil? +}) ItemHandlers::UseOnPokemon.add(:NSOLARIZER, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:NECROZMA) || !pkmn.fused.nil? scene.pbDisplay(_INTL("It had no effect.")) @@ -1463,6 +1767,9 @@ ItemHandlers::UseOnPokemon.add(:NSOLARIZER, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:NSOLARIZERUSED, proc { |item, pkmn| + next pkmn.isSpecies?(:NECROZMA) && pkmn.able? && pkmn.form == 1 && pkmn.fused && !$player.party_full? +}) ItemHandlers::UseOnPokemon.add(:NSOLARIZERUSED, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:NECROZMA) || pkmn.form != 1 || pkmn.fused.nil? scene.pbDisplay(_INTL("It had no effect.")) @@ -1485,6 +1792,7 @@ ItemHandlers::UseOnPokemon.add(:NSOLARIZERUSED, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.copy(:NSOLARIZER, :NLUNARIZER) ItemHandlers::UseOnPokemon.add(:NLUNARIZER, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:NECROZMA) || !pkmn.fused.nil? scene.pbDisplay(_INTL("It had no effect.")) @@ -1520,6 +1828,9 @@ ItemHandlers::UseOnPokemon.add(:NLUNARIZER, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:NLUNARIZERUSED, proc { |item, pkmn| + next pkmn.isSpecies?(:NECROZMA) && pkmn.able? && pkmn.form == 2 && pkmn.fused && !$player.party_full? +}) ItemHandlers::UseOnPokemon.add(:NLUNARIZERUSED, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:NECROZMA) || pkmn.form != 2 || pkmn.fused.nil? scene.pbDisplay(_INTL("It had no effect.")) @@ -1542,6 +1853,9 @@ ItemHandlers::UseOnPokemon.add(:NLUNARIZERUSED, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:REINSOFUNITY, proc { |item, pkmn| + next pkmn.isSpecies?(:CALYREX) && pkmn.able? && pkmn.fused.nil? +}) ItemHandlers::UseOnPokemon.add(:REINSOFUNITY, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:CALYREX) || !pkmn.fused.nil? scene.pbDisplay(_INTL("It had no effect.")) @@ -1581,6 +1895,9 @@ ItemHandlers::UseOnPokemon.add(:REINSOFUNITY, proc { |item, qty, pkmn, scene| next true }) +ItemHandlers::UsableOnPokemon.add(:REINSOFUNITYUSED, proc { |item, pkmn| + next pkmn.isSpecies?(:CALYREX) && pkmn.able? && pkmn.fused && !$player.party_full? +}) ItemHandlers::UseOnPokemon.add(:REINSOFUNITYUSED, proc { |item, qty, pkmn, scene| if !pkmn.isSpecies?(:CALYREX) || pkmn.fused.nil? scene.pbDisplay(_INTL("It had no effect.")) diff --git a/Data/Scripts/013_Items/005_Item_PokeRadar.rb b/Data/Scripts/013_Items/005_Item_PokeRadar.rb index c26ac2209..3eebca97e 100644 --- a/Data/Scripts/013_Items/005_Item_PokeRadar.rb +++ b/Data/Scripts/013_Items/005_Item_PokeRadar.rb @@ -264,6 +264,6 @@ ItemHandlers::UseInField.add(:POKERADAR, proc { |item| next pbUsePokeRadar }) -ItemHandlers::UseFromBag.add(:POKERADAR, proc { |item| +ItemHandlers::UseFromBag.add(:POKERADAR, proc { |item, bag_screen| next (pbCanUsePokeRadar?) ? 2 : 0 }) diff --git a/Data/Scripts/013_Items/006_Item_Mail.rb b/Data/Scripts/013_Items/006_Item_Mail.rb index a667d5c29..84f4b1c50 100644 --- a/Data/Scripts/013_Items/006_Item_Mail.rb +++ b/Data/Scripts/013_Items/006_Item_Mail.rb @@ -101,7 +101,7 @@ def pbWriteMail(item, pkmn, pkmnid, scene) message = "" loop do message = pbMessageFreeText(_INTL("Please enter a message (max. 250 characters)."), - "", false, 250, Graphics.width) { scene.pbUpdate } + "", false, 250, Graphics.width) { scene.update } if message != "" # Store mail if a message was written poke1 = poke2 = nil @@ -120,6 +120,6 @@ def pbWriteMail(item, pkmn, pkmnid, scene) pbStoreMail(pkmn, item, message, poke1, poke2, poke3) return true end - return false if scene.pbConfirm(_INTL("Stop giving the Pokémon Mail?")) + return false if scene.show_confirm_message(_INTL("Stop giving the Pokémon Mail?")) end end diff --git a/Data/Scripts/013_Items/007_Item_Sprites.rb b/Data/Scripts/013_Items/007_Item_Sprites.rb index 2b9e8d090..95b38a5d5 100644 --- a/Data/Scripts/013_Items/007_Item_Sprites.rb +++ b/Data/Scripts/013_Items/007_Item_Sprites.rb @@ -120,7 +120,7 @@ class HeldItemIconSprite < Sprite self.y = y @pokemon = pokemon @item = nil - self.item = @pokemon.item_id + self.item = @pokemon&.item_id end def dispose @@ -130,7 +130,7 @@ class HeldItemIconSprite < Sprite def pokemon=(value) @pokemon = value - self.item = @pokemon.item_id + self.item = @pokemon&.item_id end def item=(value) @@ -148,7 +148,7 @@ class HeldItemIconSprite < Sprite def update super - self.item = @pokemon.item_id + self.item = @pokemon&.item_id if @animbitmap @animbitmap.update self.bitmap = @animbitmap.bitmap diff --git a/Data/Scripts/013_Items/008_PokemonBag.rb b/Data/Scripts/013_Items/008_PokemonBag.rb index 9a9857c3f..be76f83c5 100644 --- a/Data/Scripts/013_Items/008_PokemonBag.rb +++ b/Data/Scripts/013_Items/008_PokemonBag.rb @@ -8,38 +8,41 @@ class PokemonBag attr_reader :registered_items attr_reader :ready_menu_selection - def self.pocket_names - return Settings.bag_pocket_names - end + MAX_PER_SLOT = 999 def self.pocket_count - return self.pocket_names.length + return GameData::BagPocket.count end def initialize - @pockets = [] - (0..PokemonBag.pocket_count).each { |i| @pockets[i] = [] } + @pockets = {} + GameData::BagPocket.all_pockets.each { |pckt| @pockets[pckt] = [] } reset_last_selections @registered_items = [] @ready_menu_selection = [0, 0, 1] # Used by the Ready Menu to remember cursor positions end def reset_last_selections - @last_viewed_pocket = 1 - @last_pocket_selections ||= [] - (0..PokemonBag.pocket_count).each { |i| @last_pocket_selections[i] = 0 } + @last_viewed_pocket = GameData::BagPocket.all_pockets.first + @last_pocket_selections ||= {} + GameData::BagPocket.all_pockets.each { |pckt| @last_pocket_selections[pckt] = 0 } end def clear - @pockets.each { |pocket| pocket.clear } - (PokemonBag.pocket_count + 1).times { |i| @last_pocket_selections[i] = 0 } + @pockets.each_value { |pocket| pocket.clear } + @pockets.clear + @last_pocket_selections.clear + GameData::BagPocket.all_pockets.each do |pckt| + @pockets[pckt] = [] + @last_pocket_selections[pckt] = 0 + end end #----------------------------------------------------------------------------- # Gets the index of the current selected item in the pocket def last_viewed_index(pocket) - if pocket <= 0 || pocket > PokemonBag.pocket_count + if !GameData::BagPocket.exists?(pocket) raise ArgumentError.new(_INTL("Invalid pocket: {1}", pocket.inspect)) end return [@last_pocket_selections[pocket], @pockets[pocket].length].min || 0 @@ -47,7 +50,7 @@ class PokemonBag # Sets the index of the current selected item in the pocket def set_last_viewed_index(pocket, value) - if pocket <= 0 || pocket > PokemonBag.pocket_count + if !GameData::BagPocket.exists?(pocket) raise ArgumentError.new(_INTL("Invalid pocket: {1}", pocket.inspect)) end @last_pocket_selections[pocket] = value if value <= @pockets[pocket].length @@ -58,7 +61,7 @@ class PokemonBag def quantity(item) item_data = GameData::Item.try_get(item) return 0 if !item_data - pocket = item_data.pocket + pocket = item_data.bag_pocket return ItemStorageHelper.quantity(@pockets[pocket], item_data.id) end @@ -70,23 +73,23 @@ class PokemonBag def can_add?(item, qty = 1) item_data = GameData::Item.try_get(item) return false if !item_data - pocket = item_data.pocket + pocket = item_data.bag_pocket max_size = max_pocket_size(pocket) max_size = @pockets[pocket].length + 1 if max_size < 0 # Infinite size return ItemStorageHelper.can_add?( - @pockets[pocket], max_size, Settings::BAG_MAX_PER_SLOT, item_data.id, qty + @pockets[pocket], max_size, MAX_PER_SLOT, item_data.id, qty ) end def add(item, qty = 1) item_data = GameData::Item.try_get(item) return false if !item_data - pocket = item_data.pocket + pocket = item_data.bag_pocket max_size = max_pocket_size(pocket) max_size = @pockets[pocket].length + 1 if max_size < 0 # Infinite size ret = ItemStorageHelper.add(@pockets[pocket], - max_size, Settings::BAG_MAX_PER_SLOT, item_data.id, qty) - if ret && Settings::BAG_POCKET_AUTO_SORT[pocket - 1] + max_size, MAX_PER_SLOT, item_data.id, qty) + if ret && GameData::BagPocket.get(pocket).auto_sort @pockets[pocket].sort! { |a, b| GameData::Item.keys.index(a[0]) <=> GameData::Item.keys.index(b[0]) } end return ret @@ -103,7 +106,7 @@ class PokemonBag def remove(item, qty = 1) item_data = GameData::Item.try_get(item) return false if !item_data - pocket = item_data.pocket + pocket = item_data.bag_pocket return ItemStorageHelper.remove(@pockets[pocket], item_data.id, qty) end @@ -121,7 +124,7 @@ class PokemonBag old_item_data = GameData::Item.try_get(old_item) new_item_data = GameData::Item.try_get(new_item) return false if !old_item_data || !new_item_data - pocket = old_item_data.pocket + pocket = old_item_data.bag_pocket old_id = old_item_data.id new_id = new_item_data.id ret = false @@ -160,7 +163,7 @@ class PokemonBag private def max_pocket_size(pocket) - return Settings::BAG_MAX_POCKET_SIZE[pocket - 1] || -1 + return GameData::BagPocket.get(pocket).max_slots end end diff --git a/Data/Scripts/014_Pokemon/001_Pokemon-related/001_FormHandlers.rb b/Data/Scripts/014_Pokemon/001_Pokemon-related/001_FormHandlers.rb index e40478d39..6252f6893 100644 --- a/Data/Scripts/014_Pokemon/001_Pokemon-related/001_FormHandlers.rb +++ b/Data/Scripts/014_Pokemon/001_Pokemon-related/001_FormHandlers.rb @@ -893,5 +893,5 @@ MultipleForms.register(:QUILAVA, { MultipleForms.copy(:QUILAVA, :DEWOTT, :PETILIL, :RUFFLET, :GOOMY, :BERGMITE, :DARTRIX) -# Paldean forms +# Paldean forms. # None! diff --git a/Data/Scripts/014_Pokemon/001_Pokemon-related/003_Pokemon_Sprites.rb b/Data/Scripts/014_Pokemon/001_Pokemon-related/003_Pokemon_Sprites.rb index 12da4a054..acfe24fb6 100644 --- a/Data/Scripts/014_Pokemon/001_Pokemon-related/003_Pokemon_Sprites.rb +++ b/Data/Scripts/014_Pokemon/001_Pokemon-related/003_Pokemon_Sprites.rb @@ -123,6 +123,21 @@ class PokemonIconSprite < Sprite def pokemon=(value) @pokemon = value + # Check if the bitmap needs to be reloaded + new_values = nil + if @pokemon + new_values = { + :species => @pokemon.species, + :form => @pokemon.form, + :gender => @pokemon.gender, + :shiny => @pokemon.shiny?, + :shadow => @pokemon.shadowPokemon?, + :egg => @pokemon.egg? + } + end + return if @pokemon_values == new_values + @pokemon_values = new_values + # Reload the bitmap @animBitmap&.dispose @animBitmap = nil if !@pokemon diff --git a/Data/Scripts/014_Pokemon/001_Pokemon-related/004_PokemonStorage.rb b/Data/Scripts/014_Pokemon/001_Pokemon-related/004_PokemonStorage.rb index 2e8271da7..3c5e03df9 100644 --- a/Data/Scripts/014_Pokemon/001_Pokemon-related/004_PokemonStorage.rb +++ b/Data/Scripts/014_Pokemon/001_Pokemon-related/004_PokemonStorage.rb @@ -60,13 +60,13 @@ class PokemonStorage attr_accessor :currentBox attr_writer :unlockedWallpapers - BASICWALLPAPERQTY = 16 + BASIC_WALLPAPER_COUNT = 16 def initialize(maxBoxes = Settings::NUM_STORAGE_BOXES, maxPokemon = PokemonBox::BOX_SIZE) @boxes = [] maxBoxes.times do |i| @boxes[i] = PokemonBox.new(_INTL("Box {1}", i + 1), maxPokemon) - @boxes[i].background = i % BASICWALLPAPERQTY + @boxes[i].background = i % BASIC_WALLPAPER_COUNT end @currentBox = 0 @boxmode = -1 @@ -76,6 +76,11 @@ class PokemonStorage end end + # NOTE: These wallpaper names are shown in a list in the storage screen that + # is a fixed width. The names should be kept relatively short; longer + # names will get shrunk to fit the width of the list, and that looks bad. + # NOTE: The order these wallpapers are listed determines the number in their + # filenames. def allWallpapers return [ # Basic wallpapers @@ -85,9 +90,9 @@ class PokemonStorage _INTL("Poké Center"), _INTL("Machine"), _INTL("Checks"), _INTL("Simple"), # Special wallpapers _INTL("Space"), _INTL("Backyard"), _INTL("Nostalgic 1"), _INTL("Torchic"), - _INTL("Trio 1"), _INTL("PikaPika 1"), _INTL("Legend 1"), _INTL("Team Galactic 1"), + _INTL("Trio 1"), _INTL("PikaPika 1"), _INTL("Legend 1"), _INTL("Galactic 1"), _INTL("Distortion"), _INTL("Contest"), _INTL("Nostalgic 2"), _INTL("Croagunk"), - _INTL("Trio 2"), _INTL("PikaPika 2"), _INTL("Legend 2"), _INTL("Team Galactic 2"), + _INTL("Trio 2"), _INTL("PikaPika 2"), _INTL("Legend 2"), _INTL("Galactic 2"), _INTL("Heart"), _INTL("Soul"), _INTL("Big Brother"), _INTL("Pokéathlon"), _INTL("Trio 3"), _INTL("Spiky Pika"), _INTL("Kimono Girl"), _INTL("Revival") ] @@ -100,25 +105,22 @@ class PokemonStorage def isAvailableWallpaper?(i) @unlockedWallpapers = [] if !@unlockedWallpapers - return true if i < BASICWALLPAPERQTY + return true if i < BASIC_WALLPAPER_COUNT return true if @unlockedWallpapers[i] return false end def availableWallpapers - ret = [[], []] # Names, IDs - papers = allWallpapers @unlockedWallpapers = [] if !@unlockedWallpapers - papers.length.times do |i| - next if !isAvailableWallpaper?(i) - ret[0].push(papers[i]) - ret[1].push(i) + ret = {} + allWallpapers.each_with_index do |paper, i| + ret[i] = paper if isAvailableWallpaper?(i) end return ret end def party - $player.party + return $player.party end def party=(_value) diff --git a/Data/Scripts/014_Pokemon/001_Pokemon.rb b/Data/Scripts/014_Pokemon/001_Pokemon.rb index 962ce31fc..f5af20363 100644 --- a/Data/Scripts/014_Pokemon/001_Pokemon.rb +++ b/Data/Scripts/014_Pokemon/001_Pokemon.rb @@ -94,7 +94,7 @@ class Pokemon # Max EVs that a single stat can have EV_STAT_LIMIT = 252 # Maximum length a Pokémon's nickname can be - MAX_NAME_SIZE = 10 + MAX_NAME_SIZE = 12 # Maximum number of moves a Pokémon can know at once MAX_MOVES = 4 @@ -314,6 +314,21 @@ class Pokemon @ready_to_evolve = false end + #----------------------------------------------------------------------------- + # Stats. + #----------------------------------------------------------------------------- + def stat(id) + case id + when :HP then return @totalhp + when :ATTACK then return @attack + when :DEFENSE then return @defense + when :SPECIAL_ATTACK then return @spatk + when :SPECIAL_DEFENSE then return @spdef + when :SPEED then return @speed + end + return 0 + end + #----------------------------------------------------------------------------- # Types. #----------------------------------------------------------------------------- @@ -560,6 +575,7 @@ class Pokemon def item=(value) return if value && !GameData::Item.exists?(value) @item = (value) ? GameData::Item.get(value).id : value + @mail = nil if @item.nil? end # Returns whether this Pokémon is holding an item. If an item id is passed, @@ -593,6 +609,7 @@ class Pokemon raise ArgumentError, _INTL("Invalid value {1} given", mail.inspect) end @mail = mail + @item = mail&.item end #----------------------------------------------------------------------------- diff --git a/Data/Scripts/014_Pokemon/004_Pokemon_Move.rb b/Data/Scripts/014_Pokemon/004_Pokemon_Move.rb index 50c82c542..efbee7ffd 100644 --- a/Data/Scripts/014_Pokemon/004_Pokemon_Move.rb +++ b/Data/Scripts/014_Pokemon/004_Pokemon_Move.rb @@ -65,7 +65,7 @@ class Pokemon def display_type(pkmn); return GameData::Move.get(@id).display_type(pkmn, self); end def display_category(pkmn); return GameData::Move.get(@id).display_category(pkmn, self); end - def display_damage(pkmn); return GameData::Move.get(@id).display_damage(pkmn, self); end + def display_power(pkmn); return GameData::Move.get(@id).display_power(pkmn, self); end def display_accuracy(pkmn); return GameData::Move.get(@id).display_accuracy(pkmn, self); end end end diff --git a/Data/Scripts/014_Pokemon/005_Pokemon_Owner.rb b/Data/Scripts/014_Pokemon/005_Pokemon_Owner.rb index 08d4f9f6b..12b30930a 100644 --- a/Data/Scripts/014_Pokemon/005_Pokemon_Owner.rb +++ b/Data/Scripts/014_Pokemon/005_Pokemon_Owner.rb @@ -59,6 +59,14 @@ class Pokemon @gender = new_gender end + def male? + return @gender == 0 + end + + def female? + return @gender == 1 + end + # @param new_language [Integer] new owner language def language=(new_language) validate new_language => Integer diff --git a/Data/Scripts/016_UI/001_Non-interactive UI/001_UI_SplashesAndTitleScreen.rb b/Data/Scripts/016_UI/001_Non-interactive UI/001_UI_SplashesAndTitleScreen.rb index 03ac69b74..3dbbd0099 100644 --- a/Data/Scripts/016_UI/001_Non-interactive UI/001_UI_SplashesAndTitleScreen.rb +++ b/Data/Scripts/016_UI/001_Non-interactive UI/001_UI_SplashesAndTitleScreen.rb @@ -90,16 +90,7 @@ class IntroEventScene < EventScene def close_title_screen(scene, *args) fade_out_title_screen(scene) - sscene = PokemonLoad_Scene.new - sscreen = PokemonLoadScreen.new(sscene) - sscreen.pbStartLoadScreen - end - - def close_title_screen_delete(scene, *args) - fade_out_title_screen(scene) - sscene = PokemonLoad_Scene.new - sscreen = PokemonLoadScreen.new(sscene) - sscreen.pbStartDeleteScreen + UI::Load.new.main end def title_screen_update(scene, args) @@ -108,11 +99,6 @@ class IntroEventScene < EventScene @pic2.moveOpacity(TICKS_PER_ENTER_FLASH * 2 / 10, TICKS_PER_ENTER_FLASH * 4 / 10, 0) @pic2.moveOpacity(TICKS_PER_ENTER_FLASH * 6 / 10, TICKS_PER_ENTER_FLASH * 4 / 10, 255) end - if Input.press?(Input::DOWN) && - Input.press?(Input::BACK) && - Input.press?(Input::CTRL) - close_title_screen_delete(scene, args) - end end end diff --git a/Data/Scripts/016_UI/001_UI_PauseMenu.rb b/Data/Scripts/016_UI/001_UI_PauseMenu.rb deleted file mode 100644 index 48cc933da..000000000 --- a/Data/Scripts/016_UI/001_UI_PauseMenu.rb +++ /dev/null @@ -1,322 +0,0 @@ -#=============================================================================== -# -#=============================================================================== -class PokemonPauseMenu_Scene - def pbStartScene - @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) - @viewport.z = 99999 - @sprites = {} - @sprites["cmdwindow"] = Window_CommandPokemon.new([]) - @sprites["cmdwindow"].visible = false - @sprites["cmdwindow"].viewport = @viewport - @sprites["infowindow"] = Window_UnformattedTextPokemon.newWithSize("", 0, 0, 32, 32, @viewport) - @sprites["infowindow"].visible = false - @sprites["helpwindow"] = Window_UnformattedTextPokemon.newWithSize("", 0, 0, 32, 32, @viewport) - @sprites["helpwindow"].visible = false - @infostate = false - @helpstate = false - pbSEPlay("GUI menu open") - end - - def pbShowInfo(text) - @sprites["infowindow"].resizeToFit(text, Graphics.height) - @sprites["infowindow"].text = text - @sprites["infowindow"].visible = true - @infostate = true - end - - def pbShowHelp(text) - @sprites["helpwindow"].resizeToFit(text, Graphics.height) - @sprites["helpwindow"].text = text - @sprites["helpwindow"].visible = true - pbBottomLeft(@sprites["helpwindow"]) - @helpstate = true - end - - def pbShowMenu - @sprites["cmdwindow"].visible = true - @sprites["infowindow"].visible = @infostate - @sprites["helpwindow"].visible = @helpstate - end - - def pbHideMenu - @sprites["cmdwindow"].visible = false - @sprites["infowindow"].visible = false - @sprites["helpwindow"].visible = false - end - - def pbShowCommands(commands) - ret = -1 - cmdwindow = @sprites["cmdwindow"] - cmdwindow.commands = commands - cmdwindow.index = $game_temp.menu_last_choice - cmdwindow.resizeToFit(commands) - cmdwindow.x = Graphics.width - cmdwindow.width - cmdwindow.y = 0 - cmdwindow.visible = true - loop do - cmdwindow.update - Graphics.update - Input.update - pbUpdateSceneMap - if Input.trigger?(Input::BACK) || Input.trigger?(Input::ACTION) - ret = -1 - break - elsif Input.trigger?(Input::USE) - ret = cmdwindow.index - $game_temp.menu_last_choice = ret - break - end - end - return ret - end - - def pbEndScene - pbDisposeSpriteHash(@sprites) - @viewport.dispose - end - - def pbRefresh; end -end - -#=============================================================================== -# -#=============================================================================== -class PokemonPauseMenu - def initialize(scene) - @scene = scene - end - - def pbShowMenu - @scene.pbRefresh - @scene.pbShowMenu - end - - def pbShowInfo; end - - def pbStartPokemonMenu - if !$player - if $DEBUG - pbMessage(_INTL("The player trainer was not defined, so the pause menu can't be displayed.")) - pbMessage(_INTL("Please see the documentation to learn how to set up the trainer player.")) - end - return - end - @scene.pbStartScene - # Show extra info window if relevant - pbShowInfo - # Get all commands - command_list = [] - commands = [] - MenuHandlers.each_available(:pause_menu) do |option, hash, name| - command_list.push(name) - commands.push(hash) - end - # Main loop - end_scene = false - loop do - choice = @scene.pbShowCommands(command_list) - if choice < 0 - pbPlayCloseMenuSE - end_scene = true - break - end - break if commands[choice]["effect"].call(@scene) - end - @scene.pbEndScene if end_scene - end -end - -#=============================================================================== -# Pause menu commands. -#=============================================================================== - -MenuHandlers.add(:pause_menu, :pokedex, { - "name" => _INTL("Pokédex"), - "order" => 10, - "condition" => proc { next $player.has_pokedex && $player.pokedex.accessible_dexes.length > 0 }, - "effect" => proc { |menu| - pbPlayDecisionSE - if Settings::USE_CURRENT_REGION_DEX - pbFadeOutIn do - scene = PokemonPokedex_Scene.new - screen = PokemonPokedexScreen.new(scene) - screen.pbStartScreen - menu.pbRefresh - end - elsif $player.pokedex.accessible_dexes.length == 1 - $PokemonGlobal.pokedexDex = $player.pokedex.accessible_dexes[0] - pbFadeOutIn do - scene = PokemonPokedex_Scene.new - screen = PokemonPokedexScreen.new(scene) - screen.pbStartScreen - menu.pbRefresh - end - else - pbFadeOutIn do - scene = PokemonPokedexMenu_Scene.new - screen = PokemonPokedexMenuScreen.new(scene) - screen.pbStartScreen - menu.pbRefresh - end - end - next false - } -}) - -MenuHandlers.add(:pause_menu, :party, { - "name" => _INTL("Pokémon"), - "order" => 20, - "condition" => proc { next $player.party_count > 0 }, - "effect" => proc { |menu| - pbPlayDecisionSE - hidden_move = nil - pbFadeOutIn do - sscene = PokemonParty_Scene.new - sscreen = PokemonPartyScreen.new(sscene, $player.party) - hidden_move = sscreen.pbPokemonScreen - (hidden_move) ? menu.pbEndScene : menu.pbRefresh - end - next false if !hidden_move - $game_temp.in_menu = false - pbUseHiddenMove(hidden_move[0], hidden_move[1]) - next true - } -}) - -MenuHandlers.add(:pause_menu, :bag, { - "name" => _INTL("Bag"), - "order" => 30, - "condition" => proc { next !pbInBugContest? }, - "effect" => proc { |menu| - pbPlayDecisionSE - item = nil - pbFadeOutIn do - scene = PokemonBag_Scene.new - screen = PokemonBagScreen.new(scene, $bag) - item = screen.pbStartScreen - (item) ? menu.pbEndScene : menu.pbRefresh - end - next false if !item - $game_temp.in_menu = false - pbUseKeyItemInField(item) - next true - } -}) - -MenuHandlers.add(:pause_menu, :pokegear, { - "name" => _INTL("Pokégear"), - "order" => 40, - "condition" => proc { next $player.has_pokegear }, - "effect" => proc { |menu| - pbPlayDecisionSE - pbFadeOutIn do - scene = PokemonPokegear_Scene.new - screen = PokemonPokegearScreen.new(scene) - screen.pbStartScreen - ($game_temp.fly_destination) ? menu.pbEndScene : menu.pbRefresh - end - next pbFlyToNewLocation - } -}) - -MenuHandlers.add(:pause_menu, :town_map, { - "name" => _INTL("Town Map"), - "order" => 40, - "condition" => proc { next !$player.has_pokegear && $bag.has?(:TOWNMAP) }, - "effect" => proc { |menu| - pbPlayDecisionSE - pbFadeOutIn do - scene = PokemonRegionMap_Scene.new(-1, false) - screen = PokemonRegionMapScreen.new(scene) - ret = screen.pbStartScreen - $game_temp.fly_destination = ret if ret - ($game_temp.fly_destination) ? menu.pbEndScene : menu.pbRefresh - end - next pbFlyToNewLocation - } -}) - -MenuHandlers.add(:pause_menu, :trainer_card, { - "name" => proc { next $player.name }, - "order" => 50, - "effect" => proc { |menu| - pbPlayDecisionSE - pbFadeOutIn do - scene = PokemonTrainerCard_Scene.new - screen = PokemonTrainerCardScreen.new(scene) - screen.pbStartScreen - menu.pbRefresh - end - next false - } -}) - -MenuHandlers.add(:pause_menu, :save, { - "name" => _INTL("Save"), - "order" => 60, - "condition" => proc { - next $game_system && !$game_system.save_disabled && !pbInSafari? && !pbInBugContest? - }, - "effect" => proc { |menu| - menu.pbHideMenu - scene = PokemonSave_Scene.new - screen = PokemonSaveScreen.new(scene) - if screen.pbSaveScreen - menu.pbEndScene - next true - end - menu.pbRefresh - menu.pbShowMenu - next false - } -}) - -MenuHandlers.add(:pause_menu, :options, { - "name" => _INTL("Options"), - "order" => 70, - "effect" => proc { |menu| - pbPlayDecisionSE - pbFadeOutIn do - scene = PokemonOption_Scene.new - screen = PokemonOptionScreen.new(scene) - screen.pbStartScreen - pbUpdateSceneMap - menu.pbRefresh - end - next false - } -}) - -MenuHandlers.add(:pause_menu, :debug, { - "name" => _INTL("Debug"), - "order" => 80, - "condition" => proc { next $DEBUG }, - "effect" => proc { |menu| - pbPlayDecisionSE - pbFadeOutIn do - pbDebugMenu - menu.pbRefresh - end - next false - } -}) - -MenuHandlers.add(:pause_menu, :quit_game, { - "name" => _INTL("Quit Game"), - "order" => 90, - "effect" => proc { |menu| - menu.pbHideMenu - if pbConfirmMessage(_INTL("Are you sure you want to quit the game?")) - scene = PokemonSave_Scene.new - screen = PokemonSaveScreen.new(scene) - screen.pbSaveScreen - menu.pbEndScene - $scene = nil - next true - end - menu.pbRefresh - menu.pbShowMenu - next false - } -}) diff --git a/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb b/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb index c2b43b0ed..59bd0caa4 100644 --- a/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb +++ b/Data/Scripts/016_UI/004_UI_Pokedex_Entry.rb @@ -2,6 +2,13 @@ # #=============================================================================== class PokemonPokedexInfo_Scene + LEFT = 0 + TOP = 0 + RIGHT = 29 + BOTTOM = 19 + SQUARE_WIDTH = 16 + SQUARE_HEIGHT = 16 + def pbStartScene(dexlist, index, region) @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) @viewport.z = 99999 @@ -31,8 +38,8 @@ class PokemonPokedexInfo_Scene pbDrawImagePositions( @sprites["areamap"].bitmap, [["Graphics/UI/Town Map/#{hidden[4]}", - hidden[2] * PokemonRegionMap_Scene::SQUARE_WIDTH, - hidden[3] * PokemonRegionMap_Scene::SQUARE_HEIGHT]] + hidden[2] * SQUARE_WIDTH, + hidden[3] * SQUARE_HEIGHT]] ) end @sprites["areahighlight"] = BitmapSprite.new(Graphics.width, Graphics.height, @viewport) @@ -315,12 +322,12 @@ class PokemonPokedexInfo_Scene # defined point in town_map.txt, and which either have no Self Switch # controlling their visibility or whose Self Switch is ON) visible_points = [] - @mapdata.point.each do |loc| - next if loc[7] && !$game_switches[loc[7]] # Point is not visible - visible_points.push([loc[0], loc[1]]) + @mapdata.points.each do |loc| + next if loc[:switch] && !$game_switches[loc[:switch]] # Point is not visible + visible_points.push(loc[:position]) end # Find all points with a visible area for @species - town_map_width = 1 + PokemonRegionMap_Scene::RIGHT - PokemonRegionMap_Scene::LEFT + town_map_width = 1 + RIGHT - LEFT ret = [] GameData::Encounter.each_of_version($PokemonGlobal.encounter_version) do |enc_data| next if !pbFindEncounter(enc_data.types, @species) # Species isn't in encounter table @@ -362,9 +369,9 @@ class PokemonPokedexInfo_Scene # Draw coloured squares on each point of the Town Map with a nest pointcolor = Color.new(0, 248, 248) pointcolorhl = Color.new(192, 248, 248) - town_map_width = 1 + PokemonRegionMap_Scene::RIGHT - PokemonRegionMap_Scene::LEFT - sqwidth = PokemonRegionMap_Scene::SQUARE_WIDTH - sqheight = PokemonRegionMap_Scene::SQUARE_HEIGHT + town_map_width = 1 + RIGHT - LEFT + sqwidth = SQUARE_WIDTH + sqheight = SQUARE_HEIGHT points.length.times do |j| next if !points[j] x = (j % town_map_width) * sqwidth diff --git a/Data/Scripts/016_UI/008_UI_Pokegear.rb b/Data/Scripts/016_UI/008_UI_Pokegear.rb index 664fb93e9..37ef8b9e4 100644 --- a/Data/Scripts/016_UI/008_UI_Pokegear.rb +++ b/Data/Scripts/016_UI/008_UI_Pokegear.rb @@ -164,11 +164,10 @@ MenuHandlers.add(:pokegear_menu, :map, { "order" => 10, "effect" => proc { |menu| pbFadeOutIn do - scene = PokemonRegionMap_Scene.new(-1, false) - screen = PokemonRegionMapScreen.new(scene) - ret = screen.pbStartScreen - if ret - $game_temp.fly_destination = ret + town_map_screen = UI::TownMap.new + town_map_screen.main + if town_map_screen.result + $game_temp.fly_destination = town_map_screen.result menu.dispose next 99999 end diff --git a/Data/Scripts/016_UI/015_UI_Options.rb b/Data/Scripts/016_UI/015_UI_Options.rb index 3594e5db9..82d572f9a 100644 --- a/Data/Scripts/016_UI/015_UI_Options.rb +++ b/Data/Scripts/016_UI/015_UI_Options.rb @@ -392,7 +392,7 @@ MenuHandlers.add(:options_menu, :bgm_volume, { "set_proc" => proc { |value, scene| next if $PokemonSystem.bgmvolume == value $PokemonSystem.bgmvolume = value - next if scene.in_load_screen || $game_system.playing_bgm.nil? + next if scene.in_load_screen || !$game_system || $game_system.playing_bgm.nil? playingBGM = $game_system.getPlayingBGM $game_system.bgm_pause $game_system.bgm_resume(playingBGM) @@ -409,7 +409,7 @@ MenuHandlers.add(:options_menu, :se_volume, { "set_proc" => proc { |value, _scene| next if $PokemonSystem.sevolume == value $PokemonSystem.sevolume = value - if $game_system.playing_bgs + if $game_system && $game_system.playing_bgs $game_system.playing_bgs.volume = value playingBGS = $game_system.getPlayingBGS $game_system.bgs_pause diff --git a/Data/Scripts/016_UI/016_UI_ReadyMenu.rb b/Data/Scripts/016_UI/016_UI_ReadyMenu.rb index 82cee665c..8e3a15959 100644 --- a/Data/Scripts/016_UI/016_UI_ReadyMenu.rb +++ b/Data/Scripts/016_UI/016_UI_ReadyMenu.rb @@ -82,7 +82,7 @@ class ReadyMenuButton < Sprite textpos.push([_INTL(">99"), 230, 24, :right, Color.new(248, 248, 248), Color.new(40, 40, 40), :outline]) else - textpos.push([_INTL("x{1}", qty), 230, 24, :right, + textpos.push([_INTL("×{1}", qty), 230, 24, :right, Color.new(248, 248, 248), Color.new(40, 40, 40), :outline]) end end @@ -261,11 +261,11 @@ class PokemonReadyMenu user = $player.party[commands[0][command[1]][3]] if move == :FLY ret = nil - pbFadeOutInWithUpdate(99999, @scene.sprites) do + pbFadeOutInWithUpdate(@scene.sprites) do pbHideMenu - scene = PokemonRegionMap_Scene.new(-1, false) - screen = PokemonRegionMapScreen.new(scene) - ret = screen.pbStartFlyScreen + town_map_screen = UI::TownMap.new(mode: :fly) + town_map_screen.main + ret = town_map_screen.result pbShowMenu if !ret end if ret diff --git a/Data/Scripts/016_UI/018_UI_ItemStorage.rb b/Data/Scripts/016_UI/018_UI_ItemStorage.rb index a7f37d6aa..c507367c1 100644 --- a/Data/Scripts/016_UI/018_UI_ItemStorage.rb +++ b/Data/Scripts/016_UI/018_UI_ItemStorage.rb @@ -1,3 +1,5 @@ +# TODO: Could inherit from class UI::BagVisuals and just change some graphics. + #=============================================================================== # #=============================================================================== @@ -14,7 +16,6 @@ class Window_PokemonItemStorage < Window_DrawableCommand def initialize(bag, x, y, width, height) @bag = bag @sortIndex = -1 - @adapter = PokemonMartAdapter.new super(x, y, width, height) self.windowskin = nil end @@ -35,11 +36,11 @@ class Window_PokemonItemStorage < Window_DrawableCommand textpos.push([_INTL("CANCEL"), rect.x, rect.y, :left, self.baseColor, self.shadowColor]) else item = @bag[index][0] - itemname = @adapter.getDisplayName(item) + itemname = GameData::Item.get(item).display_name baseColor = (index == @sortIndex) ? Color.new(248, 24, 24) : self.baseColor textpos.push([itemname, rect.x, rect.y, :left, self.baseColor, self.shadowColor]) if GameData::Item.get(item).show_quantity? - qty = _ISPRINTF("x{1: 2d}", @bag[index][1]) + qty = _ISPRINTF("×{1: 2d}", @bag[index][1]) sizeQty = self.contents.text_size(qty).width xQty = rect.x + rect.width - sizeQty - 2 textpos.push([qty, xQty, rect.y, :left, baseColor, self.shadowColor]) @@ -76,7 +77,7 @@ class ItemStorage_Scene @sprites = {} @sprites["background"] = IconSprite.new(0, 0, @viewport) @sprites["background"].setBitmap("Graphics/UI/itemstorage_bg") - @sprites["icon"] = ItemIconSprite.new(50, 334, nil, @viewport) + @sprites["icon"] = ItemIconSprite.new(48, Graphics.height - 48, nil, @viewport) # Item list @sprites["itemwindow"] = Window_PokemonItemStorage.new(@bag, 98, 14, 334, 32 + (ITEMSVISIBLE * 32)) @sprites["itemwindow"].viewport = @viewport @@ -90,7 +91,7 @@ class ItemStorage_Scene @sprites["pocketwindow"].y = 16 pbSetNarrowFont(@sprites["pocketwindow"].bitmap) # Item description - @sprites["itemtextwindow"] = Window_UnformattedTextPokemon.newWithSize("", 84, 272, Graphics.width - 84, 128, @viewport) + @sprites["itemtextwindow"] = Window_UnformattedTextPokemon.newWithSize("", 80, 272, Graphics.width - 98, 128, @viewport) @sprites["itemtextwindow"].baseColor = ITEMTEXTBASECOLOR @sprites["itemtextwindow"].shadowColor = ITEMTEXTSHADOWCOLOR @sprites["itemtextwindow"].windowskin = nil @@ -190,6 +191,93 @@ class TossItemScene < ItemStorage_Scene end end +#=============================================================================== +# +#=============================================================================== +class ItemStorageScreen + def initialize(scene, bag) + @bag = bag + @scene = scene + end + + def pbDisplay(text) + @scene.pbDisplay(text) + end + + def pbConfirm(text) + return @scene.pbConfirm(text) + end + + # UI logic for withdrawing an item in the item storage screen. + def pbWithdrawItemScreen + if !$PokemonGlobal.pcItemStorage + $PokemonGlobal.pcItemStorage = PCItemStorage.new + end + storage = $PokemonGlobal.pcItemStorage + @scene.pbStartScene(storage) + loop do + item = @scene.pbChooseItem + break if !item + itm = GameData::Item.get(item) + qty = storage.quantity(item) + if qty > 1 && !itm.is_important? + qty = @scene.pbChooseNumber(_INTL("How many do you want to withdraw?"), qty) + end + next if qty <= 0 + if @bag.can_add?(item, qty) + if !storage.remove(item, qty) + raise "Can't delete items from storage" + end + if !@bag.add(item, qty) + raise "Can't withdraw items from storage" + end + @scene.pbRefresh + dispqty = (itm.is_important?) ? 1 : qty + itemname = (dispqty > 1) ? itm.portion_name_plural : itm.portion_name + pbDisplay(_INTL("Withdrew {1} {2}.", dispqty, itemname)) + else + pbDisplay(_INTL("There's no more room in the Bag.")) + end + end + @scene.pbEndScene + end + + # UI logic for tossing an item in the item storage screen. + def pbTossItemScreen + if !$PokemonGlobal.pcItemStorage + $PokemonGlobal.pcItemStorage = PCItemStorage.new + end + storage = $PokemonGlobal.pcItemStorage + @scene.pbStartScene(storage) + loop do + item = @scene.pbChooseItem + break if !item + itm = GameData::Item.get(item) + if itm.is_important? + @scene.pbDisplay(_INTL("That's too important to toss out!")) + next + end + qty = storage.quantity(item) + itemname = itm.portion_name + itemnameplural = itm.portion_name_plural + if qty > 1 + qty = @scene.pbChooseNumber(_INTL("Toss out how many {1}?", itemnameplural), qty) + end + next if qty <= 0 + itemname = itemnameplural if qty > 1 + next if !pbConfirm(_INTL("Is it OK to throw away {1} {2}?", qty, itemname)) + if !storage.remove(item, qty) + raise "Can't delete items from storage" + end + @scene.pbRefresh + pbDisplay(_INTL("Threw away {1} {2}.", qty, itemname)) + end + @scene.pbEndScene + end +end + + + #=============================================================================== # Common UI functions used in both the Bag and item storage screens. # Displays messages and allows the user to choose a number/command. @@ -282,10 +370,10 @@ module UIHelper helpwindow.letterbyletter = false curnumber = initnum ret = 0 - numwindow = Window_UnformattedTextPokemon.new("x000") + numwindow = Window_UnformattedTextPokemon.new("×000") numwindow.viewport = helpwindow.viewport numwindow.letterbyletter = false - numwindow.text = _ISPRINTF("x{1:03d}", curnumber) + numwindow.text = _ISPRINTF("×{1:03d}", curnumber) numwindow.resizeToFit(numwindow.text, Graphics.width) pbBottomRight(numwindow) helpwindow.resizeHeightToFit(helpwindow.text, Graphics.width - numwindow.width) @@ -309,28 +397,28 @@ module UIHelper curnumber += 1 curnumber = 1 if curnumber > maximum if curnumber != oldnumber - numwindow.text = _ISPRINTF("x{1:03d}", curnumber) + numwindow.text = _ISPRINTF("×{1:03d}", curnumber) pbPlayCursorSE end elsif Input.repeat?(Input::DOWN) curnumber -= 1 curnumber = maximum if curnumber < 1 if curnumber != oldnumber - numwindow.text = _ISPRINTF("x{1:03d}", curnumber) + numwindow.text = _ISPRINTF("×{1:03d}", curnumber) pbPlayCursorSE end elsif Input.repeat?(Input::LEFT) curnumber -= 10 curnumber = 1 if curnumber < 1 if curnumber != oldnumber - numwindow.text = _ISPRINTF("x{1:03d}", curnumber) + numwindow.text = _ISPRINTF("×{1:03d}", curnumber) pbPlayCursorSE end elsif Input.repeat?(Input::RIGHT) curnumber += 10 curnumber = maximum if curnumber > maximum if curnumber != oldnumber - numwindow.text = _ISPRINTF("x{1:03d}", curnumber) + numwindow.text = _ISPRINTF("×{1:03d}", curnumber) pbPlayCursorSE end end diff --git a/Data/Scripts/016_UI/019_UI_PC.rb b/Data/Scripts/016_UI/019_UI_PC.rb deleted file mode 100644 index 65a33cff9..000000000 --- a/Data/Scripts/016_UI/019_UI_PC.rb +++ /dev/null @@ -1,238 +0,0 @@ -#=============================================================================== -# -#=============================================================================== -def pbPCItemStorage - command = 0 - loop do - command = pbShowCommandsWithHelp(nil, - [_INTL("Withdraw Item"), - _INTL("Deposit Item"), - _INTL("Toss Item"), - _INTL("Exit")], - [_INTL("Take out items from the PC."), - _INTL("Store items in the PC."), - _INTL("Throw away items stored in the PC."), - _INTL("Go back to the previous menu.")], -1, command) - case command - when 0 # Withdraw Item - if !$PokemonGlobal.pcItemStorage - $PokemonGlobal.pcItemStorage = PCItemStorage.new - end - if $PokemonGlobal.pcItemStorage.empty? - pbMessage(_INTL("There are no items.")) - else - pbFadeOutIn do - scene = WithdrawItemScene.new - screen = PokemonBagScreen.new(scene, $bag) - screen.pbWithdrawItemScreen - end - end - when 1 # Deposit Item - pbFadeOutIn do - scene = PokemonBag_Scene.new - screen = PokemonBagScreen.new(scene, $bag) - screen.pbDepositItemScreen - end - when 2 # Toss Item - if !$PokemonGlobal.pcItemStorage - $PokemonGlobal.pcItemStorage = PCItemStorage.new - end - if $PokemonGlobal.pcItemStorage.empty? - pbMessage(_INTL("There are no items.")) - else - pbFadeOutIn do - scene = TossItemScene.new - screen = PokemonBagScreen.new(scene, $bag) - screen.pbTossItemScreen - end - end - else - break - end - end -end - -#=============================================================================== -# -#=============================================================================== -def pbPCMailbox - if !$PokemonGlobal.mailbox || $PokemonGlobal.mailbox.length == 0 - pbMessage(_INTL("There's no Mail here.")) - else - loop do - command = 0 - commands = [] - $PokemonGlobal.mailbox.each do |mail| - commands.push(mail.sender) - end - commands.push(_INTL("Cancel")) - command = pbShowCommands(nil, commands, -1, command) - if command >= 0 && command < $PokemonGlobal.mailbox.length - mailIndex = command - commandMail = pbMessage( - _INTL("What do you want to do with {1}'s Mail?", $PokemonGlobal.mailbox[mailIndex].sender), - [_INTL("Read"), - _INTL("Move to Bag"), - _INTL("Give"), - _INTL("Cancel")], -1 - ) - case commandMail - when 0 # Read - pbFadeOutIn do - pbDisplayMail($PokemonGlobal.mailbox[mailIndex]) - end - when 1 # Move to Bag - if pbConfirmMessage(_INTL("The message will be lost. Is that OK?")) - if $bag.add($PokemonGlobal.mailbox[mailIndex].item) - pbMessage(_INTL("The Mail was returned to the Bag with its message erased.")) - $PokemonGlobal.mailbox.delete_at(mailIndex) - else - pbMessage(_INTL("The Bag is full.")) - end - end - when 2 # Give - pbFadeOutIn do - sscene = PokemonParty_Scene.new - sscreen = PokemonPartyScreen.new(sscene, $player.party) - sscreen.pbPokemonGiveMailScreen(mailIndex) - end - end - else - break - end - end - end -end - -#=============================================================================== -# -#=============================================================================== -def pbTrainerPC - pbMessage("\\se[PC open]" + _INTL("{1} booted up the PC.", $player.name)) - pbTrainerPCMenu - pbSEPlay("PC close") -end - -def pbTrainerPCMenu - command = 0 - loop do - command = pbMessage(_INTL("What do you want to do?"), - [_INTL("Item Storage"), - _INTL("Mailbox"), - _INTL("Turn Off")], -1, nil, command) - case command - when 0 then pbPCItemStorage - when 1 then pbPCMailbox - else break - end - end -end - -#=============================================================================== -# -#=============================================================================== -def pbPokeCenterPC - pbMessage("\\se[PC open]" + _INTL("{1} booted up the PC.", $player.name)) - # Get all commands - command_list = [] - commands = [] - MenuHandlers.each_available(:pc_menu) do |option, hash, name| - command_list.push(name) - commands.push(hash) - end - # Main loop - command = 0 - loop do - choice = pbMessage(_INTL("Which PC should be accessed?"), command_list, -1, nil, command) - if choice < 0 - pbPlayCloseMenuSE - break - end - break if commands[choice]["effect"].call - end - pbSEPlay("PC close") -end - -def pbGetStorageCreator - return GameData::Metadata.get.storage_creator -end - -#=============================================================================== -# -#=============================================================================== - -MenuHandlers.add(:pc_menu, :pokemon_storage, { - "name" => proc { - next ($player.seen_storage_creator) ? _INTL("{1}'s PC", pbGetStorageCreator) : _INTL("Someone's PC") - }, - "order" => 10, - "effect" => proc { |menu| - pbMessage("\\se[PC access]" + _INTL("The Pokémon Storage System was opened.")) - command = 0 - loop do - command = pbShowCommandsWithHelp(nil, - [_INTL("Organize Boxes"), - _INTL("Withdraw Pokémon"), - _INTL("Deposit Pokémon"), - _INTL("See ya!")], - [_INTL("Organize the Pokémon in Boxes and in your party."), - _INTL("Move Pokémon stored in Boxes to your party."), - _INTL("Store Pokémon in your party in Boxes."), - _INTL("Return to the previous menu.")], -1, command) - break if command < 0 - case command - when 0 # Organize - pbFadeOutIn do - scene = PokemonStorageScene.new - screen = PokemonStorageScreen.new(scene, $PokemonStorage) - screen.pbStartScreen(0) - end - when 1 # Withdraw - if $PokemonStorage.party_full? - pbMessage(_INTL("Your party is full!")) - next - end - pbFadeOutIn do - scene = PokemonStorageScene.new - screen = PokemonStorageScreen.new(scene, $PokemonStorage) - screen.pbStartScreen(1) - end - when 2 # Deposit - count = 0 - $PokemonStorage.party.each do |p| - count += 1 if p && !p.egg? && p.hp > 0 - end - if count <= 1 - pbMessage(_INTL("Can't deposit the last Pokémon!")) - next - end - pbFadeOutIn do - scene = PokemonStorageScene.new - screen = PokemonStorageScreen.new(scene, $PokemonStorage) - screen.pbStartScreen(2) - end - else - break - end - end - next false - } -}) - -MenuHandlers.add(:pc_menu, :player_pc, { - "name" => proc { next _INTL("{1}'s PC", $player.name) }, - "order" => 20, - "effect" => proc { |menu| - pbMessage("\\se[PC access]" + _INTL("Accessed {1}'s PC.", $player.name)) - pbTrainerPCMenu - next false - } -}) - -MenuHandlers.add(:pc_menu, :close, { - "name" => _INTL("Log off"), - "order" => 100, - "effect" => proc { |menu| - next true - } -}) diff --git a/Data/Scripts/016_UI/023_UI_PurifyChamber.rb b/Data/Scripts/016_UI/023_UI_PurifyChamber.rb index a0d40a48a..fcff5894d 100644 --- a/Data/Scripts/016_UI/023_UI_PurifyChamber.rb +++ b/Data/Scripts/016_UI/023_UI_PurifyChamber.rb @@ -1232,9 +1232,7 @@ class PurifyChamberScene def pbSummary(pos, heldpkmn) if heldpkmn oldsprites = pbFadeOutAndHide(@sprites) - scene = PokemonSummary_Scene.new - screen = PokemonSummaryScreen.new(scene) - screen.pbStartScreen([heldpkmn], 0) + UI::PokemonSummary.new(heldpkmn).main pbFadeInAndShow(@sprites, oldsprites) return end @@ -1251,9 +1249,8 @@ class PurifyChamberScene end return if party.length == 0 oldsprites = pbFadeOutAndHide(@sprites) - scene = PokemonSummary_Scene.new - screen = PokemonSummaryScreen.new(scene) - selection = screen.pbStartScreen(party, startindex) + screen = UI::PokemonSummary.new(party, startindex).main + selection = screen.result @sprites["setview"].cursor = indexes[selection] pbFadeInAndShow(@sprites, oldsprites) end @@ -1270,13 +1267,19 @@ class PurifyChamberScene pbRefresh end + # TODO: Depending on which position is selected, make Shadow Pokémon/non-Shadow + # Pokémon in UI::PokemonStorage semi-transparent and don't let them be + # selected. + # TODO: Don't let eggs be selected. + # TODO: Don't let the last able Pokémon in the party be selected. def pbChoosePokemon - visible = pbFadeOutAndHide(@sprites) - scene = PokemonStorageScene.new - screen = PokemonStorageScreen.new(scene, $PokemonStorage) - pos = screen.pbChoosePokemon - pbRefresh - pbFadeInAndShow(@sprites, visible) + pos = nil + pbFadeOutInWithUpdate(@sprites) do + screen = UI::PokemonStorage.new($PokemonStorage, mode: :choose_pokemon) + screen.main + pos = screen.result + pbRefresh + end return pos end end diff --git a/Data/Scripts/016_UI/024_UI_MysteryGift.rb b/Data/Scripts/016_UI/024_UI_MysteryGift.rb index 4296cec91..8ad0f2849 100644 --- a/Data/Scripts/016_UI/024_UI_MysteryGift.rb +++ b/Data/Scripts/016_UI/024_UI_MysteryGift.rb @@ -226,7 +226,7 @@ def pbRefreshMGCommands(master, online) elsif gift[1] > 0 itemname = GameData::Item.get(gift[2]).name + sprintf(" x%d", gift[1]) end - ontext = ["[ ]", "[X]"][(online.include?(gift[0])) ? 1 : 0] + ontext = ["[ ]", "[Y]"][(online.include?(gift[0])) ? 1 : 0] commands.push(_INTL("{1} {2}: {3} ({4})", ontext, gift[0], gift[3], itemname)) end commands.push(_INTL("Export selected to file")) diff --git a/Data/Scripts/016_UI/025_UI_TextEntry.rb b/Data/Scripts/016_UI/025_UI_TextEntry.rb index 88e615097..6bf05e597 100644 --- a/Data/Scripts/016_UI/025_UI_TextEntry.rb +++ b/Data/Scripts/016_UI/025_UI_TextEntry.rb @@ -779,6 +779,8 @@ def pbEnterNPCName(helptext, minlength, maxlength, initialText = "", id = 0, nof return pbEnterText(helptext, minlength, maxlength, initialText, 3, id, nofadeout) end +# TODO: maxlength for this is 16, so the entry screen should support showing 16 +# characters. def pbEnterBoxName(helptext, minlength, maxlength, initialText = "", nofadeout = false) return pbEnterText(helptext, minlength, maxlength, initialText, 4, nil, nofadeout) end diff --git a/Data/Scripts/016b_UI redesign/000_UI_base.rb b/Data/Scripts/016b_UI redesign/000_UI_base.rb new file mode 100644 index 000000000..66431d89d --- /dev/null +++ b/Data/Scripts/016b_UI redesign/000_UI_base.rb @@ -0,0 +1,863 @@ +module UI + #============================================================================= + # The visuals class. + #============================================================================= + module SpriteContainerMixin + UI_FOLDER = "Graphics/UI/" + GRAPHICS_FOLDER = "" # Subfolder in UI_FOLDER + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(72, 72, 72), Color.new(160, 160, 160)] # Base and shadow colour + } + + def add_overlay(overlay, overlay_width = -1, overlay_height = -1) + overlay_width = Graphics.width if overlay_width < 0 + overlay_height = Graphics.height if overlay_height < 0 + @sprites[overlay] = BitmapSprite.new(overlay_width, overlay_height, @viewport) + @sprites[overlay].z = 1000 + self.class::TEXT_COLOR_THEMES.each_pair { |key, values| @sprites[overlay].add_text_theme(key, *values) } + pbSetSystemFont(@sprites[overlay].bitmap) + end + + def add_icon_sprite(key, x, y, filename = nil) + @sprites[key] = IconSprite.new(x, y, @viewport) + @sprites[key].setBitmap(filename) if filename + end + + def add_animated_arrow(key, x, y, direction) + case direction + when :up + @sprites[key] = AnimatedSprite.new(UI_FOLDER + "up_arrow", 8, 28, 40, 2, @viewport) + when :down + @sprites[key] = AnimatedSprite.new(UI_FOLDER + "down_arrow", 8, 28, 40, 2, @viewport) + when :left + @sprites[key] = AnimatedSprite.new(UI_FOLDER + "left_arrow", 8, 40, 28, 2, @viewport) + when :right + @sprites[key] = AnimatedSprite.new(UI_FOLDER + "right_arrow", 8, 40, 28, 2, @viewport) + end + @sprites[key].x = x + @sprites[key].y = y + @sprites[key].visible = false + @sprites[key].play + end + + #--------------------------------------------------------------------------- + + def dispose + @sprites.each_value { |s| s.dispose if s && !s.disposed? } + @sprites.clear + @bitmaps.each_value { |b| b.dispose if b && !b.disposed? } + @bitmaps.clear + @disposed = true + end + + def disposed? + return !!@disposed + end + + #--------------------------------------------------------------------------- + + def graphics_folder + return UI_FOLDER + self.class::GRAPHICS_FOLDER + end + + def background_filename + return gendered_filename(self.class::BACKGROUND_FILENAME) + end + + def gendered_filename(base_filename) + return filename_with_appendix(base_filename, "_f") if $player&.female? + return base_filename + end + + def filename_with_appendix(base_filename, appendix) + if appendix && appendix != "" + trial_filename = base_filename + appendix + return trial_filename if pbResolveBitmap(graphics_folder + trial_filename) + end + return base_filename + end + + #--------------------------------------------------------------------------- + + # NOTE: max_width should include the width of the text shadow at the end of + # the string (because characters in the font have a blank 2 pixels + # after them for the shadow to occupy). + def crop_text(string, max_width, continue_string = "…", overlay: :overlay) + return string if max_width <= 0 + return string if @sprites[overlay].bitmap.text_size(string).width <= max_width + ret = string + continue_width = @sprites[overlay].bitmap.text_size(continue_string).width + loop do + ret = ret[0...-1] + break if @sprites[overlay].bitmap.text_size(ret).width <= max_width - continue_width + end + ret += continue_string + return ret + end + + #--------------------------------------------------------------------------- + + def draw_text(string, text_x, text_y, align: :left, theme: :default, outline: :shadow, overlay: :overlay) + @sprites[overlay].draw_themed_text(string.to_s, text_x, text_y, align, theme, outline) + end + + def draw_paragraph_text(string, text_x, text_y, text_width, num_lines, theme: :default, overlay: :overlay) + drawTextEx(@sprites[overlay].bitmap, text_x, text_y, text_width, num_lines, + string, *self.class::TEXT_COLOR_THEMES[theme]) + end + + # NOTE: This also draws string in a paragraph, but with no limit on the + # number of lines. + def draw_formatted_text(string, text_x, text_y, text_width, theme: :default, overlay: :overlay) + drawFormattedTextEx(@sprites[overlay].bitmap, text_x, text_y, text_width, + string, *self.class::TEXT_COLOR_THEMES[theme]) + end + + def draw_image(filename, image_x, image_y, src_x = 0, src_y = 0, src_width = -1, src_height = -1, overlay: :overlay) + @sprites[overlay].draw_image(filename, image_x, image_y, src_x, src_y, src_width, src_height) + end + + # The image is assumed to be the digits 0-9 and then a "/", all the same + # width, in a horizontal row. + def draw_number_from_image(bitmap, string, text_x, text_y, align: :left, overlay: :overlay) + string = string.to_s + raise _INTL("Can't draw {1} as a number.", string) if !string.scan(/[^\d\/]/).empty? + char_width = bitmap.width / 11 + char_height = bitmap.height + chars = string.split(//) + chars.reverse! if align == :right + chars.length.times do |i| + char = chars[i] + index = (char == "/") ? 10 : char.to_i + char_x = (align == :right) ? text_x - ((i + 1) * char_width) : text_x + (i * char_width) + draw_image(bitmap, char_x, text_y, + index * char_width, 0, char_width, char_height, overlay: overlay) + end + end + + SLIDER_COORDS = { # Size of elements in slider graphic + :arrow_size => [24, 28], + :box_heights => [4, 8, 18] # Heights of top, middle and bottom segments of slider box + } + + # slider_height includes the heights of the arrows at either end. + def draw_slider(bitmap, slider_x, slider_y, slider_height, visible_top, visible_height, total_height, hide_if_inactive: :false, overlay: :overlay) + coords = self.class::SLIDER_COORDS + bar_y = slider_y + coords[:arrow_size][1] + bar_height = slider_height - (2 * coords[:arrow_size][1]) + bar_segment_height = coords[:box_heights].sum # Also minimum height of slider box + show_up_arrow = (visible_top > 0) + show_down_arrow = (visible_top + visible_height < total_height) + return if hide_if_inactive && !show_up_arrow && !show_down_arrow + # Draw up arrow + x_offset = (show_up_arrow) ? coords[:arrow_size][0] : 0 + draw_image(bitmap, slider_x, slider_y, + x_offset, 0, *coords[:arrow_size], overlay: overlay) + # Draw down arrow + x_offset = (show_down_arrow) ? coords[:arrow_size][0] : 0 + draw_image(bitmap, slider_x, slider_y + slider_height - coords[:arrow_size][1], + x_offset, coords[:arrow_size][1] + bar_segment_height, *coords[:arrow_size], overlay: overlay) + # Draw bar background + iterations = (bar_height / bar_segment_height.to_f).ceil + iterations.times do |i| + segment_y = bar_y + (i * bar_segment_height) + iteration_height = bar_segment_height + iteration_height = bar_height - (i * bar_segment_height) if i == iterations - 1 # Last part + draw_image(bitmap, slider_x, segment_y, + 0, coords[:arrow_size][1], coords[:arrow_size][0], iteration_height, overlay: overlay) + end + # Draw slider box + if show_up_arrow || show_down_arrow + box_height = (bar_height * visible_height / total_height).floor + box_height += [(bar_height - box_height) / 2, bar_height / 6].min # Make it bigger than expected + box_height = [box_height.floor, bar_segment_height].max + box_y = bar_y + box_y += ((bar_height - box_height) * visible_top / (total_height - visible_height)).floor + # Draw slider box top + draw_image(bitmap, slider_x, box_y, + coords[:arrow_size][0], coords[:arrow_size][1], + coords[:arrow_size][0], coords[:box_heights][0], overlay: overlay) + # Draw slider box middle + middle_height = box_height - coords[:box_heights][0] - coords[:box_heights][2] + iterations = (middle_height / coords[:box_heights][1].to_f).ceil + iterations.times do |i| + segment_y = box_y + coords[:box_heights][0] + (i * coords[:box_heights][1]) + iteration_height = coords[:box_heights][1] + iteration_height = middle_height - (i * coords[:box_heights][1]) if i == iterations - 1 # Last part + draw_image(bitmap, slider_x, segment_y, + coords[:arrow_size][0], coords[:arrow_size][1] + coords[:box_heights][0], + coords[:arrow_size][0], iteration_height, overlay: overlay) + end + # Draw slider box bottom + draw_image(bitmap, slider_x, box_y + box_height - coords[:box_heights][2], + coords[:arrow_size][0], coords[:arrow_size][1] + coords[:box_heights][0] + coords[:box_heights][1], + coords[:arrow_size][0], coords[:box_heights][2], overlay: overlay) + end + end + + #--------------------------------------------------------------------------- + + # Redraw everything on the screen. + def refresh + refresh_overlay + end + + def refresh_overlay + @sprites[:overlay].bitmap.clear if @sprites[:overlay] + end + + #--------------------------------------------------------------------------- + + def update_visuals + pbUpdateSpriteHash(@sprites) + end + + def update + update_visuals + end + end + + #============================================================================= + # The visuals class. + #============================================================================= + class SpriteContainer + attr_reader :x, :y, :z, :visible, :color + + include SpriteContainerMixin + + def initialize(viewport) + @viewport = viewport + @x ||= 0 + @y ||= 0 + @z ||= 0 + @visible = true + @color = Color.new(0, 0, 0, 0) + @bitmaps = {} + @sprites = {} + @sprites_values = {} + initialize_bitmaps + initialize_sprites + refresh_sprites_values + end + + def initialize_bitmaps + end + + def initialize_sprites + end + + #--------------------------------------------------------------------------- + + # x, y, z, visible, opacity, color + def x=(value) + @x = value + @sprites.each_pair do |key, sprite| + sprite.x = @x + @sprites_values[key][:x] + end + end + + def y=(value) + @y = value + @sprites.each_pair do |key, sprite| + sprite.y = @y + @sprites_values[key][:y] + end + end + + def z=(value) + @z = value + @sprites.each_pair do |key, sprite| + sprite.z = @z + @sprites_values[key][:z] + end + end + + def visible=(value) + @visible = value + @sprites.each_pair do |key, sprite| + sprite.visible = @visible && @sprites_values[key][:visible] + end + end + + def color=(value) + @color = value + @sprites.each_pair do |key, sprite| + sprite.color = @color + end + end + + #--------------------------------------------------------------------------- + + def record_values(key) + @sprites_values[key] ||= {} + @sprites_values[key][:x] = @sprites[key].x + @sprites_values[key][:y] = @sprites[key].y + @sprites_values[key][:z] = @sprites[key].z + @sprites_values[key][:visible] = @sprites[key].visible + end + + def refresh_sprites_values + self.x = @x + self.y = @y + self.z = @z + self.visible = @visible + end + end + + #============================================================================= + # The visuals class. + #============================================================================= + class BaseVisuals + attr_reader :sprites + attr_reader :mode + + BACKGROUND_FILENAME = "bg" + + include SpriteContainerMixin + + def initialize + @bitmaps = {} + @sprites = {} + initialize_viewport + initialize_bitmaps + initialize_background + initialize_overlay + initialize_message_box + initialize_sprites + refresh + end + + def initialize_viewport + @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) + @viewport.z = 99999 + end + + def initialize_bitmaps + end + + def initialize_background + addBackgroundPlane(@sprites, :background, self.class::GRAPHICS_FOLDER + background_filename, @viewport) + @sprites[:background].z = -1000 + end + + def initialize_overlay + add_overlay(:overlay) + end + + def initialize_message_box + # TODO: It looks like :message_box isn't used anywhere. + @sprites[:message_box] = Window_AdvancedTextPokemon.new("") + @sprites[:message_box].viewport = @viewport + @sprites[:message_box].z = 2000 + @sprites[:message_box].visible = false + @sprites[:message_box].letterbyletter = true + pbBottomLeftLines(@sprites[:message_box], 2) + @sprites[:speech_box] = Window_AdvancedTextPokemon.new("") + @sprites[:speech_box].viewport = @viewport + @sprites[:speech_box].z = 2001 + @sprites[:speech_box].visible = false + @sprites[:speech_box].letterbyletter = true + @sprites[:speech_box].setSkin(MessageConfig.pbGetSpeechFrame) + pbBottomLeftLines(@sprites[:speech_box], 2) + end + + def initialize_sprites + end + + #--------------------------------------------------------------------------- + + def set_viewport_color(new_color) + @viewport.color = new_color + end + + def fade_in + duration = 0.4 # In seconds + col = Color.new(0, 0, 0, 0) + timer_start = System.uptime + loop do + col.set(0, 0, 0, lerp(255, 0, duration, timer_start, System.uptime)) + set_viewport_color(col) + Graphics.update + Input.update + update_visuals + break if col.alpha == 0 + end + end + + def fade_out + duration = 0.4 # In seconds + col = Color.new(0, 0, 0, 0) + timer_start = System.uptime + loop do + col.set(0, 0, 0, lerp(0, 255, duration, timer_start, System.uptime)) + set_viewport_color(col) + Graphics.update + Input.update + update_visuals + break if col.alpha == 255 + end + end + + def dispose + super + @viewport.dispose + end + + #--------------------------------------------------------------------------- + + def index + return 0 + end + + #--------------------------------------------------------------------------- + + def position_speech_box(text = "") + pbBottomLeftLines(@sprites[:speech_box], 2) + end + + def show_message(text) + @sprites[:speech_box].visible = true + @sprites[:speech_box].text = text + position_speech_box(text) + yielded = false + loop do + Graphics.update + Input.update + update_visuals + if @sprites[:speech_box].busy? + if Input.trigger?(Input::USE) + pbPlayDecisionSE if @sprites[:speech_box].pausing? + @sprites[:speech_box].resume + end + else + yield if !yielded && block_given? + yielded = true + if Input.trigger?(Input::USE) || Input.trigger?(Input::BACK) + break + end + end + end + @sprites[:speech_box].visible = false + end + + def show_confirm_message(text) + ret = false + @sprites[:speech_box].visible = true + @sprites[:speech_box].text = text + position_speech_box(text) + using(cmd_window = Window_CommandPokemon.new([_INTL("Yes"), _INTL("No")])) do + cmd_window.z = @viewport.z + 1 + cmd_window.visible = false + pbBottomRight(cmd_window) + cmd_window.y -= @sprites[:speech_box].height + cmd_window.visible = true if !@sprites[:speech_box].busy? + loop do + Graphics.update + Input.update + update_visuals + cmd_window.visible = true if !@sprites[:speech_box].busy? + cmd_window.update + if !@sprites[:speech_box].busy? + if Input.trigger?(Input::BACK) + pbPlayCancelSE + ret = false + break + elsif Input.trigger?(Input::USE) && @sprites[:speech_box].resume + pbPlayDecisionSE + ret = (cmd_window.index == 0) + break + end + end + end + end + @sprites[:speech_box].visible = false + return ret + end + + def show_confirm_serious_message(text) + ret = false + @sprites[:speech_box].visible = true + @sprites[:speech_box].text = text + position_speech_box(text) + using(cmd_window = Window_CommandPokemon.new([_INTL("No"), _INTL("Yes")])) do + cmd_window.z = @viewport.z + 1 + cmd_window.visible = false + pbBottomRight(cmd_window) + cmd_window.y -= @sprites[:speech_box].height + cmd_window.visible = true if !@sprites[:speech_box].busy? + loop do + Graphics.update + Input.update + update_visuals + cmd_window.visible = true if !@sprites[:speech_box].busy? + cmd_window.update + if !@sprites[:speech_box].busy? + if Input.trigger?(Input::BACK) + pbPlayCancelSE + ret = false + break + elsif Input.trigger?(Input::USE) && @sprites[:speech_box].resume + pbPlayDecisionSE + ret = (cmd_window.index == 1) + break + end + end + end + end + @sprites[:speech_box].visible = false + return ret + end + + # Used for dialogue. + # align: Where the command window is in relation to the message window. + # :horizontal is side by side, :vertical is command window above. + def show_choice_message(text, options, index = 0, align: :vertical, cmd_side: :right) + ret = -1 + commands = options + commands = options.values if options.is_a?(Hash) + @sprites[:speech_box].visible = true + @sprites[:speech_box].text = text + using(cmd_window = Window_AdvancedCommandPokemon.new(commands)) do + if align == :vertical + @sprites[:speech_box].resizeHeightToFit(text, Graphics.width) + else + @sprites[:speech_box].resizeHeightToFit(text, Graphics.width - cmd_window.width) + end + cmd_window.z = @viewport.z + 1 + cmd_window.visible = false + cmd_window.index = index + if cmd_side == :right + pbBottomLeft(@sprites[:speech_box]) + pbBottomRight(cmd_window) + else + pbBottomRight(@sprites[:speech_box]) + pbBottomLeft(cmd_window) + end + if align == :vertical + cmd_window.height = [cmd_window.height, Graphics.height - @sprites[:speech_box].height].min + cmd_window.y = Graphics.height - @sprites[:speech_box].height - cmd_window.height + end + cmd_window.visible = true if !@sprites[:speech_box].busy? + loop do + Graphics.update + Input.update + update_visuals + cmd_window.visible = true if !@sprites[:speech_box].busy? + cmd_window.update + if !@sprites[:speech_box].busy? + if Input.trigger?(Input::BACK) + pbPlayCancelSE + ret = -1 + break + elsif Input.trigger?(Input::USE) && @sprites[:speech_box].resume + pbPlayDecisionSE + ret = cmd_window.index + break + end + end + end + end + @sprites[:speech_box].visible = false + if options.is_a?(Hash) + ret = (ret < 0) ? nil : options.keys[ret] + end + return ret + end + + def show_menu(text, options, index = 0, cmd_side: :right) + old_letter_by_letter = @sprites[:speech_box].letterbyletter + @sprites[:speech_box].letterbyletter = false + ret = show_choice_message(text, options, index, align: :horizontal, cmd_side: cmd_side) + @sprites[:speech_box].letterbyletter = old_letter_by_letter + return ret + end + + def show_choice(options, index = 0) + ret = -1 + commands = options + commands = options.values if options.is_a?(Hash) + using(cmd_window = Window_AdvancedCommandPokemon.new(commands)) do + cmd_window.z = @viewport.z + 1 + cmd_window.index = index + pbBottomRight(cmd_window) + loop do + Graphics.update + Input.update + update_visuals + cmd_window.update + if Input.trigger?(Input::BACK) + pbPlayCancelSE + ret = -1 + break + elsif Input.trigger?(Input::USE) + pbPlayDecisionSE + ret = cmd_window.index + break + end + end + end + ret = options.keys[ret] if options.is_a?(Hash) + return ret + end + + # TODO: Rewrite this. + def choose_number(help_text, maximum, init_value = 1) + if maximum.is_a?(ChooseNumberParams) + return pbMessageChooseNumber(help_text, maximum) { update_visuals } + end + return UIHelper.pbChooseNumber(@sprites[:speech_box], help_text, maximum, init_value) { update_visuals } + end + + def choose_number_as_money_multiplier(help_text, money_per_unit, maximum, init_value = 1) + @sprites[:speech_box].visible = true + @sprites[:speech_box].text = help_text + position_speech_box(help_text) + # Show the help text + loop do + Graphics.update + Input.update + update_visuals + if @sprites[:speech_box].busy? + if Input.trigger?(Input::USE) + pbPlayDecisionSE if @sprites[:speech_box].pausing? + @sprites[:speech_box].resume + end + else + break + end + end + # Choose a quantity + item_price = money_per_unit + quantity = init_value + using(num_window = Window_AdvancedTextPokemon.newWithSize( + _INTL("×{1}${2}", quantity, (quantity * item_price).to_s_formatted), + 0, 0, 224, 64, @viewport)) do + num_window.z = 2000 + num_window.visible = true + num_window.letterbyletter = false + pbBottomRight(num_window) + num_window.y -= @sprites[:speech_box].height + loop do + Graphics.update + Input.update + update + num_window.update + # Change quantity + old_quantity = quantity + if Input.repeat?(Input::LEFT) + quantity = [quantity - 10, 1].max + elsif Input.repeat?(Input::RIGHT) + quantity = [quantity + 10, maximum].min + elsif Input.repeat?(Input::UP) + quantity += 1 + quantity = 1 if quantity > maximum + elsif Input.repeat?(Input::DOWN) + quantity -= 1 + quantity = maximum if quantity < 1 + end + if quantity != old_quantity + num_window.text = _INTL("×{1}${2}", quantity, (quantity * item_price).to_s_formatted) + pbPlayCursorSE + end + # Finish choosing a quantity + if Input.trigger?(Input::USE) + pbPlayDecisionSE + break + elsif Input.trigger?(Input::BACK) + pbPlayCancelSE + quantity = 0 + break + end + end + end + @sprites[:speech_box].visible = false + return quantity + end + + #--------------------------------------------------------------------------- + + def refresh_on_index_changed(old_index) + end + + #--------------------------------------------------------------------------- + + def update_input + if Input.trigger?(Input::BACK) + return :quit + end + return nil + end + + #--------------------------------------------------------------------------- + + def navigate + ret = nil + loop do + Graphics.update + Input.update + old_index = index + update_visuals + refresh_on_index_changed(old_index) if index != old_index + old_index = index + ret = update_input + refresh_on_index_changed(old_index) if index != old_index + break if ret + end + return ret + end + end + + #============================================================================= + # The logic class. + #============================================================================= + class BaseScreen + attr_reader :visuals + attr_reader :mode + attr_accessor :result + + def initialize + @disposed = false + initialize_visuals + end + + def initialize_visuals + @visuals = UI::BaseVisuals.new + end + + def start_screen + @visuals.fade_in + end + + def end_screen + return if @disposed + @visuals.fade_out + @visuals.dispose + @disposed = true + end + + # Same as def end_screen but without fading out. + def silent_end_screen + return if @disposed + @visuals.dispose + @disposed = true + end + + #----------------------------------------------------------------------------- + + def sprites + return @visuals.sprites + end + + def index + return @visuals.index + end + + #----------------------------------------------------------------------------- + + def show_message(text, &block) + @visuals.show_message(text, &block) + end + + alias pbDisplay show_message + + def show_confirm_message(text) + return @visuals.show_confirm_message(text) + end + + alias pbConfirm show_confirm_message + + def show_confirm_serious_message(text) + return @visuals.show_confirm_serious_message(text) + end + + def show_choice_message(text, options, initial_index = 0) + return @visuals.show_choice_message(text, options, initial_index) + end + + alias pbShowCommands show_choice_message + + def show_menu(text, options, initial_index = 0, cmd_side: :right) + return @visuals.show_menu(text, options, initial_index, cmd_side: cmd_side) + end + + def show_choice(options, initial_index = 0) + return @visuals.show_choice(options, initial_index) + end + + def show_choice_from_menu_handler(menu_handler_id, message = nil) + commands = {} + MenuHandlers.each_available(menu_handler_id, self) do |option, _hash, name| + commands[option] = name + end + return show_menu(message, commands) if message + return show_choice(commands) + end + + def choose_number(help_text, maximum, init_value = 1) + return @visuals.choose_number(help_text, maximum, init_value) + end + + alias pbChooseNumber choose_number + + def choose_number_as_money_multiplier(help_text, money_per_unit, maximum, init_value = 1) + return @visuals.choose_number_as_money_multiplier(help_text, money_per_unit, maximum, init_value) + end + + #----------------------------------------------------------------------------- + + def refresh + @visuals.refresh + end + + alias pbRefresh refresh + + def update + @visuals.update + end + + alias pbUpdate update + + #----------------------------------------------------------------------------- + + def show_and_hide + start_screen + yield if block_given? + end_screen + end + + def main + return if @disposed + start_screen + loop do + on_start_main_loop + command = @visuals.navigate + break if command == :quit + command = perform_action(command) + break if command == :quit + break if @disposed + end + end_screen + end + + def on_start_main_loop + end + + def perform_action(command) + return nil if !self.class::SCREEN_ID + action_hash = UIActionHandlers.get(self.class::SCREEN_ID, command) + return nil if !action_hash + return nil if action_hash[:condition] && !action_hash[:condition].call(self) + if action_hash[:menu] + choice = show_choice_from_menu_handler(action_hash[:menu], action_hash[:menu_message]&.call(self)) + return perform_action(choice) if choice + elsif action_hash[:effect] + return perform_action_effect(action_hash) + end + return nil + end + + def perform_action_effect(action_hash) + ret = action_hash[:effect].call(self) + return ret if action_hash[:returns_value] + return nil + end + end +end diff --git a/Data/Scripts/016b_UI redesign/001_UI_PauseMenu.rb b/Data/Scripts/016b_UI redesign/001_UI_PauseMenu.rb new file mode 100644 index 000000000..fd6a68ae5 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/001_UI_PauseMenu.rb @@ -0,0 +1,346 @@ +#=============================================================================== +# +#=============================================================================== +class UI::PauseMenuVisuals < UI::BaseVisuals + def initialize + @info_text_visible = false +# @help_text_visible = false + super + end + + def initialize_background; end + def initialize_overlay; end + + def initialize_sprites + # Pause menu + @sprites[:commands] = Window_CommandPokemon.new([]) + @sprites[:commands].visible = false + @sprites[:commands].viewport = @viewport + # Info text box + @sprites[:info_text] = Window_UnformattedTextPokemon.newWithSize("", 0, 0, 32, 32, @viewport) + @sprites[:info_text].visible = false + # Help text box +# @sprites[:help_text] = Window_UnformattedTextPokemon.newWithSize("", 0, 0, 32, 32, @viewport) +# @sprites[:help_text].visible = false + end + + #----------------------------------------------------------------------------- + + # commands is [[command IDs], [command names]]. + def set_commands(commands) + @commands = commands + cmd_window = @sprites[:commands] + cmd_window.commands = @commands[1] + cmd_window.index = $game_temp.menu_last_choice + cmd_window.resizeToFit(@commands[1]) + cmd_window.x = Graphics.width - cmd_window.width + cmd_window.y = 0 + cmd_window.visible = true + end + + #----------------------------------------------------------------------------- + + def show_menu + @sprites[:commands].visible = true + @sprites[:info_text].visible = @info_text_visible +# @sprites[:help_text].visible = @help_text_visible + end + + def hide_menu + @sprites[:commands].visible = false + @sprites[:info_text].visible = false +# @sprites[:help_text].visible = false + end + + # Used in Safari Zone and Bug-Catching Contest to show extra information. + def show_info(text) + @sprites[:info_text].resizeToFit(text, Graphics.height) + @sprites[:info_text].text = text + @sprites[:info_text].visible = true + @info_text_visible = true + end + + # Unused. +# def show_help(text) +# @sprites[:help_text].resizeToFit(text, Graphics.height) +# @sprites[:help_text].text = text +# @sprites[:help_text].visible = true +# pbBottomLeft(@sprites[:help_text]) +# @help_text_visible = true +# end + + #----------------------------------------------------------------------------- + + def update_visuals + pbUpdateSceneMap + super + end + + def update_input + if Input.trigger?(Input::BACK) || Input.trigger?(Input::ACTION) + return :quit + end + if Input.trigger?(Input::USE) + idx = @sprites[:commands].index + $game_temp.menu_last_choice = idx + return @commands[0][idx] + end + return nil + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PauseMenu < UI::BaseScreen + def initialize + raise _INTL("Tried to open the pause menu when $player was not defined.") if !$player + initialize_commands + super + end + + def initialize_commands + @commands ||= [[], []] + @commands[0].clear + @commands[1].clear + @commands_hashes ||= {} + @commands_hashes.clear + MenuHandlers.each_available(:pause_menu) do |option, hash, name| + @commands[0].push(option) + @commands[1].push(name) + @commands_hashes[option] = hash + end + end + + def initialize_visuals + @visuals = UI::PauseMenuVisuals.new + @visuals.set_commands(@commands) + show_info + end + + def hide_menu + @visuals.hide_menu + end + + def show_menu + @visuals.show_menu + end + + def show_info; end + + def start_screen + pbSEPlay("GUI menu open") + end + + def end_screen + return if @disposed + pbPlayCloseMenuSE + silent_end_screen + end + + #----------------------------------------------------------------------------- + + def refresh + initialize_commands + @visuals.set_commands(@commands) + super + end + + def perform_action(command) + if @commands_hashes[command]["effect"].call(self) + # NOTE: Calling end_screen will have been done in the "effect" proc, so + # there's no need to do anything special here to mark that this + # screen has already been closed/disposed of. + return :quit + end + return nil + end +end + +#=============================================================================== +# Pause menu commands. +#=============================================================================== + +MenuHandlers.add(:pause_menu, :pokedex, { + "name" => _INTL("Pokédex"), + "order" => 10, + "condition" => proc { next $player.has_pokedex && $player.pokedex.accessible_dexes.length > 0 }, + "effect" => proc { |menu| + pbPlayDecisionSE + if Settings::USE_CURRENT_REGION_DEX + pbFadeOutIn do + scene = PokemonPokedex_Scene.new + screen = PokemonPokedexScreen.new(scene) + screen.pbStartScreen + menu.refresh + end + elsif $player.pokedex.accessible_dexes.length == 1 + $PokemonGlobal.pokedexDex = $player.pokedex.accessible_dexes[0] + pbFadeOutIn do + scene = PokemonPokedex_Scene.new + screen = PokemonPokedexScreen.new(scene) + screen.pbStartScreen + menu.refresh + end + else + pbFadeOutIn do + scene = PokemonPokedexMenu_Scene.new + screen = PokemonPokedexMenuScreen.new(scene) + screen.pbStartScreen + menu.refresh + end + end + next false + } +}) + +MenuHandlers.add(:pause_menu, :party, { + "name" => _INTL("Pokémon"), + "order" => 20, + "condition" => proc { next $player.party_count > 0 }, + "effect" => proc { |menu| + pbPlayDecisionSE + pbFadeOutIn do + UI::Party.new($player.party).main + ($game_temp.field_move_to_use) ? menu.silent_end_screen : menu.refresh + end + next false if !$game_temp.field_move_to_use + $game_temp.in_menu = false + pbUseHiddenMove($game_temp.field_move_user, $game_temp.field_move_to_use) + $game_temp.field_move_user = nil + $game_temp.field_move_to_use = nil + next true + } +}) + +MenuHandlers.add(:pause_menu, :bag, { + "name" => _INTL("Bag"), + "order" => 30, + "condition" => proc { next !pbInBugContest? }, + "effect" => proc { |menu| + pbPlayDecisionSE + item = nil + pbFadeOutIn do + bag_screen = UI::Bag.new($bag) + bag_screen.main + item = bag_screen.result + (item) ? menu.silent_end_screen : menu.refresh + end + next false if !item + $game_temp.in_menu = false + pbUseKeyItemInField(item) + next true + } +}) + +MenuHandlers.add(:pause_menu, :pokegear, { + "name" => _INTL("Pokégear"), + "order" => 40, + "condition" => proc { next $player.has_pokegear }, + "effect" => proc { |menu| + pbPlayDecisionSE + pbFadeOutIn do + scene = PokemonPokegear_Scene.new + screen = PokemonPokegearScreen.new(scene) + screen.pbStartScreen + ($game_temp.fly_destination) ? menu.silent_end_screen : menu.refresh + end + next pbFlyToNewLocation + } +}) + +MenuHandlers.add(:pause_menu, :town_map, { + "name" => _INTL("Town Map"), + "order" => 40, + "condition" => proc { next Settings::SHOW_TOWN_MAP_IN_PAUSE_MENU && !$player.has_pokegear && $bag.has?(:TOWNMAP) }, + "effect" => proc { |menu| + pbPlayDecisionSE + pbFadeOutIn do + town_map_screen = UI::TownMap.new + town_map_screen.main + ret = town_map_screen.result + $game_temp.fly_destination = ret if ret + ($game_temp.fly_destination) ? menu.silent_end_screen : menu.refresh + end + next pbFlyToNewLocation + } +}) + +MenuHandlers.add(:pause_menu, :trainer_card, { + "name" => proc { |menu| next $player.name }, + "order" => 50, + "effect" => proc { |menu| + pbPlayDecisionSE + pbFadeOutIn do + UI::TrainerCard.new.main + menu.refresh + end + next false + } +}) + +MenuHandlers.add(:pause_menu, :save, { + "name" => _INTL("Save"), + "order" => 60, + "condition" => proc { + next $game_system && !$game_system.save_disabled && !pbInSafari? && !pbInBugContest? + }, + "effect" => proc { |menu| + pbPlayDecisionSE + ret = false + pbFadeOutIn do + ret = UI::Save.new.main + if ret + menu.silent_end_screen + else + menu.refresh + end + end + next ret + } +}) + +MenuHandlers.add(:pause_menu, :options, { + "name" => _INTL("Options"), + "order" => 70, + "effect" => proc { |menu| + pbPlayDecisionSE + pbFadeOutIn do + scene = PokemonOption_Scene.new + screen = PokemonOptionScreen.new(scene) + screen.pbStartScreen + pbUpdateSceneMap + menu.refresh + end + next false + } +}) + +MenuHandlers.add(:pause_menu, :debug, { + "name" => _INTL("Debug"), + "order" => 80, + "condition" => proc { next $DEBUG }, + "effect" => proc { |menu| + pbPlayDecisionSE + pbFadeOutIn do + pbDebugMenu + menu.refresh + end + next false + } +}) + +MenuHandlers.add(:pause_menu, :quit_game, { + "name" => _INTL("Quit Game"), + "order" => 90, + "effect" => proc { |menu| + menu.hide_menu + if pbConfirmMessage(_INTL("Are you sure you want to quit the game?")) + $scene = nil + next true + end + menu.refresh + menu.show_info + next false + } +}) diff --git a/Data/Scripts/016b_UI redesign/005_UI_Party.rb b/Data/Scripts/016b_UI redesign/005_UI_Party.rb new file mode 100644 index 000000000..1969b6000 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/005_UI_Party.rb @@ -0,0 +1,1503 @@ +# TODO: Rewrite all the ItemHandlers to stop using pbDisplay and whatnot, and +# ensure they do whatever is appropriate when being called with a screen +# of UI::Party. +#=============================================================================== +# +#=============================================================================== +class UI::PartyVisualsPanel < UI::SpriteContainer + attr_reader :index, :switch_index + attr_reader :pokemon, :text + + GRAPHICS_FOLDER = "Party/" + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(248, 248, 248), Color.new(40, 40, 40)], # Base and shadow colour + :male => [Color.new(0, 112, 248), Color.new(120, 184, 232)], + :female => [Color.new(232, 32, 16), Color.new(248, 168, 184)] + } + + def initialize(pokemon, index, viewport) + @pokemon = pokemon + @index = index + @x = (@index % 2) * Graphics.width / 2 + @y = (16 * (@index % 2)) + (96 * (@index / 2)) + @selected = false + @switch_index = -1 # -1 = not switching, 0+ = index of first panel for switching + @text = nil + super(viewport) + end + + def initialize_bitmaps + @bitmaps[:numbers] = AnimatedBitmap.new(graphics_folder + "numbers") + end + + def initialize_sprites + initialize_panel_bg + initialize_overlay + initialize_other_sprites + end + + def initialize_panel_bg + @sprites[:panel_bg] = ChangelingSprite.new(0, 0, @viewport) + @sprites[:panel_bg].add_bitmap(:blank, graphics_folder + "panel_blank") + @sprites[:panel_bg].add_bitmap(:able, graphics_folder + "panel_rect") + @sprites[:panel_bg].add_bitmap(:able_sel, graphics_folder + "panel_rect_sel") + @sprites[:panel_bg].add_bitmap(:fainted, graphics_folder + "panel_rect_faint") + @sprites[:panel_bg].add_bitmap(:fainted_sel, graphics_folder + "panel_rect_faint_sel") + @sprites[:panel_bg].add_bitmap(:switch, graphics_folder + "panel_rect_switch") + @sprites[:panel_bg].add_bitmap(:switch_sel, graphics_folder + "panel_rect_switch_sel") + @sprites[:panel_bg].add_bitmap(:switch_sel2, graphics_folder + "panel_rect_switch_sel2") + record_values(:panel_bg) + end + + def initialize_overlay + add_overlay(:overlay, 256, 98) + record_values(:overlay) + end + + def initialize_other_sprites + # HP bar sprite + @sprites[:hp_bar] = ChangelingSprite.new(104, 50, @viewport) + @sprites[:hp_bar].z = 1 + @sprites[:hp_bar].add_bitmap(:able, graphics_folder + _INTL("overlay_hp_back")) + @sprites[:hp_bar].add_bitmap(:fainted, graphics_folder + _INTL("overlay_hp_back_faint")) + @sprites[:hp_bar].add_bitmap(:switch, graphics_folder + _INTL("overlay_hp_back_switch")) + record_values(:hp_bar) + # Ball sprite + @sprites[:ball] = ChangelingSprite.new(10, 0, @viewport) + @sprites[:ball].z = 1 + @sprites[:ball].add_bitmap(:desel, graphics_folder + "icon_ball") + @sprites[:ball].add_bitmap(:sel, graphics_folder + "icon_ball_sel") + record_values(:ball) + # Pokémon icon + @sprites[:pokemon] = PokemonIconSprite.new(@pokemon, @viewport) + @sprites[:pokemon].x = 60 + @sprites[:pokemon].y = 40 + @sprites[:pokemon].z = 2 + @sprites[:pokemon].setOffset(PictureOrigin::CENTER) + @sprites[:pokemon].active = @active + record_values(:pokemon) + # Held item icon + @sprites[:held_item] = HeldItemIconSprite.new(70, 48, @pokemon, @viewport) + @sprites[:held_item].z = 3 + record_values(:held_item) + end + + #----------------------------------------------------------------------------- + + def text=(value) + return if @text == value + @text = value + refresh + end + + def pokemon=(value) + @pokemon = value + @sprites[:pokemon].pokemon = @pokemon if @sprites[:pokemon] && !@sprites[:pokemon].disposed? + @sprites[:held_item].pokemon = @pokemon if @sprites[:held_item] && !@sprites[:held_item].disposed? + refresh + end + + def blank? + return @pokemon.nil? + end + + def selected=(value) + return if @selected == value + @selected = value + @sprites[:pokemon].selected = @selected + refresh + end + + def set_switch_index(value) + @switch_index = value + refresh + end + + #----------------------------------------------------------------------------- + + def refresh + super + refresh_panel_bg + refresh_hp_bar_graphic + refresh_ball_graphic + refresh_pokemon_icon + refresh_held_item_icon + end + + def refresh_panel_bg + return if !@sprites[:panel_bg] || @sprites[:panel_bg].disposed? + if @pokemon.nil? + @sprites[:panel_bg].change_bitmap(:blank) + elsif @selected + if @switch_index == @index + @sprites[:panel_bg].change_bitmap(:switch_sel2) + elsif @switch_index >= 0 + @sprites[:panel_bg].change_bitmap(:switch_sel) + elsif @pokemon.fainted? + @sprites[:panel_bg].change_bitmap(:fainted_sel) + else + @sprites[:panel_bg].change_bitmap(:able_sel) + end + else + if @switch_index == @index + @sprites[:panel_bg].change_bitmap(:switch) + elsif @pokemon.fainted? + @sprites[:panel_bg].change_bitmap(:fainted) + else + @sprites[:panel_bg].change_bitmap(:able) + end + end + end + + def refresh_hp_bar_graphic + return if !@sprites[:hp_bar] || @sprites[:hp_bar].disposed? + @sprites[:hp_bar].visible = (@pokemon && !@pokemon.egg? && !(@text && @text.length > 0)) + return if !@sprites[:hp_bar].visible + if @switch_index == @index || (@switch_index >= 0 && @selected) + @sprites[:hp_bar].change_bitmap(:switch) + elsif @pokemon.fainted? + @sprites[:hp_bar].change_bitmap(:fainted) + else + @sprites[:hp_bar].change_bitmap(:able) + end + end + + def refresh_ball_graphic + return if !@sprites[:ball] || @sprites[:ball].disposed? + @sprites[:ball].visible = !@pokemon.nil? + @sprites[:ball].change_bitmap((@selected) ? :sel : :desel) + end + + def refresh_pokemon_icon + return if !@sprites[:pokemon] || @sprites[:pokemon].disposed? + @sprites[:pokemon].visible = !@pokemon.nil? + @sprites[:pokemon].selected = @selected + end + + def refresh_held_item_icon + return if !@sprites[:held_item] || @sprites[:held_item].disposed? + @sprites[:held_item].visible = !@pokemon.nil? + end + + def refresh_overlay + super + return if @pokemon.nil? + draw_name + draw_level + draw_gender + draw_hp_bar + draw_hp_numbers + draw_status_icon + draw_shiny_icon + draw_annotation + end + + #----------------------------------------------------------------------------- + + def draw_name + pokemon_name = @pokemon.name + pokemon_name = crop_text(pokemon_name, 144) + name_width = @sprites[:overlay].bitmap.text_size(pokemon_name).width + draw_text(pokemon_name, 94 - [name_width - 130, 0].max, 22) + end + + def draw_level + return if @pokemon.egg? + draw_image(graphics_folder + _INTL("overlay_lv"), 16, 70) + draw_number_from_image(@bitmaps[:numbers], @pokemon.level, 38, 70) + end + + def draw_gender + return if @pokemon.egg? + if @pokemon.male? + draw_text(_INTL("♂"), 230, 22, theme: :male) + elsif @pokemon.female? + draw_text(_INTL("♀"), 230, 22, theme: :female) + end + end + + def draw_hp_bar + return if @pokemon.egg? || @pokemon.fainted? || (@text && @text.length > 0) + bar_x = 136 + bar_y = 52 + bar_total_width = 96 + bar_width = [@pokemon.hp * bar_total_width / @pokemon.totalhp.to_f, 1.0].max + bar_width = ((bar_width / 2).round) * 2 # Make the bar's length a multiple of 2 pixels + bar_width -= 2 if bar_width == bar_total_width && @pokemon.hp < @pokemon.totalhp + hp_zone = 0 # Green + hp_zone = 1 if @pokemon.hp <= (@pokemon.totalhp / 2).floor # Yellow + hp_zone = 2 if @pokemon.hp <= (@pokemon.totalhp / 4).floor # Red + draw_image(graphics_folder + "hp_bar_fill", bar_x, bar_y, + 0, hp_zone * 8, bar_width, 8) + end + + def draw_hp_numbers + return if @pokemon.egg? || (@text && @text.length > 0) + draw_number_from_image(@bitmaps[:numbers], @pokemon.hp, 178, 70, align: :right) + draw_number_from_image(@bitmaps[:numbers], "/" + @pokemon.totalhp.to_s, 178, 70, align: :left) + end + + def draw_status_icon + return if @pokemon.egg? || (@text && @text.length > 0) + status = -1 + if @pokemon.fainted? + status = GameData::Status.count - 1 + elsif @pokemon.status != :NONE + status = GameData::Status.get(@pokemon.status).icon_position + elsif @pokemon.pokerusStage == 1 + status = GameData::Status.count + end + if status >= 0 + draw_image(UI_FOLDER + _INTL("statuses"), 86, 68, + 0, status * GameData::Status::ICON_SIZE[1], *GameData::Status::ICON_SIZE) + end + end + + def draw_shiny_icon + return if @pokemon.egg? || (@text && @text.length > 0) + draw_image(UI_FOLDER + "shiny", 88, 48) if @pokemon.shiny? + end + + def draw_annotation + draw_text(@text, 94, 62) if @text && @text.length > 0 + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PartyVisualsButton < UI::SpriteContainer + GRAPHICS_FOLDER = "Party/" + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(248, 248, 248), Color.new(40, 40, 40)] # Base and shadow colour + } + + def initialize(text, x, y, narrow, viewport) + @text = text + @x = x + @y = y + @narrow = narrow + @selected = false + super(viewport) + refresh + end + + def initialize_sprites + @sprites[:button] = ChangelingSprite.new(0, 0, @viewport) + if @narrow + @sprites[:button].add_bitmap(:desel, graphics_folder + "icon_cancel_narrow") + @sprites[:button].add_bitmap(:sel, graphics_folder + "icon_cancel_narrow_sel") + else + @sprites[:button].add_bitmap(:desel, graphics_folder + "icon_cancel") + @sprites[:button].add_bitmap(:sel, graphics_folder + "icon_cancel_sel") + end + @sprites[:button].change_bitmap(:desel) + record_values(:button) + initialize_overlay + end + + def initialize_overlay + add_overlay(:overlay, 112, 48) + @sprites[:overlay].z = 1 + record_values(:overlay) + end + + #----------------------------------------------------------------------------- + + def selected=(value) + return if @selected == value + @selected = value + refresh + end + + #----------------------------------------------------------------------------- + + def refresh + super + @sprites[:button].change_bitmap((@selected) ? :sel : :desel) + end + + def refresh_overlay + super + draw_text(@text, @sprites[:overlay].width / 2, (@narrow) ? 8 : 14, align: :center) + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PartyVisuals < UI::BaseVisuals + attr_reader :index + attr_reader :sub_mode + + GRAPHICS_FOLDER = "Party/" # Subfolder in Graphics/UI + + def initialize(party, mode = :normal) + @party = party + @mode = mode + @index = (@party.length == 0) ? Settings::MAX_PARTY_SIZE : 0 + @multi_select = (@mode == :choose_entry_order) + super() + set_index(@index) + end + + def initialize_message_box + super + @sprites[:help_window] = Window_AdvancedTextPokemon.new("") + @sprites[:help_window].viewport = @viewport + @sprites[:help_window].z = 1500 + @sprites[:help_window].setSkin(MessageConfig.pbGetSpeechFrame) + pbBottomLeftLines(@sprites[:help_window], 1, 396) + end + + def initialize_sprites + initialize_panels + initialize_cancel_button + @sprites[:storage_text] = Window_UnformattedTextPokemon.new( + (can_access_screen_menu?) ? _INTL("[Action]: Menu") : "" + ) + @sprites[:storage_text].x = 32 + @sprites[:storage_text].y = Graphics.height - @sprites[:message_box].height - 16 + @sprites[:storage_text].z = 10 + @sprites[:storage_text].viewport = @viewport + @sprites[:storage_text].baseColor = Color.new(248, 248, 248) + @sprites[:storage_text].shadowColor = Color.black + @sprites[:storage_text].windowskin = nil + end + + def initialize_panels + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon#{i}"] = UI::PartyVisualsPanel.new(@party[i], i, @viewport) + end + end + + def initialize_cancel_button + party_max = Settings::MAX_PARTY_SIZE + if @multi_select + @sprites["pokemon#{party_max}"] = UI::PartyVisualsButton.new(_INTL("CONFIRM"), 396, 308, true, @viewport) + @sprites["pokemon#{party_max + 1}"] = UI::PartyVisualsButton.new(_INTL("CANCEL"), 396, 346, true, @viewport) + else + @sprites["pokemon#{party_max}"] = UI::PartyVisualsButton.new(_INTL("CANCEL"), 396, 328, false, @viewport) + end + end + + #----------------------------------------------------------------------------- + + def can_access_screen_menu? + return false if @mode != :normal + return !switching? && (can_access_storage? || @party.length > 1) + end + + def can_access_storage? + return false if @mode != :normal + return ($player.has_box_link || $bag.has?(:POKEMONBOXLINK)) && + !$game_switches[Settings::DISABLE_BOX_LINK_SWITCH] && + !$game_map.metadata&.has_flag?("DisableBoxLink") + end + + def set_help_text(text) + @sprites[:help_window].text = text + pbBottomLeftLines(@sprites[:help_window], 1, 396) + @sprites[:help_window].resizeHeightToFit(text, @sprites[:help_window].width) + pbBottomLeft(@sprites[:help_window]) + @sprites[:help_window].visible = true + end + + def panels_have_annotations? + return !@sprites["pokemon0"].text.nil? + end + + def set_annotations(annot) + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon#{i}"].text = (annot) ? annot[i] : nil + end + end + + def set_able_annotation_proc(able_proc) + @able_proc = able_proc + refresh_able_annotations + end + + # Used for extra restrictions on Pokémon when choosing one to trade. + def set_able_annotation_proc2(able_proc) + @able_proc2 = able_proc + refresh_able_annotations + end + + def set_index(new_index) + @index = new_index + num_sprites = Settings::MAX_PARTY_SIZE + ((@multi_select) ? 2 : 1) + num_sprites.times do |i| + @sprites["pokemon#{i}"].selected = (i == @index) + end + end + + def set_sub_mode(sub_mode = :normal) + @sub_mode = sub_mode + end + + #----------------------------------------------------------------------------- + + def switch_index + return @sprites["pokemon0"].switch_index + end + + def switching? + return switch_index >= 0 + end + + def start_switching(index) + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon#{i}"].set_switch_index(index) + end + end + + def end_switching + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon#{i}"].set_switch_index(-1) + end + end + + def animate_switch_panels_out(index1, index2) + pbSEPlay("GUI party switch") + # Setup values + sprite1 = @sprites["pokemon#{index1}"] + sprite2 = @sprites["pokemon#{index2}"] + sprite1_start_x = sprite1.x + sprite2_start_x = sprite2.x + sprite1_dir = (index1.even?) ? -1 : 1 + sprite2_dir = (index2.even?) ? -1 : 1 + # Animate the panels moving off-screen + duration = 0.4 + timer_start = System.uptime + loop do + sprite1.x = sprite1_start_x + lerp(0, sprite1_dir * Graphics.width / 2, duration, timer_start, System.uptime) + sprite2.x = sprite2_start_x + lerp(0, sprite2_dir * Graphics.width / 2, duration, timer_start, System.uptime) + Graphics.update + Input.update + update_visuals + break if sprite1.x == sprite1_start_x + (sprite1_dir * Graphics.width / 2) + end + end + + def animate_switch_panels_in(index1, index2) + pbSEPlay("GUI party switch") + # Setup values + sprite1 = @sprites["pokemon#{index1}"] + sprite2 = @sprites["pokemon#{index2}"] + sprite1.pokemon = @party[index1] + sprite2.pokemon = @party[index2] + sprite1_start_x = sprite1.x + sprite2_start_x = sprite2.x + sprite1_dir = (index1.even?) ? 1 : -1 + sprite2_dir = (index2.even?) ? 1 : -1 + # Animate the panels moving back into position + duration = 0.4 + timer_start = System.uptime + loop do + sprite1.x = sprite1_start_x + lerp(0, sprite1_dir * Graphics.width / 2, duration, timer_start, System.uptime) + sprite2.x = sprite2_start_x + lerp(0, sprite2_dir * Graphics.width / 2, duration, timer_start, System.uptime) + Graphics.update + Input.update + update_visuals + break if sprite1.x == sprite1_start_x + (sprite1_dir * Graphics.width / 2) + end + end + + #----------------------------------------------------------------------------- + + def show_message(text) + @sprites[:help_window].visible = false + super + @sprites[:help_window].visible = true + end + + def show_confirm_message(text) + @sprites[:help_window].visible = false + ret = super + @sprites[:help_window].visible = true + return ret + end + + def show_menu(text, options, index = 0, cmd_side: :right) + @sprites[:help_window].visible = false +# cmd_side = (@index.even?) ? :right : :left + ret = super(text, options, index, cmd_side: cmd_side) + @sprites[:help_window].visible = true + return ret + end + + def show_choice(options, index = 0) + @sprites[:help_window].visible = false + ret = super + @sprites[:help_window].visible = true + return ret + end + + def choose_number(help_text, maximum, init_num = 1) + @sprites[:help_window].visible = false + ret = super + @sprites[:help_window].visible = true + return ret + end + + #----------------------------------------------------------------------------- + + def refresh + ensure_valid_index + refresh_panels + end + + def ensure_valid_index + old_index = @index + @index = @party.length - 1 if @index < Settings::MAX_PARTY_SIZE && @index >= @party.length + set_index(@index) if @index != old_index + end + + def refresh_panels + Settings::MAX_PARTY_SIZE.times { |i| refresh_panel(i) } + end + + def refresh_panel(panel_index) + sprite = @sprites["pokemon#{panel_index}"] + return if !sprite + if sprite.is_a?(UI::PartyVisualsPanel) + sprite.pokemon = sprite.pokemon + else + sprite.refresh + end + end + + def refresh_party + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon#{i}"].pokemon = @party[i] + end + end + + def refresh_able_annotations + Settings::MAX_PARTY_SIZE.times do |i| + next if @sprites["pokemon#{i}"].blank? + if !@able_proc && !@able_proc2 + @sprites["pokemon#{i}"].text = nil + next + end + is_able = true + is_able = false if @able_proc && !@able_proc.call(@party[i]) + is_able = false if @able_proc2 && !@able_proc2.call(@party[i]) + @sprites["pokemon#{i}"].text = (is_able) ? _INTL("ABLE") : _INTL("NOT ABLE") + end + end + + #----------------------------------------------------------------------------- + + def update_input + # Check for movement to a new Pokémon/button + old_index = @index + update_cursor_movement + if @index != old_index + pbPlayCursorSE + set_index(@index) + end + # Check for interaction + if Input.trigger?(Input::USE) + return update_interaction(Input::USE) + elsif Input.trigger?(Input::BACK) + return update_interaction(Input::BACK) + elsif Input.trigger?(Input::ACTION) + return update_interaction(Input::ACTION) + elsif Input.trigger?(Input::SPECIAL) + return update_interaction(Input::SPECIAL) + end + return nil + end + + def update_cursor_movement + num_sprites = Settings::MAX_PARTY_SIZE + ((@multi_select) ? 2 : 1) + if Input.repeat?(Input::UP) + if @index >= Settings::MAX_PARTY_SIZE + @index -= 1 + @index = @party.length - 1 if @index < Settings::MAX_PARTY_SIZE && !@party[@index] + @index = num_sprites - 1 if !@party[@index] # In case party is empty + else + loop do + @index -= 2 + break if @index < 0 || @party[@index] + end + @index = num_sprites - 1 if @index < 0 # Wrap around to the cancel button + end + elsif Input.repeat?(Input::DOWN) + if @index >= Settings::MAX_PARTY_SIZE - 1 + @index += 1 + @index = 0 if @index >= num_sprites # Wrap around to the first Pokémon + else + @index += 2 + end + @index = Settings::MAX_PARTY_SIZE if @index < Settings::MAX_PARTY_SIZE && !@party[@index] + elsif Input.repeat?(Input::LEFT) + loop do + @index -= 1 + break if @index < 0 || @index >= Settings::MAX_PARTY_SIZE || @party[@index] + end + @index = num_sprites - 1 if @index < 0 # Wrap around to the cancel button + elsif Input.repeat?(Input::RIGHT) + loop do + @index += 1 + break if @index >= Settings::MAX_PARTY_SIZE || @party[@index] + end + @index = 0 if @index >= num_sprites # Wrap around to the first Pokémon + @index = Settings::MAX_PARTY_SIZE if @index < Settings::MAX_PARTY_SIZE && !@party[@index] + end + end + + def update_interaction(input) + case input + when Input::USE + return :switch_pokemon_end if switching? + if @index == Settings::MAX_PARTY_SIZE + pbPlayCloseMenuSE + return :quit + elsif @sub_mode == :switch_pokemon + return :switch_pokemon_start + elsif @sub_mode == :switch_items + return :item_move if @party[@index].hasItem? + end + pbPlayDecisionSE + return :interact_menu + when Input::ACTION + if can_access_screen_menu? + pbPlayDecisionSE + return :screen_menu + end + when Input::BACK + return :switch_pokemon_cancel if switching? + return :clear_sub_mode if (@sub_mode || :normal) != :normal + pbPlayCloseMenuSE + return :quit + end + return nil + end + + def navigate + refresh + super + end + + #----------------------------------------------------------------------------- + + def update_input_choose_pokemon + # Check for movement to a new Pokémon/button + old_index = @index + update_cursor_movement + if @index != old_index + pbPlayCursorSE + set_index(@index) + end + # Check for interaction + if Input.trigger?(Input::USE) + return update_interaction_choose_pokemon(Input::USE) + elsif Input.trigger?(Input::BACK) + return update_interaction_choose_pokemon(Input::BACK) + end + return nil + end + + def update_interaction_choose_pokemon(input) + case input + when Input::USE + if @index == Settings::MAX_PARTY_SIZE + return :confirm if @multi_select # Confirm + (switching?) ? pbPlayCancelSE : pbPlayCloseMenuSE + return :quit + elsif @index == Settings::MAX_PARTY_SIZE + 1 # Cancel + (switching?) ? pbPlayCancelSE : pbPlayCloseMenuSE + return :quit + else + return :chosen + end + when Input::BACK + (switching?) ? pbPlayCancelSE : pbPlayCloseMenuSE + return :quit + end + return nil + end + + def navigate_choose_pokemon + ret = nil + loop do + Graphics.update + Input.update + update_visuals + ret = update_input_choose_pokemon + break if ret + end + return ret + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::Party < UI::BaseScreen + attr_reader :party + + SCREEN_ID = :party_screen + + # mode is one of: + # :normal Can choose Fly/Dig/Teleport to use + # :choose_pokemon Result is index of chosen Pokémon; def pbMoveTutorChoose + # wants this to yield when chosen + # :battle_choose_pokemon For battle. + # :battle_choose_to_box For battle. Like :choose_pokemon but with a different help text. + # :battle_use_item For battle. + # :use_item Like :choose_pokemon but with a different help text + # :teach_pokemon Like :choose_pokemon but with a different help text + # :choose_entry_order Battle Frontier thing + def initialize(party, mode: :normal) + @party = (party.is_a?(Array)) ? party : [party] + @mode = mode + super() + reset_help_text + end + + def initialize_visuals + @visuals = UI::PartyVisuals.new(@party, @mode) + end + + #----------------------------------------------------------------------------- + + def pokemon + return (index < @party.length) ? @party[index] : nil + end + + def can_access_storage? + return @visuals.can_access_storage? + end + + def set_index(new_index) + @visuals.set_index(new_index) + end + + def set_help_text(text) + @visuals.set_help_text(text) + end + + def set_able_annotation_proc(able_proc) + @able_proc = able_proc + @visuals.set_able_annotation_proc(able_proc) + end + + # Used for extra restrictions on Pokémon when choosing one to trade. + def set_able_annotation_proc2(able_proc) + @able_proc2 = able_proc + @visuals.set_able_annotation_proc2(able_proc) + end + + def set_annotations(annot) + @visuals.set_annotations(annot) + end + + def clear_annotations + @visuals.set_annotations(nil) + end + + def set_sub_mode(sub_mode = :normal) + @visuals.set_sub_mode(sub_mode) + end + + #----------------------------------------------------------------------------- + + def switch_index + return @visuals.switch_index + end + + def switching? + return @visuals.switching? + end + + def start_switching(index = nil) + @visuals.start_switching(index || @visuals.index) + end + + def end_switching + @visuals.end_switching + end + + def switch_pokemon(index1, index2) + if index1 >= 0 && index1 < @party.length && + index2 >= 0 && index2 < @party.length && + index1 != index2 + @visuals.animate_switch_panels_out(index1, index2) + @party[index1], @party[index2] = @party[index2], @party[index1] + @visuals.animate_switch_panels_in(index1, index2) + end + end_switching + end + + #----------------------------------------------------------------------------- + + alias pbShowCommands show_menu + + #----------------------------------------------------------------------------- + + def refresh + super + reset_help_text + end + + def reset_help_text + case @mode + when :normal + if switching? + set_help_text(_INTL("Move to where?")) + else + case @visuals.sub_mode + when :switch_pokemon + set_help_text(_INTL("Choose Pokémon to switch.")) + when :switch_items + set_help_text(_INTL("Choose to switch items.")) + else + set_help_text((@party.length > 1) ? _INTL("Choose a Pokémon.") : _INTL("Choose Pokémon or cancel.")) + end + end + when :choose_pokemon, :battle_choose_pokemon + if switching? + set_help_text(_INTL("Move to where?")) + else + set_help_text(_INTL("Choose a Pokémon.")) + end + when :use_item, :battle_use_item + set_help_text(_INTL("Use on which Pokémon?")) + when :teach_pokemon + set_help_text(_INTL("Teach which Pokémon?")) + when :battle_choose_to_box + set_help_text(_INTL("Send which Pokémon to Boxes?")) + when :choose_entry_order + set_help_text(_INTL("Choose Pokémon and confirm.")) + end + end + + def refresh_party + @visuals.refresh_party + end + + # TODO: Get rid of this method once ItemHandlers have been rewritten. + def pbHardRefresh + refresh_party + refresh + end + + #----------------------------------------------------------------------------- + + # For Soft-Boiled and Milk Drink. + def use_field_move(move_id) + pkmn = pokemon + move = pkmn.moves.select { |mov| mov.id == move_id }.first + move_name = move.name + case move_id + when :SOFTBOILED, :MILKDRINK + heal_amt = [(pkmn.totalhp / 5).floor, 1].max + if pkmn.hp <= heal_amt + show_message(_INTL("Not enough HP...")) + return + end + old_party_idx = index + start_switching(old_party_idx) + loop do + set_help_text(_INTL("Use on which Pokémon?")) + new_party_idx = choose_pokemon_core + if new_party_idx < 0 || new_party_idx == old_party_idx + end_switching + break + end + new_pkmn = pokemon + if new_party_idx == old_party_idx + show_message(_INTL("{1} can't use {2} on itself!", pkmn.name, move_name)) + elsif new_pkmn.egg? + show_message(_INTL("{1} can't be used on an Egg!", move_name)) + elsif new_pkmn.fainted? || new_pkmn.hp == new_pkmn.totalhp + show_message(_INTL("{1} can't be used on that Pokémon.", move_name)) + else + pkmn.hp -= heal_amt + hp_gain = pbItemRestoreHP(new_pkmn, heal_amt) + show_message(_INTL("{1}'s HP was restored by {2} points.", new_pkmn.name, hp_gain)) + refresh + end + break if pkmn.hp <= heal_amt + end + end_switching + set_index(old_party_idx) + else + if pbCanUseHiddenMove?(pkmn, move_id) && pbConfirmUseHiddenMove(pkmn, move_id) + if move_id == :FLY + pbFadeOutInWithUpdate(sprites) do + town_map_screen = UI::TownMap.new(mode: :fly) + town_map_screen.main + if town_map_screen.result + $game_temp.field_move_to_use = move_id + $game_temp.field_move_user = pkmn + $game_temp.fly_destination = town_map_screen.result + silent_end_screen + end + end + else + $game_temp.field_move_to_use = move_id + $game_temp.field_move_user = pkmn + end_screen + end + end + end + end + + #----------------------------------------------------------------------------- + + def on_start_main_loop + reset_help_text + end + + def choose_pokemon + start_screen + loop do + on_start_main_loop + chosen_index = choose_pokemon_core + if chosen_index >= 0 && block_given? + next if !yield @party[chosen_index], chosen_index + end + @result = chosen_index + break + end + end_screen + return @result + end + + def choose_pokemon_core + ret = -1 + loop do + command = @visuals.navigate_choose_pokemon + if command != :chosen || index < 0 || index >= @party.length + ret = -1 + break + end + if (@able_proc && !@able_proc.call(pokemon)) || + (@able_proc2 && !@able_proc2.call(pokemon)) + if pokemon.egg? + show_message(_INTL("This egg can't be chosen.")) + else + show_message(_INTL("This Pokémon can't be chosen.")) + end + next + end + ret = index + break + end + return ret + end + + # Used by the Battle Frontier. + def choose_pokemon_entry_order(ruleset) + return nil if !ruleset.hasValidTeam?(@party) + # Setup party panel annotations + annot = [] + statuses = [] + ordinals = [_INTL("INELIGIBLE"), _INTL("NOT ENTERED"), _INTL("BANNED")] + positions = [_INTL("FIRST"), _INTL("SECOND"), _INTL("THIRD"), _INTL("FOURTH"), + _INTL("FIFTH"), _INTL("SIXTH"), _INTL("SEVENTH"), _INTL("EIGHTH"), + _INTL("NINTH"), _INTL("TENTH"), _INTL("ELEVENTH"), _INTL("TWELFTH")] + Settings::MAX_PARTY_SIZE.times do |i| + ordinals.push(positions[i] || "#{i + 1}th") + end + @party.length.times do |i| + statuses[i] = (ruleset.isPokemonValid?(@party[i])) ? 1 : 2 + annot[i] = ordinals[statuses[i]] + end + set_annotations(annot) + # Main loop + start_screen + ret = nil + added_entry = false # Whether an entry was added in the previous loop + loop do + on_start_main_loop + # Get an array of the chosen Pokémon in order + real_order = [] + @party.length.times do |i| + @party.length.times do |j| + next if statuses[j] != i + 3 + real_order.push(j) + break + end + end + real_order.length.times { |i| statuses[real_order[i]] = i + 3 } + # Refresh annotations + @party.length.times { |i| annot[i] = ordinals[statuses[i]] } + set_annotations(annot) + # Move index to the "Confirm" button if the required number of Pokémon are + # now chosen + if real_order.length == ruleset.number && added_entry + @visuals.set_index(Settings::MAX_PARTY_SIZE) + end + added_entry = false + # Choose a Pokémon or button + command = @visuals.navigate_choose_pokemon + case command + when :chosen + commands = {} + commands[:enter] = _INTL("Entry") if (statuses[index] || 0) == 1 # Not entered yet + commands[:not_enter] = _INTL("No Entry") if (statuses[index] || 0) > 2 # Already entered + commands[:summary] = _INTL("Summary") + commands[:cancel] = _INTL("Cancel") + chosen_command = show_menu(_INTL("Do what with {1}?", pokemon.name), commands) + case chosen_command + when :enter + if real_order.length >= ruleset.number && ruleset.number > 0 + show_message(_INTL("No more than {1} Pokémon may enter.", ruleset.number)) + else + statuses[index] = real_order.length + 3 + added_entry = true + refresh + end + when :not_enter + statuses[index] = 1 + refresh + when :summary + perform_action(:summary) + end + when :confirm + ret = [] + real_order.each { |i| ret.push(@party[i]) } + error = [] + break if ruleset.isValid?(ret, error) + show_message(error[0]) + ret = nil + when :quit # Cancelled + break + end + end + end_screen + @result = ret + return @result + end + + def choose_move(pkmn, message) + # TODO: The move names can get rather wide, making the message box rather + # thin. It's just about acceptable, but maybe the choice window needs + # to be displayed above the message box instead of to the right of it. + move_names = [] + pkmn.moves.each do |move| + next if !move || !move.id + if move.total_pp <= 0 + move_names.push(_INTL("{1} (PP: ---)", move.name)) + else + move_names.push(_INTL("{1} (PP: {2}/{3})", move.name, move.pp, move.total_pp)) + end + end + return show_menu(message, move_names) + end + + alias pbChooseMove choose_move +end + +#=============================================================================== +# Actions that can be triggered in the party screen. +#=============================================================================== +# Shows a choice menu using the MenuHandlers options below. +UIActionHandlers.add(UI::Party::SCREEN_ID, :screen_menu, { + :menu => :party_screen_menu, + :menu_message => proc { |screen| _INTL("Choose an option.") } +}) + +# Shows a choice menu using the MenuHandlers options below. +UIActionHandlers.add(UI::Party::SCREEN_ID, :interact_menu, { + :menu => :party_screen_interact, + :menu_message => proc { |screen| _INTL("Do what with {1}?", screen.pokemon.name) } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :summary, { + :effect => proc { |screen| + summary_mode = [:battle_choose_pokemon, :battle_choose_to_box, :battle_use_item].include?(screen.mode) ? :in_battle : :normal + pbFadeOutInWithUpdate(screen.sprites) do + new_index = UI::PokemonSummary.new(screen.party, screen.index, mode: summary_mode).main + screen.set_index(new_index) + end + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :debug, { + :effect => proc { |screen| + screen.pokemon_debug_menu(screen.pokemon, screen.index) + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :switch_pokemon_start, { + :effect => proc { |screen| + pbPlayDecisionSE + screen.start_switching + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :switch_pokemon_end, { + :effect => proc { |screen| + screen.switch_pokemon(screen.switch_index, screen.index) + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :switch_pokemon_cancel, { + :effect => proc { |screen| + pbPlayCancelSE + screen.end_switching + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :switch_pokemon_mode, { + :effect => proc { |screen| + screen.set_sub_mode(:switch_pokemon) + } +}) + +# Shows a choice menu using the MenuHandlers options below. +UIActionHandlers.add(UI::Party::SCREEN_ID, :item_menu, { + :menu => :party_screen_interact_item, + :menu_message => proc { |screen| _INTL("Do what with an item?") } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :item_use, { + :effect => proc { |screen| + pkmn = screen.pokemon + used_item = nil + pbFadeOutInWithUpdate(screen.sprites) do + bag_screen = UI::Bag.new($bag, mode: :choose_item) + bag_screen.set_filter_proc(proc { |itm| + item_data = GameData::Item.get(itm) + next false if !pbCanUseItemOnPokemon?(itm) + next false if pkmn.hyper_mode && !item_data&.is_scent? + if item_data.is_machine? + move = item_data.move + next false if pkmn.hasMove?(move) || !pkmn.compatible_with_move?(move) + end + next true + }) + used_item = bag_screen.choose_item + end + if used_item + pbUseItemOnPokemon(used_item, pkmn, screen) + screen.refresh + end + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :item_give, { + :effect => proc { |screen| + pkmn = screen.pokemon + given_item = nil + pbFadeOutInWithUpdate(screen.sprites) do + bag_screen = UI::Bag.new($bag, mode: :choose_item) + bag_screen.set_filter_proc(proc { |itm| GameData::Item.get(itm).can_hold? }) + given_item = bag_screen.choose_item + end + if given_item + pbGiveItemToPokemon(given_item, pkmn, screen, screen.index) + screen.refresh + end + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :item_take, { + :effect => proc { |screen| + pkmn = screen.pokemon + screen.refresh if pbTakeItemFromPokemon(pkmn, screen) + } +}) + +# TODO: Switching Pokémon goes through the regular navigate, but switching items +# (here) has the whole switching process in this handler. Be consistent. +UIActionHandlers.add(UI::Party::SCREEN_ID, :item_move, { + :effect => proc { |screen| + pbPlayDecisionSE + old_pkmn = screen.pokemon + old_item = old_pkmn.item + old_item_name = old_item.name + old_item_portion_name = old_item.portion_name + screen.set_help_text(_INTL("Move held item to where?")) + old_party_idx = screen.index + moved = false + loop do + screen.start_switching(old_party_idx) + new_party_idx = screen.choose_pokemon_core + if new_party_idx < 0 || new_party_idx == old_party_idx + screen.end_switching + break + end + new_pkmn = screen.party[new_party_idx] + if new_pkmn.egg? + screen.show_message(_INTL("Eggs can't hold items.")) + next + elsif !new_pkmn.hasItem? + new_pkmn.item = old_item + old_pkmn.item = nil + screen.end_switching + screen.show_message(_INTL("{1} was given the {2} to hold.", new_pkmn.name, old_item_portion_name)) + moved = true + break + elsif new_pkmn.item.is_mail? + screen.show_message(_INTL("{1}'s mail must be removed before giving it an item.", new_pkmn.name)) + next + end + # New Pokémon is also holding an item; ask what to do with it + new_item = new_pkmn.item + new_item_portion_name = new_item.portion_name + if new_item_portion_name.starts_with_vowel? + screen.show_message(_INTL("{1} is already holding an {2}.", new_pkmn.name, new_item_portion_name) + "\1") + else + screen.show_message(_INTL("{1} is already holding a {2}.", new_pkmn.name, new_item_portion_name) + "\1") + end + next if !screen.show_confirm_message(_INTL("Would you like to switch the two items?")) + new_pkmn.item = old_item + old_pkmn.item = new_item + screen.end_switching + screen.show_message(_INTL("{1} was given the {2} to hold.", new_pkmn.name, old_item_portion_name) + "\1") + screen.show_message(_INTL("{1} was given the {2} to hold.", old_pkmn.name, new_item_portion_name)) + moved = true + break + end + screen.set_index(old_party_idx) if !moved + } +}) + +# Shows a choice menu using the MenuHandlers options below. +UIActionHandlers.add(UI::Party::SCREEN_ID, :mail_menu, { + :menu => :party_screen_interact_mail, + :menu_message => proc { |screen| _INTL("Do what with the Mail?") } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :item_move_mode, { + :effect => proc { |screen| + screen.set_sub_mode(:switch_items) + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :mail_read, { + :effect => proc { |screen| + pbFadeOutInWithUpdate(screen.sprites) do + pbDisplayMail(screen.pokemon.mail, screen.pokemon) + end + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :mail_take, { + :effect => proc { |screen| + screen.refresh if pbTakeItemFromPokemon(screen.pokemon, screen) + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :clear_sub_mode, { + :effect => proc { |screen| + pbPlayCancelSE + screen.set_sub_mode(:normal) + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :open_storage, { + :effect => proc { |screen| + pbFadeOutInWithUpdate(screen.sprites) do + UI::PokemonStorage.new($PokemonStorage, mode: :organize).main + screen.refresh_party + screen.refresh + end + } +}) + +# NOTE: This code adds a number of UIActionHandlers, one per move usable in the +# overworld. +HiddenMoveHandlers.eachHandler do |move_id| + eval <<-__END__ + UIActionHandlers.add(UI::Party::SCREEN_ID, :use_#{move_id}, { + :effect => proc { |screen| + screen.use_field_move(:#{move_id}) + } + }) + __END__ +end + +UIActionHandlers.add(UI::Party::SCREEN_ID, :use_MILKDRINK, { + :effect => proc { |screen| + screen.use_field_move(:MILKDRINK) + } +}) + +UIActionHandlers.add(UI::Party::SCREEN_ID, :use_SOFTBOILED, { + :effect => proc { |screen| + screen.use_field_move(:SOFTBOILED) + } +}) + +#=============================================================================== +# Menu options for choice menus that exist in the party screen. +#=============================================================================== +MenuHandlers.add(:party_screen_menu, :open_storage, { + "name" => _INTL("Access Pokémon Boxes"), + "order" => 10, + "condition" => proc { |screen| next screen.can_access_storage? } +}) + +MenuHandlers.add(:party_screen_menu, :switch_pokemon_mode, { + "name" => _INTL("Mode: Switch Pokémon"), + "order" => 20, + "condition" => proc { |screen| next screen.party.length > 1 } +}) + +MenuHandlers.add(:party_screen_menu, :item_move_mode, { + "name" => _INTL("Mode: Switch items"), + "order" => 30, + "condition" => proc { |screen| next screen.party.length > 1 } +}) + +MenuHandlers.add(:party_screen_menu, :cancel, { + "name" => _INTL("Cancel"), + "order" => 9999 +}) + +#------------------------------------------------------------------------------- + +MenuHandlers.add(:party_screen_interact, :summary, { + "name" => _INTL("Summary"), + "order" => 10 +}) + +MenuHandlers.add(:party_screen_interact, :debug, { + "name" => _INTL("Debug"), + "order" => 20, + "condition" => proc { |screen| next $DEBUG } +}) + +MenuHandlers.add(:party_screen_interact, :field_moves, { + "order" => 30, + "multi_options" => proc { |screen| + ret = [] + next ret if screen.pokemon.egg? + screen.pokemon.moves.each do |move| + next if !HiddenMoveHandlers.hasHandler(move.id) && + ![:MILKDRINK, :SOFTBOILED].include?(move.id) + ret.push(["use_#{move.id}".to_sym, nil, "" + move.name + ""]) + end + next ret + } +}) + +MenuHandlers.add(:party_screen_interact, :switch_pokemon_start, { + "name" => _INTL("Switch"), + "order" => 40, + "condition" => proc { |screen| next screen.party.length > 1 } +}) + +MenuHandlers.add(:party_screen_interact, :item_menu, { + "name" => _INTL("Item"), + "order" => 50, + "condition" => proc { |screen| next !screen.pokemon.egg? && !screen.pokemon.mail } +}) + +MenuHandlers.add(:party_screen_interact_item, :item_use, { + "name" => _INTL("Use"), + "order" => 10 +}) + +MenuHandlers.add(:party_screen_interact_item, :item_give, { + "name" => _INTL("Give"), + "order" => 20 +}) + +MenuHandlers.add(:party_screen_interact_item, :item_take, { + "name" => _INTL("Take"), + "order" => 30, + "condition" => proc { |screen| next screen.pokemon.hasItem? } +}) + +MenuHandlers.add(:party_screen_interact_item, :item_move, { + "name" => _INTL("Move"), + "order" => 40, + "condition" => proc { |screen| next screen.pokemon.hasItem? && !screen.pokemon.item.is_mail? } +}) + +MenuHandlers.add(:party_screen_interact_item, :item_cancel, { + "name" => _INTL("Cancel"), + "order" => 9999 +}) + +MenuHandlers.add(:party_screen_interact, :mail_menu, { + "name" => _INTL("Mail"), + "order" => 50, + "condition" => proc { |screen| next !screen.pokemon.egg? && screen.pokemon.mail } +}) + +MenuHandlers.add(:party_screen_interact_mail, :mail_read, { + "name" => _INTL("Read"), + "order" => 10 +}) + +MenuHandlers.add(:party_screen_interact_mail, :mail_take, { + "name" => _INTL("Take"), + "order" => 20 +}) + +MenuHandlers.add(:party_screen_interact_mail, :mail_cancel, { + "name" => _INTL("Cancel"), + "order" => 30 +}) + +MenuHandlers.add(:party_screen_interact, :cancel, { + "name" => _INTL("Cancel"), + "order" => 9999 +}) + +#=============================================================================== +# Open the party screen. +#=============================================================================== +def pbPokemonScreen + pbFadeOutIn do + UI::Party.new($player.party).main + end +end + +#=============================================================================== +# Choose a Pokémon in the party. +#=============================================================================== +# Choose a Pokémon/egg from the party. +# Stores result in variable _index_game_var_ and the chosen Pokémon's name in +# variable _name_game_var_; result is -1 if no Pokémon was chosen +# _allowIneligible is unused. +def pbChoosePokemon(index_game_var, name_game_var, able_proc = nil, _allow_ineligible = false) + 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 : "") +end + +def pbChooseNonEggPokemon(index_game_var, name_game_var) + pbChoosePokemon(index_game_var, name_game_var, proc { |pkmn| !pkmn.egg? }) +end + +def pbChooseAblePokemon(index_game_var, name_game_var) + pbChoosePokemon(index_game_var, name_game_var, proc { |pkmn| !pkmn.egg? && pkmn.hp > 0 }) +end + +# Same as pbChoosePokemon, but prevents choosing an egg or a Shadow Pokémon or a +# Pokémon that is marked and untradable. +def pbChooseTradablePokemon(index_game_var, name_game_var, able_proc = nil, _allow_ineligible = false) + chosen = 0 + pbFadeOutIn do + screen = UI::Party.new($player.party, mode: :choose_pokemon) + screen.set_able_annotation_proc(able_proc) if able_proc + screen.set_able_annotation_proc2(proc { |pkmn| next !pkmn.egg? && !pkmn.shadowPokemon? && !pkmn.cannot_trade }) + chosen = screen.choose_pokemon + end + pbSet(index_game_var, chosen) + pbSet(name_game_var, (chosen >= 0) ? $player.party[chosen].name : "") +end + +def pbChoosePokemonForTrade(index_game_var, name_game_var, wanted) + wanted = GameData::Species.get(wanted).species + pbChooseTradablePokemon(index_game_var, name_game_var, proc { |pkmn| + next pkmn.isSpecies?(wanted) + }) +end diff --git a/Data/Scripts/016b_UI redesign/006_UI_Summary.rb b/Data/Scripts/016b_UI redesign/006_UI_Summary.rb new file mode 100644 index 000000000..891660dfd --- /dev/null +++ b/Data/Scripts/016b_UI redesign/006_UI_Summary.rb @@ -0,0 +1,1569 @@ +#=============================================================================== +# +#=============================================================================== +class UI::PokemonSummaryMoveCursor < ChangelingSprite + BITMAPS = { + :normal => ["Graphics/UI/Summary/cursor_move", 0, 0, 252, 74], + :selected => ["Graphics/UI/Summary/cursor_move", 0, 74, 252, 74] + } + CURSOR_THICKNESS = 6 + + def initialize(viewport = nil, selected = false, extra_move = false) + super(0, 0, viewport) + change_bitmap((selected) ? :selected : :normal) + @extra_move = extra_move + self.z = 1600 + self.visible = false + @index = 0 + end + + def index=(value) + @index = value + refresh_visibility + refresh_position + end + + def refresh_visibility + self.visible = (@index >= 0) + end + + def refresh_position + return if @index < 0 + self.x = UI::PokemonSummaryVisuals::MOVE_LIST_X_DETAILED - CURSOR_THICKNESS + self.y = UI::PokemonSummaryVisuals::MOVE_LIST_Y - CURSOR_THICKNESS + (@index * UI::PokemonSummaryVisuals::MOVE_LIST_SPACING) + self.y += UI::PokemonSummaryVisuals::MOVE_LIST_OFFSET_WHEN_NEW_MOVE if @extra_move + self.y += UI::PokemonSummaryVisuals::MOVE_LIST_NEW_MOVE_SPACING if @extra_move && @index == Pokemon::MAX_MOVES + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PokemonSummaryRibbonCursor < ChangelingSprite + attr_reader :index + + BITMAPS = { + :normal => ["Graphics/UI/Summary/cursor_ribbon", 0, 0, 68, 68], + :selected => ["Graphics/UI/Summary/cursor_ribbon", 0, 68, 68, 68] + } + CURSOR_THICKNESS = 2 + + def initialize(viewport = nil, selected = false) + super(0, 0, viewport) + change_bitmap((selected) ? :selected : :normal) + self.z = 1600 + self.visible = false + @index = 0 + end + + def index=(value) + @index = value + refresh_visibility + refresh_position + end + + def refresh_visibility + self.visible = (@index >= 0 && @index < UI::PokemonSummaryVisuals::RIBBON_COLUMNS * UI::PokemonSummaryVisuals::RIBBON_ROWS) + end + + def refresh_position + return if @index < 0 + cols = UI::PokemonSummaryVisuals::RIBBON_COLUMNS + offset_x = UI::PokemonSummaryVisuals::RIBBON_SIZE[0] + UI::PokemonSummaryVisuals::RIBBON_SPACING_X + offset_y = UI::PokemonSummaryVisuals::RIBBON_SIZE[1] + UI::PokemonSummaryVisuals::RIBBON_SPACING_Y + self.x = UI::PokemonSummaryVisuals::RIBBON_X - CURSOR_THICKNESS + ((self.index % cols) * offset_x) + self.y = UI::PokemonSummaryVisuals::RIBBON_Y - CURSOR_THICKNESS + ((self.index / cols) * offset_y) + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PokemonSummaryVisuals < UI::BaseVisuals + GRAPHICS_FOLDER = "Summary/" # Subfolder in Graphics/UI + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(248, 248, 248), Color.new(104, 104, 104)], # Base and shadow colour + :white => [Color.new(248, 248, 248), Color.new(104, 104, 104)], + :raised_stat => [Color.new(248, 248, 248), Color.new(136, 96, 72)], + :lowered_stat => [Color.new(248, 248, 248), Color.new(64, 120, 152)], + :black => [Color.new(64, 64, 64), Color.new(176, 176, 176)], + :faded => [Color.new(192, 200, 208), Color.new(208, 216, 224)], + :male => [Color.new(24, 112, 216), Color.new(136, 168, 208)], + :female => [Color.new(248, 56, 32), Color.new(224, 152, 144)], + :shiny => [Color.new(248, 56, 32), Color.new(224, 152, 144)], + :pp_half => [Color.new(248, 192, 0), Color.new(144, 104, 0)], + :pp_quarter => [Color.new(248, 136, 32), Color.new(144, 72, 24)], + :pp_zero => [Color.new(248, 72, 72), Color.new(136, 48, 48)] + } + PARTY_ICONS_COUNT = 6 + PARTY_ICON_SIZE = [18, 18] # In the party_icons.png graphic + MARKING_WIDTH = 16 + MARKING_HEIGHT = 16 + MOVE_LIST_X = 230 + MOVE_LIST_X_DETAILED = MOVE_LIST_X + 32 + MOVE_LIST_Y = 98 + MOVE_LIST_SPACING = 64 # Y distance between top of two adjacent move areas + MOVE_LIST_OFFSET_WHEN_NEW_MOVE = -76 # Offset for y coordinate + MOVE_LIST_NEW_MOVE_SPACING = 22 # New move is separated from known moves + RIBBON_SIZE = [64, 64] # [width, height] + RIBBON_SPACING_X = 4 + RIBBON_SPACING_Y = 4 + RIBBON_COLUMNS = 4 + RIBBON_ROWS = 3 + RIBBON_X = 230 # Left edge of top left ribbon + RIBBON_Y = 78 # Top edge of top left ribbon + RIBBON_COLUMNS_GRAPHIC = 8 # In the ribbons.png graphic + + #----------------------------------------------------------------------------- + + PAGE_HANDLERS = HandlerHash.new + PAGE_HANDLERS.add(:info, { + :name => proc { next _INTL("INFO") }, + :order => 10, + :icon_index => 0, + :draw => [ + :draw_common_page_contents, + :draw_pokedex_number, + :draw_species, + :draw_original_trainer_details, + :draw_held_item, + :draw_exp, + :draw_shadow_pokemon_info + ] + }) + PAGE_HANDLERS.add(:skills, { + :name => proc { next _INTL("SKILLS") }, + :order => 20, + :icon_index => 1, + :draw => [ + :draw_common_page_contents, + :draw_stats, + :draw_ability + ] + }) + PAGE_HANDLERS.add(:moves, { + :name => proc { next _INTL("MOVES") }, + :order => 30, + :icon_index => 2, + :draw => [ + :draw_common_page_contents, + :draw_moves_list + ] + }) + PAGE_HANDLERS.add(:ribbons, { + :name => proc { next _INTL("RIBBONS") }, + :order => 40, + :icon_index => 3, + :should_show => proc { |pokemon| next pokemon.numRibbons > 0 }, + :draw => [ + :draw_common_page_contents, + :draw_ribbon_count, + :draw_ribbons_in_grid, + :draw_ribbon_properties + ] + }) + PAGE_HANDLERS.add(:memo, { + :name => proc { next _INTL("TRAINER MEMO") }, + :order => 50, + :icon_index => 4, + :draw => [ + :draw_common_page_contents, + :draw_memo + ] + }) + PAGE_HANDLERS.add(:egg_memo, { + :name => proc { next _INTL("TRAINER MEMO") }, + :egg_page => true, + :icon_index => 5, + :draw => [ + :draw_page_name, + :draw_page_icons, + :draw_poke_ball, + :draw_pokemon_name, + :draw_party_icons, + :draw_markings, + :draw_egg_memo + ] + }) + # Pseudo-page, only used to draw different contents for the detailed moves + # page. + PAGE_HANDLERS.add(:detailed_moves, { + :icon_index => 2, + :should_show => proc { |pokemon| next false }, + :draw => [ + :draw_page_name, + :draw_page_icons, + :draw_pokemon_types_for_detailed_moves_page, + :draw_moves_list, + :draw_move_properties + ] + }) + + #----------------------------------------------------------------------------- + + def initialize(party, party_index = 0, mode = :normal, new_move = nil) + @party = party + @party_index = party_index + @pokemon = @party[@party_index] + @visible_party_length = 0 + @visible_index = 0 + @party.each_with_index do |pkmn, i| + next if !pkmn + @visible_party_length += 1 + @visible_index = @visible_party_length - 1 if i == @party_index + end + @visible_top_index = 0 + @mode = mode + @new_move = new_move # Only used if @mode is :choose_move + @page = (@mode == :choose_move) ? :moves : all_pages[0] + @move_index = (@mode == :choose_move) ? 0 : nil + super() + refresh_move_cursor if @move_index + end + + def initialize_bitmaps + @bitmaps[:types] = AnimatedBitmap.new(UI_FOLDER + _INTL("types")) + @bitmaps[:markings] = AnimatedBitmap.new(graphics_folder + "markings") + @bitmaps[:numbers] = AnimatedBitmap.new(graphics_folder + "numbers") + @bitmaps[:page_icons] = AnimatedBitmap.new(graphics_folder + "page_icons") + @bitmaps[:party_icons] = AnimatedBitmap.new(graphics_folder + "party_icons") + end + + def initialize_background + super + addBackgroundPlane(@sprites, :page_background, self.class::GRAPHICS_FOLDER + page_background_filename, @viewport) + @sprites[:page_background].z = 100 + end + + def initialize_sprites + # Pokémon sprite + @sprites[:pokemon] = PokemonSprite.new(@viewport) + @sprites[:pokemon].setOffset(PictureOrigin::CENTER) + @sprites[:pokemon].x = 112 + @sprites[:pokemon].y = 208 + @sprites[:pokemon].visible = (@mode != :choose_move) + @sprites[:pokemon].setPokemonBitmap(@pokemon) + # Page-specific sprites + initialize_info_page_sprites + initialize_move_page_sprites + initialize_ribbon_page_sprites + initialize_marking_sprites + end + + def initialize_info_page_sprites + # Held item icon + @sprites[:held_item_icon] = ItemIconSprite.new(260, 256, @pokemon.item_id, @viewport) + @sprites[:held_item_icon].z = 200 + @sprites[:held_item_icon].blankzero = true + end + + def initialize_move_page_sprites + # Pokémon icon + @sprites[:pokemon_icon] = PokemonIconSprite.new(@pokemon, @viewport) + @sprites[:pokemon_icon].setOffset(PictureOrigin::CENTER) + @sprites[:pokemon_icon].x = 50 + @sprites[:pokemon_icon].y = 92 + @sprites[:pokemon_icon].z = 200 + @sprites[:pokemon_icon].visible = (@mode == :choose_move) + # Cursor to highlight a move selected to be swapped + @sprites[:selected_move_cursor] = UI::PokemonSummaryMoveCursor.new(@viewport, true) + # Cursor to highlight the currently selected move + @sprites[:move_cursor] = UI::PokemonSummaryMoveCursor.new(@viewport, false, !@new_move.nil?) + @sprites[:move_cursor].visible = (@mode == :choose_move) + end + + def initialize_ribbon_page_sprites + # Cursor to highlight a ribbon selected to be swapped + @sprites[:selected_ribbon_cursor] = UI::PokemonSummaryRibbonCursor.new(@viewport, true) + # Cursor to highlight the currently selected ribbon + @sprites[:ribbon_cursor] = UI::PokemonSummaryRibbonCursor.new(@viewport) + # Arrow to indicate more ribbons are above the ones visible when navigating ribbons + add_animated_arrow(:up_arrow, 350, 56, :up) + @sprites[:up_arrow].z = 1700 + # Arrow to indicate more ribbons are below the ones visible when navigating ribbons + add_animated_arrow(:down_arrow, 350, 260, :down) + @sprites[:down_arrow].z = 1700 + end + + def initialize_marking_sprites + # Background image of marking panel + add_icon_sprite(:marking_bg, 254, 88, graphics_folder + "overlay_marking") + @sprites[:marking_bg].z = 1400 + @sprites[:marking_bg].visible = false + # Overlay for marking panel + add_overlay(:marking_overlay) + @sprites[:marking_overlay].z = 1500 + @sprites[:marking_overlay].visible = false + # Cursor to highlight the currently selected marking option + add_icon_sprite(:marking_cursor, 0, 0, graphics_folder + "cursor_marking") + @sprites[:marking_cursor].z = 1600 + @sprites[:marking_cursor].visible = false + @sprites[:marking_cursor].src_rect.height = @sprites[:marking_cursor].bitmap.height / 2 + end + + #----------------------------------------------------------------------------- + + def page_background_filename + return "bg_moves_learning" if @new_move # Intentionally first + return "bg_moves_detailed" if @move_index # Intentionally second + ret = BACKGROUND_FILENAME + "_" + @page.to_s + return ret + end + + #----------------------------------------------------------------------------- + + def all_pages + ret = [] + PAGE_HANDLERS.each do |key, hash| + next if @pokemon.egg? != !!hash[:egg_page] + next if hash[:should_show] && !hash[:should_show].call(@pokemon) + ret.push([key, hash[:order] || 0]) + end + ret.sort_by! { |val| val[1] } + ret.map! { |val| val[0] } + return ret + end + + def go_to_next_page + pages = all_pages + return if pages.length == 1 + page_index = pages.index(@page) + return if page_index.nil? || page_index >= pages.length - 1 + @page = pages[page_index + 1] + @ribbon_offset = 0 + pbSEPlay("GUI summary change page") + refresh + end + + def go_to_previous_page + pages = all_pages + return if pages.length == 1 + page_index = pages.index(@page) + return if page_index.nil? || page_index == 0 + @page = pages[page_index - 1] + @ribbon_offset = 0 + pbSEPlay("GUI summary change page") + refresh + end + + def set_party_index(new_index) + return if @party_index == new_index + old_page_index = all_pages.index(@page) + # Set the new Pokémon + @party_index = new_index + @pokemon = @party[@party_index] + @visible_index = 0 + @party.each_with_index do |pkmn, i| + next if !pkmn + break if i == @party_index + @visible_index += 1 + end + # Want to stay on the same page, or the nth page if that no longer exists, + # or the closest available one + pages = all_pages + if !pages.include?(@page) + new_page_index = old_page_index.clamp(0, pages.length - 1) + @page = pages[new_page_index] + end + # Set the Pokémon's sprite + @sprites[:pokemon].setPokemonBitmap(@pokemon) + @ribbon_offset = 0 + # Play sound effect + play_pokemon_cry + refresh + end + + def play_pokemon_cry + pbSEStop + (@pokemon.egg?) ? pbSEPlay("GUI summary change page") : @pokemon.play_cry + end + + #----------------------------------------------------------------------------- + + def refresh + super + @sprites[:held_item_icon].visible = false + refresh_background + draw_page_contents + end + + def refresh_background + @sprites[:background].setBitmap(graphics_folder + background_filename) + @sprites[:page_background].setBitmap(graphics_folder + page_background_filename) + end + + def draw_page_contents + PAGE_HANDLERS[page_to_draw][:draw].each { |method| self.send(method) } + end + + def page_to_draw + ret = @page + ret = :detailed_moves if showing_detailed_move_page? + return ret + end + + def showing_detailed_move_page? + return !(@new_move || @move_index).nil? + end + + #----------------------------------------------------------------------------- + + def draw_common_page_contents + draw_page_name + draw_page_icons + draw_poke_ball + draw_pokemon_name + draw_shiny_icon + draw_pokemon_level + draw_pokerus_icon + draw_gender + draw_party_icons + draw_markings + draw_pokemon_types_common + draw_hp_numbers + draw_hp_bar + draw_status_icon + end + + def draw_page_name + draw_text(PAGE_HANDLERS[@page][:name].call, 30, 22) + end + + def draw_page_icons + return if @new_move + icon_width = 56 + icon_height = 64 + start_x = 226 + start_y = 2 + spacing_x = 0 + # Draw all inactive page icons + pages = all_pages + pages.each_with_index do |this_page, i| + src_index = PAGE_HANDLERS[this_page][:icon_index] + next if !src_index + draw_image(@bitmaps[:page_icons], start_x + (i * (icon_width + spacing_x)), start_y, + src_index * icon_width, 0, icon_width, icon_height) + end + # Draw current page's active icon + index = pages.index(@page) + src_index = PAGE_HANDLERS[@page][:icon_index] + if src_index + draw_image(@bitmaps[:page_icons], start_x + (index * (icon_width + spacing_x)), start_y, + src_index * icon_width, icon_height, icon_width, icon_height) + end + end + + # Show the Poké Ball containing the Pokémon + def draw_poke_ball + ball_filename = graphics_folder + sprintf("icon_ball_%s", @pokemon.poke_ball) + draw_image(ball_filename, 6, 60) + end + + def draw_pokemon_name + pokemon_name = @pokemon.name + pokemon_name = crop_text(pokemon_name, 152) + draw_text(pokemon_name, 42, 68) + end + + def draw_shiny_icon + draw_image(UI_FOLDER + "shiny", 14, 100) if @pokemon.shiny? + end + + def draw_pokemon_level + draw_image(graphics_folder + _INTL("level"), 42, 102) + draw_number_from_image(@bitmaps[:numbers], @pokemon.level, 64, 102) + end + + def draw_pokerus_icon + return if @pokemon.pokerusStage != 2 + draw_image(graphics_folder + "icon_pokerus", 134, 100) + end + + def draw_gender + if @pokemon.male? + draw_text(_INTL("♂"), 174, 98, theme: :male) + elsif @pokemon.female? + draw_text(_INTL("♀"), 174, 98, theme: :female) + end + end + + def draw_party_icons + # Don't show any party icons if there is 0 or 1 Pokémon in the party + return if @visible_party_length <= 1 + # Setup numbers + @visible_top_index = [@visible_top_index, @visible_index - ((PARTY_ICONS_COUNT - 1) / 2)].min + @visible_top_index = [@visible_top_index, @visible_index - (PARTY_ICONS_COUNT / 2), 0].max + @visible_top_index = @visible_top_index.clamp(0, [@visible_party_length - PARTY_ICONS_COUNT, 0].max) + x_pos = 0 + y_pos = 162 + # Draw up arrow + arrow_y = y_pos - PARTY_ICON_SIZE[1] + arrow_y -= PARTY_ICON_SIZE[1] if @visible_top_index > 0 # Showing up dots + if @visible_index > 0 # Enabled arrow + draw_image(@bitmaps[:party_icons], x_pos, arrow_y, + PARTY_ICON_SIZE[0] * 2, 0, *PARTY_ICON_SIZE) + else # Disabled arrow + draw_image(@bitmaps[:party_icons], x_pos, arrow_y, + PARTY_ICON_SIZE[0] * 3, 0, *PARTY_ICON_SIZE) + end + # Draw up dots + if @visible_top_index > 0 + draw_image(@bitmaps[:party_icons], x_pos, y_pos - PARTY_ICON_SIZE[1], + PARTY_ICON_SIZE[0] * 4, 0, *PARTY_ICON_SIZE) + end + # Draw party icons + num_balls = [@visible_party_length, PARTY_ICONS_COUNT].min + num_balls.times do |i| + src_x_index = (i + @visible_top_index == @visible_index) ? 1 : 0 + draw_image(@bitmaps[:party_icons], x_pos, y_pos + (i * PARTY_ICON_SIZE[1]), + PARTY_ICON_SIZE[0] * src_x_index, 0, *PARTY_ICON_SIZE) + end + # Draw down dots + if @visible_party_length - @visible_top_index > PARTY_ICONS_COUNT + draw_image(@bitmaps[:party_icons], x_pos, y_pos + (num_balls * PARTY_ICON_SIZE[1]), + PARTY_ICON_SIZE[0] * 7, 0, *PARTY_ICON_SIZE) + end + # Draw down arrow + arrow_y = y_pos + (num_balls * PARTY_ICON_SIZE[1]) + arrow_y += PARTY_ICON_SIZE[1] if @visible_party_length - @visible_top_index > PARTY_ICONS_COUNT # Showing down dots + if @visible_index < @visible_party_length - 1 # Enabled arrow + draw_image(@bitmaps[:party_icons], x_pos, arrow_y, + PARTY_ICON_SIZE[0] * 5, 0, *PARTY_ICON_SIZE) + else # Disabled arrow + draw_image(@bitmaps[:party_icons], x_pos, arrow_y, + PARTY_ICON_SIZE[0] * 6, 0, *PARTY_ICON_SIZE) + end + end + + def draw_markings + x = 106 + y = 288 + mark_variants = @bitmaps[:markings].bitmap.height / MARKING_HEIGHT + markings = @pokemon.markings + (@bitmaps[:markings].bitmap.width / MARKING_WIDTH).times do |i| + src_x = i * MARKING_WIDTH + src_y = [(markings[i] || 0), mark_variants - 1].min * MARKING_HEIGHT + draw_image(@bitmaps[:markings], x + (i * MARKING_WIDTH), y, + src_x, src_y, MARKING_WIDTH, MARKING_HEIGHT) + end + end + + def draw_pokemon_types_common + draw_pokemon_type_icons(66, 314, 2) + end + + # x and y are the top left corner of the type icon if there is only one type. + def draw_pokemon_type_icons(x, y, spacing) + @pokemon.types.each_with_index do |type, i| + type_number = GameData::Type.get(type).icon_position + offset = ((@pokemon.types.length - 1) * (GameData::Type::ICON_SIZE[0] + spacing) / 2) + offset = (offset / 2) * 2 + type_x = x - offset + ((GameData::Type::ICON_SIZE[0] + spacing) * i) + draw_image(@bitmaps[:types], type_x, y, + 0, type_number * GameData::Type::ICON_SIZE[1], *GameData::Type::ICON_SIZE) + end + end + + def draw_hp_bar + return if @pokemon.fainted? + bar_x = 48 + bar_y = 352 + bar_total_width = 128 + bar_width = [@pokemon.hp * bar_total_width / @pokemon.totalhp.to_f, 1.0].max + bar_width = ((bar_width / 2).round) * 2 # Make the bar's length a multiple of 2 pixels + bar_width -= 2 if bar_width == bar_total_width && @pokemon.hp < @pokemon.totalhp + hp_zone = 0 # Green + hp_zone = 1 if @pokemon.hp <= (@pokemon.totalhp / 2).floor # Yellow + hp_zone = 2 if @pokemon.hp <= (@pokemon.totalhp / 4).floor # Red + draw_image(graphics_folder + "hp_bar_fill", bar_x, bar_y, + 0, hp_zone * 6, bar_width, 6) + end + + def draw_hp_numbers + hp_text = sprintf("%d/%d", @pokemon.hp, @pokemon.totalhp) + draw_number_from_image(@bitmaps[:numbers], hp_text, 182, 366, align: :right) + end + + # Show status/fainted/Pokérus infected icon + def draw_status_icon + status = -1 + if @pokemon.fainted? + status = GameData::Status.count - 1 + elsif @pokemon.status != :NONE + status = GameData::Status.get(@pokemon.status).icon_position + elsif @pokemon.pokerusStage == 1 + status = GameData::Status.count + end + if status >= 0 + draw_image(UI_FOLDER + _INTL("statuses"), 12, 364, + 0, status * GameData::Status::ICON_SIZE[1], *GameData::Status::ICON_SIZE) + end + end + + #----------------------------------------------------------------------------- + + def draw_pokedex_number + draw_text(_INTL("Dex No."), 238, 86) + # Figure out what the Dex number is + dex_num = 0 + dex_num_shift = false + if $player.pokedex.unlocked?(-1) # National Dex is unlocked + dex_num = (GameData::Species.keys.index(@pokemon.species_data.species) || 0) + 1 + dex_num_shift = true if Settings::DEXES_WITH_OFFSETS.include?(-1) + else # Only Regional Dexes are unlocked + ($player.pokedex.dexes_count - 1).times do |i| + next if !$player.pokedex.unlocked?(i) + num = pbGetRegionalNumber(i, @pokemon.species) + break if num <= 0 + dex_num = num + dex_num_shift = true if Settings::DEXES_WITH_OFFSETS.include?(i) + break + end + end + # Draw text + number_x = 428 + number_y = 86 + dex_num_theme = (@pokemon.shiny?) ? :shiny : :black + if dex_num <= 0 + draw_text("???", number_x, number_y, align: :center, theme: dex_num_theme) + else + dex_num -= 1 if dex_num_shift + draw_text(sprintf("%03d", dex_num), number_x, number_y, align: :center, theme: dex_num_theme) + end + end + + def draw_species + draw_text(_INTL("Species"), 238, 118) + species_name = @pokemon.speciesName + species_name = crop_text(species_name, 144) + draw_text(species_name, 428, 118, align: :center, theme: :black) + end + + def draw_original_trainer_details + draw_text(_INTL("OT"), 238, 150) + draw_text(_INTL("ID No."), 238, 182) + owner_name = (@pokemon.owner.name.empty?) ? _INTL("RENTAL") : @pokemon.owner.name + owner_name = crop_text(owner_name, 144) + owner_theme = [:male, :female][@pokemon.owner.gender || 99] || :black + draw_text(owner_name, 428, 150, align: :center, theme: owner_theme) + owner_number = (@pokemon.owner.name.empty?) ? "?????" : sprintf("%05d", @pokemon.owner.public_id) + draw_text(owner_number, 428, 182, align: :center, theme: :black) + end + + def draw_held_item + @sprites[:held_item_icon].visible = true + @sprites[:held_item_icon].item = @pokemon.item_id + draw_text(_INTL("Held Item"), 302, 230) + # Write the held item's name + item_name = (@pokemon.hasItem?) ? @pokemon.item.name : _INTL("None") + item_name = crop_text(item_name, 192) + draw_text(item_name, 302, 262, theme: :black) + end + + def draw_exp + return if @pokemon.shadowPokemon? + # Draw text + draw_text(_INTL("Exp. Points"), 238, 310) + draw_text(@pokemon.exp.to_s_formatted, 490, 310, align: :right, theme: :black) + draw_text(_INTL("To Next Lv."), 238, 342) + end_exp = @pokemon.growth_rate.minimum_exp_for_level(@pokemon.level + 1) + draw_text((end_exp - @pokemon.exp).to_s_formatted, 490, 342, align: :right, theme: :black) + # Draw Exp bar + if @pokemon.level < GameData::GrowthRate.max_level + exp_width = @pokemon.exp_fraction * 128 + exp_width = ((exp_width / 2).round) * 2 + draw_image(graphics_folder + "exp_bar_fill", 362, 372, + 0, 0, exp_width, -1) + end + end + + def draw_shadow_pokemon_info + return if !@pokemon.shadowPokemon? + # Draw background to cover the Exp area + draw_image(graphics_folder + "overlay_shadow", 224, 298) + # Draw heart gauge bar + shadow_fract = @pokemon.heart_gauge.to_f / @pokemon.max_gauge_size + draw_image(graphics_folder + "shadow_bar_fill", 242, 372, + 0, 0, (shadow_fract * 248).floor, -1) + # Draw heart gauge text + heart_message = [_INTL("The door to its heart is open! Undo the final lock!"), + _INTL("The door to its heart is almost fully open."), + _INTL("The door to its heart is nearly open."), + _INTL("The door to its heart is opening wider."), + _INTL("The door to its heart is opening up."), + _INTL("The door to its heart is tightly shut.")][@pokemon.heartStage] + draw_formatted_text(heart_message, 232, 310, 268, theme: :black) + end + + def draw_stats + # Determine which stats are boosted and lowered by the Pokémon's nature + stat_themes = {} + GameData::Stat.each_main { |s| stat_themes[s.id] = :default } + if !@pokemon.shadowPokemon? || @pokemon.heartStage <= 3 + @pokemon.nature_for_stats.stat_changes.each do |change| + stat_themes[change[0]] = :raised_stat if change[1] > 0 + stat_themes[change[0]] = :lowered_stat if change[1] < 0 + end + end + # Write stats text (except for HP) + text_y = 86 + GameData::Stat.each_main do |stat| + next if stat.id == :HP + draw_text(stat.name_semi_brief, 238, text_y, theme: stat_themes[stat.id]) + draw_text(@pokemon.stat(stat.id), 458, text_y, align: :right, theme: :black) + text_y += 32 + end + end + + def draw_ability + draw_text(_INTL("Ability"), 224, 262) + ability = @pokemon.ability + return if !ability + ability_name = ability.name + ability_name = crop_text(ability_name, 182) + draw_text(ability_name, 328, 262, theme: :black) + draw_paragraph_text(ability.description, 224, 294, 284, 3, theme: :black) + end + + def draw_moves_list + limit = (@new_move) ? Pokemon::MAX_MOVES + 1 : Pokemon::MAX_MOVES + limit.times do |i| + move = (i == Pokemon::MAX_MOVES) ? @new_move : @pokemon.moves[i] + text_y = MOVE_LIST_Y + (i * MOVE_LIST_SPACING) + text_y += MOVE_LIST_OFFSET_WHEN_NEW_MOVE if @new_move # Showing an extra move being learned + text_y += MOVE_LIST_NEW_MOVE_SPACING if i == Pokemon::MAX_MOVES # New move is separated from known moves + area_x = MOVE_LIST_X + area_x = MOVE_LIST_X_DETAILED if showing_detailed_move_page? + draw_move_in_list(move, area_x, text_y) + end + end + + def draw_move_in_list(move, x, y) + pp_numbers_x = (showing_detailed_move_page?) ? x + 234 : x + 256 + if !move + draw_text("---", x + 8, y + 6, theme: :black) + return + end + # Draw move name + move_name = move.name + move_name = crop_text(move_name, (showing_detailed_move_page?) ? 230 : 262) + draw_text(move_name, x + 8, y + 6, theme: :black) + # Draw move type icon + type_number = GameData::Type.get(move.display_type(@pokemon)).icon_position + draw_image(@bitmaps[:types], x + 8, y + 32, + 0, type_number * GameData::Type::ICON_SIZE[1], *GameData::Type::ICON_SIZE) + # Draw move category + draw_image(UI_FOLDER + "category", x + 74, y + 32, + 0, move.display_category(@pokemon) * GameData::Move::CATEGORY_ICON_SIZE[1], *GameData::Move::CATEGORY_ICON_SIZE) + # Draw PP text + if move.total_pp > 0 + pp_text_x = (showing_detailed_move_page?) ? x + 144 : x + 154 + draw_text(_INTL("PP"), pp_text_x, y + 38, theme: :black) + pp_text_theme = :black + if move.pp == 0 + pp_text_theme = :pp_zero + elsif move.pp * 4 <= move.total_pp + pp_text_theme = :pp_quarter + elsif move.pp * 2 <= move.total_pp + pp_text_theme = :pp_half + end + draw_text(sprintf("%d/%d", move.pp, move.total_pp), pp_numbers_x, y + 38, align: :right, theme: pp_text_theme) + end + end + + def draw_pokemon_types_for_detailed_moves_page + draw_pokemon_type_icons(138, 78, 6) + end + + def draw_move_properties + selected_move = ((@move_index || 0) == Pokemon::MAX_MOVES) ? @new_move : @pokemon.moves[@move_index || 0] + # Power + draw_text(_INTL("POWER"), 20, 128) + power_text = selected_move.display_power(@pokemon) + power_text = "---" if power_text == 0 # Status move + power_text = "???" if power_text == 1 # Variable power move + draw_text(power_text, 222, 128, align: :right, theme: :black) + # Accuracy + draw_text(_INTL("ACCURACY"), 20, 160) + accuracy = selected_move.display_accuracy(@pokemon) + if accuracy == 0 + draw_text("---", 222, 160, align: :right, theme: :black) + else + draw_text(accuracy, 222, 160, align: :right, theme: :black) + draw_text("%", 222, 160, theme: :black) + end + # Description + draw_paragraph_text(selected_move.description, 4, 192, 246, 6, theme: :black) + end + + def draw_ribbon_count + draw_text(_INTL("No. of Ribbons:"), 234, 338, theme: :black) + draw_text(@pokemon.numRibbons, 450, 338, align: :right, theme: :black) + end + + def draw_ribbons_in_grid + (RIBBON_COLUMNS * RIBBON_ROWS).times do |index| # Number of visible ribbons + r_index = (@ribbon_offset * RIBBON_COLUMNS) + index + break if !@pokemon.ribbons[r_index] + ribbon_data = GameData::Ribbon.get(@pokemon.ribbons[r_index]) + image_offset = ribbon_data.icon_position + draw_image(graphics_folder + "ribbons", + RIBBON_X + ((RIBBON_SIZE[0] + RIBBON_SPACING_X) * (index % RIBBON_COLUMNS)), + RIBBON_Y + ((RIBBON_SIZE[1] + RIBBON_SPACING_Y) * (index / RIBBON_COLUMNS).floor), + RIBBON_SIZE[0] * (image_offset % RIBBON_COLUMNS_GRAPHIC), + RIBBON_SIZE[1] * (image_offset / RIBBON_COLUMNS_GRAPHIC).floor, + *RIBBON_SIZE) + end + end + + def draw_ribbon_properties + return if !@ribbon_index + ribbon_id = @pokemon.ribbons[@ribbon_index] + # Draw the description box + draw_image(graphics_folder + "overlay_ribbon", 8, 280) + if ribbon_id + ribbon_data = GameData::Ribbon.get(ribbon_id) + # Draw name of selected ribbon + draw_text(ribbon_data.name, 18, 292) + # Draw selected ribbon's description + draw_paragraph_text(ribbon_data.description, 18, 324, 480, 2, theme: :black) + end + end + + def draw_memo + # Set up memo + red_text_tag = shadowc3tag(*TEXT_COLOR_THEMES[:shiny]) + black_text_tag = shadowc3tag(*TEXT_COLOR_THEMES[:black]) + memo = "" + show_nature = (!@pokemon.shadowPokemon? || @pokemon.heartStage <= 3) + # Add nature to memo + if show_nature + nature_name = red_text_tag + @pokemon.nature.name + black_text_tag + memo += _INTL("{1} nature.", nature_name) + "\n" + end + # Add characteristic to memo + if show_nature + best_stat = nil + best_iv = 0 + stats_order = [:HP, :ATTACK, :DEFENSE, :SPEED, :SPECIAL_ATTACK, :SPECIAL_DEFENSE] + start_point = @pokemon.personalID % stats_order.length # Tiebreaker + stats_order.length.times do |i| + stat = stats_order[(i + start_point) % stats_order.length] + if !best_stat || @pokemon.iv[stat] > @pokemon.iv[best_stat] + best_stat = stat + best_iv = @pokemon.iv[best_stat] + end + end + characteristics = { + :HP => [_INTL("Loves to eat."), + _INTL("Takes plenty of siestas."), + _INTL("Nods off a lot."), + _INTL("Scatters things often."), + _INTL("Likes to relax.")], + :ATTACK => [_INTL("Proud of its power."), + _INTL("Likes to thrash about."), + _INTL("A little quick tempered."), + _INTL("Likes to fight."), + _INTL("Quick tempered.")], + :DEFENSE => [_INTL("Sturdy body."), + _INTL("Capable of taking hits."), + _INTL("Highly persistent."), + _INTL("Good endurance."), + _INTL("Good perseverance.")], + :SPECIAL_ATTACK => [_INTL("Highly curious."), + _INTL("Mischievous."), + _INTL("Thoroughly cunning."), + _INTL("Often lost in thought."), + _INTL("Very finicky.")], + :SPECIAL_DEFENSE => [_INTL("Strong willed."), + _INTL("Somewhat vain."), + _INTL("Strongly defiant."), + _INTL("Hates to lose."), + _INTL("Somewhat stubborn.")], + :SPEED => [_INTL("Likes to run."), + _INTL("Alert to sounds."), + _INTL("Impetuous and silly."), + _INTL("Somewhat of a clown."), + _INTL("Quick to flee.")] + } + memo += black_text_tag + characteristics[best_stat][best_iv % 5] + "\n" + end + # Add blank line + memo += "\n" if show_nature + # Write how Pokémon was obtained + met_text = [ + _INTL("Met at Lv. {1}.", @pokemon.obtain_level), + _INTL("Egg received."), + _INTL("Traded at Lv. {1}.", @pokemon.obtain_level), + "", + _INTL("Had a fateful encounter at Lv. {1}.", @pokemon.obtain_level) + ][@pokemon.obtain_method] + memo += black_text_tag + met_text + "\n" if met_text && met_text != "" + # Add date received to memo + if @pokemon.timeReceived + date = @pokemon.timeReceived.day + month = pbGetMonthName(@pokemon.timeReceived.mon) + year = @pokemon.timeReceived.year + if System.user_language[3..4] == "US" + memo += black_text_tag + _INTL("{1} {2}, {3}", month, date, year) + "\n" + else + memo += black_text_tag + _INTL("{1} {2}, {3}", date, month, year) + "\n" + end + end + # Add map name Pokémon was received on to memo + map_name = pbGetMapNameFromId(@pokemon.obtain_map) + map_name = @pokemon.obtain_text if @pokemon.obtain_text && !@pokemon.obtain_text.empty? + map_name = _INTL("Faraway place") if nil_or_empty?(map_name) + memo += red_text_tag + map_name + "\n" + # If Pokémon was hatched, add when and where it hatched to memo + if @pokemon.obtain_method == 1 + memo += black_text_tag + _INTL("Egg hatched.") + "\n" + if @pokemon.timeEggHatched + date = @pokemon.timeEggHatched.day + month = pbGetMonthName(@pokemon.timeEggHatched.mon) + year = @pokemon.timeEggHatched.year + if System.user_language[3..4] == "US" + memo += black_text_tag + _INTL("{1} {2}, {3}", month, date, year) + "\n" + else + memo += black_text_tag + _INTL("{1} {2}, {3}", date, month, year) + "\n" + end + end + map_name = pbGetMapNameFromId(@pokemon.hatched_map) + map_name = _INTL("Faraway place") if nil_or_empty?(map_name) + memo += red_text_tag + map_name + "\n" + end + # Write memo + draw_formatted_text(memo, 232, 86, 268) + end + + def draw_egg_memo + # Set up memo + red_text_tag = shadowc3tag(*TEXT_COLOR_THEMES[:shiny]) + black_text_tag = shadowc3tag(*TEXT_COLOR_THEMES[:black]) + memo = "" + # Add date received to memo + if @pokemon.timeReceived + date = @pokemon.timeReceived.day + month = pbGetMonthName(@pokemon.timeReceived.mon) + year = @pokemon.timeReceived.year + if System.user_language[3..4] == "US" + memo += black_text_tag + _INTL("{1} {2}, {3}", month, date, year) + "\n" + else + memo += black_text_tag + _INTL("{1} {2}, {3}", date, month, year) + "\n" + end + end + # Add map name egg was received on to memo + map_name = pbGetMapNameFromId(@pokemon.obtain_map) + map_name = @pokemon.obtain_text if @pokemon.obtain_text && !@pokemon.obtain_text.empty? + if map_name && map_name != "" + map_name = red_text_tag + map_name + black_text_tag + memo += black_text_tag + _INTL("A mysterious Pokémon Egg received from {1}.", map_name) + "\n" + else + memo += black_text_tag + _INTL("A mysterious Pokémon Egg.") + "\n" + end + # Draw obtain text + draw_formatted_text(memo, 232, 86, 268) + # Add Egg Watch blurb to memo + draw_text(_INTL("The Egg Watch"), 238, 246) + egg_state = _INTL("It looks like this Egg will take a long time to hatch.") + egg_state = _INTL("What will hatch from this? It doesn't seem close to hatching.") if @pokemon.steps_to_hatch < 10_200 + egg_state = _INTL("It appears to move occasionally. It may be close to hatching.") if @pokemon.steps_to_hatch < 2550 + egg_state = _INTL("Sounds can be heard coming from inside! It will hatch soon!") if @pokemon.steps_to_hatch < 1275 + memo = black_text_tag + egg_state + # Draw all text + draw_formatted_text(memo, 232, 278, 268) + end + + #----------------------------------------------------------------------------- + + def refresh_move_cursor + # Update cursor positions + @sprites[:move_cursor].index = @move_index + @sprites[:selected_move_cursor].index = @swap_move_index || -1 + # Update cursor z values + if @swap_move_index && @swap_move_index >= 0 + @sprites[:selected_move_cursor].z = @sprites[:move_cursor].z + 1 + @sprites[:selected_move_cursor].z -= 2 if @move_index != @swap_move_index + end + end + + def refresh_ribbon_cursor + # Scroll ribbons grid to keep cursor on-screen + sel_ribbon_row = @ribbon_index / RIBBON_COLUMNS + @ribbon_offset = [@ribbon_offset, sel_ribbon_row].min # Scroll up + @ribbon_offset = [@ribbon_offset, sel_ribbon_row - RIBBON_ROWS + 1].max # Scroll down + # Update cursor positions + @sprites[:ribbon_cursor].index = @ribbon_index - (@ribbon_offset * RIBBON_COLUMNS) + @sprites[:selected_ribbon_cursor].index = @swap_ribbon_index - (@ribbon_offset * RIBBON_COLUMNS) + # Update cursor z values + if @swap_ribbon_index >= 0 + @sprites[:selected_ribbon_cursor].z = @sprites[:ribbon_cursor].z + 1 + @sprites[:selected_ribbon_cursor].z -= 2 if @ribbon_index != @swap_ribbon_index + end + end + + def refresh_markings_cursor + case @marking_index + when 6 # OK + @sprites[:marking_cursor].x = 282 + @sprites[:marking_cursor].y = 244 + @sprites[:marking_cursor].src_rect.y = @sprites[:marking_cursor].bitmap.height / 2 + when 7 # Cancel + @sprites[:marking_cursor].x = 282 + @sprites[:marking_cursor].y = 294 + @sprites[:marking_cursor].src_rect.y = @sprites[:marking_cursor].bitmap.height / 2 + else + @sprites[:marking_cursor].x = 282 + (62 * (@marking_index % 3)) + @sprites[:marking_cursor].y = 144 + (50 * (@marking_index / 3)) + @sprites[:marking_cursor].src_rect.y = 0 + end + end + + def refresh_markings_panel + # Set values to use when drawing the markings panel + marking_x = 298 + marking_y = 154 + marking_spacing_x = 46 + MARKING_WIDTH + marking_spacing_y = 34 + MARKING_HEIGHT + markings_per_row = 3 + mark_variants = @bitmaps[:markings].bitmap.height / MARKING_HEIGHT + # Clear the bitmap + @sprites[:marking_overlay].bitmap.clear + # Draw marking icons + (@bitmaps[:markings].bitmap.width / MARKING_WIDTH).times do |i| + src_x = i * MARKING_WIDTH + src_y = [(@markings[i] || 0), mark_variants - 1].min * MARKING_HEIGHT + draw_image(@bitmaps[:markings], + marking_x + (marking_spacing_x * (i % markings_per_row)), + marking_y + (marking_spacing_y * (i / markings_per_row)), + src_x, src_y, MARKING_WIDTH, MARKING_HEIGHT, + overlay: :marking_overlay) + end + # Draw text + draw_text(_INTL("Mark {1}", @pokemon.name), 368, 102, align: :center, overlay: :marking_overlay) + draw_text(_INTL("OK"), 368, 254, align: :center, overlay: :marking_overlay) + draw_text(_INTL("Cancel"), 368, 304, align: :center, overlay: :marking_overlay) + end + + #----------------------------------------------------------------------------- + + def update_input + # Check for movement to a new Pokémon + if Input.trigger?(Input::UP) + return :go_to_previous_pokemon + elsif Input.trigger?(Input::DOWN) + return :go_to_next_pokemon + end + # Check for movement to a new page + if Input.trigger?(Input::LEFT) + go_to_previous_page + elsif Input.trigger?(Input::RIGHT) + go_to_next_page + end + # Check for interaction + if Input.trigger?(Input::USE) + return update_interaction(Input::USE) + elsif Input.trigger?(Input::BACK) + return update_interaction(Input::BACK) + elsif Input.trigger?(Input::ACTION) + return update_interaction(Input::ACTION) + end + return nil + end + + def update_interaction(input) + case input + when Input::USE + case @page + when :moves + pbPlayDecisionSE + return :navigate_moves + when :ribbons + return :navigate_ribbons + else + return :interact_menu if @mode != :in_battle + end + when Input::ACTION + @pokemon.play_cry if !@pokemon.egg? + when Input::BACK + pbPlayCloseMenuSE + return :quit + end + return nil + end + + #----------------------------------------------------------------------------- + + # Returns true to finish choosing a move. + def update_input_move + # Check for movement to a new move + if Input.repeat?(Input::UP) + max_move_index = (@new_move) ? Pokemon::MAX_MOVES : Pokemon::MAX_MOVES - 1 + @move_index -= 1 + @move_index = max_move_index if @move_index < 0 # Wrap around + if @move_index < Pokemon::MAX_MOVES && @move_index >= @pokemon.numMoves + @move_index = @pokemon.numMoves - 1 # Wrap around + end + elsif Input.repeat?(Input::DOWN) + max_move_index = (@new_move) ? Pokemon::MAX_MOVES : Pokemon::MAX_MOVES - 1 + @move_index += 1 + @move_index = 0 if @move_index > max_move_index # Wrap around + if @move_index < Pokemon::MAX_MOVES && @move_index >= @pokemon.numMoves + @move_index = (@new_move) ? max_move_index : 0 # Wrap around or go to new move + end + end + # Check for interaction + if Input.trigger?(Input::USE) + pbPlayDecisionSE + return true if @mode == :choose_move + if !@pokemon.shadowPokemon? + if @swap_move_index >= 0 + # End swapping moves + if @move_index != @swap_move_index + @pokemon.moves[@move_index], @pokemon.moves[@swap_move_index] = @pokemon.moves[@swap_move_index], @pokemon.moves[@move_index] + end + @swap_move_index = -1 + refresh_move_cursor + refresh + else + # Start swapping moves + @swap_move_index = @move_index + refresh_move_cursor + end + end + elsif Input.trigger?(Input::BACK) + if @mode == :choose_move + pbPlayCloseMenuSE + @move_index = -1 + return true + end + # Cancel swapping moves, or return true to close + if @swap_move_index >= 0 + pbPlayCancelSE + @swap_move_index = -1 + refresh_move_cursor + else + pbPlayCloseMenuSE + return true + end + end + return false + end + + # This is used for both general navigating through the list of moves (allowing + # swapping of moves) and for choosing a move to forget when trying to learn a + # new one. + def navigate_moves + # Setup + @move_index ||= 0 + @swap_move_index = -1 + @sprites[:pokemon].visible = false if @sprites[:pokemon] + @sprites[:pokemon_icon].pokemon = @pokemon + @sprites[:pokemon_icon].visible = true + @sprites[:move_cursor].visible = true + refresh_move_cursor + refresh + # Navigate loop + loop do + Graphics.update + Input.update + update_visuals + old_move_index = @move_index + break if update_input_move + if @move_index != old_move_index + pbPlayCursorSE + refresh_move_cursor + refresh + end + end + # Clean up + if @mode != :choose_move + @sprites[:move_cursor].visible = false + @sprites[:pokemon].visible = true + @sprites[:pokemon_icon].visible = false + end + ret = @move_index + @move_index = nil + return ret + end + + #----------------------------------------------------------------------------- + + def update_input_ribbon + # Check for movement to a new ribbon + if Input.repeat?(Input::UP) + total_rows = [((@pokemon.ribbons.length + RIBBON_COLUMNS - 1) / RIBBON_COLUMNS).floor, RIBBON_ROWS].max + @ribbon_index -= RIBBON_COLUMNS + @ribbon_index += total_rows * RIBBON_COLUMNS if @ribbon_index < 0 # Wrap around + elsif Input.repeat?(Input::DOWN) + total_rows = [((@pokemon.ribbons.length + RIBBON_COLUMNS - 1) / RIBBON_COLUMNS).floor, RIBBON_ROWS].max + @ribbon_index += RIBBON_COLUMNS + @ribbon_index -= total_rows * RIBBON_COLUMNS if @ribbon_index >= total_rows * RIBBON_COLUMNS # Wrap around + elsif Input.repeat?(Input::LEFT) + @ribbon_index -= 1 + @ribbon_index += RIBBON_COLUMNS if (@ribbon_index % RIBBON_COLUMNS) == RIBBON_COLUMNS - 1 + elsif Input.repeat?(Input::RIGHT) + @ribbon_index += 1 + @ribbon_index -= RIBBON_COLUMNS if (@ribbon_index % RIBBON_COLUMNS) == 0 + end + # Check for interaction + if Input.trigger?(Input::USE) + if @swap_ribbon_index >= 0 + # End swapping ribbons + pbPlayDecisionSE + if @ribbon_index != @swap_ribbon_index + @pokemon.ribbons[@ribbon_index], @pokemon.ribbons[@swap_ribbon_index] = @pokemon.ribbons[@swap_ribbon_index], @pokemon.ribbons[@ribbon_index] + @pokemon.ribbons.compact! # Don't leave gaps + if @ribbon_index >= @pokemon.ribbons.length + @ribbon_index = @pokemon.ribbons.length - 1 + end + end + @swap_ribbon_index = -1 + refresh_ribbon_cursor + refresh + elsif @pokemon.ribbons[@ribbon_index] + # Start swapping ribbons + pbPlayDecisionSE + @swap_ribbon_index = @ribbon_index + refresh_ribbon_cursor + end + elsif Input.trigger?(Input::BACK) + # Cancel swapping ribbons, or return true to close + if @swap_ribbon_index >= 0 + pbPlayCancelSE + @swap_ribbon_index = -1 + refresh_ribbon_cursor + else + pbPlayCloseMenuSE + return true + end + end + return false + end + + def navigate_ribbons + # Setup + @ribbon_index = @ribbon_offset * RIBBON_COLUMNS + @swap_ribbon_index = -1 + total_rows = [(@pokemon.ribbons.length + RIBBON_COLUMNS - 1) / RIBBON_COLUMNS, RIBBON_ROWS].max + @sprites[:ribbon_cursor].visible = true + refresh_ribbon_cursor + refresh + # Navigate loop + loop do + @sprites[:up_arrow].visible = (@ribbon_offset > 0) + @sprites[:down_arrow].visible = (@ribbon_offset < total_rows - RIBBON_ROWS) + Graphics.update + Input.update + update_visuals + old_ribbon_index = @ribbon_index + old_swap_ribbon_index = @swap_ribbon_index + break if update_input_ribbon + if @ribbon_index != old_ribbon_index || @swap_ribbon_index != old_swap_ribbon_index + pbPlayCursorSE if @swap_ribbon_index == old_swap_ribbon_index + refresh_ribbon_cursor + refresh + end + end + # Clean up + @sprites[:ribbon_cursor].visible = false + @sprites[:up_arrow].visible = false + @sprites[:down_arrow].visible = false + @ribbon_index = nil + end + + #----------------------------------------------------------------------------- + + # NOTE: This is hardcoded to assume there are 6 marks, arranged in a 3x2 grid, + # with an OK and Cancel button below. + def update_input_marking + # Check for movement to a new option + if Input.repeat?(Input::UP) + if @marking_index == 7 # Cancel + @marking_index = 6 + elsif @marking_index == 6 # OK + @marking_index = 4 + elsif @marking_index < 3 + @marking_index = 7 + else + @marking_index -= 3 + end + elsif Input.repeat?(Input::DOWN) + if @marking_index == 7 # Cancel + @marking_index = 1 + elsif @marking_index == 6 # OK + @marking_index = 7 + elsif @marking_index >= 3 + @marking_index = 6 + else + @marking_index += 3 + end + elsif Input.repeat?(Input::LEFT) + if @marking_index < 6 + @marking_index -= 1 + @marking_index += 3 if (@marking_index % 3) == 2 + end + elsif Input.repeat?(Input::RIGHT) + if @marking_index < 6 + @marking_index += 1 + @marking_index -= 3 if (@marking_index % 3) == 0 + end + end + # Check for interaction + if Input.trigger?(Input::USE) + pbPlayDecisionSE + case @marking_index + when 6 # OK + return true + when 7 # Cancel + @marking_index = -1 + return true + else # Change marking + mark_variants = @bitmaps[:markings].bitmap.height / MARKING_HEIGHT + @markings[@marking_index] = ((@markings[@marking_index] || 0) + 1) % mark_variants + refresh_markings_panel + end + elsif Input.trigger?(Input::BACK) + pbPlayCloseMenuSE + @marking_index = -1 + return true + elsif Input.trigger?(Input::ACTION) + if @marking_index < 6 && @markings[@marking_index] > 0 + pbPlayDecisionSE + @markings[@marking_index] = 0 + refresh_markings_panel + end + end + return false + end + + def navigate_markings + # Setup + @sprites[:marking_bg].visible = true + @sprites[:marking_overlay].visible = true + @sprites[:marking_cursor].visible = true + @markings = @pokemon.markings.clone + @marking_index = 0 + refresh_markings_panel + refresh_markings_cursor + # Navigate loop + loop do + Graphics.update + Input.update + update_visuals + old_marking_index = @marking_index + break if update_input_marking + if @marking_index != old_marking_index + pbPlayCursorSE + refresh_markings_panel + refresh_markings_cursor + end + end + # Clean up + @sprites[:marking_bg].visible = false + @sprites[:marking_overlay].visible = false + @sprites[:marking_cursor].visible = false + @pokemon.markings = @markings if @marking_index >= 0 + @marking_index = nil + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PokemonSummary < UI::BaseScreen + attr_reader :party + attr_accessor :party_index, :pokemon + + SCREEN_ID = :summary_screen + + # party is an array of Pokemon objects or a single Pokemon object. + # mode is :normal or :choose_move or :in_battle. + # If mode is :choose_move, new_move is either nil or a move ID. + def initialize(party, party_index = 0, mode: :normal, new_move: nil) + @party = (party.is_a?(Array)) ? party : [party] + @party_index = party_index + @pokemon = @party[@party_index] + @mode = mode + @new_move = (new_move) ? Pokemon::Move.new(new_move) : nil + super() + end + + def initialize_visuals + @visuals = UI::PokemonSummaryVisuals.new(@party, @party_index, @mode, @new_move) + end + + def start_screen + super # Fade in + @visuals.play_pokemon_cry if @mode != :choose_move + end + + #----------------------------------------------------------------------------- + + def main + return choose_move if @mode == :choose_move + super + @result = @party_index + end + + def choose_move + pbSEPlay("GUI summary change page") + start_screen + @result = perform_action(:navigate_moves) + end_screen + return @result + end +end + +#=============================================================================== +# Actions that can be triggered in the Pokémon summary screen. +#=============================================================================== +UIActionHandlers.add(UI::PokemonSummary::SCREEN_ID, :go_to_previous_pokemon, { + :effect => proc { |screen| + if screen.party_index > 0 + new_index = screen.party_index + loop do + new_index -= 1 + break if screen.party[new_index] + break if new_index <= 0 + end + if new_index != screen.party_index && screen.party[new_index] + # NOTE: @visuals.set_party_index plays an SE. + screen.party_index = new_index + screen.pokemon = screen.party[screen.party_index] + screen.visuals.set_party_index(screen.party_index) + end + end + } +}) + +UIActionHandlers.add(UI::PokemonSummary::SCREEN_ID, :go_to_next_pokemon, { + :effect => proc { |screen| + if screen.party_index < screen.party.length - 1 + new_index = screen.party_index + loop do + new_index += 1 + break if screen.party[new_index] + break if new_index >= screen.party.length - 1 + end + if new_index != screen.party_index && screen.party[new_index] + # NOTE: @visuals.set_party_index plays an SE. + screen.party_index = new_index + screen.pokemon = screen.party[screen.party_index] + screen.visuals.set_party_index(screen.party_index) + end + end + } +}) + +UIActionHandlers.add(UI::PokemonSummary::SCREEN_ID, :navigate_moves, { + :returns_value => true, + :effect => proc { |screen| + # NOTE: Doesn't have pbPlayDecisionSE here because this is also called by + # def choose_move, which plays its own SE at the same time. + move_index = screen.visuals.navigate_moves + next move_index if screen.mode == :choose_move + screen.refresh + next nil + } +}) + +UIActionHandlers.add(UI::PokemonSummary::SCREEN_ID, :navigate_ribbons, { + :effect => proc { |screen| + pbPlayDecisionSE + screen.visuals.navigate_ribbons + screen.refresh + } +}) + +UIActionHandlers.add(UI::PokemonSummary::SCREEN_ID, :marking, { + :effect => proc { |screen| + screen.visuals.navigate_markings + screen.refresh + } +}) + +# Shows a choice menu using the MenuHandlers options below. +UIActionHandlers.add(UI::PokemonSummary::SCREEN_ID, :interact_menu, { + :menu => :summary_screen_interact, + :condition => proc { |screen| next screen.mode != :in_battle } +}) + +UIActionHandlers.add(UI::PokemonSummary::SCREEN_ID, :give_item, { + :effect => proc { |screen| + item = nil + pbFadeOutInWithUpdate(screen.sprites) do + bag_screen = UI::Bag.new($bag, mode: :choose_item) + bag_screen.set_filter_proc(proc { |itm| GameData::Item.get(itm).can_hold? }) + item = bag_screen.choose_item + end + screen.refresh if pbGiveItemToPokemon(item, screen.pokemon, screen, screen.party_index) + } +}) + +UIActionHandlers.add(UI::PokemonSummary::SCREEN_ID, :take_item, { + :effect => proc { |screen| + screen.refresh if pbTakeItemFromPokemon(screen.pokemon, screen) + } +}) + +UIActionHandlers.add(UI::PokemonSummary::SCREEN_ID, :pokedex, { + :effect => proc { |screen| + $player.pokedex.register_last_seen(screen.pokemon) + pbFadeOutInWithUpdate(screen.sprites) do + dex_scene = PokemonPokedexInfo_Scene.new + dex_screen = PokemonPokedexInfoScreen.new(dex_scene) + dex_screen.pbStartSceneSingle(screen.pokemon.species) + end + } +}) + +#=============================================================================== +# Menu options for choice menus that exist in the Pokémon summary screen. +#=============================================================================== +MenuHandlers.add(:summary_screen_interact, :give_item, { + "name" => _INTL("Give item"), + "order" => 10, + "condition" => proc { |screen| next !screen.pokemon.egg? } +}) + +MenuHandlers.add(:summary_screen_interact, :take_item, { + "name" => _INTL("Take item"), + "order" => 20, + "condition" => proc { |screen| next !screen.pokemon.egg? && screen.pokemon.hasItem? } +}) + +MenuHandlers.add(:summary_screen_interact, :pokedex, { + "name" => _INTL("View Pokédex"), + "order" => 30, + "condition" => proc { |screen| next !screen.pokemon.egg? && $player.has_pokedex } +}) + +MenuHandlers.add(:summary_screen_interact, :marking, { + "name" => _INTL("Mark"), + "order" => 40 +}) + +MenuHandlers.add(:summary_screen_interact, :cancel, { + "name" => _INTL("Cancel"), + "order" => 9999 +}) + +#=============================================================================== +# +#=============================================================================== +def pbChooseMove(pokemon, variableNumber, nameVarNumber) + return if !pokemon + ret = -1 + pbFadeOutIn do + screen = UI::PokemonSummary.new(pokemon, mode: :choose_move) + ret = screen.choose_move + end + $game_variables[variableNumber] = ret + if ret >= 0 + $game_variables[nameVarNumber] = pokemon.moves[ret].name + else + $game_variables[nameVarNumber] = "" + end + $game_map.need_refresh = true if $game_map +end diff --git a/Data/Scripts/016b_UI redesign/007_UI_Bag.rb b/Data/Scripts/016b_UI redesign/007_UI_Bag.rb new file mode 100644 index 000000000..59d4356d1 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/007_UI_Bag.rb @@ -0,0 +1,1115 @@ +#=============================================================================== +# +#=============================================================================== +class UI::BagVisualsList < Window_DrawableCommand + attr_accessor :sorting + + def initialize(bag, x, y, width, height, viewport) + @bag = bag + @sorting = false + super(x, y, width, height, viewport) + @selarrow = AnimatedBitmap.new(bag_folder + "cursor") + @swap_arrow = AnimatedBitmap.new(bag_folder + "cursor_swap") + @swapping_arrow = AnimatedBitmap.new(bag_folder + "cursor_swapping") + self.windowskin = nil + end + + def dispose + @swap_arrow.dispose + @swapping_arrow.dispose + super + end + + #----------------------------------------------------------------------------- + + def page_row_max; return UI::BagVisuals::ITEMS_VISIBLE; end + def page_item_max; return page_row_max; end + + def itemCount + return (@items&.length || 0) + 1 # The extra 1 is the Close Bag option + end + + def bag_folder + return UI::BagVisuals::UI_FOLDER + UI::BagVisuals::GRAPHICS_FOLDER + end + + def items=(value) + @items = value + refresh + end + + def item_id + return (@items[self.index]) ? @items[self.index][0] : nil + end + + def sort_mode=(value) + @sort_mode = value + refresh + end + + def disable_sorting=(value) + @disable_sorting = value + end + + def switching_base_color=(value) + @switching_base_color = value + end + + def switching_shadow_color=(value) + @switching_shadow_color = value + end + + #----------------------------------------------------------------------------- + + # Custom method that allows for an extra option to be displayed above and + # below the main visible list. + def itemRect(item) + if item < 0 || item >= @item_max || item < self.top_item - 1 || + item > self.top_item + self.page_item_max + return Rect.new(0, 0, 0, 0) + end + cursor_width = (self.width - self.borderX - ((@column_max - 1) * @column_spacing)) / @column_max + x = item % @column_max * (cursor_width + @column_spacing) + y = (item / @column_max * @row_height) - @virtualOy + return Rect.new(x, y, cursor_width, @row_height) + end + + #----------------------------------------------------------------------------- + + # This draws all the visible options first, and then draws the cursor. It also + # draws an additional option above the main visible ones. + def refresh + @item_max = itemCount + update_cursor_rect + dwidth = self.width - self.borderX + dheight = self.height - self.borderY + self.contents = pbDoEnsureBitmap(self.contents, dwidth, dheight) + self.contents.clear + @item_max.times do |i| + next if i < self.top_item - 1 || i > self.top_item + self.page_item_max + drawItem(i, @item_max, itemRect(i)) + end + drawCursor(self.index, itemRect(self.index)) + end + + def drawItem(index, _count, rect) + textpos = [] + rect = Rect.new(rect.x + 16, rect.y + 16, rect.width - 16, rect.height) + if index == self.itemCount - 1 + textpos.push([_INTL("CLOSE BAG"), rect.x, rect.y + 2, :left, self.baseColor, self.shadowColor]) + else + this_item_id = @items[index][0] + item_data = GameData::Item.get(this_item_id) + baseColor = self.baseColor + shadowColor = self.shadowColor + if @sorting && index == self.index + baseColor = @switching_base_color || self.baseColor + shadowColor = @switching_shadow_color || self.shadowColor + end + # Draw item name + textpos.push( + [item_data.display_name, rect.x, rect.y + 2, :left, baseColor, shadowColor] + ) + # Draw register icon + showing_register_icon = false + if item_data.is_important? + if @bag.registered?(this_item_id) + pbDrawImagePositions( + self.contents, + [[bag_folder + _INTL("icon_register"), rect.x + rect.width - 72, rect.y + 8, 0, 0, -1, 24]] + ) + showing_register_icon = true + elsif pbCanRegisterItem?(this_item_id) + pbDrawImagePositions( + self.contents, + [[bag_folder + _INTL("icon_register"), rect.x + rect.width - 72, rect.y + 8, 0, 24, -1, 24]] + ) + showing_register_icon = true + end + end + # Draw quantity + if item_data.show_quantity? && !showing_register_icon + qty = @items[index][1] + qtytext = _ISPRINTF("× {1:d}", qty) + xQty = rect.x + rect.width - self.contents.text_size(qtytext).width - 16 + textpos.push([qtytext, xQty, rect.y + 2, :left, baseColor, shadowColor]) + end + end + pbDrawTextPositions(self.contents, textpos) + end + + def drawCursor(index, rect) + if self.index == index + if @sorting + bmp = @swapping_arrow.bitmap + elsif @sort_mode && !@disable_sorting + bmp = @swap_arrow.bitmap + else + bmp = @selarrow.bitmap + end + pbCopyBitmap(self.contents, bmp, rect.x, rect.y + 2) + end + end + + #----------------------------------------------------------------------------- + + def update + super + @uparrow.visible = false + @downarrow.visible = false + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::BagVisuals < UI::BaseVisuals + attr_reader :pocket + + GRAPHICS_FOLDER = "Bag/" # Subfolder in Graphics/UI + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(248, 248, 248), Color.new(56, 56, 56)], # Base and shadow colour + :white => [Color.new(248, 248, 248), Color.new(56, 56, 56)], + :black => [Color.new(88, 88, 80), Color.new(168, 184, 184)], + :switching => [Color.new(224, 0, 0), Color.new(248, 144, 144)] + } + SLIDER_COORDS = { # Size of elements in slider graphic + :arrow_size => [24, 28], + :box_heights => [4, 8, 18] # Heights of top, middle and bottom segments of slider box + } + ITEMS_VISIBLE = 6 + + def initialize(bag, mode = :normal) + @bag = bag + @mode = mode + @show_move_details = false + @pocket = @bag.last_viewed_pocket + super() + end + + def initialize_bitmaps + @bitmaps[:input_icons] = AnimatedBitmap.new(UI_FOLDER + "input_icons") + @bitmaps[:slider] = AnimatedBitmap.new(graphics_folder + "icon_slider") + @bitmaps[:pocket_icons] = AnimatedBitmap.new(graphics_folder + "icon_pocket") + @bitmaps[:party_icons] = AnimatedBitmap.new(graphics_folder + "icon_party") + @bitmaps[:types] = AnimatedBitmap.new(UI_FOLDER + _INTL("types")) + @bitmaps[:categories] = AnimatedBitmap.new(UI_FOLDER + "category") + end + + def initialize_overlay + super + add_overlay(:pocket_name_overlay, 160, 32) + add_overlay(:slider_overlay, 24, 224) + @sprites[:slider_overlay].x = 484 + @sprites[:slider_overlay].y = 46 + add_overlay(:move_details_overlay, 180, 170) + @sprites[:move_details_overlay].x = 0 + @sprites[:move_details_overlay].y = 112 + @sprites[:move_details_overlay].z = 1200 + @sprites[:move_details_overlay].visible = false + end + + def initialize_sprites + initialize_pocket_sprites + initialize_party_sprites + initialize_item_list + initialize_item_sprites + end + + def initialize_pocket_sprites + @sprites[:bag] = IconSprite.new(28, 90, @viewport) + @sprites[:pocket_icons] = BitmapSprite.new(344, 28, @viewport) + @sprites[:pocket_icons].x = 160 + @sprites[:pocket_icons].y = 2 + add_icon_sprite(:move_details_bg, + @sprites[:move_details_overlay].x, sprites[:move_details_overlay].y, + graphics_folder + "move_details_bg") + @sprites[:move_details_bg].z = 1100 + @sprites[:move_details_bg].visible = false + end + + def initialize_party_sprites + @sprites[:party_icons] = BitmapSprite.new(32 * Settings::MAX_PARTY_SIZE, 32, @viewport) + @sprites[:party_icons].x = 6 + @sprites[:party_icons].y = 42 + end + + def initialize_item_list + @sprites[:item_list] = UI::BagVisualsList.new(@bag, 166, 28, 332, 40 + 28 + (ITEMS_VISIBLE * 32), @viewport) + @sprites[:item_list].baseColor = TEXT_COLOR_THEMES[:black][0] + @sprites[:item_list].shadowColor = TEXT_COLOR_THEMES[:black][1] + @sprites[:item_list].switching_base_color = TEXT_COLOR_THEMES[:switching][0] + @sprites[:item_list].switching_shadow_color = TEXT_COLOR_THEMES[:switching][1] + @sprites[:item_list].items = @bag.pockets[@pocket] + @sprites[:item_list].index = @bag.last_viewed_index(@pocket) if @mode != :choose_item + @sprites[:item_list].active = false + end + + def initialize_item_sprites + # Selected item's icon + @sprites[:item_icon] = ItemIconSprite.new(48, Graphics.height - 48, nil, @viewport) + # Selected item's description text box + @sprites[:item_description] = Window_UnformattedTextPokemon.newWithSize( + "", 76, 272, Graphics.width - 98, 128, @viewport + ) + @sprites[:item_description].baseColor = TEXT_COLOR_THEMES[:white][0] + @sprites[:item_description].shadowColor = TEXT_COLOR_THEMES[:white][1] + @sprites[:item_description].visible = true + @sprites[:item_description].windowskin = nil + end + + #----------------------------------------------------------------------------- + + def background_filename + ret = gendered_filename(self.class::BACKGROUND_FILENAME + "_" + @pocket.to_s) + return ret if pbResolveBitmap(graphics_folder + ret) + return super + end + + def index + return @sprites[:item_list].index + end + + def set_index(value) + @sprites[:item_list].index = value + refresh_on_index_changed(nil) + end + + def item + return @sprites[:item_list].item_id + end + + #----------------------------------------------------------------------------- + + def set_filter_proc(filter_proc) + @filter_proc = filter_proc + # Create filtered pocket lists + all_pockets = GameData::BagPocket.all_pockets + @filtered_list = {} + all_pockets.each do |pckt| + @filtered_list[pckt] = [] + @bag.pockets[pckt].length.times do |j| + @filtered_list[pckt].push(@bag.pockets[pckt][j]) if @filter_proc.call(@bag.pockets[pckt][j][0]) + end + end + # Ensure current pocket is one that isn't empty + new_pocket_index = 0 + if @mode == :choose_item_in_battle && !@filtered_list[@bag.last_viewed_pocket].empty? + new_pocket_index = all_pockets.index(@bag.last_viewed_pocket) + end + all_pockets.length.times do |i| + next_pocket_index = (new_pocket_index + i) % all_pockets.length + next if @filtered_list[all_pockets[next_pocket_index]].empty? + new_pocket_index = next_pocket_index + break + end + new_pocket_index = 0 if @filtered_list[all_pockets[new_pocket_index]].empty? # In case all pockets are empty + new_pocket = all_pockets[new_pocket_index] + # Set the new pocket + set_pocket(new_pocket) + @sprites[:item_list].index = 0 + end + + def set_pocket(new_pocket) + @pocket = new_pocket + @bag.last_viewed_pocket = @pocket if @mode != :choose_item + @sprites[:item_list].disable_sorting = !pocket_sortable? + if @filtered_list + @sprites[:item_list].items = @filtered_list[@pocket] + else + @sprites[:item_list].items = @bag.pockets[@pocket] + end + @sprites[:item_list].index = @bag.last_viewed_index(@pocket) + refresh + end + + def go_to_next_pocket + new_pocket = @pocket + all_pockets = GameData::BagPocket.all_pockets + new_pocket_index = all_pockets.index(new_pocket) + loop do + new_pocket_index = (new_pocket_index + 1) % all_pockets.length + new_pocket = all_pockets[new_pocket_index] + break if ![:choose_item, :choose_item_in_battle].include?(@mode) + break if new_pocket == @pocket # Bag is empty somehow + if @filtered_list + break if @filtered_list[new_pocket].length > 0 + else + break if @bag.pockets[new_pocket].length > 0 + end + end + return if new_pocket == @pocket + pbPlayCursorSE + set_pocket(new_pocket) + end + + def go_to_previous_pocket + new_pocket = @pocket + all_pockets = GameData::BagPocket.all_pockets + new_pocket_index = all_pockets.index(new_pocket) + loop do + new_pocket_index = (new_pocket_index - 1) % all_pockets.length + new_pocket = all_pockets[new_pocket_index] + break if ![:choose_item, :choose_item_in_battle].include?(@mode) + break if new_pocket == @pocket # Bag is empty somehow + if @filtered_list + break if @filtered_list[new_pocket].length > 0 + else + break if @bag.pockets[new_pocket].length > 0 + end + end + return if new_pocket == @pocket + pbPlayCursorSE + set_pocket(new_pocket) + end + + def set_sub_mode(sub_mode = :normal) + @sub_mode = sub_mode + @sprites[:item_list].sort_mode = (sub_mode == :rearrange_items) + end + + # All screen menu options are related to sorting. + def can_access_screen_menu? + return false if @mode != :normal + return false if @bag.pockets[@pocket].length <= 1 + return false if !pocket_sortable? + return false if switching? + return true + end + + def switch_index + return @switch_index || -1 + end + + def can_switch? + return false if @mode != :normal || @filtered_list + return false if @bag.pockets[@pocket].length <= 1 + return false if index >= @bag.pockets[@pocket].length + return false if !pocket_sortable? + return true + end + + def pocket_sortable? + return !GameData::BagPocket.get(@pocket).auto_sort + end + + def switching? + return switch_index >= 0 + end + + def start_switching(sw_index) + @switch_index = sw_index + @sprites[:item_list].sorting = true + refresh_item_list + refresh_input_indicators + end + + def end_switching + @switch_index = -1 + @sprites[:item_list].sorting = false + refresh_item_list + refresh_input_indicators + end + + def cancel_switching + this_pocket = @bag.pockets[@pocket] + this_pocket.insert(@switch_index, this_pocket.delete_at(@sprites[:item_list].index)) + @sprites[:item_list].items = this_pocket + @sprites[:item_list].index = @switch_index + end_switching + refresh + end + + #----------------------------------------------------------------------------- + + def refresh + refresh_background + refresh_input_indicators + refresh_pocket_icons + refresh_pocket + refresh_item_list + refresh_slider + refresh_selected_item + end + + def refresh_background + @sprites[:background].setBitmap(graphics_folder + background_filename) + end + + def refresh_input_indicators + @sprites[:overlay].bitmap.clear if @sprites[:overlay] + return if item.nil? + action_icon_x = 4 + action_icon_y = 244 + action_text_x = 42 + action_text_y = 250 + if @pocket == :Machines + action_text = _INTL("Show details") + if @show_move_details + action_icon_y = 78 + action_text_y = 84 + action_text = _INTL("Hide details") + end + elsif can_access_screen_menu? + action_text = _INTL("Sort pocket") + end + if action_text + draw_image(@bitmaps[:input_icons], action_icon_x, action_icon_y, + 2 * @bitmaps[:input_icons].height, 0, + @bitmaps[:input_icons].height, @bitmaps[:input_icons].height) + draw_text(action_text, action_text_x, action_text_y) + end + end + + def refresh_pocket_icons + all_pockets = GameData::BagPocket.all_pockets + icon_size = [28, 28] + icon_overlap = 0 + icon_x = 172 - ((icon_size[0] - icon_overlap) * all_pockets.length / 2) + icon_y = 0 + @sprites[:pocket_icons].bitmap.clear + # Draw regular pocket icons + all_pockets.each_with_index do |pckt, i| + icon_pos = GameData::BagPocket.get(pckt).icon_position + draw_image(@bitmaps[:pocket_icons], icon_x + (i * (icon_size[0] - icon_overlap)), icon_y, + icon_pos * icon_size[0], icon_size[1], *icon_size, overlay: :pocket_icons) + end + # Draw disabled pocket icons + if [:choose_item, :choose_item_in_battle].include?(@mode) && @filtered_list + all_pockets.each_with_index do |pckt, i| + next if @filtered_list[pckt].length > 0 + icon_pos = GameData::BagPocket.get(pckt).icon_position + draw_image(@bitmaps[:pocket_icons], icon_x + (i * (icon_size[0] - icon_overlap)), icon_y, + icon_pos * icon_size[0], icon_size[1] * 2, *icon_size, overlay: :pocket_icons) + end + end + # Draw selected pocket's icon + pocket_number = GameData::BagPocket.index(@pocket) + icon_pos = GameData::BagPocket.get(@pocket).icon_position + draw_image(@bitmaps[:pocket_icons], icon_x + (pocket_number * (icon_size[0] - icon_overlap)), icon_y, + icon_pos * icon_size[0], 0, *icon_size, overlay: :pocket_icons) + # Draw left/right arrows if there are multiple pockets that can be looked at + if @mode != :choose_item || !@filtered_list || @filtered_list.count { |pckt, contents| !contents.empty? } > 1 + draw_image(@bitmaps[:pocket_icons], icon_x - (icon_size[0] - icon_overlap), icon_y, + 0, icon_size[1] * 3, *icon_size, overlay: :pocket_icons) + draw_image(@bitmaps[:pocket_icons], icon_x + (all_pockets.length * (icon_size[0] - icon_overlap)), icon_y, + icon_size[0], icon_size[1] * 3, *icon_size, overlay: :pocket_icons) + end + end + + def refresh_pocket + # Draw pocket's name + @sprites[:pocket_name_overlay].bitmap.clear + draw_text(GameData::BagPocket.get(@pocket).name, 16, 6, theme: :black, overlay: :pocket_name_overlay) + # Set the bag sprite + bag_sprite_filename = graphics_folder + gendered_filename(sprintf("bag_%s", @pocket.to_s)) + @sprites[:bag].setBitmap(bag_sprite_filename) + end + + def refresh_item_list + @sprites[:item_list].refresh + end + + def refresh_slider + @sprites[:slider_overlay].bitmap.clear + slider_x = 0 + slider_y = 0 + slider_height = 224 # Includes heights of arrows at either end + visible_top = @sprites[:item_list].top_row + visible_height = @sprites[:item_list].page_row_max + total_height = @sprites[:item_list].row_max + draw_slider(@bitmaps[:slider], slider_x, slider_y, slider_height, + visible_top, visible_height, total_height, overlay: :slider_overlay) + end + + def refresh_selected_item + selected_item = item + # Set the selected item's icon + @sprites[:item_icon].item = selected_item + # Set the selected item's description + if selected_item + @sprites[:item_description].text = GameData::Item.get(selected_item).description + else + @sprites[:item_description].text = _INTL("Close bag.") + end + refresh_party_display + refresh_move_details + end + + def refresh_party_display + @sprites[:party_icons].bitmap.clear + return if item.nil? || @mode == :choose_item + item_data = GameData::Item.get(item) + use_type = item_data.field_use + # TODO: If @mode == :choose_item_in_battle, also check for item usage on a + # battler. + return if !pbCanUseItemOnPokemon?(item) + icon_x = 0 + icon_y = 0 + icon_size = [@bitmaps[:party_icons].height, @bitmaps[:party_icons].height] + icon_overlap = 4 + Settings::MAX_PARTY_SIZE.times do |i| + pkmn = $player.party[i] + this_icon_x = (icon_size[0] - icon_overlap) * i + # TODO: If @mode == :choose_item_in_battle, also check for item usage on a + # battler. + usable = pbItemHasEffectOnPokemon?(item, pkmn) + icon_offset = 2 + if pkmn + icon_offset = (usable) ? 0 : 1 + end + draw_image(@bitmaps[:party_icons], this_icon_x, icon_y, + icon_offset * icon_size[0], 0, *icon_size, overlay: :party_icons) + end + end + + def refresh_move_details + if @pocket != :Machines || !@show_move_details || item.nil? + @sprites[:bag].visible = true + @sprites[:move_details_bg].visible = false + @sprites[:move_details_overlay].visible = false + return + end + @sprites[:bag].visible = false + @sprites[:move_details_bg].visible = true + @sprites[:move_details_overlay].visible = true + @sprites[:move_details_overlay].bitmap.clear + move = GameData::Item.get(item).move + move_data = GameData::Move.get(move) + # Type + draw_text(_INTL("Type"), 4, 14, overlay: :move_details_overlay) + type_number = GameData::Type.get(move_data.type).icon_position + draw_image(@bitmaps[:types], 106, 10, + 0, type_number * GameData::Type::ICON_SIZE[1], *GameData::Type::ICON_SIZE, + overlay: :move_details_overlay) + # Category + draw_text(_INTL("Category"), 4, 46, overlay: :move_details_overlay) + draw_image(@bitmaps[:categories], 106, 42, + 0, move_data.category * GameData::Move::CATEGORY_ICON_SIZE[1], *GameData::Move::CATEGORY_ICON_SIZE, + overlay: :move_details_overlay) + # Power + draw_text(_INTL("Power"), 4, 78, overlay: :move_details_overlay) + power_text = move_data.power + power_text = "---" if power_text == 0 # Status move + power_text = "???" if power_text == 1 # Variable power move + draw_text(power_text, 156, 78, align: :right, overlay: :move_details_overlay) + # Accuracy + draw_text(_INTL("Accuracy"), 4, 110, overlay: :move_details_overlay) + accuracy = move_data.accuracy + if accuracy == 0 + draw_text("---", 156, 110, align: :right, overlay: :move_details_overlay) + else + draw_text(accuracy, 156, 110, align: :right, overlay: :move_details_overlay) + draw_text("%", 156, 110, overlay: :move_details_overlay) + end + # PP + draw_text(_INTL("PP"), 4, 142, overlay: :move_details_overlay) + draw_text(move_data.total_pp, 156, 142, align: :right, overlay: :move_details_overlay) + end + + def refresh_on_index_changed(old_index) + if switching? + # Skip past "Cancel" + this_pocket = @bag.pockets[@pocket] + if index >= this_pocket.length + @sprites[:item_list].index = (old_index == this_pocket.length - 1) ? 0 : this_pocket.length - 1 + end + # Move the item being switched + this_pocket.insert(index, this_pocket.delete_at(old_index)) + @sprites[:item_list].items = this_pocket + end + @bag.set_last_viewed_index(@pocket, index) if @mode != :choose_item + refresh_slider + refresh_selected_item + refresh_input_indicators + end + + #----------------------------------------------------------------------------- + + def update_input + # Check for movement to a new pocket + if Input.repeat?(Input::LEFT) + go_to_previous_pocket if !switching? + elsif Input.repeat?(Input::RIGHT) + go_to_next_pocket if !switching? + end + # Check for interaction + if Input.trigger?(Input::USE) + return update_interaction(Input::USE) + elsif Input.trigger?(Input::BACK) + return update_interaction(Input::BACK) + elsif Input.trigger?(Input::ACTION) + return update_interaction(Input::ACTION) + end + return nil + end + + def update_interaction(input) + case input + when Input::USE + return :switch_item_end if switching? + return :switch_item_start if @sub_mode == :rearrange_items && item && pocket_sortable? + if !item # "CLOSE BAG" + pbPlayCloseMenuSE + return :quit + end + pbPlayDecisionSE + return :interact_menu + when Input::ACTION + if item + return :switch_item_end if switching? + if @pocket == :Machines + pbPlayDecisionSE + @show_move_details = !@show_move_details + refresh_move_details + refresh_input_indicators + elsif can_access_screen_menu? + pbPlayDecisionSE + return :screen_menu + end + end + when Input::BACK + return :switch_item_cancel if switching? + return :clear_sub_mode if (@sub_mode || :normal) != :normal && pocket_sortable? + pbPlayCloseMenuSE + return :quit + end + return nil + end + + def navigate + @sprites[:item_list].active = true + ret = super + @sprites[:item_list].active = false + return ret + end + + #----------------------------------------------------------------------------- + + def update_input_choose_item + # Check for movement to a new pocket + if Input.repeat?(Input::LEFT) + go_to_previous_pocket + elsif Input.repeat?(Input::RIGHT) + go_to_next_pocket + end + # Check for interaction + if Input.trigger?(Input::USE) + return update_interaction_choose_item(Input::USE) + elsif Input.trigger?(Input::BACK) + return update_interaction_choose_item(Input::BACK) + elsif Input.trigger?(Input::ACTION) + return update_interaction_choose_item(Input::ACTION) + end + return nil + end + + def update_interaction_choose_item(input) + case input + when Input::USE + return :chosen if item + pbPlayCloseMenuSE + return :quit + when Input::ACTION + if item && @pocket == :Machines + pbPlayDecisionSE + @show_move_details = !@show_move_details + refresh_move_details + refresh_input_indicators + end + when Input::BACK + pbPlayCloseMenuSE + return :quit + end + return nil + end + + def navigate_choose_item + @sprites[:item_list].active = true + ret = nil + loop do + Graphics.update + Input.update + old_index = index + update_visuals + refresh_on_index_changed(old_index) if index != old_index + ret = update_input_choose_item + break if ret + end + @sprites[:item_list].active = false + return ret + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::Bag < UI::BaseScreen + attr_reader :bag + + SCREEN_ID = :bag_screen + + def initialize(bag, mode: :normal) + @bag = bag + @mode = mode + super() + end + + def initialize_visuals + @visuals = UI::BagVisuals.new(@bag, @mode) + end + + #----------------------------------------------------------------------------- + + def item + return nil if @visuals.item.nil? + return GameData::Item.get(@visuals.item) + end + + def set_filter_proc(filter_proc) + @visuals.set_filter_proc(filter_proc) + end + + def set_sub_mode(sub_mode = :normal) + @visuals.set_sub_mode(sub_mode) + end + + def switch_index + return @visuals.switch_index + end + + def switching? + return @visuals.switching? + end + + def start_switching(index = nil) + @visuals.start_switching(index || @visuals.index) + end + + def cancel_switching + @visuals.cancel_switching + end + + def switch_items(index1, index2) + @visuals.end_switching + end + + def autosort_pocket(order) + pocket = @bag.pockets[@visuals.pocket] + item_id = @visuals.item + case order + when :alphabetical + pocket.sort! { |a, b| GameData::Item.get(a[0]).name <=> GameData::Item.get(b[0]).name } + when :definition + pocket.sort! { |a, b| GameData::Item.keys.index(a[0]) <=> GameData::Item.keys.index(b[0]) } + end + new_index = pocket.index { |slot| slot[0] == item_id } + @visuals.set_index(new_index) + end + + #----------------------------------------------------------------------------- + + def choose_item + start_screen + loop do + on_start_main_loop + chosen_item = choose_item_core + if chosen_item + if block_given? + next if !yield chosen_item + else + pbPlayDecisionSE + end + end + @result = chosen_item + break + end + end_screen + return @result + end + + def choose_item_core + command = @visuals.navigate_choose_item + return item.id if command == :chosen + return nil + end +end + +#=============================================================================== +# +#=============================================================================== +# Shows a choice menu using the MenuHandlers options below. +UIActionHandlers.add(UI::Bag::SCREEN_ID, :screen_menu, { + :menu => :bag_screen_menu, + :menu_message => proc { |screen| _INTL("Choose an option.") } +}) + +#------------------------------------------------------------------------------- + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :switch_item_start, { + :effect => proc { |screen| + pbPlayDecisionSE + screen.start_switching + } +}) + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :switch_item_end, { + :effect => proc { |screen| + pbPlayDecisionSE + screen.switch_items(screen.switch_index, screen.index) + } +}) + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :switch_item_cancel, { + :effect => proc { |screen| + pbPlayCancelSE + screen.cancel_switching + } +}) + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :rearrange_items_mode, { + :effect => proc { |screen| + screen.set_sub_mode(:rearrange_items) + } +}) + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :clear_sub_mode, { + :effect => proc { |screen| + pbPlayCancelSE + screen.set_sub_mode(:normal) + } +}) + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :sort_alphabetically, { + :effect => proc { |screen| + screen.autosort_pocket(:alphabetical) + } +}) + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :sort_by_definition, { + :effect => proc { |screen| + screen.autosort_pocket(:definition) + } +}) + +#------------------------------------------------------------------------------- + +# Shows a choice menu using the MenuHandlers options below. +UIActionHandlers.add(UI::Bag::SCREEN_ID, :interact_menu, { + :menu => :bag_screen_interact, + :menu_message => proc { |screen| _INTL("{1} is selected.", screen.item.name) } +}) + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :read_mail, { + :effect => proc { |screen| + pbFadeOutInWithUpdate(screen.sprites) do + pbDisplayMail(Mail.new(screen.item.id, "", "")) + end + } +}) + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :use, { + :returns_value => true, + :effect => proc { |screen| + item = screen.item.id + ret = pbUseItem(screen.bag, item, screen) + # ret: 0=Item wasn't used; 1=Item used; 2=Close Bag to use in field + if ret == 2 + screen.result = item + next :quit + end + screen.refresh + next nil + } +}) + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :give, { + :effect => proc { |screen| + if $player.pokemon_count == 0 + screen.show_message(_INTL("There is no Pokémon.")) + elsif screen.item.is_important? + screen.show_message(_INTL("The {1} can't be held.", screen.item.portion_name)) + else + pbFadeOutInWithUpdate(screen.sprites) do + party_screen = UI::Party.new($player.party, mode: :choose_pokemon) + party_screen.choose_pokemon do |pkmn, party_index| + pbGiveItemToPokemon(screen.item.id, party_screen.pokemon, party_screen, party_index) if party_index >= 0 + next true + end + screen.refresh + end + end + } +}) + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :toss, { + :effect => proc { |screen| + qty = screen.bag.quantity(screen.item.id) + if qty > 1 + help_text = _INTL("Toss out how many {1}?", screen.item.portion_name_plural) + qty = screen.choose_number(help_text, qty) + end + if qty > 0 + item_name = (qty > 1) ? screen.item.portion_name_plural : screen.item.portion_name + if screen.show_confirm_message(_INTL("Is it OK to throw away {1} {2}?", qty, item_name)) + qty.times { screen.bag.remove(screen.item.id) } + screen.refresh + screen.show_message(_INTL("Threw away {1} {2}.", qty, item_name)) + end + end + } +}) + +# Handles both registering and unregistering the item. +UIActionHandlers.add(UI::Bag::SCREEN_ID, :register, { + :effect => proc { |screen| + if screen.bag.registered?(screen.item.id) + screen.bag.unregister(screen.item.id) + else + screen.bag.register(screen.item.id) + end + screen.refresh + } +}) + +UIActionHandlers.add(UI::Bag::SCREEN_ID, :debug, { + :effect => proc { |screen| + command = 0 + loop do + command = screen.show_menu( + _INTL("Do what with {1}?", screen.item.name), + [_INTL("Change quantity"), _INTL("Make Mystery Gift"), _INTL("Cancel")], command) + case command + when 0 # Change quantity + qty = screen.bag.quantity(screen.item.id) + item_name_plural = screen.item.name_plural + params = ChooseNumberParams.new + params.setRange(0, PokemonBag::MAX_PER_SLOT) + params.setDefaultValue(qty) + new_qty = screen.choose_number( + _INTL("Choose new quantity of {1} (max. {2}).", item_name_plural, PokemonBag::MAX_PER_SLOT), params + ) + if new_qty > qty + screen.bag.add(screen.item.id, new_qty - qty) + elsif new_qty < qty + screen.bag.remove(screen.item.id, qty - new_qty) + end + screen.refresh + break if new_qty == 0 + when 1 # Make Mystery Gift + pbCreateMysteryGift(1, screen.item.id) + else + break + end + end + } +}) + +#=============================================================================== +# Menu options for choice menus that exist in the party screen. +#=============================================================================== +MenuHandlers.add(:bag_screen_menu, :rearrange_items_mode, { + "name" => _INTL("Mode: Rearrange items"), + "order" => 10 +}) + +MenuHandlers.add(:bag_screen_menu, :sort_by_definition, { + "name" => _INTL("Sort by type"), + "order" => 20 +}) + +MenuHandlers.add(:bag_screen_menu, :sort_alphabetically, { + "name" => _INTL("Sort alphabetically"), + "order" => 30 +}) + +MenuHandlers.add(:bag_screen_menu, :cancel, { + "name" => _INTL("Cancel"), + "order" => 9999 +}) + +#------------------------------------------------------------------------------- + +MenuHandlers.add(:bag_screen_interact, :read_mail, { + "name" => _INTL("Read"), + "order" => 10, + "condition" => proc { |screen| next screen.item.is_mail? } +}) + +MenuHandlers.add(:bag_screen_interact, :use, { + "name" => proc { |screen| + next ItemHandlers.getUseText(screen.item.id) if ItemHandlers.hasUseText(screen.item.id) + next _INTL("Use") + }, + "order" => 20, + "condition" => proc { |screen| + next ItemHandlers.hasOutHandler(screen.item.id) || (screen.item.is_machine? && $player.party.length > 0) + } +}) + +MenuHandlers.add(:bag_screen_interact, :give, { + "name" => _INTL("Give"), + "order" => 30, + "condition" => proc { |screen| next $player.pokemon_party.length > 0 && screen.item.can_hold? } +}) + +MenuHandlers.add(:bag_screen_interact, :toss, { + "name" => _INTL("Toss"), + "order" => 40, + "condition" => proc { |screen| next !screen.item.is_important? || $DEBUG } +}) + +MenuHandlers.add(:bag_screen_interact, :register, { + "name" => proc { |screen| + next _INTL("Deselect") if $bag.registered?(screen.item.id) + next _INTL("Select") + }, + "order" => 50, + "condition" => proc { |screen| next pbCanRegisterItem?(screen.item.id) } +}) + +MenuHandlers.add(:bag_screen_interact, :debug, { + "name" => _INTL("Debug"), + "order" => 60, + "condition" => proc { |screen| next $DEBUG } +}) + +MenuHandlers.add(:bag_screen_interact, :cancel, { + "name" => _INTL("Cancel"), + "order" => 9999 +}) + +#=============================================================================== +# Methods for choosing an item from the Bag. +#=============================================================================== +def pbChooseItem(game_variable = 0, *args) + ret = nil + pbFadeOutIn do + bag_screen = UI::Bag.new($bag, mode: :choose_item) + ret = bag_screen.choose_item + end + $game_variables[game_variable] = ret || :NONE if game_variable > 0 + return ret +end + +def pbChooseApricorn(game_variable = 0) + ret = nil + pbFadeOutIn do + bag_screen = UI::Bag.new($bag, mode: :choose_item) + bag_screen.set_filter_proc(proc { |item| GameData::Item.get(item).is_apricorn? }) + ret = bag_screen.choose_item + end + $game_variables[game_variable] = ret || :NONE if game_variable > 0 + return ret +end + +def pbChooseFossil(game_variable = 0) + ret = nil + pbFadeOutIn do + bag_screen = UI::Bag.new($bag, mode: :choose_item) + bag_screen.set_filter_proc(proc { |item| GameData::Item.get(item).is_fossil? }) + ret = bag_screen.choose_item + end + $game_variables[game_variable] = ret || :NONE if game_variable > 0 + return ret +end diff --git a/Data/Scripts/016b_UI redesign/009_UI_TownMap.rb b/Data/Scripts/016b_UI redesign/009_UI_TownMap.rb new file mode 100644 index 000000000..cb6ab18b1 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/009_UI_TownMap.rb @@ -0,0 +1,1078 @@ +#=============================================================================== +# +#=============================================================================== +class UI::TownMapVisuals < UI::BaseVisuals + attr_reader :region, :visited_regions + + GRAPHICS_FOLDER = "Town Map/" # Subfolder in Graphics/UI + MAP_TOP_LEFT = [16, 16] # Top left of map's display area in pixels + MAP_SIZE = [480, 320] # Size of display area for map in pixels, NOT the map graphic's size + MAP_SCROLL_PADDING = [64, 64] # In pixels. Don't make these more than half of MAP_SIZE! + CURSOR_MOVE_TIME = 0.08 # In seconds + ZOOM_TIME = 0.2 # In seconds + ZOOM_CURSOR_POSITION = [MAP_SIZE[0] / 4, MAP_SIZE[1] / 2] + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(248, 248, 248), Color.new(0, 0, 0)], # Base and shadow colour + :black => [Color.new(64, 64, 64), Color.new(176, 176, 176)] + } + MARKINGS_COUNT = 4 # Number of markings a point can have + MARKING_SPACING = 8 # In the markings panel (where markings are changed) + + def initialize(region = 0, mode = :normal) + @region = region + @mode = mode + @sub_mode = :none # Could be toggled to :fly + @cursor_offset = {:x => 0, :y => 0} + load_region_data + find_visited_regions + super() + set_player_position + @sprites[:cursor].x, @sprites[:cursor].y = point_to_screen(@cursor_pos[:x], @cursor_pos[:y]) + center_map_on_cursor + end + + def initialize_viewport + @map_viewport = Viewport.new(*MAP_TOP_LEFT, *MAP_SIZE) + @map_viewport.z = 99999 + @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) + @viewport.z = @map_viewport.z + 1 + end + + def initialize_bitmaps + @bitmaps[:input_icons] = AnimatedBitmap.new(UI_FOLDER + "input_icons") + @bitmaps[:map_markings] = AnimatedBitmap.new(graphics_folder + "map_markings") + @bitmaps[:details_marking_bg] = AnimatedBitmap.new(graphics_folder + themed_filename("details_marking_bg")) + end + + def initialize_background + addBackgroundPlane(@sprites, :background, self.class::GRAPHICS_FOLDER + themed_filename(self.class::BACKGROUND_FILENAME), @viewport) + @sprites[:background].z = -1000 + end + + def initialize_overlay + add_overlay(:map_name_overlay, 234, 32) + @sprites[:map_name_overlay].x = 262 + @sprites[:map_name_overlay].y = Graphics.height - 40 + if @mode == :wall_map + @sprites[:map_name_overlay].x = (Graphics.width - @sprites[:map_name_overlay].width) / 2 + @sprites[:map_name_overlay].y += 4 + end + add_overlay(:input_helpers_overlay, 256, 42) + @sprites[:input_helpers_overlay].y = Graphics.height - 42 + end + + def initialize_sprites + initialize_map_sprite + initialize_map_overlay + initialize_pins + initialize_cursor + initialize_details_panel + initialize_marking_panel + generate_fly_icons if @mode == :fly + end + + def initialize_map_sprite + add_icon_sprite(:map, 0, 0, graphics_folder + @map_data.filename) + @sprites[:map].viewport = @map_viewport + end + + # An overlay sprite for the map, which zooms in as it does. Used for drawing + # unlockable things onto the map. + def initialize_map_overlay + add_overlay(:map_overlay, @sprites[:map].width, @sprites[:map].height) + @sprites[:map_overlay].viewport = @map_viewport + @sprites[:map_overlay].z = 1 + end + + # These are anything drawn onto the map but which will not enlarge if the map + # is zoomed in. + def initialize_pins + @pins_pos ||= {} + # Markings + $PokemonGlobal.townMapMarkings ||= [] + $PokemonGlobal.townMapMarkings[@region] ||= [] + @sprites.each_pair { |key, sprite| sprite.dispose if key.to_s.include?("mark_") } + @sprites.delete_if { |key, sprite| key.to_s.include?("mark_") } + @pins_pos.delete_if { |key, sprite| key.to_s.include?("mark_") } + $PokemonGlobal.townMapMarkings[@region].each do |marking| + next if !marking || marking[2].all?(0) + key = "mark_#{marking[0]}_#{marking[1]}".to_sym + create_pin(key, marking[0], marking[1], graphics_folder + themed_filename("icon_marking"), 50) + end + # Roamer icons + @sprites.each_pair { |key, sprite| sprite.dispose if key.to_s.include?("roamer_") } + @sprites.delete_if { |key, sprite| key.to_s.include?("roamer_") } + @pins_pos.delete_if { |key, sprite| key.to_s.include?("roamer_") } + if @mode != :wall_map + each_active_roamer do |roamer, i| + next if !roamer[:icon] + roamer_map = GameData::MapMetadata.try_get($PokemonGlobal.roamPosition[i]) + return if !roamer_map || !roamer_map.town_map_position + return if roamer_map.town_map_position[0] != @region + key = "roamer_#{i}".to_sym + @pins_pos[key] = [roamer_map.town_map_position[1], roamer_map.town_map_position[2]] + if roamer_map.town_map_size + area_width = roamer_map.town_map_size[0] + area_height = (roamer_map.town_map_size[1].length.to_f / roamer_map.town_map_size[0]).ceil + @pins_pos[key][0] += (area_width.to_f - 1) / 2 + @pins_pos[key][1] += (area_height.to_f - 1) / 2 + end + create_pin(key, @pins_pos[key][0], @pins_pos[key][1], graphics_folder + roamer[:icon], 80) + end + end + # Player's head showing their current location + if !@pins_pos[:player] + create_pin(:player, 0, 0, GameData::TrainerType.player_map_icon_filename($player.trainer_type), 100) + end + end + + def create_pin(key, this_x, this_y, filename, this_z) + @pins_pos[key] = [this_x, this_y] + add_icon_sprite(key, 0, 0, filename) + @sprites[key].x, @sprites[key].y = point_to_screen(this_x, this_y) + @sprites[key].z = this_z + @sprites[key].ox = @sprites[key].width / 2 + @sprites[key].oy = @sprites[key].height / 2 + @sprites[key].viewport = @map_viewport + end + + def initialize_cursor + @cursor_pos = {:x => 0, :y => 0} # In points, not pixels + @sprites[:cursor] = AnimatedSprite.create( + graphics_folder + themed_filename("cursor"), 2, 5, @map_viewport # 2 frames, 5/20 seconds per frame + ) + @sprites[:cursor].z = 1000 + @sprites[:cursor].ox = @sprites[:cursor].height / 2 + @sprites[:cursor].oy = @sprites[:cursor].height / 2 + @sprites[:cursor].play + end + + def initialize_details_panel + return if !Settings::ENABLE_TOWN_MAP_ZOOM_IN_FOR_DETAILS + add_icon_sprite(:details, 256, 16, graphics_folder + themed_filename("details_panel")) + @sprites[:details].z = 900 + @sprites[:details].visible = false + add_overlay(:details_overlay, @sprites[:details].width, @sprites[:details].height) + @sprites[:details_overlay].x = @sprites[:details].x + @sprites[:details_overlay].y = @sprites[:details].y + @sprites[:details_overlay].z = @sprites[:details].z + 1 + @sprites[:details_overlay].visible = false + end + + def initialize_marking_panel + # Background + add_icon_sprite(:marking_bg, 0, 0, graphics_folder + themed_filename("marking_bg")) + @sprites[:marking_bg].z = 1000 + @sprites[:marking_bg].visible = false + # Overlay + add_overlay(:marking_overlay, @sprites[:marking_bg].width, @sprites[:marking_bg].height) + @sprites[:marking_overlay].x = @sprites[:marking_bg].x + @sprites[:marking_overlay].y = @sprites[:marking_bg].y + @sprites[:marking_overlay].z = @sprites[:marking_bg].z + 1 + @sprites[:marking_overlay].visible = false + # Cursor + @sprites[:marking_cursor] = AnimatedSprite.create( + graphics_folder + themed_filename("marking_cursor"), 2, 5, @viewport # 2 frames, 5/20 seconds per frame + ) + @sprites[:marking_cursor].z = @sprites[:marking_overlay].z + 1 + @sprites[:marking_cursor].ox = @sprites[:marking_cursor].height / 2 + @sprites[:marking_cursor].oy = @sprites[:marking_cursor].height / 2 + @sprites[:marking_cursor].visible = false + @sprites[:marking_cursor].play + end + + def dispose + super + @map_viewport.dispose + @viewport.dispose + end + + #----------------------------------------------------------------------------- + + def themed_filename(base_filename) + return filename_with_appendix(base_filename, "_wall") if @mode == :wall_map + # NOTE: The Pokégear theme would be manually chosen by the player, and would + # not depend on the player's gender. However, because there isn't a + # variable that contains the Pokégear's theme, so for the sake of + # example, the player's gender matters here. + return filename_with_appendix(base_filename, "_f") if $player&.female? + return base_filename + end + + def load_region_data + if !GameData::TownMap.exists?(@region) + raise _INTL("No Town Map data is defined for region {1}.", @region) + end + @map_data = GameData::TownMap.get(@region) + end + + def find_visited_regions + @visited_regions = [] + GameData::MapMetadata.each do |map_data| + next if !map_data.town_map_position || @visited_regions.include?(map_data.town_map_position[0]) + next if !$PokemonGlobal.visitedMaps[map_data.id] + @visited_regions.push(map_data.town_map_position[0]) + end + end + + def set_region(new_region) + return if @region == new_region + @region = new_region + load_region_data + @sprites[:map].setBitmap(graphics_folder + @map_data.filename) + initialize_pins + set_player_position + @sprites[:cursor].x, @sprites[:cursor].y = point_to_screen(@cursor_pos[:x], @cursor_pos[:y]) + center_map_on_cursor + refresh + end + + def each_fly_point + @map_data.points.each do |point| + yield point if point[:fly_spot] + end + end + + def get_point_data(this_x = -1, this_y = -1) + this_x = @cursor_pos[:x] if this_x < 0 + this_y = @cursor_pos[:y] if this_y < 0 + @map_data.points.each do |point| + next if point[:position][0] != this_x || point[:position][1] != this_y + return nil if point[:switch] && (@mode == :wall_map || point[:switch] <= 0 || !$game_switches[point[:switch]]) + return point + end + return nil + end + + #----------------------------------------------------------------------------- + + # Positions the player's head on the town map. It is invisible if the player + # isn't in a map belonging to that town map. Also sets the cursor's position + # to the same point. + def set_player_position + map_pos = $game_map.metadata&.town_map_position + if map_pos.nil? || map_pos[0] != @region + set_cursor_pos((@map_data.size[0] - 1) / 2, (@map_data.size[1] - 1) / 2) # Middle of the map + @sprites[:player].visible = false + return + end + @pins_pos[:player] = [map_pos[1], map_pos[2]] + map_size = $game_map.metadata&.town_map_size + if map_size + area_width = map_size[0] + area_height = (map_size[1].length.to_f / map_size[0]).ceil + @pins_pos[:player][0] += ($game_player.x * area_width / $game_map.width).floor if area_width > 1 + @pins_pos[:player][1] += ($game_player.y * area_height / $game_map.height).floor if area_height > 1 + end + @sprites[:player].x, @sprites[:player].y = point_to_screen(*@pins_pos[:player]) + @sprites[:player].visible = true + set_cursor_pos(*@pins_pos[:player]) # In points + end + + def can_move_to_point?(new_x, new_y) + return false if new_x < 0 || new_x >= @map_data.size[0] + return false if new_y < 0 || new_y >= @map_data.size[1] + return true + end + + def cursor_moving? + return @cursor_offset[:x] != 0 || @cursor_offset[:y] != 0 + end + + def set_cursor_pos(new_x, new_y) + changed = (@cursor_pos[:x] != new_x) || (@cursor_pos[:y] != new_y) + @cursor_pos[:x] = new_x + @cursor_pos[:y] = new_y + refresh_on_cursor_move if changed + end + + def point_to_screen(point_x, point_y) + return point_x_to_screen_x(point_x), point_y_to_screen_y(point_y) + end + + # Returns the x coordinate of the middle of the point. + def point_x_to_screen_x(value) + return ((value * @map_data.point_size[0]) + (@map_data.point_size[0] / 2) + @map_data.margins[0]) * @sprites[:map].zoom_x + end + + # Returns the y coordinate of the middle of the point. + def point_y_to_screen_y(value) + return ((value * @map_data.point_size[1]) + (@map_data.point_size[1] / 2) + @map_data.margins[1]) * @sprites[:map].zoom_y + end + + # Called during initialization only. + def center_map_on_cursor + @map_viewport.ox = @sprites[:cursor].x - (MAP_SIZE[0] / 2) + @map_viewport.oy = @sprites[:cursor].y - (MAP_SIZE[1] / 2) + clamp_map_position + end + + def clamp_map_position + max_ox = ((@map_data.size[0] * @map_data.point_size[0]) + (@map_data.margins[0] * 2)) * @sprites[:map].zoom_x + max_oy = ((@map_data.size[1] * @map_data.point_size[1]) + (@map_data.margins[1] * 2)) * @sprites[:map].zoom_y + if zoomed? + max_ox -= ZOOM_CURSOR_POSITION[0] * 2 + max_oy -= ZOOM_CURSOR_POSITION[1] * 2 + else + max_ox -= MAP_SIZE[0] + max_oy -= MAP_SIZE[1] + end + @map_viewport.ox = max_ox if @map_viewport.ox > max_ox + @map_viewport.oy = max_oy if @map_viewport.oy > max_oy + @map_viewport.ox = 0 if @map_viewport.ox < 0 + @map_viewport.oy = 0 if @map_viewport.oy < 0 + end + + #----------------------------------------------------------------------------- + + def screen_menu_options + ret = [] + MenuHandlers.each_available(:town_map_menu, self) do |option, _hash, _name| + ret.push(option) + end + return ret + end + + def can_access_screen_menu? + return false if @mode != :normal || @sub_mode == :fly || zoomed? + return screen_menu_options.length > 1 # At least 1 command (plus "Cancel") + end + + #----------------------------------------------------------------------------- + + def zoomed? + return @sprites[:map].zoom_x > 1 + end + + def can_zoom? + return Settings::ENABLE_TOWN_MAP_ZOOM_IN_FOR_DETAILS && @mode == :normal && !zoomed? + end + + def zoom_in + @sprites[:details].visible = true + @sprites[:details_overlay].visible = true + @sprites[:input_helpers_overlay].visible = false + refresh_details_panel(false) + start_ox = @map_viewport.ox + start_oy = @map_viewport.oy + max_ox = (((@map_data.size[0] * @map_data.point_size[0]) + (@map_data.margins[0] * 2)) * 2) - (MAP_SIZE[0] / 2) + max_oy = (((@map_data.size[1] * @map_data.point_size[1]) + (@map_data.margins[1] * 2)) * 2) - MAP_SIZE[1] + end_ox = (@sprites[:cursor].x * 2) - ZOOM_CURSOR_POSITION[0] + end_ox = 0 if end_ox < 0 + end_ox = max_ox if end_ox > max_ox + end_oy = (@sprites[:cursor].y * 2) - ZOOM_CURSOR_POSITION[1] + end_oy = 0 if end_oy < 0 + end_oy = max_oy if end_oy > max_oy + # Animate the zoom in + animate_zoom(1, 2, start_ox, end_ox, start_oy, end_oy) + @sprites[:input_helpers_overlay].visible = true + refresh_input_helpers + end + + def zoom_out + @sprites[:input_helpers_overlay].visible = false + start_ox = @map_viewport.ox + start_oy = @map_viewport.oy + max_ox = (@map_data.size[0] * @map_data.point_size[0]) + (@map_data.margins[0] * 2) - MAP_SIZE[0] + max_oy = (@map_data.size[1] * @map_data.point_size[1]) + (@map_data.margins[1] * 2) - MAP_SIZE[1] + end_ox = @sprites[:cursor].x - MAP_SIZE[0] / 2 + end_ox = 0 if end_ox < 0 + end_ox = max_ox if end_ox > max_ox + end_oy = @sprites[:cursor].y - MAP_SIZE[1] / 2 + end_oy = 0 if end_oy < 0 + end_oy = max_oy if end_oy > max_oy + # Animate the zoom in + animate_zoom(2, 1, start_ox, end_ox, start_oy, end_oy) + @sprites[:details].visible = false + @sprites[:details_overlay].visible = false + @sprites[:input_helpers_overlay].visible = true + refresh_input_helpers + end + + def animate_zoom(start_zoom, end_zoom, start_ox, end_ox, start_oy, end_oy) + timer_start = System.uptime + loop do + Graphics.update + update_visuals + now = System.uptime + @map_viewport.ox = lerp(start_ox, end_ox, ZOOM_TIME, timer_start, now) + @map_viewport.oy = lerp(start_oy, end_oy, ZOOM_TIME, timer_start, now) + @sprites[:map].zoom_x = lerp(start_zoom, end_zoom, ZOOM_TIME, timer_start, now) + @sprites[:map].zoom_y = @sprites[:map].zoom_x + @sprites[:map_overlay].zoom_x = @sprites[:map].zoom_x + @sprites[:map_overlay].zoom_y = @sprites[:map].zoom_y + update_pin_positions_while_zooming + break if timer_start + ZOOM_TIME <= now + end + end + + def update_pin_positions_while_zooming + @sprites[:cursor].x, @sprites[:cursor].y = point_to_screen(@cursor_pos[:x], @cursor_pos[:y]) + # Player, roamers, markings + @pins_pos.each_pair do |key, pos| + @sprites[key].x, @sprites[key].y = point_to_screen(*pos) + end + end + + #----------------------------------------------------------------------------- + + def can_mark? + return Settings::ENABLE_TOWN_MAP_MARKING && @mode == :normal && !can_zoom? + end + + # Returns the [x, y, [markings]] for the given point. Creates and returns an + # empty set of markings for that point if there isn't an existing one. + def markings_of_point(this_x, this_y) + ret = [@cursor_pos[:x], @cursor_pos[:y], [0] * MARKINGS_COUNT] + $PokemonGlobal.townMapMarkings[@region].each do |marking| + next if !marking || marking[0] != @cursor_pos[:x] || marking[1] != @cursor_pos[:y] + ret = marking + end + return ret + end + + def apply_new_markings(new_markings) + if new_markings[2].all?(0) + $PokemonGlobal.townMapMarkings[@region].delete_if { |marking| marking[0] == new_markings[0] && marking[1] == new_markings[1] } + former_key = "mark_#{new_markings[0]}_#{new_markings[1]}".to_sym + @sprites.each_pair { |key, sprite| sprite.dispose if key == former_key } + @sprites.delete(former_key) + @pins_pos.delete(former_key) + else + found_existing = false + $PokemonGlobal.townMapMarkings[@region].each_with_index do |marking, i| + next if marking[0] != new_markings[0] || marking[1] != new_markings[1] + found_existing = true + $PokemonGlobal.townMapMarkings[@region][i] = new_markings + break + end + if !found_existing + $PokemonGlobal.townMapMarkings[@region].push(new_markings) + key = "mark_#{new_markings[0]}_#{new_markings[1]}".to_sym + create_pin(key, new_markings[0], new_markings[1], graphics_folder + themed_filename("icon_marking"), 50) + end + end + end + + #----------------------------------------------------------------------------- + + def has_fly_points? + ret = false + each_fly_point do |point| + if !$DEBUG || !Input.press?(Input::CTRL) + next if point[:switch] && (point[:switch] <= 0 || !$game_switches[point[:switch]]) + next if !$PokemonGlobal.visitedMaps[point[:fly_spot][0]] + end + ret = true + break + end + return ret + end + + def start_fly_mode + return if @mode == :fly || @sub_mode == :fly + @sub_mode = :fly + generate_fly_icons + refresh_input_helpers + end + + def end_fly_mode + @sub_mode = :none + clear_fly_icons + refresh_input_helpers + end + + def generate_fly_icons + @fly_coords = [] + counter = 0 + each_fly_point do |point| + if !$DEBUG || !Input.press?(Input::CTRL) + next if point[:switch] && (point[:switch] <= 0 || !$game_switches[point[:switch]]) + next if !$PokemonGlobal.visitedMaps[point[:fly_spot][0]] + end + @fly_coords.push(point[:position]) + next if point[:hide_fly_icon] + counter += 1 + sprite_key = "fly_icon_#{counter}".to_sym + @sprites[sprite_key] = AnimatedSprite.create( + graphics_folder + "icon_fly", 2, 10, @map_viewport # 2 frames, 10/20 seconds per frame + ) + @sprites[sprite_key].x, @sprites[sprite_key].y = point_to_screen(*point[:position]) + if point[:fly_icon_offset] + @sprites[sprite_key].x += point[:fly_icon_offset][0] + @sprites[sprite_key].y += point[:fly_icon_offset][1] + end + @sprites[sprite_key].z = 900 + @sprites[sprite_key].ox = @sprites[sprite_key].bitmap.height / 2 + @sprites[sprite_key].oy = @sprites[sprite_key].bitmap.height / 2 + @sprites[sprite_key].play + end + end + + def clear_fly_icons + @sprites.each_pair do |key, sprite| + next if !key.to_s.include?("fly_icon_") + sprite.dispose + @sprites[key] = nil + end + end + + #----------------------------------------------------------------------------- + + def refresh + super + refresh_map_overlay + refresh_on_cursor_move + end + + def refresh_overlay + super + refresh_input_helpers + refresh_map_name + end + + def refresh_map_overlay + @sprites[:map_overlay].bitmap.clear + Settings::REGION_MAP_EXTRAS.each do |graphic| + next if graphic[0] != @region + next if !graphic[5] && @mode == :wall_map + return if graphic[1] <= 0 || !$game_switches[graphic[1]] + draw_image(graphics_folder + graphic[4], + graphic[2] * @map_data.point_size[0], graphic[3] * @map_data.point_size[1], overlay: :map_overlay) + end + end + + def refresh_on_cursor_move + refresh_map_name + refresh_details_panel + end + + def refresh_map_name + @sprites[:map_name_overlay].bitmap.clear + point_data = get_point_data + if point_data && point_data[:real_name] + name = pbGetMessageFromHash(MessageTypes::REGION_LOCATION_NAMES, point_data[:real_name]) + name = name.gsub(/\\PN/, $player.name) + name = name.gsub(/\\v\[(\d+)\]/) { |num| $game_variables[$~[1].to_i].to_s } + theme = (@mode == :wall_map) ? :black : :default + draw_text(name, @sprites[:map_name_overlay].width / 2, 6, align: :center, theme: theme, overlay: :map_name_overlay) + end + end + + def refresh_input_helpers + @sprites[:input_helpers_overlay].bitmap.clear + input_spacing = 24 + icon_text_spacing = 6 + input_x = 4 + action_icon_y = 4 + action_text_y = 12 + draw_input = lambda do |number, action_text| + draw_image(@bitmaps[:input_icons], input_x, action_icon_y, + number * @bitmaps[:input_icons].height, 0, + @bitmaps[:input_icons].height, @bitmaps[:input_icons].height, + overlay: :input_helpers_overlay) + draw_text(action_text, input_x + @bitmaps[:input_icons].height + icon_text_spacing, action_text_y, overlay: :input_helpers_overlay) + input_x += @bitmaps[:input_icons].height + icon_text_spacing + input_x += @sprites[:input_helpers_overlay].bitmap.text_size(action_text).width + input_x += input_spacing + end + if @mode == :fly || @sub_mode == :fly + draw_input.call(0, _INTL("Fly to here")) + return + end + if can_zoom? + draw_input.call(0, _INTL("Zoom")) + elsif can_mark? + draw_input.call(0, _INTL("Mark")) + end + if can_access_screen_menu? + options = screen_menu_options + if options.length == 2 && options.include?(:fly_mode) # Also contains :cancel + draw_input.call(2, _INTL("Fly")) + else + draw_input.call(2, _INTL("Menu")) + end + end + end + + def refresh_details_panel(skip_if_not_visible = true) + return if skip_if_not_visible && !@sprites[:details]&.visible + @sprites[:details_overlay].bitmap.clear + draw_markings_on_details_panel + draw_point_details_on_details_panel + end + + def draw_markings_on_details_panel + return if !Settings::ENABLE_TOWN_MAP_MARKING + MARKINGS_COUNT.times do |i| + draw_image(@bitmaps[:details_marking_bg], + 38 + (168 * (i % 2)) - (@bitmaps[:details_marking_bg].width / 2), + 44 + (52 * (i / 2)) - (@bitmaps[:details_marking_bg].height / 2), + overlay: :details_overlay) + end + $PokemonGlobal.townMapMarkings[@region].each do |marking| + next if !marking || marking[0] != @cursor_pos[:x] || marking[1] != @cursor_pos[:y] + next if !marking[2] + marking[2].each_with_index do |mark, i| + next if mark == 0 + draw_image(@bitmaps[:map_markings], + 38 + (168 * (i % 2)) - (@bitmaps[:map_markings].height / 2), + 44 + (52 * (i / 2)) - (@bitmaps[:map_markings].height / 2), + @bitmaps[:map_markings].height * (mark - 1), 0, + @bitmaps[:map_markings].height, @bitmaps[:map_markings].height, + overlay: :details_overlay) + end + break + end + end + + def draw_point_details_on_details_panel + point_data = get_point_data + return if !point_data + if point_data[:image] + draw_image(graphics_folder + point_data[:image], 74, 22, overlay: :details_overlay) + end + if point_data[:real_description] + description = pbGetMessageFromHash(MessageTypes::REGION_LOCATION_DESCRIPTIONS, point_data[:real_description]) + description = description.gsub(/\\PN/, $player.name) + description = description.gsub(/\\v\[(\d+)\]/) { |num| $game_variables[$~[1].to_i].to_s } + draw_formatted_text(description, 18, 144, 210, overlay: :details_overlay) + end + end + + def refresh_markings_panel + @sprites[:marking_overlay].bitmap.clear + draw_point_name_on_markings_panel + draw_marking_slots_on_markings_panel + draw_markings_lineup_on_markings_panel + end + + def draw_point_name_on_markings_panel + point_data = get_point_data + if point_data && point_data[:real_name] + name = pbGetMessageFromHash(MessageTypes::REGION_LOCATION_NAMES, point_data[:real_name]) + name = name.gsub(/\\PN/, $player.name) + name = name.gsub(/\\v\[(\d+)\]/) { |num| $game_variables[$~[1].to_i].to_s } + draw_text(name, @sprites[:marking_overlay].width / 2, 114, align: :center, theme: :black, overlay: :marking_overlay) + end + end + + def draw_marking_slots_on_markings_panel + # Draw current markings + middle_y = 168 + MARKINGS_COUNT.times do |i| + middle_x = (Graphics.width / 2) + ((@bitmaps[:details_marking_bg].width + MARKING_SPACING) * (i - ((MARKINGS_COUNT.to_f - 1) / 2))) + draw_image(@bitmaps[:details_marking_bg], + middle_x - (@bitmaps[:details_marking_bg].width / 2), + middle_y - (@bitmaps[:details_marking_bg].height / 2), + overlay: :marking_overlay) + if @markings[2][i] > 0 + draw_image(@bitmaps[:map_markings], + middle_x - (@bitmaps[:map_markings].height / 2), + middle_y - (@bitmaps[:map_markings].height / 2), + @bitmaps[:map_markings].height * (@markings[2][i] - 1), 0, + @bitmaps[:map_markings].height, @bitmaps[:map_markings].height, + overlay: :marking_overlay) + end + end + end + + def draw_markings_lineup_on_markings_panel + # Draw all markings to choose from + middle_y = 292 + icons_count = 1 + (@bitmaps[:map_markings].width / @bitmaps[:map_markings].height) + icons_count.times do |i| + middle_x = (Graphics.width / 2) + ((@bitmaps[:details_marking_bg].width + MARKING_SPACING) * (i - ((icons_count.to_f - 1) / 2))) + draw_image(@bitmaps[:details_marking_bg], + middle_x - (@bitmaps[:details_marking_bg].width / 2), + middle_y - (@bitmaps[:details_marking_bg].height / 2), + overlay: :marking_overlay) + next if i == 0 + draw_image(@bitmaps[:map_markings], + middle_x - (@bitmaps[:map_markings].height / 2), + middle_y - (@bitmaps[:map_markings].height / 2), + @bitmaps[:map_markings].height * (i - 1), 0, + @bitmaps[:map_markings].height, @bitmaps[:map_markings].height, + overlay: :marking_overlay) + end + end + + def refresh_markings_cursor + if @marking_new_index >= 0 + spaces_count = 1 + (@bitmaps[:map_markings].width / @bitmaps[:map_markings].height) + space_index = @marking_new_index + else + spaces_count = MARKINGS_COUNT + space_index = @marking_index + end + middle_x = (Graphics.width / 2) + ((@bitmaps[:details_marking_bg].width + MARKING_SPACING) * (space_index - ((spaces_count.to_f - 1) / 2))) + @sprites[:marking_cursor].x = middle_x + @sprites[:marking_cursor].y = (@marking_new_index >= 0) ? 292 : 168 + end + + #----------------------------------------------------------------------------- + + def update_input + return if cursor_moving? && update_move_cursor + # Check for cursor movement + update_direction_input + if cursor_moving? + @cursor_timer_start ||= System.uptime + return + end + # Check for interaction + if Input.trigger?(Input::USE) + return update_interaction(Input::USE) + elsif Input.trigger?(Input::BACK) + return update_interaction(Input::BACK) + elsif Input.trigger?(Input::ACTION) + return update_interaction(Input::ACTION) + end + return nil + end + + # Moves the cursor after a direction input has said it should move. Returns + # whether the cursor is still moving. + def update_move_cursor + now = System.uptime + if @cursor_offset[:x] && @cursor_offset[:x] != 0 + point_x = lerp(@cursor_pos[:x] - @cursor_offset[:x], @cursor_pos[:x], + CURSOR_MOVE_TIME * @cursor_offset[:x].abs * @sprites[:map].zoom_x, + @cursor_timer_start, now) + @sprites[:cursor].x = point_x_to_screen_x(point_x) + @cursor_offset[:x] = 0 if @cursor_timer_start + (CURSOR_MOVE_TIME * @cursor_offset[:x].abs * @sprites[:map].zoom_x) <= now + end + if @cursor_offset[:y] && @cursor_offset[:y] != 0 + point_y = lerp(@cursor_pos[:y] - @cursor_offset[:y], @cursor_pos[:y], + CURSOR_MOVE_TIME * @cursor_offset[:y].abs * @sprites[:map].zoom_y, + @cursor_timer_start, now) + @sprites[:cursor].y = point_y_to_screen_y(point_y) + @cursor_offset[:y] = 0 if @cursor_timer_start + (CURSOR_MOVE_TIME * @cursor_offset[:y].abs * @sprites[:map].zoom_y) <= now + end + update_map_offset + return true if cursor_moving? + @cursor_timer_start = nil + return false + end + + def update_direction_input + x_offset = 0 + y_offset = 0 + x_offset = -1 if Input.press?(Input::LEFT) + x_offset = 1 if Input.press?(Input::RIGHT) + y_offset = -1 if Input.press?(Input::UP) + y_offset = 1 if Input.press?(Input::DOWN) + return if x_offset == 0 && y_offset == 0 + x_offset = 0 if x_offset != 0 && !can_move_to_point?(@cursor_pos[:x] + x_offset, @cursor_pos[:y]) + y_offset = 0 if y_offset != 0 && !can_move_to_point?(@cursor_pos[:x], @cursor_pos[:y] + y_offset) + return if x_offset == 0 && y_offset == 0 + @cursor_offset[:x] = x_offset + @cursor_offset[:y] = y_offset + set_cursor_pos(@cursor_pos[:x] + @cursor_offset[:x], @cursor_pos[:y] + @cursor_offset[:y]) + end + + def update_interaction(input) + case input + when Input::USE + if @mode == :fly || @sub_mode == :fly + if @fly_coords.include?([@cursor_pos[:x], @cursor_pos[:y]]) + pbPlayDecisionSE + return :use_fly + end + elsif can_zoom? + pbPlayDecisionSE + zoom_in + elsif can_mark? + pbPlayDecisionSE + return :marking + end + when Input::ACTION + if can_access_screen_menu? + pbPlayDecisionSE + options = screen_menu_options + return :fly_mode if options.length == 2 && options.include?(:fly_mode) # Also contains :cancel + return :screen_menu + end + when Input::BACK + if @sub_mode == :fly + pbPlayCancelSE + end_fly_mode + elsif zoomed? + pbPlayCancelSE + zoom_out + else + pbPlayCloseMenuSE + return :quit + end + end + return nil + end + + # Ensures the cursor remains in the display area by shifting the map sprite's + # viewport's ox/oy. + def update_map_offset + changed = false + if zoomed? + if @map_viewport.ox != @sprites[:cursor].x - ZOOM_CURSOR_POSITION[0] + @map_viewport.ox = @sprites[:cursor].x - ZOOM_CURSOR_POSITION[0] + changed = true + end + if @map_viewport.oy != @sprites[:cursor].y - ZOOM_CURSOR_POSITION[1] + @map_viewport.oy = @sprites[:cursor].y - ZOOM_CURSOR_POSITION[1] + changed = true + end + else + if @sprites[:cursor].x - (@map_data.point_size[0] / 2) < @map_viewport.ox + MAP_SCROLL_PADDING[0] + @map_viewport.ox = @sprites[:cursor].x - (@map_data.point_size[0] / 2) - MAP_SCROLL_PADDING[0] + changed = true + elsif @sprites[:cursor].x + (@map_data.point_size[0] / 2) > @map_viewport.ox + MAP_SIZE[0] - MAP_SCROLL_PADDING[0] - @map_data.margins[0] + @map_viewport.ox = @sprites[:cursor].x + (@map_data.point_size[0] / 2) - MAP_SIZE[0] + MAP_SCROLL_PADDING[0] + @map_data.margins[0] + changed = true + end + if @sprites[:cursor].y - (@map_data.point_size[1] / 2) < @map_viewport.oy + MAP_SCROLL_PADDING[1] + @map_viewport.oy = @sprites[:cursor].y - (@map_data.point_size[1] / 2) - MAP_SCROLL_PADDING[1] + changed = true + elsif @sprites[:cursor].y + (@map_data.point_size[1] / 2) > @map_viewport.oy + MAP_SIZE[1] - MAP_SCROLL_PADDING[1] - @map_data.margins[1] + @map_viewport.oy = @sprites[:cursor].y + (@map_data.point_size[1] / 2) - MAP_SIZE[1] + MAP_SCROLL_PADDING[1] + @map_data.margins[1] + changed = true + end + end + clamp_map_position if changed + end + + #----------------------------------------------------------------------------- + + def update_input_marking + # Check for movement to a new marking + if Input.repeat?(Input::LEFT) + if @marking_new_index >= 0 + @marking_new_index -= 1 + icons_count = 1 + (@bitmaps[:map_markings].width / @bitmaps[:map_markings].height) + @marking_new_index += icons_count if @marking_new_index < 0 + else + @marking_index -= 1 + @marking_index += MARKINGS_COUNT if @marking_index < 0 + end + elsif Input.repeat?(Input::RIGHT) + if @marking_new_index >= 0 + @marking_new_index += 1 + icons_count = 1 + (@bitmaps[:map_markings].width / @bitmaps[:map_markings].height) + @marking_new_index -= icons_count if @marking_new_index >= icons_count + else + @marking_index += 1 + @marking_index -= MARKINGS_COUNT if @marking_index >= MARKINGS_COUNT + end + end + # Check for up/down movement between marking rows (doesn't apply changes) + if Input.trigger?(Input::UP) && @marking_new_index >= 0 + pbPlayCursorSE + @marking_new_index = -1 + refresh_markings_cursor + elsif Input.trigger?(Input::DOWN) && @marking_new_index < 0 + pbPlayCursorSE + @marking_new_index = @markings[2][@marking_index] + refresh_markings_cursor + end + # Check for interaction + if Input.trigger?(Input::USE) + pbPlayDecisionSE + if @marking_new_index >= 0 # Chosen a new marking + if @markings[2][@marking_index] != @marking_new_index + @markings[2][@marking_index] = @marking_new_index + refresh_markings_panel + end + @marking_new_index = -1 + refresh_markings_cursor + else # Start to choose a new marking + @marking_new_index = @markings[2][@marking_index] + refresh_markings_cursor + end + elsif Input.trigger?(Input::BACK) + if @marking_new_index >= 0 # Cancel choosing a new marking + pbPlayCancelSE + @marking_new_index = -1 + refresh_markings_cursor + else # Close the markings panel + pbPlayCloseMenuSE + return true + end + end + return false + end + + def navigate_markings + # Setup + @sprites[:marking_bg].visible = true + @sprites[:marking_overlay].visible = true + @sprites[:marking_cursor].visible = true + @markings = markings_of_point(@cursor_pos[:x], @cursor_pos[:y]) + @marking_index = 0 + @marking_new_index = -1 + refresh_markings_panel + refresh_markings_cursor + # Navigate loop + loop do + Graphics.update + Input.update + update_visuals + old_marking_index = @marking_index + old_marking_new_index = @marking_new_index + break if update_input_marking + if @marking_index != old_marking_index || + (@marking_new_index != old_marking_new_index && (@marking_new_index == -1) == (old_marking_new_index == -1)) + pbPlayCursorSE + refresh_markings_cursor + end + end + # Clean up + @sprites[:marking_bg].visible = false + @sprites[:marking_overlay].visible = false + @sprites[:marking_cursor].visible = false + apply_new_markings(@markings) + @marking_index = nil + @marking_new_index = nil + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::TownMap < UI::BaseScreen + SCREEN_ID = :town_map_screen + + # mode is one of: + # :normal + # :wall_map - Doesn't show unlockable content, can't change region, can't fly + # :fly - Can't zoom or change region, choose a point to fly to + def initialize(this_region = -1, mode: :normal) + @region = this_region + if @region < 0 + this_map_data = $game_map.metadata&.town_map_position + @region = (this_map_data) ? this_map_data[0] : 0 + end + @mode = mode + super() + end + + def initialize_visuals + @visuals = UI::TownMapVisuals.new(@region, @mode) + end + + #----------------------------------------------------------------------------- + + def visited_regions + return @visuals.visited_regions + end + + def region + return @visuals.region + end + + def set_region(new_region) + @visuals.set_region(new_region) + end + + def has_fly_points? + return @visuals.has_fly_points? + end + + def start_fly_mode + @visuals.start_fly_mode + end + + def set_fly_destination + point_data = @visuals.get_point_data + if !point_data || !point_data[:fly_spot] + raise _INTL("No data for this point defined in town_map.txt somehow.") + end + if @mode != :fly + map_name = pbGetMapNameFromId(point_data[:fly_spot][0]) + return false if !show_confirm_message(_INTL("Would you like to use Fly to go to {1}?", map_name)) + end + @result = point_data[:fly_spot] + return true + end +end + +#=============================================================================== +# +#=============================================================================== +# Shows a choice menu using the MenuHandlers options below. +UIActionHandlers.add(UI::TownMap::SCREEN_ID, :screen_menu, { + :menu => :town_map_menu, + :menu_message => proc { |screen| _INTL("Choose an option.") } +}) + +UIActionHandlers.add(UI::TownMap::SCREEN_ID, :fly_mode, { + :effect => proc { |screen| + screen.start_fly_mode + } +}) + +UIActionHandlers.add(UI::TownMap::SCREEN_ID, :use_fly, { + :returns_value => true, + :effect => proc { |screen| + next (screen.set_fly_destination) ? :quit : :none + } +}) + +UIActionHandlers.add(UI::TownMap::SCREEN_ID, :change_region, { + :effect => proc { |screen| + commands = {} + index = 0 + screen.visited_regions.each do |region| + region_data = GameData::TownMap.get(region) + index = commands.length if region_data.id == screen.region + commands[region] = region_data.name + end + commands[:cancel] = _INTL("Cancel") + region = screen.show_choice_message(_INTL("Which region's map do you want to view?"), commands, screen.region) + screen.set_region(region) if region && region != :cancel + } +}) + +UIActionHandlers.add(UI::TownMap::SCREEN_ID, :marking, { + :effect => proc { |screen| + screen.visuals.navigate_markings + screen.refresh + } +}) + +#=============================================================================== +# Menu options for choice menus that exist in the party screen. +#=============================================================================== +MenuHandlers.add(:town_map_menu, :fly_mode, { + "name" => _INTL("Fly"), + "order" => 10, + "condition" => proc { |screen| + this_map_data = $game_map.metadata&.town_map_position + current_region = (this_map_data) ? this_map_data[0] : 0 + next Settings::CAN_FLY_FROM_TOWN_MAP && pbCanFly? && screen.mode == :normal && + current_region == screen.region && screen.has_fly_points? + } +}) + +MenuHandlers.add(:town_map_menu, :change_region, { + "name" => _INTL("Change region"), + "order" => 20, + "condition" => proc { |screen| + next screen.mode == :normal && screen.visited_regions.length >= 2 + } +}) + +MenuHandlers.add(:town_map_menu, :cancel, { + "name" => _INTL("Cancel"), + "order" => 9999 +}) + +#=============================================================================== +# +#=============================================================================== +def pbShowMap(region = -1, wall_map = true) + mode = (wall_map) ? :wall_map : :normal + pbFadeOutIn do + town_map_screen = UI::TownMap.new(region, mode: mode) + town_map_screen.main + $game_temp.fly_destination = town_map_screen.result if town_map_screen.result + end +end diff --git a/Data/Scripts/016b_UI redesign/012_UI_TrainerCard.rb b/Data/Scripts/016b_UI redesign/012_UI_TrainerCard.rb new file mode 100644 index 000000000..2dd350274 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/012_UI_TrainerCard.rb @@ -0,0 +1,110 @@ +#=============================================================================== +# +#=============================================================================== +class UI::TrainerCardVisuals < UI::BaseVisuals + GRAPHICS_FOLDER = "Trainer Card/" # Subfolder in Graphics/UI + BADGE_SIZE = [32, 32] # [width, height] of a Gym Badge + BADGE_SPACING = 16 # Size of gap between adjacent Gym Badges + FIRST_BADGE_X = 72 # Left edge of the first Gym Badge + FIRST_BADGE_Y = 310 # Top edge of the first Gym Badge + BADGE_COUNT = 8 # Number of Gym Badges to show + + def initialize_sprites + # Trainer card + add_icon_sprite(:card, 0, 0, graphics_folder + gendered_filename(_INTL("trainer_card"))) + # Player sprite (coordinates are the bottom middle of the sprite) + add_icon_sprite(:player, 400, 240, GameData::TrainerType.player_front_sprite_filename($player.trainer_type)) + if !@sprites[:player].bitmap + raise _INTL("No trainer front sprite exists for the player character, expected a file at {1}.", + "Graphics/Trainers/" + $player.trainer_type.to_s + ".png") + end + @sprites[:player].x -= @sprites[:player].bitmap.width / 2 + @sprites[:player].y -= @sprites[:player].bitmap.height + @sprites[:player].z = 10 + end + + #----------------------------------------------------------------------------- + + def refresh_overlay + super + draw_ID + draw_stats + draw_badges + end + + # Draws the player's name and ID number onto the overlay. + def draw_ID + draw_text(_INTL("Name"), 34, 70) + draw_text($player.name, 302, 70, align: :right) + draw_text(_INTL("ID No."), 332, 70) + draw_text(sprintf("%05d", $player.public_ID), 468, 70, align: :right) + end + + # Draws the player's money, Pokédex numbers, play time and start date onto the + # overlay. + def draw_stats + # Create money text + money_text = _INTL("${1}", $player.money.to_s_formatted) + # Create Pokédex stats text + pokedex_text = sprintf("%d/%d", $player.pokedex.owned_count, $player.pokedex.seen_count) + # Create play time text + total_secs = $stats.play_time.to_i + hour = (total_secs / 60) / 60 + min = (total_secs / 60) % 60 + play_time_text = (hour > 0) ? _INTL("{1}h {2}m", hour, min) : _INTL("{1}m", min) + # Create start date text + $PokemonGlobal.startTime = Time.now if !$PokemonGlobal.startTime + if System.user_language[3..4] == "US" + start_date_text = _INTL("{1} {2}, {3}", + pbGetAbbrevMonthName($PokemonGlobal.startTime.mon), + $PokemonGlobal.startTime.day, + $PokemonGlobal.startTime.year) + else + start_date_text = _INTL("{1} {2}, {3}", + $PokemonGlobal.startTime.day, + pbGetAbbrevMonthName($PokemonGlobal.startTime.mon), + $PokemonGlobal.startTime.year) + end + # Draw text + draw_text(_INTL("Money"), 34, 118) + draw_text(money_text, 302, 118, align: :right) + draw_text(_INTL("Pokédex"), 34, 166) + draw_text(pokedex_text, 302, 166, align: :right) + draw_text(_INTL("Time"), 34, 214) + draw_text(play_time_text, 302, 214, align: :right) + draw_text(_INTL("Started"), 34, 262) + draw_text(start_date_text, 302, 262, align: :right) + end + + # Draws the player's owned Gym Badges onto the overlay. + def draw_badges + x = FIRST_BADGE_X + region = pbGetCurrentRegion(0) # Get the current region + BADGE_COUNT.times do |i| + if $player.badges[i + (region * BADGE_COUNT)] + draw_image(graphics_folder + "icon_badges", x, FIRST_BADGE_Y, + i * BADGE_SIZE[0], region * BADGE_SIZE[1], *BADGE_SIZE) + end + x += BADGE_SIZE[0] + BADGE_SPACING + end + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::TrainerCard < UI::BaseScreen + def initialize_visuals + @visuals = UI::TrainerCardVisuals.new + end + + def start_screen + super + pbSEPlay("GUI trainer card open") + end + + def end_screen + pbPlayCloseMenuSE + super + end +end diff --git a/Data/Scripts/016b_UI redesign/013_UI_Load.rb b/Data/Scripts/016b_UI redesign/013_UI_Load.rb new file mode 100644 index 000000000..e7c9a9234 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/013_UI_Load.rb @@ -0,0 +1,769 @@ +module UI::LoadSaveDataMixin + def load_all_save_data + @save_data = [] + files = SaveData.all_save_files + files.each do |file| + this_save_data = load_save_file(SaveData::DIRECTORY, file) + @save_data.push([file, this_save_data]) + end + end + + def load_save_file(directory, filename) + ret = SaveData.read_from_file(directory + filename) + if !SaveData.valid?(ret) + if File.file?(directory + filename + ".bak") + show_message(_INTL("The save file is corrupt. A backup will be loaded.")) + ret = load_save_file(directory, filename + ".bak") + end + if prompt_corrupted_save_deletion(filename) + delete_save_data(filename) + $PokemonSystem = PokemonSystem.new if self.is_a?(UI::Load) + else + exit + end + end + return ret + end + + def prompt_corrupted_save_deletion(filename) + show_message(_INTL("The save file is corrupt, or is incompatible with this game.") + "\1") + pbPlayDecisionSE + return show_confirm_serious_message(_INTL("Do you want to delete the save file and start anew?")) + end + + def delete_save_data(filename) + begin + SaveData.delete_file(filename) + yield if block_given? + show_message(_INTL("The save file was deleted.")) + rescue SystemCallError + show_message(_INTL("The save file could not be deleted.")) + end + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::LoadPanel < UI::SpriteContainer + attr_writer :label + + GRAPHICS_FOLDER = "Load/" + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(88, 88, 80), Color.new(168, 184, 184)] # Base and shadow colour + } + PANEL_WIDTH = 392 + PANEL_HEIGHT = 56 + + def initialize(label, viewport) + @label = label + @selected = nil + super(viewport) + end + + def initialize_sprites + initialize_panel_background + initialize_overlay + end + + def initialize_panel_background + @sprites[:background] = ChangelingSprite.new(0, 0, @viewport) + panel_srcs.each_pair do |key, values| + @sprites[:background].add_bitmap(key, values) + end + @sprites[:background].change_bitmap(:default) + record_values(:background) + end + + def initialize_overlay + add_overlay(:overlay, @sprites[:background].src_rect.width, @sprites[:background].src_rect.height) + @sprites[:overlay].z = 10 + record_values(:overlay) + end + + #----------------------------------------------------------------------------- + + def width + return self.class::PANEL_WIDTH + end + + def height + return self.class::PANEL_HEIGHT + end + + def panel_srcs + return { + :default => [graphics_folder + "panels", 0, UI::LoadContinuePanel::PANEL_HEIGHT * 2, + self.class::PANEL_WIDTH, self.class::PANEL_HEIGHT], + :selected => [graphics_folder + "panels", 0, (UI::LoadContinuePanel::PANEL_HEIGHT * 2) + self.class::PANEL_HEIGHT, + self.class::PANEL_WIDTH, self.class::PANEL_HEIGHT] + } + end + + def selected=(value) + return if @selected == value + @selected = value + @sprites[:background].change_bitmap((@selected) ? :selected : :default) + refresh + end + + #----------------------------------------------------------------------------- + + def refresh + super + draw_text(@label, 18, 18) + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::LoadContinuePanel < UI::LoadPanel + attr_reader :sprites + + GRAPHICS_FOLDER = "Load/" + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(88, 88, 80), Color.new(168, 184, 184)], # Base and shadow colour + :male => [Color.new(0, 112, 248), Color.new(120, 184, 232)], + :female => [Color.new(232, 32, 16), Color.new(248, 168, 184)] + } + PANEL_WIDTH = 392 + PANEL_HEIGHT = 248 + + def initialize(label, save_data, slot_index, total_slots, viewport) + @save_data = save_data + @slot_index = slot_index + @total_slots = total_slots + super(label, viewport) + refresh + end + + def initialize_sprites + super + initialize_player_sprite + initialize_pokemon_icons + initialize_arrow_sprites + end + + 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) + if !@sprites[:player].bitmap + raise _INTL("Player 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 + + def initialize_pokemon_icons + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon_#{i}"] = PokemonIconSprite.new(@save_data[:player].party[i], @viewport) + @sprites["pokemon_#{i}"].x, @sprites["pokemon_#{i}"].y = pokemon_coords(i) + @sprites["pokemon_#{i}"].z = 1 + @sprites["pokemon_#{i}"].setOffset + record_values("pokemon_#{i}") + end + end + + def initialize_arrow_sprites + @sprites[:left_arrow] = AnimatedSprite.new(UI_FOLDER + "left_arrow", 8, 40, 28, 2, @viewport) + @sprites[:left_arrow].x = -16 + @sprites[:left_arrow].y = (height / 2) - 14 + @sprites[:left_arrow].z = 20 + @sprites[:left_arrow].play + record_values(:left_arrow) + @sprites[:right_arrow] = AnimatedSprite.new(UI_FOLDER + "right_arrow", 8, 40, 28, 2, @viewport) + @sprites[:right_arrow].x = width - 24 + @sprites[:right_arrow].y = (height / 2) - 14 + @sprites[:right_arrow].z = 20 + @sprites[:right_arrow].play + record_values(:right_arrow) + end + + #----------------------------------------------------------------------------- + + def panel_srcs + return { + :default => [graphics_folder + "panels", 0, 0, + self.class::PANEL_WIDTH, self.class::PANEL_HEIGHT], + :selected => [graphics_folder + "panels", 0, self.class::PANEL_HEIGHT, + self.class::PANEL_WIDTH, self.class::PANEL_HEIGHT] + } + end + + def pokemon_coords(index) + return 276 + (66 * (index % 2)), + 74 + (50 * (index / 2)) + end + + def visible=(value) + super + @sprites[:left_arrow].visible = (@selected && @total_slots >= 2) + @sprites[:right_arrow].visible = (@selected && @total_slots >= 2) + end + + def selected=(value) + @sprites[:left_arrow].visible = (value && @total_slots >= 2) + @sprites[:right_arrow].visible = (value && @total_slots >= 2) + super + end + + def set_data(save_data, slot_index, total_slots) + @save_data = save_data + @slot_index = slot_index + @total_slots = total_slots + @sprites[:left_arrow].visible = (@selected && total_slots >= 2) + @sprites[:right_arrow].visible = (@selected && total_slots >= 2) + set_player_sprite + refresh + end + + def set_player_sprite + meta = GameData::PlayerMetadata.get(@save_data[:player].character_ID) + filename = pbGetPlayerCharset(meta.walk_charset, @save_data[:player], true) + @sprites[:player].charset = filename + if !@sprites[:player].bitmap + raise _INTL("Player character {1}'s walking charset was not found (filename: \"{2}\").", + @save_data[:player].character_ID, filename) + end + end + + #----------------------------------------------------------------------------- + + def refresh + super + refresh_pokemon + draw_slot_number + draw_save_file_text + end + + def refresh_pokemon + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon_#{i}"].pokemon = @save_data[:player].party[i] + end + end + + def draw_slot_number + return if @total_slots <= 1 + draw_text(sprintf("%d/%d", @slot_index + 1, @total_slots), PANEL_WIDTH - 18, 18, align: :right) + end + + def draw_save_file_text + gender_theme = :default + if @save_data[:player].male? + gender_theme = :male + elsif @save_data[:player].female? + gender_theme = :female + end + # Player's name + draw_text(@save_data[:player].name, 78, 66, theme: gender_theme) + # Location + map_id = @save_data[:map_factory].map.map_id + map_name = pbGetMapNameFromId(map_id) + map_name = map_name.gsub(/\\PN/, @save_data[:player].name) + map_name = map_name.gsub(/\\v\[(\d+)\]/) { |num| @save_data[:variables][$~[1].to_i].to_s } + draw_text(map_name, 18, 114, theme: gender_theme) + # Gym Badges + draw_text(_INTL("Badges:"), 18, 146) + draw_text(@save_data[:player].badge_count.to_s, 156, 146, theme: gender_theme) + # Pokédex owned count + draw_text(_INTL("Pokédex:"), 18, 178) + draw_text(@save_data[:player].pokedex.seen_count.to_s, 156, 178, theme: gender_theme) + # Time played + draw_text(_INTL("Time played:"), 18, 210) + play_time = @save_data[:stats]&.play_time.to_i || 0 + hour = (play_time / 60) / 60 + min = (play_time / 60) % 60 + play_time_text = (hour > 0) ? _INTL("{1}h {2}m", hour, min) : _INTL("{1}m", min) + draw_text(play_time_text, 156, 210, theme: gender_theme) + save_time = @save_data[:stats]&.real_time_saved + if save_time + save_time = Time.at(save_time) + if System.user_language[3..4] == "US" # If the user is in the United States + save_text = save_time.strftime("%-m/&-d/%Y") + else + save_text = save_time.strftime("%-d/%-m/%Y") + end + draw_text(save_text, PANEL_WIDTH - 18, 210, align: :right, theme: gender_theme) + end + end + + def refresh_existing_pokemon + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon_#{i}"].pokemon = @save_data[:player].party[i] + end + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::LoadVisuals < UI::BaseVisuals + attr_reader :slot_index + attr_reader :save_data + + GRAPHICS_FOLDER = "Load/" # Subfolder in Graphics/UI + PANEL_SPACING_EDGE = 4 + PANEL_SPACING = PANEL_SPACING_EDGE * 2 + + # save_data here is an array of [save filename, save data hash]. It has been + # compacted. + # commands is {:continue => _INTL("Continue"), :new_game => _INTL("New Game")}, + # etc. + def initialize(commands, save_data, default_slot_index = 0) + @save_data = save_data + @commands = commands + @index = @commands.keys.first # A symbol from @commands + @slot_index = default_slot_index # Which save slot is selected + super() + end + + def initialize_sprites + initialize_continue_panels + initialize_other_panels + end + + def initialize_continue_panels + return if @save_data.nil? || @commands.keys.first != :continue + # Continue panel in middle + this_slot_index = @slot_index + @sprites[:continue] = create_continue_panel(this_slot_index) + # Continue panel to left + if @save_data.length >= 2 + previous_slot_index = this_slot_index - 1 + @sprites[:continue_previous] = create_continue_panel(this_slot_index - 1) + @sprites[:continue_previous].x = @sprites[:continue].x - @sprites[:continue].width - PANEL_SPACING + # Continue panel to right + next_slot_index = this_slot_index + 1 + @sprites[:continue_next] = create_continue_panel(this_slot_index + 1) + @sprites[:continue_next].x = @sprites[:continue].x + @sprites[:continue].width + PANEL_SPACING + end + end + + def initialize_other_panels + @commands.each_pair do |key, text| + next if key == :continue + @sprites[key] = UI::LoadPanel.new(text, @viewport) + @sprites[key].x = (Graphics.width - @sprites[key].width) / 2 + end + @sprites[:mystery_gift]&.visible = @save_data[@slot_index] && @save_data[@slot_index][1][:player].mystery_gift_unlocked + end + + #----------------------------------------------------------------------------- + + def create_continue_panel(slot_index) + slot_index += @save_data.length if slot_index < 0 + slot_index -= @save_data.length if slot_index >= @save_data.length + ret = UI::LoadContinuePanel.new(@commands[:continue], + @save_data[slot_index][1], slot_index, @save_data.length, @viewport) + ret.x = (Graphics.width - ret.width) / 2 + return ret + end + + def set_index(new_index) + @index = new_index + refresh_on_index_changed(@index) + end + + def go_to_next_option(play_se = true) + return if @commands.length == 1 + old_index = @commands.keys.index(@index) + new_index = old_index + loop do + new_index = (new_index + 1) % @commands.length + break if @sprites[@commands.keys[new_index]] && @sprites[@commands.keys[new_index]].visible + break if new_index == old_index + end + return if new_index == old_index + pbPlayCursorSE if play_se + set_index(@commands.keys[new_index]) + end + + def go_to_previous_option(play_se = true) + return if @commands.length == 1 + old_index = @commands.keys.index(@index) + new_index = old_index + loop do + new_index -= 1 + new_index += @commands.length if new_index < 0 + break if @sprites[@commands.keys[new_index]] && @sprites[@commands.keys[new_index]].visible + break if new_index == old_index + end + return if new_index == old_index + pbPlayCursorSE if play_se + set_index(@commands.keys[new_index]) + end + + #----------------------------------------------------------------------------- + + def set_slot_index(new_index, forced = false) + while new_index < 0 + new_index += @save_data.length + end + while new_index >= @save_data.length + new_index -= @save_data.length + end + return if !forced && @slot_index == new_index + # Set the new index + @slot_index = new_index + # Show the newly selected slot's information in the Continue panel + @sprites[:continue].set_data(@save_data[@slot_index][1], @slot_index, @save_data.length) + # Show the newly adjacent slots' information in the adjacent Continue panels + prev_index = @slot_index - 1 + prev_index += @save_data.length if prev_index < 0 + @sprites[:continue_previous]&.set_data(@save_data[prev_index][1], prev_index, @save_data.length) + next_index = (@slot_index + 1) % @save_data.length + @sprites[:continue_next]&.set_data(@save_data[next_index][1], next_index, @save_data.length) + # Determine whether the Mystery Gift option is visible + @sprites[:mystery_gift].visible = @save_data[@slot_index][1][:player].mystery_gift_unlocked + refresh_panel_positions + # Set the options, and change the language if relevant + old_language = $PokemonSystem.language + SaveData.load_bootup_values(@save_data[@slot_index][1], true) + if $PokemonSystem.language != old_language && Settings::LANGUAGES[$PokemonSystem.language] + MessageTypes.load_message_files(Settings::LANGUAGES[$PokemonSystem.language][1]) + full_refresh + end + pbPlayCursorSE if !forced + end + + def go_to_next_save_slot + set_slot_index(@slot_index + 1) + end + + def go_to_previous_save_slot + set_slot_index(@slot_index - 1) + end + + #----------------------------------------------------------------------------- + + def refresh + super + @commands.keys.each { |key| @sprites[key]&.refresh } + refresh_panel_positions + refresh_selected_panel + end + + def full_refresh + refresh + refresh_labels + @sprites.each_pair { |key, sprite| sprite.refresh if sprite.respond_to?(:refresh) } + end + + def refresh_panel_positions + @panel_y_offset ||= 0 + sprite_y = PANEL_SPACING_EDGE + # Determine the relative positions of all option panels + sprite_pos = {} + @commands.keys.each do |key| + next if !@sprites[key] || !@sprites[key].visible # If Mystery Gift option isn't available + sprite_pos[key] = sprite_y + sprite_y += @sprites[key].height + PANEL_SPACING + end + # Determine an offset that ensures the selected option panel is on-screen + screen_y = sprite_pos[@index] - @panel_y_offset + if screen_y < PANEL_SPACING_EDGE + @panel_y_offset = sprite_pos[@index] - PANEL_SPACING_EDGE + elsif screen_y + @sprites[@index].height > Graphics.height - PANEL_SPACING_EDGE + @panel_y_offset = sprite_pos[@index] + @sprites[@index].height + PANEL_SPACING_EDGE - Graphics.height + end + # Apply the calculated positions to all option panels + sprite_pos.each_pair do |key, value| + @sprites[key].y = value - @panel_y_offset + end + @sprites[:continue_previous]&.y = @sprites[:continue].y + @sprites[:continue_next]&.y = @sprites[:continue].y + end + + def refresh_selected_panel + @commands.keys.each do |key| + @sprites[key]&.selected = (key == @index) + end + @sprites[:continue_previous]&.selected = false + @sprites[:continue_next]&.selected = false + end + + def refresh_labels + MenuHandlers.each_available(:load_screen, self) do |option, _hash, name| + @sprites[option].label = name + if option == :continue + @sprites[:continue_previous].label = name + @sprites[:continue_next].label = name + end + end + end + + def refresh_on_index_changed(old_index) + refresh_selected_panel + refresh_panel_positions + end + + def refresh_after_save_file_deleted + @slot_index = [@slot_index, @save_data.length - 1].min + if @save_data.empty? + [:continue, :continue_previous, :continue_next].each do |key| + @sprites[key].dispose if @sprites[key] && !@sprites[key].disposed? + @sprites[key] = nil + end + @sprites[:mystery_gift].visible = false + go_to_next_option(false) + else + if @save_data.length == 1 + [:continue_previous, :continue_next].each do |key| + @sprites[key].dispose if @sprites[key] && !@sprites[key].disposed? + @sprites[key] = nil + end + end + set_slot_index(@slot_index, true) + end + end + + #----------------------------------------------------------------------------- + + def update_input + # Check for movement to a new option + if Input.repeat?(Input::UP) + go_to_previous_option + elsif Input.repeat?(Input::DOWN) + go_to_next_option + end + # Check for movement to a different save slot + if @index == :continue && @save_data.length > 1 + if Input.repeat?(Input::LEFT) + go_to_previous_save_slot + elsif Input.repeat?(Input::RIGHT) + go_to_next_save_slot + end + end + # Check for interaction + if Input.trigger?(Input::USE) + if @index == :continue && Input.press?(Input::ACTION) && Input.press?(Input::BACK) + pbPlayDecisionSE + return :delete_save + end + return update_interaction(Input::USE) + elsif Input.trigger?(Input::JUMPUP) + if @index != @commands.keys[0] + pbPlayCursorSE + set_index(@commands.keys[0]) + end + elsif Input.trigger?(Input::JUMPDOWN) + if @index != @commands.keys[@commands.length - 1] + pbPlayCursorSE + set_index(@commands.keys[@commands.length - 1]) + end + end + return nil + end + + def update_interaction(input) + case input + when Input::USE + pbPlayDecisionSE if @index != :quit_game + return @index # This is a key from @commands + end + return nil + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::Load < UI::BaseScreen + attr_reader :save_data + + SCREEN_ID = :load_screen + + include UI::LoadSaveDataMixin + + def initialize + load_all_save_data + determine_default_save_file + if $DEBUG && !FileTest.exist?("Game.rgssad") && Settings::SKIP_CONTINUE_SCREEN + @disposed = true + perform_action((@save_data.empty?) ? :new_game : :continue) + return + end + set_commands + super + end + + def initialize_visuals + @visuals = UI::LoadVisuals.new(@commands, @save_data, @default_slot_index) + end + + #----------------------------------------------------------------------------- + + def slot_index + return @visuals&.slot_index || @default_slot_index + end + + def set_commands + @commands = {} + MenuHandlers.each_available(:load_screen, self) do |option, _hash, name| + @commands[option] = name + end + end + + #----------------------------------------------------------------------------- + + def determine_default_save_file + @default_slot_index = 0 + last_edited_time = nil + @save_data.each_with_index do |data, i| + save_time = data[1][:stats].real_time_saved || 0 + if !last_edited_time || save_time > last_edited_time + last_edited_time = save_time + @default_slot_index = i + end + end + SaveData.load_bootup_values(@save_data[@default_slot_index][1], true) if !@save_data.empty? + MessageTypes.load_message_files(Settings::LANGUAGES[$PokemonSystem.language][1]) if Settings::LANGUAGES[$PokemonSystem.language] + end + + def prompt_save_deletion(filename) + if show_confirm_serious_message(_INTL("Delete this save file?")) + show_message(_INTL("Once a save file has been deleted, there is no way to recover it.") + "\1") + pbPlayDecisionSE + if show_confirm_serious_message(_INTL("Delete the save file anyway?")) + delete_save_data(filename) { + @save_data.delete_if { |save| save[0] == filename } + @visuals.refresh_after_save_file_deleted + } + end + end + end + + #----------------------------------------------------------------------------- + + def full_refresh + @visuals.full_refresh + end +end + +#=============================================================================== +# Actions that can be triggered in the load screen. +#=============================================================================== +UIActionHandlers.add(UI::Load::SCREEN_ID, :continue, { + :effect => proc { |screen| + screen.end_screen + Game.load(screen.save_data[screen.slot_index][1]) + } +}) + +UIActionHandlers.add(UI::Load::SCREEN_ID, :mystery_gift, { + :effect => proc { |screen| + pbFadeOutInWithUpdate(screen.sprites) do + pbDownloadMysteryGift(screen.save_data[screen.slot_index][1][:player]) + end + } +}) + +UIActionHandlers.add(UI::Load::SCREEN_ID, :new_game, { + :effect => proc { |screen| + screen.end_screen + Game.start_new + } +}) + +UIActionHandlers.add(UI::Load::SCREEN_ID, :options, { + :effect => proc { |screen| + pbFadeOutInWithUpdate(screen.sprites) do + options_scene = PokemonOption_Scene.new + options_screen = PokemonOptionScreen.new(options_scene) + options_screen.pbStartScreen(true) + screen.full_refresh + end + } +}) + +UIActionHandlers.add(UI::Load::SCREEN_ID, :language, { + :effect => proc { |screen| + screen.end_screen + $PokemonSystem.language = pbChooseLanguage + MessageTypes.load_message_files(Settings::LANGUAGES[$PokemonSystem.language][1]) + if screen.save_data[screen.slot_index] + screen.save_data[screen.slot_index][1][:pokemon_system] = $PokemonSystem + File.open(SaveData::DIRECTORY + screen.save_data[screen.slot_index][0], "wb") do |file| + Marshal.dump(screen.save_data[screen.slot_index][1], file) + end + end + $scene = pbCallTitle + } +}) + +UIActionHandlers.add(UI::Load::SCREEN_ID, :debug, { + :effect => proc { |screen| + pbFadeOutInWithUpdate(screen.sprites) do + pbDebugMenu(false) + end + } +}) + +UIActionHandlers.add(UI::Load::SCREEN_ID, :quit_game, { + :effect => proc { |screen| + pbPlayCloseMenuSE + screen.end_screen + $scene = nil + } +}) + +UIActionHandlers.add(UI::Load::SCREEN_ID, :delete_save, { + :effect => proc { |screen| + screen.prompt_save_deletion(screen.save_data[screen.slot_index][0]) + } +}) + +#=============================================================================== +# Menu options that exist in the load screen. +# NOTE: This can also be called when screen is UI::LoadVisuals (for +# retranslating the names upon selecting a save file with a different +# language). Try not to have a condition that references things only in +# UI::Load. +#=============================================================================== +MenuHandlers.add(:load_screen, :continue, { + "name" => _INTL("Continue"), + "order" => 10, + "condition" => proc { |screen| next screen.save_data && !screen.save_data.empty? } +}) + +# NOTE: Mystery Gift is always added as an option here, even if no save files +# have unlocked it. Whether it is shown depends on the selected save file, +# and its visibility is toggled elsewhere because of that. +MenuHandlers.add(:load_screen, :mystery_gift, { + "name" => _INTL("Mystery Gift"), + "order" => 20, + "condition" => proc { |screen| next screen.save_data && !screen.save_data.empty? } +}) + +MenuHandlers.add(:load_screen, :new_game, { + "name" => _INTL("New Game"), + "order" => 30 +}) + +MenuHandlers.add(:load_screen, :options, { + "name" => _INTL("Options"), + "order" => 40 +}) + +# TODO: Put language in the options screen? +MenuHandlers.add(:load_screen, :language, { + "name" => _INTL("Language"), + "order" => 50, + "condition" => proc { |screen| next Settings::LANGUAGES.length >= 2 } +}) + +MenuHandlers.add(:load_screen, :debug, { + "name" => _INTL("Debug"), + "order" => 60, + "condition" => proc { |screen| next $DEBUG } +}) + +MenuHandlers.add(:load_screen, :quit_game, { + "name" => _INTL("Quit Game"), + "order" => 9999 +}) diff --git a/Data/Scripts/016b_UI redesign/014_UI_Save.rb b/Data/Scripts/016b_UI redesign/014_UI_Save.rb new file mode 100644 index 000000000..9a81e9d49 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/014_UI_Save.rb @@ -0,0 +1,609 @@ +#=============================================================================== +# +#=============================================================================== +class UI::SavePanel < UI::SpriteContainer + attr_reader :sprites + + GRAPHICS_FOLDER = "Save/" + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(88, 88, 80), Color.new(168, 184, 184)], # Base and shadow colour + :white => [Color.new(248, 248, 248), Color.new(172, 188, 188)], + :male => [Color.new(0, 112, 248), Color.new(120, 184, 232)], + :female => [Color.new(232, 32, 16), Color.new(248, 168, 184)] + } + PANEL_WIDTH = 384 + PANEL_HEIGHT = 204 + + def initialize(save_data, viewport) + @save_data = save_data + @show_arrows = false + super(viewport) + refresh + end + + def initialize_sprites + initialize_panel_background + initialize_overlay + initialize_player_sprite + initialize_pokemon_icons + initialize_arrow_sprites + end + + def initialize_panel_background + @sprites[:background] = ChangelingSprite.new(0, 0, @viewport) + panel_srcs.each_pair do |key, values| + @sprites[:background].add_bitmap(key, values) + end + @sprites[:background].change_bitmap(:default) + record_values(:background) + end + + def initialize_overlay + add_overlay(:overlay, @sprites[:background].width, @sprites[:background].height) + @sprites[:overlay].z = 10 + record_values(:overlay) + end + + 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) + if !@sprites[:player].bitmap + raise _INTL("Player character {1}'s walking charset was not found (filename: \"{2}\").", + @save_data[:player].character_ID, filename) + end + @sprites[:player].x = 44 - (@sprites[:player].bitmap.width / 8) + @sprites[:player].y = 36 - (@sprites[:player].bitmap.height / 8) + @sprites[:player].z = 1 + record_values(:player) + end + + def initialize_pokemon_icons + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon_#{i}"] = PokemonIconSprite.new(@save_data[:player].party[i], @viewport) + @sprites["pokemon_#{i}"].x, @sprites["pokemon_#{i}"].y = pokemon_coords(i) + @sprites["pokemon_#{i}"].z = 1 + @sprites["pokemon_#{i}"].setOffset + record_values("pokemon_#{i}") + end + end + + def initialize_arrow_sprites + @sprites[:left_arrow] = AnimatedSprite.new(UI_FOLDER + "left_arrow", 8, 40, 28, 2, @viewport) + @sprites[:left_arrow].x = -16 + @sprites[:left_arrow].y = (height / 2) - 14 + @sprites[:left_arrow].z = 20 + @sprites[:left_arrow].visible = false + @sprites[:left_arrow].play + record_values(:left_arrow) + @sprites[:right_arrow] = AnimatedSprite.new(UI_FOLDER + "right_arrow", 8, 40, 28, 2, @viewport) + @sprites[:right_arrow].x = width - 24 + @sprites[:right_arrow].y = (height / 2) - 14 + @sprites[:right_arrow].z = 20 + @sprites[:right_arrow].visible = false + @sprites[:right_arrow].play + record_values(:right_arrow) + end + + #----------------------------------------------------------------------------- + + def width + return PANEL_WIDTH + end + + def height + return PANEL_HEIGHT + end + + def panel_srcs + return { + :default => [graphics_folder + "panels", 0, 0, PANEL_WIDTH, PANEL_HEIGHT], + :new_slot => [graphics_folder + "panels", 0, PANEL_HEIGHT, PANEL_WIDTH, PANEL_HEIGHT] + } + end + + def pokemon_coords(index) + return 272 + (66 * (index % 2)), + 36 + (50 * (index / 2)) + end + + def show_arrows=(value) + return if @show_arrows == value + @show_arrows = value + @sprites[:left_arrow].visible = value + @sprites[:right_arrow].visible = value + end + + def set_data(save_data) + @save_data = save_data + @sprites[:background].change_bitmap((@save_data) ? :default : :new_slot) + set_player_sprite + refresh + end + + def set_player_sprite + if !@save_data + @sprites[:player].visible = false + return + end + @sprites[:player].visible = true + meta = GameData::PlayerMetadata.get(@save_data[:player].character_ID) + filename = pbGetPlayerCharset(meta.walk_charset, @save_data[:player], true) + @sprites[:player].charset = filename + if !@sprites[:player].bitmap + raise _INTL("Player character {1}'s walking charset was not found (filename: \"{2}\").", + @save_data[:player].character_ID, filename) + end + end + + #----------------------------------------------------------------------------- + + def refresh + super + refresh_pokemon + draw_save_file_text + end + + def refresh_pokemon + Settings::MAX_PARTY_SIZE.times do |i| + if @save_data + @sprites["pokemon_#{i}"].pokemon = @save_data[:player].party[i] + @sprites["pokemon_#{i}"].visible = true + else + @sprites["pokemon_#{i}"].visible = false + end + end + end + + def draw_save_file_text + if !@save_data + draw_text(_INTL("Create a new save file"), width / 2, (height / 2) - 10, align: :center) + return + end + gender_theme = :default + if @save_data[:player].male? + gender_theme = :male + elsif @save_data[:player].female? + gender_theme = :female + end + # Player's name + draw_text(@save_data[:player].name, 78, 30, theme: gender_theme) + # Location + map_id = @save_data[:map_factory].map.map_id + map_name = pbGetMapNameFromId(map_id) + map_name = map_name.gsub(/\\PN/, @save_data[:player].name) + map_name = map_name.gsub(/\\v\[(\d+)\]/) { |num| @save_data[:variables][$~[1].to_i].to_s } + draw_text(map_name, 14, 78) + # Gym Badges + draw_text(_INTL("Badges:"), 14, 110, theme: :white) + draw_text(@save_data[:player].badge_count.to_s, 222, 110, align: :right) + # Pokédex owned count + draw_text(_INTL("Pokédex:"), 14, 142, theme: :white) + draw_text(@save_data[:player].pokedex.seen_count.to_s, 222, 142, align: :right) + # Time played + draw_text(_INTL("Play time:"), 14, 174, theme: :white) + play_time = @save_data[:stats]&.real_play_time.to_i || 0 + hour = (play_time / 60) / 60 + min = (play_time / 60) % 60 + play_time_text = (hour > 0) ? _INTL("{1}h {2}m", hour, min) : _INTL("{1}m", min) + draw_text(play_time_text, 222, 174, align: :right) + save_time = @save_data[:stats]&.real_time_saved + if save_time + save_time = Time.at(save_time) + if System.user_language[3..4] == "US" # If the user is in the United States + save_text = save_time.strftime("%-m/&-d/%Y") + else + save_text = save_time.strftime("%-d/%-m/%Y") + end + draw_text(save_text, PANEL_WIDTH - 14, 174, align: :right) + else + draw_text("???", PANEL_WIDTH - 14, 174, align: :right) + end + end + + def refresh_existing_pokemon + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon_#{i}"].pokemon = @save_data[:player].party[i] + end + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::SaveVisuals < UI::BaseVisuals + attr_reader :index + + GRAPHICS_FOLDER = "Save/" # Subfolder in Graphics/UI + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(80, 80, 88), Color.new(176, 192, 192)] # Base and shadow colour + } + PANEL_SPACING = 8 + + # save_data here is an array of [save filename, save data hash]. It has been + # compacted. + def initialize(save_data, current_save_data, default_index = 0) + @save_data = save_data + @current_save_data = current_save_data + @index = default_index # Which save slot is selected + @choosing_save_file = false + super() + end + + def initialize_sprites + initialize_continue_panels + end + + def initialize_continue_panels + # Continue panel in middle + this_index = @index + @sprites[:continue] = create_slot_panel(this_index) + # Continue panel to left + if !@save_data.empty? + previous_index = this_index - 1 + @sprites[:continue_previous] = create_slot_panel(this_index - 1) + @sprites[:continue_previous].x = @sprites[:continue].x - @sprites[:continue].width - PANEL_SPACING + @sprites[:continue_previous].visible = false + # Continue panel to right + next_index = this_index + 1 + @sprites[:continue_next] = create_slot_panel(this_index + 1) + @sprites[:continue_next].x = @sprites[:continue].x + @sprites[:continue].width + PANEL_SPACING + @sprites[:continue_next].visible = false + end + end + + #----------------------------------------------------------------------------- + + def create_slot_panel(slot_index, initializing = true) + slot_index += @save_data.length + 1 if slot_index < 0 + slot_index -= @save_data.length + 1 if slot_index >= @save_data.length + 1 + if initializing + this_save_data = @current_save_data[1] + else + this_save_data = (@save_data[slot_index]) ? @save_data[slot_index][1] : nil + end + ret = UI::SavePanel.new(this_save_data, @viewport) + ret.x = (Graphics.width - ret.width) / 2 + ret.y = 40 + return ret + end + + #----------------------------------------------------------------------------- + + def set_index(new_index, forced = false) + while new_index < 0 + new_index += @save_data.length + 1 + end + while new_index >= @save_data.length + 1 + new_index -= @save_data.length + 1 + end + return if !forced && @index == new_index + # Set the new index + @index = new_index + # Show the newly selected slot's information in the Continue panel + this_save_data = (@save_data[@index]) ? @save_data[@index][1] : nil + @sprites[:continue].set_data(this_save_data) + # Show the newly adjacent slots' information in the adjacent Continue panels + prev_index = @index - 1 + prev_index += @save_data.length + 1 if prev_index < 0 + this_save_data = (@save_data[prev_index]) ? @save_data[prev_index][1] : nil + @sprites[:continue_previous]&.set_data(this_save_data) + next_index = (@index + 1) % (@save_data.length + 1) + this_save_data = (@save_data[next_index]) ? @save_data[next_index][1] : nil + @sprites[:continue_next]&.set_data(this_save_data) + refresh + pbPlayCursorSE if !forced + end + + def go_to_next_save_slot + set_index(@index + 1) + end + + def go_to_previous_save_slot + set_index(@index - 1) + end + + #----------------------------------------------------------------------------- + + def start_choose_save_file + @choosing_save_file = true + @sprites[:continue_previous].visible = true + @sprites[:continue_next].visible = true + @sprites[:continue].show_arrows = true + set_index(@index, true) + end + + #----------------------------------------------------------------------------- + + def refresh_overlay + super + if @choosing_save_file + if @save_data[index] && + @save_data[index][1][:game_system].adventure_magic_number + if @save_data[index][1][:game_system].adventure_magic_number == $game_system.adventure_magic_number + save_time = @save_data[index][1][:stats].real_play_time + delta_time = ($stats.play_time - save_time).to_i + if delta_time >= 0 + hour = (delta_time / 60) / 60 + min = (delta_time / 60) % 60 + if hour > 0 + draw_text(_INTL("Play time since save: {1}h {2}m", hour, min), 8, 4) + else + draw_text(_INTL("Play time since save: {1}m", min), 8, 4) + end + else + draw_text(_INTL("Alternate version of your adventure!"), 8, 4) + end + else + draw_text(_INTL("Different adventure!"), 8, 4) + end + end + if @save_data[@index] + draw_text(sprintf("%d/%d", @index + 1, @save_data.length), Graphics.width - 8, 4, align: :right) + end + elsif $stats.save_count > 0 && $stats.real_time_saved + save_time = Time.at($stats.real_time_saved) + if System.user_language[3..4] == "US" # If the user is in the United States + date_text = save_time.strftime("%-m/&-d/%Y") + else + date_text = save_time.strftime("%-d/%-m/%Y") + end + time_text = save_time.strftime("%H:%M") + draw_text(_INTL("Last saved on {1} at {2}", date_text, time_text), 8, 4) + end + end + + def full_refresh + refresh + @sprites.each_pair { |key, sprite| sprite.refresh if sprite.respond_to?(:refresh) } + end + + #----------------------------------------------------------------------------- + + def update_input + # Check for movement to a different save slot + if Input.repeat?(Input::LEFT) + go_to_previous_save_slot + elsif Input.repeat?(Input::RIGHT) + go_to_next_save_slot + end + # Check for interaction + if Input.trigger?(Input::USE) + return update_interaction(Input::USE) + elsif Input.trigger?(Input::BACK) + return update_interaction(Input::BACK) + end + return nil + end + + def update_interaction(input) + case input + when Input::USE + pbPlayDecisionSE + return :choose_slot + when Input::BACK + pbPlayCancelSE + return :quit + end + return nil + end + + #----------------------------------------------------------------------------- + + def navigate + help_text = _INTL("Choose a file to save in.") + help_window = Window_AdvancedTextPokemon.newWithSize( + help_text, 0, 0, Graphics.width, 96, @viewport + ) + help_window.z = 2000 + help_window.setSkin(MessageConfig.pbGetSpeechFrame) + help_window.letterbyletter = false + pbBottomRight(help_window) + # Navigate loop + ret = super + # Clean up + help_window.dispose + return ret + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::Save < UI::BaseScreen + attr_reader :save_data + + SCREEN_ID = :save_screen + + include UI::LoadSaveDataMixin + + def initialize + create_current_save_data + load_all_save_data + determine_default_save_file + super + end + + def initialize_visuals + @visuals = UI::SaveVisuals.new(@save_data, @current_save_data, @default_index) + end + + #----------------------------------------------------------------------------- + + def index + return @visuals&.index || @default_index + end + + #----------------------------------------------------------------------------- + + # This is pseudo-save data containing the current state of the game. + def create_current_save_data + @current_save_data = [0, { + :player => $player, + :map_factory => $map_factory, + :variables => $game_variables, + :stats => $stats + }] + end + + def determine_default_save_file + # Find the save file index matching the current game's filename number + if $stats.save_filename_number && $stats.save_filename_number >= 0 + expected_filename = SaveData.filename_from_index($stats.save_filename_number) + @default_index = @save_data.index { |sav| sav[0] == expected_filename } + @default_index ||= @save_data.length # Just in case + else + @default_index = @save_data.length # New save slot + end + end + + def different_adventure?(slot_index) + return false if !@save_data[slot_index] + return false if !@save_data[slot_index][1][:game_system].adventure_magic_number + return @save_data[slot_index][1][:game_system].adventure_magic_number != $game_system.adventure_magic_number + end + + def prompt_overwrite_save_file(slot_index) + if different_adventure?(slot_index) + show_message(_INTL("WARNING!") + "\1") + show_message(_INTL("There is a different game file that is already saved.") + "\1") + show_message(_INTL("If you save now, the other file's adventure, including items and Pokémon, will be entirely lost.") + "\1") + if !show_confirm_serious_message(_INTL("Are you sure you want to save now and overwrite the other save file?")) + return false + end + end + return true + end + + # NOTE: Save filenames are "Game#.rxdata" where "#" is slot_index, except for + # 0 which just produces "Game.rzdata". This is to support old save + # files which are that name. + def save_game(file_number) + # TODO: I don't know about this "GUI save choice" being here. +# pbSEPlay("GUI save choice") + if Game.save(file_number) + # Refresh the panels to show the new save's data + file = SaveData.filename_from_index(file_number) + slot_index = @save_data.index { |sav| sav[0] == file } + slot_index ||= @save_data.length # New save file + this_save_data = load_save_file(SaveData::DIRECTORY, file) + @save_data[slot_index] = [file, this_save_data] + @visuals.set_index(slot_index, true) + # Announce the save success + show_message(_INTL("{1} saved the game.", $player.name)) { + # TODO: Stop SE. + pbMEPlay("GUI save game") + # TODO: Wait for ME to finish playing, then auto-close the message. + } + @result = true + else + show_message(_INTL("Save failed.")) + # TODO: Auto-close this message. + @result = false + end + end + + def get_save_file_number(slot_index = -1) + filename = (slot_index >= 0 && @save_data[slot_index]) ? @save_data[slot_index][0] : @save_data.last[0] + filename[SaveData::FILENAME_REGEX] # Just to get the number in the filename + ret = $~[1].to_i + ret += 1 if slot_index < 0 || !@save_data[slot_index] + return ret + end + + #----------------------------------------------------------------------------- + + def full_refresh + @visuals.full_refresh + end + + #----------------------------------------------------------------------------- + + def main + start_screen + # If the player doesn't want to save, just exit the screen + if !show_confirm_message(_INTL("Would you like to save the game?")) + end_screen + return false + end + # If there are no existing save files, just save in the first slot + if @save_data.empty? + save_game(0) + end_screen + return @result + end + # If there are existing save files, do something depending on which save + # files are allowed to be made + case Settings::SAVE_SLOTS + when :multiple + # Choose a save slot to replace + @visuals.start_choose_save_file + loop do + command = @visuals.navigate + break if command == :quit + if !@save_data[index] || + show_confirm_message(_INTL("Do you want to overwrite this save file?")) + if different_adventure?(index) + show_message(_INTL("WARNING!") + "\1") + pbPlayDecisionSE + show_message(_INTL("This save file is a different adventure.") + "\1") + pbPlayDecisionSE + show_message(_INTL("If you save now, that adventure, including items and Pokémon, will be entirely lost.") + "\1") + pbPlayDecisionSE + next if !show_confirm_serious_message(_INTL("Are you sure you want to overwrite it?")) + end + file_number = get_save_file_number(index) + save_game(file_number) + break + end + end + when :adventure + if $stats.save_filename_number && $stats.save_filename_number >= 0 # Was saved previously + save_game($stats.save_filename_number) + else + file_number = get_save_file_number(-1) # New save slot + save_game(file_number) + end + when :one + save_game(0) if prompt_overwrite_save_file(0) + end + end_screen + return @result + end +end + +#=============================================================================== +# +#=============================================================================== +def pbSaveScreen + ret = false + pbFadeOutIn { ret = UI::Save.new.main } + return ret +end + +def pbEmergencySave + oldscene = $scene + $scene = nil + pbMessage(_INTL("The script is taking too long. The game will restart.")) + return if !$player + filename_number = $stats.save_filename_number || -1 + filename = SaveData.filename_from_index(filename_number) + if SaveData.exists? + File.open(SaveData::DIRECTORY + filename, "rb") do |r| + File.open(SaveData::DIRECTORY + filename + ".bak", "wb") do |w| + loop do + s = r.read(4096) + break if !s + w.write(s) + end + end + end + end + if Game.save(filename_number) + pbMessage("\\se[]" + _INTL("The game was saved.") + "\\me[GUI save game]\\wtnp[20]") + pbMessage("\\se[]" + _INTL("The previous save file has been backed up.") + "\\wtnp[20]") + else + pbMessage("\\se[]" + _INTL("Save failed.") + "\\wtnp[30]") + end + $scene = oldscene +end diff --git a/Data/Scripts/016b_UI redesign/017_UI_PokemonStorage.rb b/Data/Scripts/016b_UI redesign/017_UI_PokemonStorage.rb new file mode 100644 index 000000000..545bd1580 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/017_UI_PokemonStorage.rb @@ -0,0 +1,2273 @@ +#=============================================================================== +# +#=============================================================================== +class UI::PokemonStorageVisualsSidePane < UI::SpriteContainer + attr_reader :pokemon + + GRAPHICS_FOLDER = "Storage/" + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(88, 88, 80), Color.new(168, 184, 184)], # Base and shadow colour + :no_item => [Color.new(192, 200, 208), Color.new(212, 216, 220)], + :male => [Color.new(24, 112, 216), Color.new(136, 168, 208)], + :female => [Color.new(248, 56, 32), Color.new(224, 152, 144)] + } + MARK_WIDTH = 16 + MARK_HEIGHT = 16 + + def initialize_bitmaps + @bitmaps[:types] = AnimatedBitmap.new(UI_FOLDER + _INTL("types")) + @bitmaps[:markings] = AnimatedBitmap.new(graphics_folder + "markings") + @bitmaps[:numbers] = AnimatedBitmap.new(graphics_folder + "numbers") + end + + def initialize_sprites + initialize_pane_bg + initialize_overlay + initialize_pokemon_sprite + end + + def initialize_pane_bg + add_icon_sprite(:pane_bg, 0, 0, graphics_folder + "overlay_side_pane") + record_values(:pane_bg) + end + + def initialize_overlay + add_overlay(:overlay, @sprites[:pane_bg].bitmap.width, @sprites[:pane_bg].bitmap.height) + @sprites[:overlay].z = 10 + record_values(:overlay) + end + + def initialize_pokemon_sprite + # TODO: The Pokémon sprite probably needs its own viewport, to avoid + # spillover of overly large sprites. Also put it beneath the main + # background sprite and put another sprite beneath it? + @sprites[:pokemon] = UI::PokemonStorageVisualsMosaicPokemonSprite.new(@viewport) + @sprites[:pokemon].setOffset(PictureOrigin::CENTER) + @sprites[:pokemon].x = 90 + @sprites[:pokemon].y = 164 + @sprites[:pokemon].z = 1 + record_values(:pokemon) + mosaic_pokemon_sprite + end + + #----------------------------------------------------------------------------- + + def width + return @sprites[:pane_bg].width + end + + def pokemon=(value) + @pokemon = value + @sprites[:pokemon].setPokemonBitmap(@pokemon) if @sprites[:pokemon] && !@sprites[:pokemon].disposed? + refresh + end + + def mosaic_pokemon_sprite + @sprites[:pokemon].mosaic_duration = 0.25 # In seconds + end + + #----------------------------------------------------------------------------- + + def refresh_overlay + super + return if @pokemon.nil? + draw_name + draw_level + draw_shiny_icon + draw_gender + draw_markings + draw_type + draw_item + end + + def draw_name + pokemon_name = @pokemon.name + pokemon_name = crop_text(pokemon_name, 158) + draw_text(pokemon_name, 8, 14) + end + + def draw_level + return if @pokemon.egg? + draw_image(graphics_folder + _INTL("overlay_lv"), 8, 48) + draw_number_from_image(@bitmaps[:numbers], @pokemon.level, 30, 48) + end + + def draw_shiny_icon + return if @pokemon.egg? + draw_image(UI_FOLDER + "shiny", 106, 46) if @pokemon.shiny? + end + + def draw_gender + return if @pokemon.egg? + if @pokemon.male? + draw_text(_INTL("♂"), 150, 44, theme: :male) + elsif @pokemon.female? + draw_text(_INTL("♀"), 150, 44, theme: :female) + end + end + + def draw_markings + mark_variants = @bitmaps[:markings].bitmap.height / MARK_HEIGHT + (@bitmaps[:markings].bitmap.width / MARK_WIDTH).times do |i| + draw_image(@bitmaps[:markings], 38 + (i * MARK_WIDTH), 262, + i * MARK_WIDTH, [(@pokemon.markings[i] || 0), mark_variants - 1].min * MARK_HEIGHT, + MARK_WIDTH, MARK_HEIGHT) + end + end + + def draw_type + return if @pokemon.egg? + @pokemon.types.each_with_index do |type, i| + type_number = GameData::Type.get(type).icon_position + type_x = (@pokemon.types.length == 1) ? 52 : 18 + ((GameData::Type::ICON_SIZE[0] + 6) * i) + draw_image(@bitmaps[:types], type_x, 282, + 0, type_number * GameData::Type::ICON_SIZE[1], *GameData::Type::ICON_SIZE) + end + end + + def draw_item + return if @pokemon.egg? + if @pokemon.hasItem? + item_name = @pokemon.item.name + item_name = crop_text(item_name, 166) + draw_text(item_name, 86, 316, align: :center) + else + draw_text(_INTL("No item"), 86, 316, align: :center, theme: :no_item) + end + end +end + +#=============================================================================== +# Pokémon sprite. +#=============================================================================== +class UI::PokemonStorageVisualsMosaicPokemonSprite < PokemonSprite + attr_reader :mosaic + + INITIAL_MOSAIC = 10 # Pixellation factor + + def initialize(*args) + super(*args) + @mosaic = 0 + @in_refresh = false + @mosaic_bitmap = nil + @mosaic_bitmap2 = nil + @old_bitmap = self.bitmap + end + + def dispose + super + @mosaic_bitmap&.dispose + @mosaic_bitmap = nil + @mosaic_bitmap2&.dispose + @mosaic_bitmap2 = nil + end + + def bitmap=(value) + super + refresh_mosaic(value) + end + + def mosaic=(value) + @mosaic = value + @mosaic = 0 if @mosaic < 0 + @start_mosaic = @mosaic if !@start_mosaic + end + + def mosaic_duration=(val) + @mosaic_duration = val + @mosaic_duration = 0 if @mosaic_duration < 0 + @mosaic_timer_start = System.uptime if @mosaic_duration > 0 + end + + def refresh_mosaic(bitmap) + return if @in_refresh + @in_refresh = true + @old_bitmap = bitmap + if @mosaic <= 0 || !@old_bitmap + @mosaic_bitmap&.dispose + @mosaic_bitmap = nil + @mosaic_bitmap2&.dispose + @mosaic_bitmap2 = nil + self.bitmap = @old_bitmap + else + newWidth = [(@old_bitmap.width / @mosaic), 1].max + newHeight = [(@old_bitmap.height / @mosaic), 1].max + @mosaic_bitmap2&.dispose + @mosaic_bitmap = pbDoEnsureBitmap(@mosaic_bitmap, newWidth, newHeight) + @mosaic_bitmap.clear + @mosaic_bitmap2 = pbDoEnsureBitmap(@mosaic_bitmap2, @old_bitmap.width, @old_bitmap.height) + @mosaic_bitmap2.clear + @mosaic_bitmap.stretch_blt(Rect.new(0, 0, newWidth, newHeight), @old_bitmap, @old_bitmap.rect) + @mosaic_bitmap2.stretch_blt( + Rect.new((-@mosaic / 2) + 1, (-@mosaic / 2) + 1, @mosaic_bitmap2.width, @mosaic_bitmap2.height), + @mosaic_bitmap, Rect.new(0, 0, newWidth, newHeight) + ) + self.bitmap = @mosaic_bitmap2 + end + @in_refresh = false + end + + def update + super + if @mosaic_timer_start + @start_mosaic = INITIAL_MOSAIC if !@start_mosaic || @start_mosaic == 0 + new_mosaic = lerp(@start_mosaic, 0, @mosaic_duration, @mosaic_timer_start, System.uptime).to_i + self.mosaic = new_mosaic + refresh_mosaic(@old_bitmap) + if new_mosaic == 0 + @mosaic_timer_start = nil + @start_mosaic = nil + end + end + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PokemonStorageVisualsPokemonIcon < PokemonIconSprite + OUTLINE_COLOR = Color.new(248, 0, 0) + FULL_BORDER = true # true = draws the corners + + def create_outline_bitmap + @selected_bitmap = Bitmap.new(@animBitmap.height + 4, @animBitmap.height + 4) + # Copy the icon's bitmap to the new bitmap + @selected_bitmap.blt(2, 2, @animBitmap.bitmap, Rect.new(0, 0, @animBitmap.height, @animBitmap.height)) + # Determine where the outline's pixels go + pixels = [] + size = @animBitmap.height / 2 + size.times do |j| + size.times do |i| + pixel = @animBitmap.bitmap.get_pixel(i * 2, j * 2) + this_coord = ((j + 1) * (size + 2)) + i + 1 + pixels[this_coord] = 1 if pixel.alpha == 255 # Visible pixel + next if pixels[this_coord] != 1 + pixels[this_coord - 1] ||= 2 + pixels[this_coord + 1] = 2 + pixels[this_coord - size - 2] ||= 2 + pixels[this_coord + size + 2] = 2 + if FULL_BORDER + pixels[this_coord - size - 2 - 1] ||= 2 + pixels[this_coord - size - 2 + 1] ||= 2 + pixels[this_coord + size + 2 - 1] = 2 + pixels[this_coord + size + 2 + 1] = 2 + end + end + end + # Draw the outline + (size + 2).times do |j| + (size + 2).times do |i| + if pixels[(j * (size + 2)) + i] == 3 + @selected_bitmap.fill_rect(i * 2, j * 2, 2, 2, Color.new(255,255,0)) + end + next if pixels[(j * (size + 2)) + i] != 2 + @selected_bitmap.fill_rect(i * 2, j * 2, 2, 2, OUTLINE_COLOR) + end + end + end + + def pokemon=(value) + super + # NOTE: This only matters when refreshing the screen after giving an item to + # a Pokémon (a selected Pokémon). It should remain selected. + if @selected_bitmap + self.bitmap = @selected_bitmap + self.src_rect.width = @selected_bitmap.width + self.src_rect.height = @selected_bitmap.height + changeOrigin + end + end + + def make_selected + return if @selected_bitmap + create_outline_bitmap + self.bitmap = @selected_bitmap + self.src_rect.width = @selected_bitmap.width + self.src_rect.height = @selected_bitmap.height + changeOrigin + self.z += 1 + end + + def make_not_selected + return if !@selected_bitmap + @selected_bitmap.dispose + @selected_bitmap = nil + if @animBitmap + self.bitmap = @animBitmap.bitmap + self.src_rect.width = @animBitmap.height + self.src_rect.height = @animBitmap.height + changeOrigin + end + self.z -= 1 + end + + def update; end # Don't animate it +end + +#=============================================================================== +# +#=============================================================================== +class UI::PokemonStorageVisualsBox < UI::SpriteContainer + attr_reader :sprites + + GRAPHICS_FOLDER = "Storage/" + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(248, 248, 240), Color.new(40, 48, 48)], # Base and shadow colour + } + + def initialize(storage, box_number, viewport) + @storage = storage + @box_number = box_number + super(viewport) + end + + def initialize_sprites + initialize_box_background + initialize_overlay + initialize_pokemon_icons + end + + def initialize_box_background + set_box_background + record_values(:background) + end + + def initialize_overlay + add_overlay(:overlay, @sprites[:background].bitmap.width, @sprites[:background].bitmap.height) + @sprites[:overlay].z = 10 + record_values(:overlay) + end + + def initialize_pokemon_icons + PokemonBox::BOX_SIZE.times do |i| + @sprites["pokemon_#{i}"] = UI::PokemonStorageVisualsPokemonIcon.new(@storage[@box_number, i], @viewport) + @sprites["pokemon_#{i}"].x, @sprites["pokemon_#{i}"].y = pokemon_coords(i) + @sprites["pokemon_#{i}"].z = 1 + @sprites["pokemon_#{i}"].setOffset + record_values("pokemon_#{i}") + end + end + + #----------------------------------------------------------------------------- + + def width + return @sprites[:background].width + end + + def pokemon_coords(index) + return 42 + (48 * (index % PokemonBox::BOX_WIDTH)), + 70 + (48 * (index / PokemonBox::BOX_WIDTH)) + end + + def pokemon_icon(index) + return @sprites["pokemon_#{index}"] + end + + def reset_pokemon_icon_position(index) + new_coords = pokemon_coords(index) + @sprites["pokemon_#{index}"].x = self.x + new_coords[0] + @sprites["pokemon_#{index}"].y = self.y + new_coords[1] + end + + def set_box_background(wallpaper_number = -1) + @sprites[:background]&.dispose + add_icon_sprite(:background, self.x, self.y, graphics_folder + box_bitmap(wallpaper_number)) + end + + def box_bitmap(wallpaper_number = -1) + return "box_#{wallpaper_number}" if wallpaper_number >= 0 + ret = @storage[@box_number].background + if !ret.is_a?(Integer) || !@storage.isAvailableWallpaper?(ret) + ret = @box_number % PokemonStorage::BASIC_WALLPAPER_COUNT + @storage[@box_number].background = ret + end + return "box_#{ret}" + end + + def set_visible_proc(this_proc) + @visible_proc = this_proc + apply_visible_proc + end + + def apply_visible_proc + PokemonBox::BOX_SIZE.times do |i| + if @visible_proc && !@visible_proc.call(@sprites["pokemon_#{i}"].pokemon) + @sprites["pokemon_#{i}"].opacity = 96 + else + @sprites["pokemon_#{i}"].opacity = 255 + end + end + end + + def fade_all_pokemon + PokemonBox::BOX_SIZE.times { |i| @sprites["pokemon_#{i}"].opacity = 96 } + end + + def unfade_all_pokemon + apply_visible_proc + end + + #----------------------------------------------------------------------------- + + def refresh + super + set_box_background + draw_box_name + refresh_existing_pokemon + end + + def refresh_box_name + draw_box_name + end + + def draw_box_name + box_name = @storage[@box_number].name + box_name = crop_text(box_name, 216) + draw_text(box_name, 162, 14, align: :center) + end + + def refresh_existing_pokemon + PokemonBox::BOX_SIZE.times do |i| + @sprites["pokemon_#{i}"].pokemon = @storage[@box_number, i] + end + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PokemonStorageVisualsPartyPanel < UI::SpriteContainer + attr_reader :sprites + + GRAPHICS_FOLDER = "Storage/" + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(248, 248, 240), Color.new(40, 48, 48)], # Base and shadow colour + } + + def initialize(party, mode, viewport) + @party = party + @mode = mode + super(viewport) + refresh + end + + def initialize_sprites + initialize_panel_background + initialize_overlay + initialize_pokemon_icons + end + + def initialize_panel_background + add_icon_sprite(:background, 0, 0, graphics_folder + "overlay_party") + record_values(:background) + end + + def initialize_overlay + add_overlay(:overlay, @sprites[:background].bitmap.width, @sprites[:background].bitmap.height) + @sprites[:overlay].z = 10 + record_values(:overlay) + end + + def initialize_pokemon_icons + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon_#{i}"] = UI::PokemonStorageVisualsPokemonIcon.new(@party[i], @viewport) + @sprites["pokemon_#{i}"].x, @sprites["pokemon_#{i}"].y = pokemon_coords(i) + @sprites["pokemon_#{i}"].z = 1 + @sprites["pokemon_#{i}"].setOffset + record_values("pokemon_#{i}") + end + end + + #----------------------------------------------------------------------------- + + def height + return @sprites[:background].bitmap.height + end + + def pokemon_coords(index) + return 50 + (72 * (index % 2)), + 42 + (16 * (index % 2)) + (64 * (index / 2)) + end + + def pokemon_icon(index) + return @sprites["pokemon_#{index}"] + end + + def reset_pokemon_icon_position(index) + new_coords = pokemon_coords(index) + @sprites["pokemon_#{index}"].x = self.x + new_coords[0] + @sprites["pokemon_#{index}"].y = self.y + new_coords[1] + end + + def set_visible_proc(this_proc) + @visible_proc = this_proc + apply_visible_proc + end + + def apply_visible_proc + Settings::MAX_PARTY_SIZE.times do |i| + if @visible_proc && !@visible_proc.call(@sprites["pokemon_#{i}"].pokemon) + @sprites["pokemon_#{i}"].opacity = 96 + else + @sprites["pokemon_#{i}"].opacity = 255 + end + end + end + + #----------------------------------------------------------------------------- + + def refresh + super + draw_button_text + refresh_existing_pokemon + end + + def draw_button_text + text = (@mode == :deposit) ? _INTL("Exit") : _INTL("Back") + draw_text(text, 86, 248, align: :center, outline: :outline) + end + + def refresh_existing_pokemon + Settings::MAX_PARTY_SIZE.times do |i| + @sprites["pokemon_#{i}"].pokemon = @party[i] + end + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PokemonStorageVisualsCursor < UI::SpriteContainer + attr_reader :quick_swap_mode + + GRAPHICS_FOLDER = "Storage/" + BITMAPS = { + :point1 => ["cursor_point_1"], + :point2 => ["cursor_point_2"], + :grab => ["cursor_grab"], + :fist => ["cursor_fist"], + :point1q => ["cursor_point_1_q"], + :point2q => ["cursor_point_2_q"], + :grabq => ["cursor_grab_q"], + :fistq => ["cursor_fist_q"] + } + # Time in seconds for the cursor to move down or back up to grab/drop a + # Pokémon. + GRAB_TIME = 0.2 + + def initialize_sprites + initialize_cursor + initialize_pokemon_icon + initialize_item_icon + end + + def initialize_cursor + @sprites[:cursor] = ChangelingSprite.new(0, 0, @viewport) + BITMAPS.each_pair do |key, data| + @sprites[:cursor].add_bitmap(key, graphics_folder + data[0]) + end + @sprites[:cursor].change_bitmap(:fist) + record_values(:cursor) + end + + def initialize_pokemon_icon + @sprites[:pokemon] = UI::PokemonStorageVisualsPokemonIcon.new(nil, @viewport) + @sprites[:pokemon].x = 32 + @sprites[:pokemon].y = 48 + @sprites[:pokemon].z = -1 + @sprites[:pokemon].setOffset + record_values(:pokemon) + end + + def initialize_item_icon + @sprites[:item] = ItemIconSprite.new(32, 48, nil, @viewport) + @sprites[:item].z = -1 + @sprites[:item].setOffset + @sprites[:item].blankzero = true + record_values(:item) + end + + #----------------------------------------------------------------------------- + + def held_pokemon + return @sprites[:pokemon].pokemon + end + + def held_pokemon=(value) + @sprites[:pokemon].pokemon = value + end + + def holding_pokemon? + return !held_pokemon.nil? + end + + def held_item + return @sprites[:item].item + end + + def held_item=(value) + @sprites[:item].item = value + end + + def holding_item? + return !held_item.nil? + end + + def pokemon_icon + return @sprites[:pokemon] + end + + def quick_swap_mode=(value) + return if @quick_swap_mode == value + @quick_swap_mode = value + refresh_cursor + end + + #----------------------------------------------------------------------------- + + def animating? + return @pick_up_timer_1_start || @pick_up_timer_2_start || + @put_down_timer_1_start || @put_down_timer_2_start + end + + def pick_up_animation_1 + @pick_up_timer_1_start = System.uptime + @start_y = self.y + @sprites[:cursor].change_bitmap((@quick_swap_mode) ? :grabq : :grab) + end + + def pick_up_animation_2 + @pick_up_timer_2_start = System.uptime + @start_y = self.y + @sprites[:cursor].change_bitmap((@quick_swap_mode) ? :fistq : :fist) + end + + def put_down_animation_1 + @put_down_timer_1_start = System.uptime + @start_y = self.y + @sprites[:cursor].change_bitmap((@quick_swap_mode) ? :fistq : :fist) + end + + def put_down_animation_2 + @put_down_timer_2_start = System.uptime + @start_y = self.y + @sprites[:cursor].change_bitmap((@quick_swap_mode) ? :grabq : :grab) + end + + #----------------------------------------------------------------------------- + + def refresh_cursor + if (System.uptime / 0.5).to_i.even? # Changes every 0.5 seconds + @sprites[:cursor].change_bitmap((@quick_swap_mode) ? :point1q : :point1) + else + @sprites[:cursor].change_bitmap((@quick_swap_mode) ? :point2q : :point2) + end + end + + def update + super + if @pick_up_timer_1_start + y_offset = lerp(0, 16, GRAB_TIME, @pick_up_timer_1_start, System.uptime) + self.y = @start_y + y_offset + @pick_up_timer_1_start = nil if y_offset == 16 + elsif @pick_up_timer_2_start + y_offset = lerp(0, -16, GRAB_TIME, @pick_up_timer_2_start, System.uptime) + self.y = @start_y + y_offset + @pick_up_timer_2_start = nil if y_offset == -16 + elsif @put_down_timer_1_start + y_offset = lerp(0, 16, GRAB_TIME, @put_down_timer_1_start, System.uptime) + self.y = @start_y + y_offset + @put_down_timer_1_start = nil if y_offset == 16 + elsif @put_down_timer_2_start + y_offset = lerp(0, -16, GRAB_TIME, @put_down_timer_2_start, System.uptime) + self.y = @start_y + y_offset + @put_down_timer_2_start = nil if y_offset == -16 + elsif !holding_pokemon? && !holding_item? # Idling animation + refresh_cursor + end + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PokemonStorageVisuals < UI::BaseVisuals + # -3 = Exit button + # -2 = Party button, or Back button in party panel + # -1 = Box name + # 0+ = index in box/party + attr_reader :index + # -1 = party + # 0+ = box number + attr_reader :box + attr_reader :sub_mode + + GRAPHICS_FOLDER = "Storage/" # Subfolder in Graphics/UI + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(248, 248, 240), Color.new(40, 48, 48)], # Base and shadow colour + } + MARKING_WIDTH = 16 + MARKING_HEIGHT = 16 + + def initialize(storage, mode = :normal) + @storage = storage + @mode = mode + @index = 0 + @box = (@mode == :deposit) ? -1 : @storage.currentBox + super() + set_index(@index) + end + + def initialize_bitmaps + @bitmaps[:markings] = AnimatedBitmap.new(graphics_folder + "markings") + end + + def initialize_message_box + super + @sprites[:speech_box].width = Graphics.width - 180 + end + + def initialize_sprites + initialize_side_pane + initialize_box + initialize_party_panel + initialize_marking_sprites + initialize_cursor + initialize_buttons + end + + def initialize_side_pane + @sprites[:side_pane] = UI::PokemonStorageVisualsSidePane.new(@viewport) + @sprites[:side_pane].y = 16 + @sprites[:side_pane].z = 100 + end + + def initialize_box + @sprites[:box] = create_box_sprite(@storage.currentBox) + end + + def create_box_sprite(box_index) + ret = UI::PokemonStorageVisualsBox.new(@storage, box_index, @viewport) + ret.x = 184 + ret.y = 18 + ret.refresh + return ret + end + + def initialize_party_panel + @sprites[:party_panel] = UI::PokemonStorageVisualsPartyPanel.new(@storage.party, @mode, @viewport) + @sprites[:party_panel].x = 184 + @sprites[:party_panel].y = (showing_party_panel?) ? Graphics.height - 352 : Graphics.height + @sprites[:party_panel].z = 1100 + end + + def initialize_marking_sprites + # Background image of marking panel + add_icon_sprite(:marking_bg, 290, 68, graphics_folder + "overlay_marking") + @sprites[:marking_bg].z = 1900 + @sprites[:marking_bg].visible = false + # Overlay for marking panel + add_overlay(:marking_overlay) + @sprites[:marking_overlay].z = 1901 + @sprites[:marking_overlay].visible = false + # Cursor to highlight the currently selected marking option + add_icon_sprite(:marking_cursor, 0, 0, graphics_folder + "cursor_marking") + @sprites[:marking_cursor].z = 1902 + @sprites[:marking_cursor].visible = false + @sprites[:marking_cursor].src_rect.height = @sprites[:marking_cursor].bitmap.height / 2 + end + + def initialize_cursor + @sprites[:cursor] = UI::PokemonStorageVisualsCursor.new(@viewport) + @sprites[:cursor].z = 1500 + end + + def initialize_buttons + @sprites[:party_button] = IconSprite.new(188, 320, @viewport) + @sprites[:party_button].setBitmap(graphics_folder + "overlay_buttons") + @sprites[:party_button].src_rect.height = @sprites[:party_button].height / 2 + @sprites[:party_button].visible = ([:organize, :choose_pokemon].include?(@mode)) + @sprites[:exit_button] = IconSprite.new(386, 320, @viewport) + @sprites[:exit_button].setBitmap(graphics_folder + "overlay_buttons") + @sprites[:exit_button].src_rect.y = @sprites[:exit_button].height / 2 + @sprites[:exit_button].src_rect.height = @sprites[:exit_button].height / 2 + @sprites[:exit_button].visible = (@mode != :deposit) + end + + #----------------------------------------------------------------------------- + + def can_access_screen_menu? + return @mode == :organize + end + + def pokemon + return @sprites[:cursor].held_pokemon if holding_pokemon? + return slot_pokemon + end + + # Returns the Pokémon in the storage space the cursor is over. + def slot_pokemon + return nil if @index < 0 + return @storage.party[@index] if @box < 0 + return @storage[@box][@index] + end + + def holding_pokemon? + return @sprites[:cursor].holding_pokemon? + end + + def pokemon_icon + return @sprites[:cursor].pokemon_icon if holding_pokemon? + return @sprites[:box].pokemon_icon(@index) if @box >= 0 + return @sprites[:party_panel].pokemon_icon(@index) + end + + def item + return @sprites[:cursor].held_item + end + + def holding_item? + return @sprites[:cursor].holding_item? + end + + def showing_party_panel? + return @box == -1 + end + + def set_index(new_index) + mosaic_pokemon_sprite + @index = new_index + refresh_on_index_changed(@index) + end + + def set_sub_mode(sub_mode = :normal) + @sub_mode = sub_mode + @sprites[:cursor].quick_swap_mode = (@sub_mode != :normal) + @visible_proc = nil + if @sub_mode == :rearrange_items + @visible_proc = proc { |pkmn| pkmn.hasItem? } + end + @sprites[:box].set_visible_proc(@visible_proc) + @sprites[:party_panel].set_visible_proc(@visible_proc) + end + + def select_pokemon + pokemon_icon&.make_selected if !holding_pokemon? + end + + def deselect_pokemon + pokemon_icon&.make_not_selected if !holding_pokemon? + end + + #----------------------------------------------------------------------------- + + def go_to_next_box(new_box_number = -1) + @sprites[:side_pane].pokemon = nil if !holding_pokemon? + new_box_number = (@storage.currentBox + 1) % @storage.maxBoxes if new_box_number < 0 + @sprites[:cursor].visible = false + # Animate the boxes moving + offset_x = @sprites[:box].width + 12 + start_x = @sprites[:box].x + new_box = create_box_sprite(new_box_number) + new_box.x = start_x + offset_x + timer_start = System.uptime + loop do + @sprites[:box].x = lerp(start_x, start_x - offset_x, 0.25, timer_start, System.uptime) + new_box.x = @sprites[:box].x + offset_x + update + Graphics.update + break if new_box.x == start_x + end + @sprites[:box].dispose + @sprites[:box] = new_box + Input.update + # Tidy up + @sprites[:cursor].visible = true + @storage.currentBox = new_box_number + @box = new_box_number + refresh_side_pane + mosaic_pokemon_sprite + end + + def go_to_previous_box(new_box_number = -1) + @sprites[:side_pane].pokemon = nil if !holding_pokemon? + new_box_number = (@storage.currentBox + @storage.maxBoxes - 1) % @storage.maxBoxes if new_box_number < 0 + @sprites[:cursor].visible = false + # Animate the boxes moving + offset_x = @sprites[:box].width + 12 + start_x = @sprites[:box].x + new_box = create_box_sprite(new_box_number) + new_box.x = start_x - offset_x + timer_start = System.uptime + loop do + @sprites[:box].x = lerp(start_x, start_x + offset_x, 0.25, timer_start, System.uptime) + new_box.x = @sprites[:box].x - offset_x + update + Graphics.update + break if new_box.x == start_x + end + @sprites[:box].dispose + @sprites[:box] = new_box + Input.update + # Tidy up + @sprites[:cursor].visible = true + @storage.currentBox = new_box_number + @box = new_box_number + refresh_side_pane + mosaic_pokemon_sprite + end + + def show_party_panel + pbSEPlay("GUI storage show party panel") + @sprites[:cursor].visible = false + @sprites[:side_pane].pokemon = nil if !holding_pokemon? + start_y = @sprites[:party_panel].y # Graphics.height + timer_start = System.uptime + loop do + @sprites[:party_panel].y = lerp(start_y, start_y - @sprites[:party_panel].height, + 0.4, timer_start, System.uptime) + update + Graphics.update + break if @sprites[:party_panel].y == start_y - @sprites[:party_panel].height + end + Input.update + @box = -1 + set_index(0) + mosaic_pokemon_sprite + @sprites[:cursor].visible = true + end + + def hide_party_panel + pbSEPlay("GUI storage hide party panel") + @sprites[:cursor].visible = false + @sprites[:side_pane].pokemon = nil if !holding_pokemon? + start_y = @sprites[:party_panel].y # Graphics.height - @sprites[:party_panel].height + timer_start = System.uptime + loop do + @sprites[:party_panel].y = lerp(start_y, start_y + @sprites[:party_panel].height, + 0.4, timer_start, System.uptime) + self.update + Graphics.update + break if @sprites[:party_panel].y == start_y + @sprites[:party_panel].height + end + Input.update + @box = @storage.currentBox + set_index(-2) # Party button + mosaic_pokemon_sprite + @sprites[:cursor].visible = true + end + + #----------------------------------------------------------------------------- + + def animate_cursor(anim_method) + @sprites[:cursor].send(anim_method) + loop do + Graphics.update + update_visuals + break if !@sprites[:cursor].animating? + end + end + + def pick_up_pokemon + pbSEPlay("GUI storage pick up") + deselect_pokemon + # Animate cursor moving down to grab the Pokémon + animate_cursor(:pick_up_animation_1) + # Move Pokémon to cursor + sprite_key = (@box >= 0) ? :box : :party_panel + spr = @sprites[sprite_key].pokemon_icon(@index) + @sprites[:cursor].held_pokemon = spr.pokemon + spr.pokemon = nil + @sprites[sprite_key].reset_pokemon_icon_position(@index) + # Animate cursor moving back up holding the picked-up Pokémon + animate_cursor(:pick_up_animation_2) + Input.update + end + + def swap_pokemon + pbSEPlay("GUI storage pick up") + # Move Pokémon between cursor and slot + held_pkmn = pokemon + slot_pkmn = slot_pokemon + sprite_key = (@box >= 0) ? :box : :party_panel + spr = @sprites[sprite_key].pokemon_icon(@index) + @sprites[:cursor].held_pokemon = slot_pkmn + spr.pokemon = held_pkmn + @sprites[sprite_key].reset_pokemon_icon_position(@index) + mosaic_pokemon_sprite(true) + end + + def put_down_pokemon + pbSEPlay("GUI storage put down") + # Animate cursor moving down to put down the held Pokémon + animate_cursor(:put_down_animation_1) + # Move Pokémon to slot + sprite_key = (@box >= 0) ? :box : :party_panel + spr = @sprites[sprite_key].pokemon_icon(@index) + spr.pokemon = @sprites[:cursor].held_pokemon + @sprites[:cursor].held_pokemon = nil + # Animate cursor moving back up after putting down the held Pokémon + animate_cursor(:put_down_animation_2) + Input.update + end + + # Called when interacting with a Pokémon in the box. Automatically puts that + # Pokemon into the party. + def withdraw_pokemon + old_index = @index + pick_up_pokemon if !holding_pokemon? + show_party_panel + set_index(@storage.party.length) + put_down_pokemon + hide_party_panel + set_index(old_index) + end + + # Called when interacting with a Pokémon in the party. Automatically puts that + # Pokemon into the box. + def store_pokemon(new_box, new_index) + pick_up_pokemon if !holding_pokemon? + hide_party_panel + old_index = @index + if new_box != @box + pbPlayCursorSE + (new_box > @box) ? go_to_next_box(new_box) : go_to_previous_box(new_box) + end + set_index(new_index) + put_down_pokemon + yield if block_given? + refresh_party_panel + show_party_panel + end + + def release_pokemon(skip_anim = false) + deselect_pokemon + sprite = pokemon_icon + if !skip_anim + timer_start = System.uptime + loop do + Graphics.update + update_visuals + sprite.zoom_x = lerp(1.0, 0.0, 1.5, timer_start, System.uptime) + sprite.zoom_y = sprite.zoom_x + sprite.opacity = lerp(255, 0, 1.5, timer_start, System.uptime) + break if sprite.opacity == 0 + end + Input.update + sprite.zoom_x = 1.0 + sprite.zoom_y = 1.0 + sprite.opacity = 255 + end + sprite.pokemon = nil + end + + def mosaic_pokemon_sprite(forced = false) + return if !forced && holding_pokemon? + @sprites[:side_pane].mosaic_pokemon_sprite if pokemon + end + + #----------------------------------------------------------------------------- + + def pick_up_item + pbSEPlay("GUI storage pick up") + # Animate cursor moving down to grab the item + animate_cursor(:pick_up_animation_1) + # Move item to cursor + @sprites[:cursor].held_item = pokemon.item + pokemon.item = nil + refresh_side_pane + @sprites[:box].set_visible_proc(@visible_proc) + @sprites[:party_panel].set_visible_proc(@visible_proc) + # Animate cursor moving back up holding the picked-up item + animate_cursor(:pick_up_animation_2) + Input.update + end + + def swap_items + pbSEPlay("GUI storage pick up") + # Move item from slot Pokémon to cursor + @sprites[:cursor].held_item = pokemon.item + end + + def put_down_item + pbSEPlay("GUI storage put down") + # Animate cursor moving down to put down the held item + animate_cursor(:put_down_animation_1) + # Move item to slot Pokémon + pokemon.item = @sprites[:cursor].held_item + @sprites[:cursor].held_item = nil + refresh_side_pane + @sprites[:box].set_visible_proc(@visible_proc) + @sprites[:party_panel].set_visible_proc(@visible_proc) + # Animate cursor moving back up after putting down the held item + animate_cursor(:put_down_animation_2) + Input.update + end + + #----------------------------------------------------------------------------- + + def choose_box(message, start_box = -1) + start_box = @storage.currentBox if start_box < 0 + commands = {} + @storage.maxBoxes.times do |i| + box = @storage[i] + commands[i] = _INTL("{1} ({2}/{3})", box.name, box.nitems, box.length) if box + end + return show_menu(message, commands, commands.keys.index(start_box) || 0) + end + + #----------------------------------------------------------------------------- + + def position_speech_box(text) + @sprites[:speech_box].resizeHeightToFit(text, Graphics.width - @sprites[:side_pane].width) + pbBottomRight(@sprites[:speech_box]) + end + + # Replaces the version in class UI::BaseVisuals because the speech box needs + # to be positioned differently. + def show_choice_message(text, options, index = 0, align: :vertical, cmd_side: :right) + ret = -1 + commands = options + commands = options.values if options.is_a?(Hash) + @sprites[:speech_box].visible = true + @sprites[:speech_box].text = text + using(cmd_window = Window_AdvancedCommandPokemon.new(commands)) do + position_speech_box(text) + cmd_window.viewport = @viewport + cmd_window.z = @sprites[:speech_box].z + 1 + pbBottomRight(cmd_window) + cmd_window.height = [cmd_window.height, Graphics.height - @sprites[:speech_box].height].min + cmd_window.y = Graphics.height - @sprites[:speech_box].height - cmd_window.height + cmd_window.visible = !@sprites[:speech_box].busy? + cmd_window.index = index + loop do + Graphics.update + Input.update + update_visuals + cmd_window.visible = true if !@sprites[:speech_box].busy? + cmd_window.update + if !@sprites[:speech_box].busy? + if Input.trigger?(Input::BACK) + pbPlayCancelSE + ret = -1 + break + elsif Input.trigger?(Input::USE) && @sprites[:speech_box].resume + pbPlayDecisionSE + ret = cmd_window.index + break + end + end + end + end + @sprites[:speech_box].visible = false + if options.is_a?(Hash) + ret = (ret < 0) ? nil : options.keys[ret] + end + return ret + end + + def choose_box_wallpaper(text, options, index = 0) + original_index = index + ret = -1 + commands = options + commands = options.values if options.is_a?(Hash) + old_letter_by_letter = @sprites[:speech_box].letterbyletter + @sprites[:speech_box].letterbyletter = false + @sprites[:speech_box].visible = true + @sprites[:speech_box].text = text + @sprites[:box].fade_all_pokemon + using(cmd_window = Window_AdvancedCommandPokemon.new(commands)) do + position_speech_box(text) + cmd_window.viewport = @viewport + cmd_window.z = @sprites[:speech_box].z + 1 + pbBottomLeft(cmd_window) + cmd_window.width = @sprites[:side_pane].width + cmd_window.height = [cmd_window.height, Graphics.height].min + cmd_window.y = Graphics.height - cmd_window.height + cmd_window.visible = !@sprites[:speech_box].busy? + cmd_window.index = index + loop do + Graphics.update + Input.update + update_visuals + cmd_window.visible = true if !@sprites[:speech_box].busy? + old_index = cmd_window.index + cmd_window.update + if cmd_window.index != old_index + paper_num = (options.is_a?(Hash)) ? options.keys[cmd_window.index] : cmd_window.index + @sprites[:box].set_box_background(paper_num) + end + if !@sprites[:speech_box].busy? + if Input.trigger?(Input::BACK) + pbPlayCancelSE + ret = -1 + break + elsif Input.trigger?(Input::USE) && @sprites[:speech_box].resume + pbPlayDecisionSE + ret = cmd_window.index + break + end + end + end + end + if options.is_a?(Hash) + ret = (ret < 0) ? nil : options.keys[ret] + end + @sprites[:speech_box].letterbyletter = old_letter_by_letter + @sprites[:speech_box].visible = false + @sprites[:box].unfade_all_pokemon + @sprites[:box].set_box_background(options.keys[original_index]) if ret.nil? + return ret + end + + #----------------------------------------------------------------------------- + + def refresh + super + refresh_box + refresh_side_pane + refresh_party_panel + refresh_buttons + refresh_cursor_position + end + + def refresh_box + @sprites[:box].refresh + end + + def refresh_side_pane + return if holding_pokemon? # Selected Pokémon is always the held one + refresh_selected_pokemon + end + + def refresh_party_panel + @sprites[:party_panel].refresh + end + + def refresh_selected_pokemon + @sprites[:side_pane].pokemon = pokemon + end + + def refresh_buttons + if [:organize, :choose_pokemon].include?(@mode) + draw_text(_INTL("Party: {1}", @storage.party.length), 270, 334, align: :center, outline: :outline) + end + if @mode != :deposit + draw_text(_INTL("Exit"), 446, 334, align: :center, outline: :outline) + end + end + + def refresh_cursor_position + if showing_party_panel? + if @index < 0 # Back button + @sprites[:cursor].x = 236 + @sprites[:cursor].y = 220 + else + coords = @sprites[:party_panel].pokemon_coords(@index) + @sprites[:cursor].x = @sprites[:party_panel].x + coords[0] - 32 + @sprites[:cursor].y = @sprites[:party_panel].y + coords[1] - 64 + end + return + end + case @index + when -1 # Box name + @sprites[:cursor].x = 314 + @sprites[:cursor].y = -24 + when -2 # Party Pokémon button + @sprites[:cursor].x = 238 + @sprites[:cursor].y = 278 + when -3 # Close Box button + @sprites[:cursor].x = 414 + @sprites[:cursor].y = 278 + else # Box space + coords = @sprites[:box].pokemon_coords(@index) + @sprites[:cursor].x = @sprites[:box].x + coords[0] - 32 + @sprites[:cursor].y = @sprites[:box].y + coords[1] - 64 + end + end + + def refresh_on_index_changed(old_index) + refresh_cursor_position + refresh_side_pane + end + + def refresh_markings_cursor + case @marking_index + when 6 # OK + @sprites[:marking_cursor].x = 318 + @sprites[:marking_cursor].y = 196 + @sprites[:marking_cursor].src_rect.y = @sprites[:marking_cursor].bitmap.height / 2 + when 7 # Cancel + @sprites[:marking_cursor].x = 318 + @sprites[:marking_cursor].y = 260 + @sprites[:marking_cursor].src_rect.y = @sprites[:marking_cursor].bitmap.height / 2 + else + @sprites[:marking_cursor].x = 318 + (58 * (@marking_index % 3)) + @sprites[:marking_cursor].y = 96 + (50 * (@marking_index / 3)) + @sprites[:marking_cursor].src_rect.y = 0 + end + end + + def refresh_markings_panel + # Set values to use when drawing the markings panel + marking_x = 334 + marking_y = 106 + marking_spacing_x = 42 + MARKING_WIDTH + marking_spacing_y = 34 + MARKING_HEIGHT + markings_per_row = 3 + mark_variants = @bitmaps[:markings].bitmap.height / MARKING_HEIGHT + # Clear the bitmap + @sprites[:marking_overlay].bitmap.clear + # Draw marking icons + (@bitmaps[:markings].bitmap.width / MARKING_WIDTH).times do |i| + src_x = i * MARKING_WIDTH + src_y = [(@markings[i] || 0), mark_variants - 1].min * MARKING_HEIGHT + draw_image(@bitmaps[:markings], + marking_x + (marking_spacing_x * (i % markings_per_row)), + marking_y + (marking_spacing_y * (i / markings_per_row)), + src_x, src_y, MARKING_WIDTH, MARKING_HEIGHT, + overlay: :marking_overlay) + end + # Draw text + draw_text(_INTL("OK"), 400, 216, align: :center, outline: :outline, overlay: :marking_overlay) + draw_text(_INTL("Cancel"), 400, 280, align: :center, outline: :outline, overlay: :marking_overlay) + end + + #----------------------------------------------------------------------------- + + def update_input + deselect_pokemon + # Check for movement to a new Pokémon/button + old_index = @index + update_cursor_movement + if @index != old_index + pbPlayCursorSE + set_index(@index) + end + # Check for interaction + if Input.trigger?(Input::USE) + return update_interaction(Input::USE) + elsif Input.trigger?(Input::BACK) + return update_interaction(Input::BACK) + elsif Input.trigger?(Input::ACTION) + return update_interaction(Input::ACTION) + elsif Input.repeat?(Input::JUMPUP) + return update_interaction(Input::JUMPUP) + elsif Input.repeat?(Input::JUMPDOWN) + return update_interaction(Input::JUMPDOWN) + end + return nil + end + + def update_cursor_movement + if showing_party_panel? + update_cursor_movement_party + return + end + if Input.repeat?(Input::UP) + case @index + when -1 # Box name + @index = (@mode == :withdraw) ? -3 : -2 # Exit button : Party button + when -2 # Party button + @index = PokemonBox::BOX_SIZE - 1 - (PokemonBox::BOX_WIDTH * 2 / 3) # 25 + when -3 # Exit button + @index = PokemonBox::BOX_SIZE - (PokemonBox::BOX_WIDTH / 3) # 28 + else + @index -= PokemonBox::BOX_WIDTH + @index = -1 if @index < 0 # Box name + end + elsif Input.repeat?(Input::DOWN) + case @index + when -1 # Box name + @index = PokemonBox::BOX_WIDTH / 3 # 2 + when -2, -3 # Party button, Exit button + @index = -1 # Box name + else + @index += PokemonBox::BOX_WIDTH + if @index >= PokemonBox::BOX_SIZE + if @index < PokemonBox::BOX_SIZE + (PokemonBox::BOX_WIDTH / 2) && @mode != :withdraw + @index = -2 # Party button + else + @index = -3 # Exit button + end + end + end + end + if Input.repeat?(Input::LEFT) + if @index == -1 # Box name + pbPlayCursorSE + go_to_previous_box + elsif @index == -2 # Party button + @index = -3 # Exit button + elsif @index == -3 # Exit button + @index = -2 if @mode != :withdraw # Party button + elsif (@index % PokemonBox::BOX_WIDTH) == 0 # Wrap around + @index += PokemonBox::BOX_WIDTH - 1 + else + @index -= 1 + end + elsif Input.repeat?(Input::RIGHT) + if @index == -1 # Box name + pbPlayCursorSE + go_to_next_box + elsif @index == -2 # Party button + @index = -3 # Exit button + elsif @index == -3 # Exit button + @index = -2 if @mode != :withdraw # Party button + elsif (@index % PokemonBox::BOX_WIDTH) == PokemonBox::BOX_WIDTH - 1 # Wrap around + @index -= PokemonBox::BOX_WIDTH - 1 + else + @index += 1 + end + end + end + + # The Back button is at @index -2. + def update_cursor_movement_party + if Input.repeat?(Input::UP) + if @index == -2 # Back button + @index = Settings::MAX_PARTY_SIZE - 1 + else + @index -= 2 + @index = -2 if @index < 0 # Back button + end + elsif Input.repeat?(Input::DOWN) + if @index == -2 # Back button + @index = 0 + else + @index += 2 + @index = -2 if @index >= Settings::MAX_PARTY_SIZE # Back button + end + end + if Input.repeat?(Input::LEFT) + @index -= 1 + @index = Settings::MAX_PARTY_SIZE - 1 if @index < -2 + @index = -2 if @index < 0 # Back button + elsif Input.repeat?(Input::RIGHT) + @index += 1 + @index = 0 if @index < 0 + @index = -2 if @index >= Settings::MAX_PARTY_SIZE # Back button + end + end + + def update_interaction(input) + case input + when Input::USE + if @index == -1 # Box name + pbPlayDecisionSE + return :interact_box_name_menu + elsif @index == -2 # Party button, or Back button in party panel + pbPlayDecisionSE + return :exit_screen if @mode == :deposit + return (showing_party_panel?) ? :hide_party_panel : :show_party_panel + elsif @index == -3 # Exit button + pbPlayDecisionSE + return :exit_screen + else + if pokemon + return :rearrange_pokemon if @sub_mode == :rearrange_pokemon + return :rearrange_items if @sub_mode == :rearrange_items + pbPlayDecisionSE + select_pokemon + return :interact_menu + end + end + when Input::ACTION + if can_access_screen_menu? + pbPlayDecisionSE + return :screen_menu + end + when Input::BACK + pbPlayCancelSE + if showing_party_panel? + return (@mode == :deposit) ? :exit_screen : :hide_party_panel + end + return :clear_sub_mode if (@sub_mode || :normal) != :normal + return :exit_screen + when Input::JUMPUP + pbPlayCursorSE + go_to_previous_box + when Input::JUMPDOWN + pbPlayCursorSE + go_to_next_box + end + return nil + end + + #----------------------------------------------------------------------------- + + # NOTE: This is hardcoded to assume there are 6 marks, arranged in a 3x2 grid, + # with an OK and Cancel button below. + def update_input_marking + # Check for movement to a new option + if Input.repeat?(Input::UP) + if @marking_index == 7 # Cancel + @marking_index = 6 + elsif @marking_index == 6 # OK + @marking_index = 4 + elsif @marking_index < 3 + @marking_index = 7 + else + @marking_index -= 3 + end + elsif Input.repeat?(Input::DOWN) + if @marking_index == 7 # Cancel + @marking_index = 1 + elsif @marking_index == 6 # OK + @marking_index = 7 + elsif @marking_index >= 3 + @marking_index = 6 + else + @marking_index += 3 + end + elsif Input.repeat?(Input::LEFT) + if @marking_index < 6 + @marking_index -= 1 + @marking_index += 3 if (@marking_index % 3) == 2 + end + elsif Input.repeat?(Input::RIGHT) + if @marking_index < 6 + @marking_index += 1 + @marking_index -= 3 if (@marking_index % 3) == 0 + end + end + # Check for interaction + if Input.trigger?(Input::USE) + pbPlayDecisionSE + case @marking_index + when 6 # OK + return true + when 7 # Cancel + @marking_index = -1 + return true + else # Change marking + mark_variants = @bitmaps[:markings].bitmap.height / MARKING_HEIGHT + @markings[@marking_index] = ((@markings[@marking_index] || 0) + 1) % mark_variants + refresh_markings_panel + end + elsif Input.trigger?(Input::BACK) + pbPlayCloseMenuSE + @marking_index = -1 + return true + elsif Input.trigger?(Input::ACTION) + if @marking_index < 6 && @markings[@marking_index] > 0 + pbPlayDecisionSE + @markings[@marking_index] = 0 + refresh_markings_panel + end + end + return false + end + + def navigate_markings + help_text = _INTL("Mark your Pokémon.") + help_window = Window_AdvancedTextPokemon.newWithSize( + help_text, 180, 0, Graphics.width - 180, 32, @viewport + ) + help_window.z = 2000 + help_window.setSkin(MessageConfig.pbGetSpeechFrame) + help_window.letterbyletter = false + help_window.resizeHeightToFit(help_text, Graphics.width - 180) + pbBottomRight(help_window) + # Setup + @sprites[:marking_bg].visible = true + @sprites[:marking_overlay].visible = true + @sprites[:marking_cursor].visible = true + @markings = pokemon.markings.clone + @marking_index = 0 + refresh_markings_panel + refresh_markings_cursor + # Navigate loop + loop do + Graphics.update + Input.update + update_visuals + old_marking_index = @marking_index + break if update_input_marking + if @marking_index != old_marking_index + pbPlayCursorSE + refresh_markings_panel + refresh_markings_cursor + end + end + # Clean up + @sprites[:marking_bg].visible = false + @sprites[:marking_overlay].visible = false + @sprites[:marking_cursor].visible = false + pokemon.markings = @markings if @marking_index >= 0 + @marking_index = nil + help_window.dispose + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PokemonStorage < UI::BaseScreen + attr_reader :storage + + SCREEN_ID = :pokemon_storage_screen + + # mode is one of: + # :withdraw + # :deposit + # :organize + # :choose_pokemon + def initialize(storage, mode: :organize) + @storage = storage + @mode = mode + super() + end + + def initialize_visuals + @visuals = UI::PokemonStorageVisuals.new(@storage, @mode) + end + + def start_screen + pbSEPlay("PC access") + super + end + + def end_screen + pbSEPlay("PC close") + super + end + + #----------------------------------------------------------------------------- + + # Returns the "active" Pokémon, i.e. the one that gets interacted with and is + # shown in the side pane. + def pokemon + return @visuals.pokemon + end + + def slot_pokemon + return @visuals.slot_pokemon + end + + # Returns whether the cursor is holding a Pokémon. + def holding_pokemon? + return @visuals.holding_pokemon? + end + + def item + return @visuals.item + end + + def holding_item? + return @visuals.holding_item? + end + + # -1 is the party, 0+ is a box. + def box + return @visuals.box + end + + def choose_box(message, start_box = -1) + return @visuals.choose_box(message, start_box) + end + + def set_index(new_index) + @visuals.set_index(new_index) + end + + def set_sub_mode(sub_mode = :normal) + @visuals.set_sub_mode(sub_mode) + end + + def party_able_count + return @storage.party.count { |pkmn| pkmn.able? } + end + + def deselect_pokemon + @visuals.deselect_pokemon + end + + #----------------------------------------------------------------------------- + + def refresh_selected_pokemon + @visuals.refresh_selected_pokemon + end + + def refresh_box + @visuals.refresh_box + end +end + +#=============================================================================== +# Actions that can be triggered in the Pokémon storage screen. +#=============================================================================== +# Shows a choice menu using the MenuHandlers options below. +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :screen_menu, { + :menu => :storage_screen_menu, + :menu_message => proc { |screen| _INTL("What do you want to do?") } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :rearrange_pokemon_mode, { + :effect => proc { |screen| + if screen.holding_item? + screen.show_message(_INTL("You're holding an item!")) + next + end + screen.set_sub_mode(:rearrange_pokemon) + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :rearrange_items_mode, { + :effect => proc { |screen| + if screen.holding_pokemon? + screen.show_message(_INTL("You're holding a Pokémon!")) + next + end + screen.set_sub_mode(:rearrange_items) + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :clear_sub_mode, { + :effect => proc { |screen| + if screen.holding_pokemon? + screen.show_message(_INTL("You're holding a Pokémon!")) + next + elsif screen.holding_item? + item_name = GameData::Item.get(screen.item).name + if screen.show_confirm_message(_INTL("Put the {1} in your Bag?", item_name)) + $bag.add(screen.item) + screen.visuals.sprites[:cursor].held_item = nil + end + next + end + screen.set_sub_mode(:normal) + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :rearrange_pokemon, { + :effect => proc { |screen| + if screen.holding_pokemon? + if screen.slot_pokemon + screen.perform_action(:swap_pokemon) + else + screen.perform_action(:put_down_pokemon) + end + else + screen.perform_action(:pick_up_pokemon) + end + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :rearrange_items, { + :effect => proc { |screen| + next if !screen.slot_pokemon + if screen.holding_item? + if screen.slot_pokemon && screen.slot_pokemon.hasItem? + screen.perform_action(:swap_items) + else + screen.perform_action(:put_down_item) + end + elsif screen.slot_pokemon && screen.slot_pokemon.hasItem? + screen.perform_action(:pick_up_item) + end + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :pick_up_item, { + :effect => proc { |screen| + next if screen.holding_item? || !screen.slot_pokemon || !screen.slot_pokemon.hasItem? + if screen.slot_pokemon.mail + screen.show_message("You can't move mail.") + next + end + screen.visuals.pick_up_item + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :swap_items, { + :effect => proc { |screen| + next if !screen.holding_item? || !screen.slot_pokemon || !screen.slot_pokemon.hasItem? + held_item = screen.item + slot_pkmn = screen.slot_pokemon + if slot_pkmn.mail + screen.show_message("You can't move mail.") + next + end + screen.visuals.swap_items + slot_pkmn.item = held_item + screen.refresh_selected_pokemon + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :put_down_item, { + :effect => proc { |screen| + next if !screen.holding_item? || !screen.slot_pokemon || screen.slot_pokemon.hasItem? + pkmn = screen.slot_pokemon + screen.visuals.put_down_item + } +}) + +#------------------------------------------------------------------------------- + +# Shows a choice menu using the MenuHandlers options below. +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :interact_menu, { + :menu => :storage_pokemon_interact, + :menu_message => proc { |screen| _INTL("Do what with {1}?", screen.pokemon.name) } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :select_pokemon, { + :returns_value => true, + :effect => proc { |screen| + if screen.slot_pokemon + screen.result = [screen.box, screen.index] + next :quit + end + next nil + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :pick_up_pokemon, { + :effect => proc { |screen| + raise _INTL("Tried picking up a Pokémon when holding one.") if screen.holding_pokemon? + raise _INTL("Position {1},{2} is empty...", screen.box, screen.index) if !screen.slot_pokemon + if screen.box < 0 && screen.slot_pokemon.able? && screen.party_able_count <= 1 + pbPlayBuzzerSE + screen.show_message(_INTL("That's your last Pokémon!")) + next + end + screen.visuals.pick_up_pokemon + screen.storage.pbDelete(screen.box, screen.index) + screen.refresh + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :swap_pokemon, { + :effect => proc { |screen| + raise _INTL("Tried swapping a Pokémon when not holding one.") if !screen.holding_pokemon? + raise _INTL("Position {1},{2} is empty...", screen.box, screen.index) if !screen.slot_pokemon + held_pkmn = screen.pokemon + slot_pkmn = screen.slot_pokemon + if screen.box >= 0 + if screen.index >= @storage.maxPokemon(screen.box) + screen.show_message("Can't place that there.") + next + elsif held_pkmn.mail + screen.show_message("Please remove the mail.") + next + elsif held_pkmn.cannot_store + screen.show_message(_INTL("{1} refuses to go into storage!", held_pkmn.name)) + next + end + elsif screen.box < 0 && slot_pkmn.able? && screen.party_able_count <= 1 && !held_pkmn.able? + pbPlayBuzzerSE + screen.show_message(_INTL("That's your last Pokémon!")) + next + end + screen.visuals.swap_pokemon + screen.storage[screen.box, screen.index] = held_pkmn + if Settings::HEAL_STORED_POKEMON && screen.box >= 0 + old_ready_evo = held_pkmn.ready_to_evolve + held_pkmn.heal + held_pkmn.ready_to_evolve = old_ready_evo + end + screen.refresh + screen.refresh_selected_pokemon + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :put_down_pokemon, { + :effect => proc { |screen| + raise _INTL("Tried placing a Pokémon when not holding one.") if !screen.holding_pokemon? + raise _INTL("Position {1},{2} is not empty...", screen.box, screen.index) if screen.slot_pokemon + pkmn = screen.pokemon # The held Pokémon + if screen.box >= 0 + if screen.index >= screen.storage.maxPokemon(screen.box) + screen.show_message("Can't place that there.") + next + elsif pkmn.mail + screen.show_message("Please remove the mail.") + next + elsif pkmn.cannot_store + screen.show_message(_INTL("{1} refuses to go into storage!", pkmn.name)) + next + end + end + screen.visuals.put_down_pokemon + screen.storage[screen.box, screen.index] = pkmn + screen.storage.party.compact! if screen.box < 0 + if Settings::HEAL_STORED_POKEMON && screen.box >= 0 + old_ready_evo = pkmn.ready_to_evolve + pkmn.heal + pkmn.ready_to_evolve = old_ready_evo + end + screen.refresh + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :summary, { + :effect => proc { |screen| + pbFadeOutInWithUpdate(screen.sprites) do + screen.deselect_pokemon + if screen.holding_pokemon? + UI::PokemonSummary.new(screen.pokemon, 0).main + else + party = (screen.box >= 0) ? screen.storage[screen.box].pokemon : screen.storage[screen.box] + new_index = UI::PokemonSummary.new(party, screen.index).main + screen.set_index(new_index) + end + end + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :withdraw, { + :effect => proc { |screen| + screen.perform_action(:withdraw_pokemon) + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :withdraw_pokemon, { + :effect => proc { |screen| + raise _INTL("Can't withdraw from party...") if screen.box < 0 + if screen.storage.party_full? + screen.show_message(_INTL("Your party's full!")) + next + end + was_holding = screen.holding_pokemon? + pkmn = screen.pokemon + screen.visuals.withdraw_pokemon + if was_holding + screen.storage.pbMoveCaughtToParty(pkmn) + else + screen.storage.pbMove(-1, -1, screen.box, screen.index) + end + screen.refresh + screen.refresh_selected_pokemon + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :store, { + :effect => proc { |screen| + screen.perform_action(:store_pokemon) + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :store_pokemon, { + :effect => proc { |screen| + raise _INTL("Can't deposit from box...") if screen.box >= 0 + was_holding = screen.holding_pokemon? + pkmn = screen.pokemon + if pkmn.able? && screen.party_able_count <= 1 && !screen.holding_pokemon? + pbPlayBuzzerSE + screen.show_message(_INTL("That's your last Pokémon!")) + next + elsif pkmn.mail + screen.show_message("Please remove the mail.") + next + elsif pkmn.cannot_store + screen.show_message(_INTL("{1} refuses to go into storage!", pkmn.name)) + next + end + old_box = screen.box + old_index = screen.index + loop do + new_box = screen.choose_box(_INTL("Deposit in which Box?"), old_box) + break if !new_box + new_index = screen.storage.pbFirstFreePos(new_box) + if new_index < 0 + screen.show_message(_INTL("The Box is full.")) + next + end + screen.visuals.store_pokemon(new_box, new_index) { + if was_holding + screen.storage.pbMoveCaughtToBox(pkmn, new_box) + else + screen.storage.pbMove(new_box, new_index, old_box, old_index) + end + } + screen.refresh + screen.refresh_selected_pokemon + break + end + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :give_or_take_item, { + :effect => proc { |screen| + pkmn = screen.pokemon + if pkmn.egg? + screen.show_message(_INTL("Eggs can't hold items.")) + next + elsif pkmn.mail + screen.show_message(_INTL("Please remove the mail.")) + next + end + # Take an item + if pkmn.hasItem? + item_name = pkmn.item.portion_name + if screen.show_confirm_message(_INTL("Take the {1}?", item_name)) + if $bag.add(pkmn.item) + pkmn.item = nil + screen.refresh + screen.show_message(_INTL("Took the {1}.", item_name)) + else + screen.show_message(_INTL("Can't store the {1}.", item_name)) + end + end + screen.deselect_pokemon + next + end + # Give an item + new_item = nil + pbFadeOutInWithUpdate(screen.sprites) do + bag_screen = UI::Bag.new($bag, mode: :choose_item) + bag_screen.set_filter_proc(proc { |itm| GameData::Item.get(itm).can_hold? }) + new_item = bag_screen.choose_item + screen.deselect_pokemon if !new_item + end + if new_item + item_name = GameData::Item.get(new_item).name + pkmn.item = new_item + $bag.remove(new_item) + screen.refresh + screen.show_message(_INTL("{1} is now being held.", item_name)) + screen.deselect_pokemon + end + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :mark_pokemon, { + :effect => proc { |screen| + screen.visuals.navigate_markings + screen.deselect_pokemon + screen.refresh + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :release_pokemon, { + :effect => proc { |screen| + raise _INTL("Tried releasing a Pokémon when not selecting or holding one.", screen.box, screen.index) if !screen.pokemon + pkmn = screen.pokemon + if pkmn.egg? + screen.show_message(_INTL("You can't release an Egg.")) + next + elsif pkmn.mail + screen.show_message(_INTL("Please remove the mail.")) + next + elsif pkmn.cannot_release + screen.show_message(_INTL("{1} refuses to leave you!", pkmn.name)) + next + elsif screen.box < 0 && pkmn.able? && screen.party_able_count <= 1 && !screen.holding_pokemon? + pbPlayBuzzerSE + screen.show_message(_INTL("That's your last Pokémon!")) + next + end + if screen.show_confirm_serious_message(_INTL("Release this Pokémon?")) + $bag.add(pkmn.item_id) if pkmn.hasItem? + pkmn_name = pkmn.name + screen.visuals.release_pokemon + screen.storage.pbDelete(screen.box, screen.index) if !screen.holding_pokemon? + screen.refresh + screen.show_message(_INTL("{1} was released.", pkmn_name)) + screen.show_message(_INTL("Bye-bye, {1}!", pkmn_name)) + $stats.pokemon_release_count += 1 + end + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :debug, { + :effect => proc { |screen| + screen.pokemon_debug_menu(screen.pokemon, [screen.box, screen.index]) + } +}) + +#------------------------------------------------------------------------------- + +# Shows a choice menu using the MenuHandlers options below. +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :interact_box_name_menu, { + :menu => :storage_box_interact, + :menu_message => proc { |screen| _INTL("Choose an option.") } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :jump_to_box, { + :effect => proc { |screen| + new_box = screen.choose_box(_INTL("Jump to which Box?")) + next if !new_box || new_box == box + (new_box > box) ? screen.visuals.go_to_next_box(new_box) : screen.visuals.go_to_previous_box(new_box) + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :rename_box, { + :effect => proc { |screen| + pbFadeOutInWithUpdate(screen.sprites) do + ret = pbEnterBoxName(_INTL("Box name?"), 0, 16) + if ret.length > 0 + screen.storage[screen.storage.currentBox].name = ret + screen.refresh_box + end + end + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :change_box_wallpaper, { + :effect => proc { |screen| + papers = screen.storage.availableWallpapers + old_paper = screen.storage[screen.storage.currentBox].background + index = papers.keys.index(old_paper) || 0 + new_paper = screen.visuals.choose_box_wallpaper(_INTL("Pick the wallpaper."), papers, index) + if new_paper && new_paper != old_paper + screen.storage[screen.storage.currentBox].background = new_paper + screen.refresh_box + end + } +}) + +#------------------------------------------------------------------------------- + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :show_party_panel, { + :effect => proc { |screen| + screen.visuals.show_party_panel + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :hide_party_panel, { + :effect => proc { |screen| + screen.visuals.hide_party_panel + } +}) + +UIActionHandlers.add(UI::PokemonStorage::SCREEN_ID, :exit_screen, { + :returns_value => true, + :effect => proc { |screen| + if screen.holding_pokemon? + screen.show_message(_INTL("You're holding a Pokémon!")) + next nil + elsif screen.holding_item? + screen.show_message(_INTL("You're holding an item!")) + next nil + end + next :quit if screen.show_confirm_message(_INTL("Exit from the Box?")) + next nil + } +}) + +#=============================================================================== +# Menu options for choice menus that exist in the Pokémon storage screen. +#=============================================================================== +MenuHandlers.add(:storage_screen_menu, :rearrange_pokemon_mode, { + "name" => _INTL("Mode: Switch Pokémon"), + "order" => 10 +}) + +MenuHandlers.add(:storage_screen_menu, :rearrange_items_mode, { + "name" => _INTL("Mode: Switch items"), + "order" => 20 +}) + +MenuHandlers.add(:storage_screen_menu, :cancel, { + "name" => _INTL("Cancel"), + "order" => 9999 +}) + +#------------------------------------------------------------------------------- + +# NOTE: This option is first in withdraw mode. +MenuHandlers.add(:storage_pokemon_interact, :withdraw, { + "name" => _INTL("Withdraw"), + "order" => 10, + "condition" => proc { |screen| next screen.mode == :withdraw && screen.box >= 0 } +}) + +# NOTE: This option is first in store mode. +MenuHandlers.add(:storage_pokemon_interact, :store, { + "name" => _INTL("Store"), + "order" => 10, + "condition" => proc { |screen| next screen.mode == :deposit && screen.box < 0 } +}) + +# NOTE: This option is for when in "choose a Pokémon" mode. +MenuHandlers.add(:storage_pokemon_interact, :select_pokemon, { + "name" => _INTL("Select"), + "order" => 10, + "condition" => proc { |screen| next screen.mode == :choose_pokemon } +}) + +MenuHandlers.add(:storage_pokemon_interact, :pick_up_pokemon, { + "name" => _INTL("Move"), + "order" => 20, + "condition" => proc { |screen| next screen.mode == :organize && !screen.holding_pokemon? } +}) + +MenuHandlers.add(:storage_pokemon_interact, :swap_pokemon, { + "name" => _INTL("Shift"), + "order" => 20, + "condition" => proc { |screen| next screen.mode == :organize && screen.holding_pokemon? && screen.slot_pokemon } +}) + +MenuHandlers.add(:storage_pokemon_interact, :put_down_pokemon, { + "name" => _INTL("Place"), + "order" => 20, + "condition" => proc { |screen| next screen.mode == :organize && screen.holding_pokemon? && !screen.slot_pokemon } +}) + +MenuHandlers.add(:storage_pokemon_interact, :summary, { + "name" => _INTL("Summary"), + "order" => 30 +}) + +MenuHandlers.add(:storage_pokemon_interact, :withdraw_pokemon, { + "name" => _INTL("Withdraw"), + "order" => 40, + "condition" => proc { |screen| next screen.mode == :organize && screen.box >= 0 } +}) + +MenuHandlers.add(:storage_pokemon_interact, :store_pokemon, { + "name" => _INTL("Store"), + "order" => 40, + "condition" => proc { |screen| next screen.mode == :organize && screen.box < 0 } +}) + +MenuHandlers.add(:storage_pokemon_interact, :give_or_take_item, { + "name" => _INTL("Item"), + "order" => 50, + "condition" => proc { |screen| next screen.mode == :organize } +}) + +MenuHandlers.add(:storage_pokemon_interact, :mark_pokemon, { + "name" => _INTL("Mark"), + "order" => 60 +}) + +MenuHandlers.add(:storage_pokemon_interact, :release_pokemon, { + "name" => _INTL("Release"), + "order" => 70, + "condition" => proc { |screen| next screen.mode != :choose_pokemon } +}) + +MenuHandlers.add(:storage_pokemon_interact, :debug, { + "name" => _INTL("Debug"), + "order" => 80, + "condition" => proc { |screen| next $DEBUG } +}) + +MenuHandlers.add(:storage_pokemon_interact, :cancel, { + "name" => _INTL("Cancel"), + "order" => 9999 +}) + +#------------------------------------------------------------------------------- + +MenuHandlers.add(:storage_box_interact, :jump_to_box, { + "name" => _INTL("Jump to box"), + "order" => 10 +}) + +MenuHandlers.add(:storage_box_interact, :rename_box, { + "name" => _INTL("Rename box"), + "order" => 20 +}) + +MenuHandlers.add(:storage_box_interact, :change_box_wallpaper, { + "name" => _INTL("Change wallpaper"), + "order" => 30 +}) + +MenuHandlers.add(:storage_box_interact, :cancel, { + "name" => _INTL("Cancel"), + "order" => 9999 +}) diff --git a/Data/Scripts/016b_UI redesign/019_UI_PC.rb b/Data/Scripts/016b_UI redesign/019_UI_PC.rb new file mode 100644 index 000000000..76dd6ab37 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/019_UI_PC.rb @@ -0,0 +1,271 @@ +#=============================================================================== +# TODO: Make this code more consistent between having methods in the module and +# code in MenuHandlers. +#=============================================================================== +module UI::PC + module_function + + def pbGetStorageCreator + return GameData::Metadata.get.storage_creator + end + + #----------------------------------------------------------------------------- + + def pbPokeCenterPC + pbMessage("\\se[PC open]" + _INTL("{1} booted up the PC.", $player.name)) + # Get all commands + command_list = [] + commands = [] + MenuHandlers.each_available(:pc_menu) do |option, hash, name| + command_list.push(name) + commands.push(hash) + end + # Main loop + command = 0 + loop do + choice = pbMessage(_INTL("Which PC should be accessed?"), command_list, -1, nil, command) + break if choice < 0 + break if commands[choice]["effect"].call + end + pbSEPlay("PC close") + end + + def pbTrainerPC + pbMessage("\\se[PC open]" + _INTL("{1} booted up the PC.", $player.name)) + pbTrainerPCMenu + pbSEPlay("PC close") + end + + def pbTrainerPCMenu + commands = { + :item_storage => _INTL("Item Storage"), + :mailbox => _INTL("Mailbox"), + :turn_off => _INTL("Turn off") + } + command = 0 + loop do + command = pbMessage(_INTL("What do you want to do?"), commands.values, -1, nil, command) + case commands.keys[command] + when :item_storage + pbPlayDecisionSE + pbPCItemStorage + when :mailbox + if !$PokemonGlobal.mailbox || $PokemonGlobal.mailbox.length == 0 + pbMessage(_INTL("There's no Mail here.")) + next + end + pbPlayDecisionSE + pbPCMailbox + else + break + end + end + end + + #----------------------------------------------------------------------------- + + def pbPCItemStorage + $PokemonGlobal.pcItemStorage ||= PCItemStorage.new + commands = { + :withdraw => [_INTL("Withdraw Item"), _INTL("Take out items from the PC.")], + :deposit => [_INTL("Deposit Item"), _INTL("Store items in the PC.")], + :toss => [_INTL("Toss Item"), _INTL("Throw away items stored in the PC.")], + :exit => [_INTL("Exit"), _INTL("Go back to the previous menu.")] + } + command = 0 + loop do + commands.values.map { |val| val[0] } + command = pbShowCommandsWithHelp(nil, commands.values.map { |val| val[0] }, + commands.values.map { |val| val[1] }, -1, command) + break if command < 0 + case commands.keys[command] + when :withdraw + if $PokemonGlobal.pcItemStorage.empty? + pbMessage(_INTL("There are no items.")) + else + pbPlayDecisionSE + pbFadeOutIn do + scene = WithdrawItemScene.new + screen = ItemStorageScreen.new(scene, $bag) + screen.pbWithdrawItemScreen + end + end + when :deposit + pbPlayDecisionSE + item_storage = $PokemonGlobal.pcItemStorage + pbFadeOutIn do + bag_screen = UI::Bag.new($bag, mode: :choose_item) + given_item = bag_screen.choose_item do |item| + item_data = GameData::Item.get(item) + qty = $bag.quantity(item) + if qty > 1 && !item_data.is_important? + qty = bag_screen.choose_number(_INTL("How many do you want to deposit?"), qty) + end + next false if qty == 0 + if !item_storage.can_add?(item, qty) + raise "Can't delete items from Bag" if !$bag.remove(item, qty) + raise "Can't deposit items to storage" if !item_storage.add(item, qty) + bag_screen.refresh + disp_qty = (item_data.is_important?) ? 1 : qty + item_name = (disp_qty > 1) ? item_data.portion_name_plural : item_data.portion_name + bag_screen.show_message(_INTL("Deposited {1} {2}.", disp_qty, item_name)) + else + bag_screen.show_message(_INTL("There's no room to store items.")) + end + next false + end + end + when :toss + if $PokemonGlobal.pcItemStorage.empty? + pbMessage(_INTL("There are no items.")) + else + pbPlayDecisionSE + pbFadeOutIn do + scene = TossItemScene.new + screen = ItemStorageScreen.new(scene, $bag) + screen.pbTossItemScreen + end + end + else + break + end + end + end + + #----------------------------------------------------------------------------- + + def pbPCMailbox + command = 0 + loop do + commands = [] + $PokemonGlobal.mailbox.each { |mail| commands.push(mail.sender) } + commands.push(_INTL("Cancel")) + mail_index = pbShowCommands(nil, commands, -1, command) + break if mail_index < 0 || mail_index >= $PokemonGlobal.mailbox.length + interact_commands = { + :read => _INTL("Read"), + :move_to_bag => _INTL("Move to Bag"), + :give => _INTL("Give"), + :cancel => _INTL("Cancel") + } + command_mail = pbMessage( + _INTL("What do you want to do with {1}'s Mail?", $PokemonGlobal.mailbox[mail_index].sender), + interact_commands.values, -1 + ) + case interact_commands.keys[command_mail] + when :read + pbPlayDecisionSE + pbFadeOutIn { pbDisplayMail($PokemonGlobal.mailbox[mail_index]) } + when :move_to_bag + if pbConfirmMessage(_INTL("The message will be lost. Is that OK?")) + if $bag.add($PokemonGlobal.mailbox[mail_index].item) + pbMessage(_INTL("The Mail was returned to the Bag with its message erased.")) + $PokemonGlobal.mailbox.delete_at(mail_index) + else + pbMessage(_INTL("The Bag is full.")) + end + end + when :give + pbPlayDecisionSE + pbFadeOutIn do + screen = UI::Party.new($player.party, mode: :choose_pokemon) + screen.choose_pokemon do |pkmn, party_index| + next true if party_index < 0 + if pkmn.egg? + screen.show_message(_INTL("Eggs can't hold mail.")) + elsif pkmn.hasItem? || pkmn.mail + screen.show_message(_INTL("This Pokémon is holding an item. It can't hold mail.")) + else + pkmn.mail = $PokemonGlobal.mailbox[mail_index] + $PokemonGlobal.mailbox.delete_at(mail_index) + screen.refresh + screen.show_message(_INTL("Mail was transferred from the Mailbox.")) + next true + end + next false + end + end + else + pbPlayDecisionSE + end + end + end +end + +#=============================================================================== +# +#=============================================================================== +MenuHandlers.add(:pc_menu, :pokemon_storage, { + "name" => proc { + next ($player.seen_storage_creator) ? _INTL("{1}'s PC", UI::PC.pbGetStorageCreator) : _INTL("Someone's PC") + }, + "order" => 10, + "effect" => proc { |menu| + pbMessage("\\se[PC access]" + _INTL("The Pokémon Storage System was opened.")) + commands = { + :organize => [_INTL("Organize Boxes"), _INTL("Organize the Pokémon in Boxes and in your party.")], + :withdraw => [_INTL("Withdraw Pokémon"), _INTL("Move Pokémon stored in Boxes to your party.")], + :deposit => [_INTL("Deposit Pokémon"), _INTL("Store Pokémon in your party in Boxes.")], + :quit => [_INTL("See ya!"), _INTL("Return to the previous menu.")] + } + command = 0 + loop do + command = pbShowCommandsWithHelp(nil, commands.values.map { |val| val[0] }, + commands.values.map { |val| val[1] }, -1, command) + break if command < 0 + case commands.keys[command] + when :organize + pbPlayDecisionSE + pbFadeOutIn do + UI::PokemonStorage.new($PokemonStorage, mode: :organize).main + end + when :withdraw + if $PokemonStorage.party_full? + pbMessage(_INTL("Your party is full!")) + next + end + pbPlayDecisionSE + pbFadeOutIn do + UI::PokemonStorage.new($PokemonStorage, mode: :withdraw).main + end + when :deposit + if $player.able_pokemon_count <= 1 + pbMessage(_INTL("Can't deposit the last Pokémon!")) + next + end + pbPlayDecisionSE + pbFadeOutIn do + UI::PokemonStorage.new($PokemonStorage, mode: :deposit).main + end + else + break + end + end + next false + } +}) + +MenuHandlers.add(:pc_menu, :player_pc, { + "name" => proc { next _INTL("{1}'s PC", $player.name) }, + "order" => 20, + "effect" => proc { |menu| + pbMessage("\\se[PC access]" + _INTL("Accessed {1}'s PC.", $player.name)) + UI::PC.pbTrainerPCMenu + next false + } +}) + +MenuHandlers.add(:pc_menu, :close, { + "name" => _INTL("Log off"), + "order" => 999, + "effect" => proc { |menu| + next true + } +}) + +#=============================================================================== +# +#=============================================================================== +def pbPokeCenterPC + UI::PC.pbPokeCenterPC +end diff --git a/Data/Scripts/016b_UI redesign/020_UI_PokeMart.rb b/Data/Scripts/016b_UI redesign/020_UI_PokeMart.rb new file mode 100644 index 000000000..de5986b17 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/020_UI_PokeMart.rb @@ -0,0 +1,544 @@ +#=============================================================================== +# +#=============================================================================== +class UI::MartStockWrapper + def initialize(stock) + @stock = stock + refresh + end + + def length + return @stock.length + end + + def [](index) + return @stock[index] + end + + def buy_price(item) + return 0 if item.nil? + if $game_temp.mart_prices && $game_temp.mart_prices[item] + return $game_temp.mart_prices[item][0] if $game_temp.mart_prices[item][0] > 0 + end + return GameData::Item.get(item).price + end + + def buy_price_string(item) + price = buy_price(item) + return _INTL("${1}", price.to_s_formatted) + end + + def sell_price(item) + return 0 if item.nil? + if $game_temp.mart_prices && $game_temp.mart_prices[item] + return $game_temp.mart_prices[item][1] if $game_temp.mart_prices[item][1] >= 0 + end + return GameData::Item.get(item).sell_price + end + + def refresh + @stock.delete_if { |itm| GameData::Item.get(itm).is_important? && $bag.has?(itm) } + end +end + +#=============================================================================== +# Pokémon Mart. +#=============================================================================== +class UI::MartVisualsList < Window_DrawableCommand + def initialize(stock, x, y, width, height, viewport = nil) + @stock = stock + super(x, y, width, height, viewport) + @selarrow = AnimatedBitmap.new(bag_folder + "cursor") + @baseColor = UI::MartVisuals::TEXT_COLOR_THEMES[:black][0] + @shadowColor = UI::MartVisuals::TEXT_COLOR_THEMES[:black][1] + self.windowskin = nil + end + + #----------------------------------------------------------------------------- + + def itemCount + return @stock.length + 1 # The extra 1 is the Cancel option + end + + def bag_folder + return UI::MartVisuals::UI_FOLDER + UI::MartVisuals::GRAPHICS_FOLDER + end + + def item_id + return (self.index >= @stock.length) ? nil : @stock[self.index] + end + + def expensive_base_color=(value) + @expensive_base_color = value + end + + def expensive_shadow_color=(value) + @expensive_shadow_color = value + end + + def expensive?(this_item) + return @stock.buy_price(this_item) > $player.money + end + + #----------------------------------------------------------------------------- + + # This draws all the visible options first, and then draws the cursor. + def refresh + @item_max = itemCount + update_cursor_rect + dwidth = self.width - self.borderX + dheight = self.height - self.borderY + self.contents = pbDoEnsureBitmap(self.contents, dwidth, dheight) + self.contents.clear + @item_max.times do |i| + next if i < self.top_item || i > self.top_item + self.page_item_max + drawItem(i, @item_max, itemRect(i)) + end + drawCursor(self.index, itemRect(self.index)) + end + + def drawItem(index, count, rect) + textpos = [] + rect = drawCursor(index, rect) + ypos = rect.y + this_item = @stock[index] + if this_item + # Draw item name + item_name = GameData::Item.get(this_item).display_name + textpos.push([item_name, rect.x, ypos + 2, :left, self.baseColor, self.shadowColor]) + # Draw item price + price = @stock.buy_price_string(this_item) + price_width = self.contents.text_size(price).width + price_x = rect.x + rect.width - price_width - 2 - 16 + expensive = expensive?(this_item) + price_base_color = (expensive) ? @expensive_base_color || self.baseColor : self.baseColor + price_shadow_color = (expensive) ? @expensive_shadow_color || self.shadowColor : self.shadowColor + textpos.push([price, price_x, ypos + 2, :left, price_base_color, price_shadow_color]) + else + textpos.push([_INTL("CANCEL"), rect.x, ypos + 2, :left, self.baseColor, self.shadowColor]) + end + pbDrawTextPositions(self.contents, textpos) + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::MartVisuals < UI::BaseVisuals + attr_reader :pocket + + GRAPHICS_FOLDER = "Mart/" # Subfolder in Graphics/UI + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(248, 248, 248), Color.new(56, 56, 56)], # Base and shadow colour + :white => [Color.new(248, 248, 248), Color.new(56, 56, 56)], + :black => [Color.new(88, 88, 80), Color.new(168, 184, 184)], + :expensive => [Color.new(224, 0, 0), Color.new(248, 144, 144)] + } + ITEMS_VISIBLE = 7 + + def initialize(stock, bag) + @stock = stock + @bag = bag + super() + end + + def initialize_sprites + initialize_item_list + initialize_item_sprites + initialize_money_window + initialize_bag_quantity_window + end + + def initialize_item_list + @sprites[:item_list] = UI::MartVisualsList.new(@stock, 152, 10, 374, 38 + (ITEMS_VISIBLE * 32), @viewport) + @sprites[:item_list].expensive_base_color = TEXT_COLOR_THEMES[:expensive][0] + @sprites[:item_list].expensive_shadow_color = TEXT_COLOR_THEMES[:expensive][1] + @sprites[:item_list].active = false + end + + def initialize_item_sprites + # Selected item's icon + @sprites[:item_icon] = ItemIconSprite.new(48, Graphics.height - 48, nil, @viewport) + # Selected item's description text box + @sprites[:item_description] = Window_UnformattedTextPokemon.newWithSize( + "", 80, 272, Graphics.width - 98, 128, @viewport + ) + @sprites[:item_description].baseColor = TEXT_COLOR_THEMES[:white][0] + @sprites[:item_description].shadowColor = TEXT_COLOR_THEMES[:white][1] + @sprites[:item_description].visible = true + @sprites[:item_description].windowskin = nil + end + + def initialize_money_window + @sprites[:money_window] = Window_AdvancedTextPokemon.newWithSize("", 0, 0, 162, 96, @viewport) + @sprites[:money_window].setSkin("Graphics/Windowskins/goldskin") + @sprites[:money_window].baseColor = TEXT_COLOR_THEMES[:black][0] + @sprites[:money_window].shadowColor = TEXT_COLOR_THEMES[:black][1] + @sprites[:money_window].letterbyletter = false + @sprites[:money_window].visible = true + end + + def initialize_bag_quantity_window + @sprites[:bag_quantity_window] = Window_AdvancedTextPokemon.newWithSize( + _INTL("In Bag:{1}", @bag.quantity(item)), 0, 0, 162, 64, @viewport + ) + @sprites[:bag_quantity_window].setSkin("Graphics/Windowskins/goldskin") + @sprites[:bag_quantity_window].baseColor = TEXT_COLOR_THEMES[:black][0] + @sprites[:bag_quantity_window].shadowColor = TEXT_COLOR_THEMES[:black][1] + @sprites[:bag_quantity_window].letterbyletter = false + @sprites[:bag_quantity_window].visible = true + @sprites[:bag_quantity_window].y = Graphics.height - 102 - @sprites[:bag_quantity_window].height + end + + #----------------------------------------------------------------------------- + + def index + return @sprites[:item_list].index + end + + def set_index(value) + @sprites[:item_list].index = value + refresh_on_index_changed(nil) + end + + def item + return @sprites[:item_list].item_id + end + + def show_money_window + @sprites[:money_window].visible = true + end + + def hide_money_window + @sprites[:money_window].visible = false + end + + def show_bag_quantity_window + @sprites[:bag_quantity_window].visible = true + end + + def hide_bag_quantity_window + @sprites[:bag_quantity_window].visible = false + end + + #----------------------------------------------------------------------------- + + def refresh + refresh_item_list + refresh_selected_item + refresh_money_window + end + + def refresh_item_list + @sprites[:item_list].refresh + end + + def refresh_selected_item + selected_item = item + # Set the selected item's icon + @sprites[:item_icon].item = selected_item + # Set the selected item's description + if selected_item + @sprites[:item_description].text = GameData::Item.get(selected_item).description + else + @sprites[:item_description].text = _INTL("Quit shopping.") + end + refresh_bag_quantity_window + end + + def refresh_bag_quantity_window + @sprites[:bag_quantity_window].text = _INTL("In Bag:{1}", @bag.quantity(item)) + (item) ? show_bag_quantity_window : hide_bag_quantity_window + end + + def refresh_money_window + @sprites[:money_window].text = _INTL("Money:\n${1}", $player.money.to_s_formatted) + end + + def refresh_on_index_changed(old_index) + refresh_selected_item + end + + #----------------------------------------------------------------------------- + + def update_input + # Check for interaction + if Input.trigger?(Input::USE) + return update_interaction(Input::USE) + elsif Input.trigger?(Input::BACK) + return update_interaction(Input::BACK) + end + return nil + end + + def update_interaction(input) + case input + when Input::USE + if item + pbPlayDecisionSE + return :interact + end + pbPlayCloseMenuSE + return :quit + when Input::BACK + pbPlayCloseMenuSE + return :quit + end + return nil + end + + def navigate + @sprites[:item_list].active = true + ret = super + @sprites[:item_list].active = false + return ret + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::Mart < UI::BaseScreen + attr_reader :stock, :bag + + SCREEN_ID = :mart_screen + + def initialize(stock, bag) + pbScrollMap(6, 5, 5) # Direction 6 (right), 5 tiles, speed 5 (cycling speed, 10 tiles/second) + @bag = bag + initialize_stock(stock) + super() + end + + def initialize_stock(stock) + @stock = UI::MartStockWrapper.new(stock) + end + + def initialize_visuals + @visuals = UI::MartVisuals.new(@stock, @bag) + end + + def start_screen + pbSEPlay("GUI menu open") + end + + def end_screen + return if @disposed + pbPlayCloseMenuSE + silent_end_screen + pbScrollMap(4, 5, 5) # Direction 4 (left), 5 tiles, speed 5 (cycling speed, 10 tiles/second) + end + + #----------------------------------------------------------------------------- + + def item + return nil if @visuals.item.nil? + return GameData::Item.get(@visuals.item) + end +end + +#=============================================================================== +# +#=============================================================================== +UIActionHandlers.add(UI::Mart::SCREEN_ID, :interact, { + :effect => proc { |screen| + item = screen.item + item_price = screen.stock.buy_price(item) + # Check affordability + if $player.money < item_price + screen.show_message(_INTL("You don't have enough money.")) + next + end + # Choose how many of the item to buy + quantity = 0 + if item.is_important? + quantity = 1 + next if !screen.show_confirm_message( + _INTL("So you want the {1}?\nIt'll be ${2}. All right?", + item.portion_name, item_price.to_s_formatted) + ) + else + max_quantity = (item_price <= 0) ? PokemonBag::MAX_PER_SLOT : $player.money / item_price + max_quantity = [max_quantity, PokemonBag::MAX_PER_SLOT].min + quantity = screen.choose_number_as_money_multiplier( + _INTL("How many {1} would you like?", item.portion_name_plural), item_price, max_quantity + ) + next if quantity == 0 + item_price *= quantity + if quantity > 1 + next if !screen.show_confirm_message( + _INTL("So you want {1} {2}?\nThey'll be ${3}. All right?", + quantity, item.portion_name_plural, item_price.to_s_formatted) + ) + elsif quantity > 0 + next if !screen.show_confirm_message( + _INTL("So you want {1} {2}?\nIt'll be ${3}. All right?", + quantity, item.portion_name, item_price.to_s_formatted) + ) + end + end + # Check affordability (should always be possible, but just make sure) + if $player.money < item_price + screen.show_message(_INTL("You don't have enough money.")) + next + end + # Check the item can be put in the Bag + if !screen.bag.can_add?(item.id, quantity) + screen.show_message(_INTL("You have no room in your Bag.")) + next + end + # Add the bought item(s) + screen.bag.add(item.id, quantity) + $stats.money_spent_at_marts += item_price + $stats.mart_items_bought += quantity + $player.money -= item_price + screen.stock.refresh + screen.refresh + screen.show_message(_INTL("Here you are! Thank you!")) { pbSEPlay("Mart buy item") } + # Give bonus Premier Ball(s) + if quantity >= 10 && item.is_poke_ball? && GameData::Item.exists?(:PREMIERBALL) + if Settings::MORE_BONUS_PREMIER_BALLS || item.id == :POKEBALL + premier_balls_earned = (Settings::MORE_BONUS_PREMIER_BALLS) ? (quantity / 10) : 1 + premier_balls_added = 0 + premier_balls_earned.times do + break if !screen.bag.add(:PREMIERBALL) + premier_balls_added += 1 + end + if premier_balls_added > 0 + $stats.premier_balls_earned += premier_balls_added + if premier_balls_added > 1 + ball_name = GameData::Item.get(:PREMIERBALL).portion_name_plural + else + ball_name = GameData::Item.get(:PREMIERBALL).portion_name + end + screen.show_message(_INTL("And have {1} {2} on the house!", premier_balls_added, ball_name)) + end + end + end + } +}) + +#=============================================================================== +# +#=============================================================================== +class UI::BagSellVisuals < UI::BagVisuals + def initialize(bag, stock, mode = :choose_item) + @stock = stock + super(bag, mode: mode) + end + + def initialize_sprites + super + @sprites[:money_window] = Window_AdvancedTextPokemon.newWithSize("", 0, 36, 184, 96, @viewport) + @sprites[:money_window].setSkin("Graphics/Windowskins/goldskin") + @sprites[:money_window].z = 2000 + @sprites[:money_window].baseColor = TEXT_COLOR_THEMES[:black][0] + @sprites[:money_window].shadowColor = TEXT_COLOR_THEMES[:black][1] + @sprites[:money_window].letterbyletter = false + @sprites[:money_window].visible = true + @sprites[:unit_price_window] = Window_AdvancedTextPokemon.newWithSize("", 0, 184, 184, 96, @viewport) + @sprites[:unit_price_window].setSkin("Graphics/Windowskins/goldskin") + @sprites[:unit_price_window].z = 2000 + @sprites[:unit_price_window].baseColor = TEXT_COLOR_THEMES[:black][0] + @sprites[:unit_price_window].shadowColor = TEXT_COLOR_THEMES[:black][1] + @sprites[:unit_price_window].letterbyletter = false + @sprites[:unit_price_window].visible = true + end + + def refresh + super + @sprites[:money_window].text = _INTL("Money:\n${1}", $player.money.to_s_formatted) + refresh_unit_price_window + end + + def refresh_input_indicators; end + + def refresh_unit_price_window + @sprites[:unit_price_window].visible = (!item.nil?) + return if item.nil? + price = @stock.sell_price(item) + if GameData::Item.get(item).is_important? || price == 0 + @sprites[:unit_price_window].text = _INTL("You can't sell this item.") + else + @sprites[:unit_price_window].text = _INTL("Price each:\n${1}", price.to_s_formatted) + end + end + + def refresh_on_index_changed(old_index) + super + refresh_unit_price_window + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::BagSell < UI::Bag + def initialize(bag, mode: :choose_item) + @stock = UI::MartStockWrapper.new([]) + super(bag, mode: mode) + end + + def initialize_visuals + @visuals = UI::BagSellVisuals.new(@bag, @stock, mode: @mode) + end + + def sell_items + choose_item do |item| + item_data = GameData::Item.get(item) + item_name = item_data.portion_name + item_name_plural = item_data.portion_name_plural + price = @stock.sell_price(item) + # Ensure item can be sold + if item_data.is_important? || price == 0 + show_message(_INTL("Oh, no. I can't buy {1}.", item_name_plural)) + next + end + # Choose a quantity of the item to sell + quantity = @bag.quantity(item) + if quantity > 1 + quantity = choose_number_as_money_multiplier( + _INTL("How many {1} would you like to sell?", item_name_plural), price, quantity + ) + end + next if quantity == 0 + # Sell the item(s) + price *= quantity + if show_confirm_message(_INTL("I can pay ${1}.\nWould that be OK?", price.to_s_formatted)) + @bag.remove(item, quantity) + old_money = $player.money + $player.money += price + $stats.money_earned_at_marts += $player.money - old_money + refresh + sold_item_name = (quantity > 1) ? item_name_plural : item_name + show_message(_INTL("You turned over the {1} and got ${2}.", + sold_item_name, price.to_s_formatted)) { pbSEPlay("Mart buy item") } + end + next false + end + end +end + +#=============================================================================== +# +#=============================================================================== +def pbPokemonMart(stock, speech = nil, cannot_sell = false) + commands = {} + commands[:buy] = _INTL("I'm here to buy") + commands[:sell] = _INTL("I'm here to sell") if !cannot_sell + commands[:cancel] = _INTL("No, thanks") + cmd = pbMessage(speech || _INTL("Welcome! How may I help you?"), commands.values, commands.length) + loop do + case commands.keys[cmd] + when :buy + UI::Mart.new(stock, $bag).main + when :sell + pbFadeOutIn { UI::BagSell.new($bag).sell_items } + else + pbMessage(_INTL("Do come again!")) + break + end + cmd = pbMessage(_INTL("Is there anything else I can do for you?"), commands.values, commands.length, nil, cmd) + end + $game_temp.clear_mart_prices +end diff --git a/Data/Scripts/016b_UI redesign/021_UI_BattlePointShop.rb b/Data/Scripts/016b_UI redesign/021_UI_BattlePointShop.rb new file mode 100644 index 000000000..ce9d2ee29 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/021_UI_BattlePointShop.rb @@ -0,0 +1,205 @@ +#=============================================================================== +# +#=============================================================================== +class UI::BPShopStockWrapper < UI::MartStockWrapper + def buy_price(item) + return 0 if item.nil? + if $game_temp.mart_prices && $game_temp.mart_prices[item] + return $game_temp.mart_prices[item][0] if $game_temp.mart_prices[item][0] > 0 + end + return GameData::Item.get(item).bp_price + end + + def buy_price_string(item) + price = buy_price(item) + return _INTL("{1} BP", price.to_s_formatted) + end +end + +#=============================================================================== +# Pokémon Mart. +#=============================================================================== +class UI::BPShopVisualsList < UI::MartVisualsList + def expensive?(this_item) + return @stock.buy_price(this_item) > $player.battle_points + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::BPShopVisuals < UI::MartVisuals + def initialize_item_list + @sprites[:item_list] = UI::BPShopVisualsList.new(@stock, 152, 10, 374, 38 + (ITEMS_VISIBLE * 32), @viewport) + @sprites[:item_list].expensive_base_color = TEXT_COLOR_THEMES[:expensive][0] + @sprites[:item_list].expensive_shadow_color = TEXT_COLOR_THEMES[:expensive][1] + @sprites[:item_list].active = false + end + + #----------------------------------------------------------------------------- + + # Like the one in class BaseVisuals, but shows the money as BP instead of $. + def choose_number_as_money_multiplier(help_text, money_per_unit, maximum, init_value = 1) + @sprites[:speech_box].visible = true + @sprites[:speech_box].text = help_text + pbBottomLeftLines(@sprites[:speech_box], 2) + # Show the help text + loop do + Graphics.update + Input.update + update_visuals + if @sprites[:speech_box].busy? + if Input.trigger?(Input::USE) + pbPlayDecisionSE if @sprites[:speech_box].pausing? + @sprites[:speech_box].resume + end + else + break + end + end + # Choose a quantity + item_price = money_per_unit + quantity = init_value + using(num_window = Window_AdvancedTextPokemon.newWithSize( + _INTL("×{1}{2} BP", quantity, (quantity * item_price).to_s_formatted), + 0, 0, 224, 64, @viewport)) do + num_window.z = 2000 + num_window.visible = true + num_window.letterbyletter = false + pbBottomRight(num_window) + num_window.y -= @sprites[:speech_box].height + loop do + Graphics.update + Input.update + update + num_window.update + # Change quantity + old_quantity = quantity + if Input.repeat?(Input::LEFT) + quantity = [quantity - 10, 1].max + elsif Input.repeat?(Input::RIGHT) + quantity = [quantity + 10, maximum].min + elsif Input.repeat?(Input::UP) + quantity += 1 + quantity = 1 if quantity > maximum + elsif Input.repeat?(Input::DOWN) + quantity -= 1 + quantity = maximum if quantity < 1 + end + if quantity != old_quantity + num_window.text = _INTL("×{1}{2} BP", quantity, (quantity * item_price).to_s_formatted) + pbPlayCursorSE + end + # Finish choosing a quantity + if Input.trigger?(Input::USE) + pbPlayDecisionSE + break + elsif Input.trigger?(Input::BACK) + pbPlayCancelSE + quantity = 0 + break + end + end + end + @sprites[:speech_box].visible = false + return quantity + end + + #----------------------------------------------------------------------------- + + def refresh_money_window + @sprites[:money_window].text = _INTL("BP:\n{1}", $player.battle_points.to_s_formatted) + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::BPShop < UI::Mart + SCREEN_ID = :bp_shop + + def initialize_stock(stock) + @stock = UI::BPShopStockWrapper.new(stock) + end + + def initialize_visuals + @visuals = UI::BPShopVisuals.new(@stock, @bag) + end +end + +#=============================================================================== +# +#=============================================================================== +UIActionHandlers.add(UI::BPShop::SCREEN_ID, :interact, { + :effect => proc { |screen| + item = screen.item + item_price = screen.stock.buy_price(item) + # Check affordability + if $player.battle_points < item_price + screen.show_message(_INTL("I'm sorry, you don't have enough BP.")) + next + end + # Choose how many of the item to buy + quantity = 0 + if item.is_important? + quantity = 1 + next if !screen.show_confirm_message( + _INTL("You would like the {1}?\nThat will be {2} BP.", + item.portion_name, item_price.to_s_formatted) + ) + else + max_quantity = (item_price <= 0) ? PokemonBag::MAX_PER_SLOT : $player.battle_points / item_price + max_quantity = [max_quantity, PokemonBag::MAX_PER_SLOT].min + quantity = screen.choose_number_as_money_multiplier( + _INTL("How many {1} would you like?", item.portion_name_plural), item_price, max_quantity + ) + next if quantity == 0 + item_price *= quantity + if quantity > 1 + next if !screen.show_confirm_message( + _INTL("You would like {1} {2}?\nThey'll be {3} BP.", + quantity, item.portion_name_plural, item_price.to_s_formatted) + ) + elsif quantity > 0 + next if !screen.show_confirm_message( + _INTL("You would like {1} {2}?\nThat will be {3} BP.", + quantity, item.portion_name, item_price.to_s_formatted) + ) + end + end + # Check affordability (should always be possible, but just make sure) + if $player.battle_points < item_price + screen.show_message(_INTL("I'm sorry, you don't have enough BP.")) + next + end + # Check the item can be put in the Bag + if !screen.bag.can_add?(item.id, quantity) + screen.show_message(_INTL("You have no room in your Bag.")) + next + end + # Add the bought item(s) + screen.bag.add(item.id, quantity) + $stats.battle_points_spent += item_price + $stats.mart_items_bought += quantity + $player.battle_points -= item_price + screen.stock.refresh + screen.refresh + screen.show_message(_INTL("Here you are! Thank you!")) { pbSEPlay("Mart buy item") } + } +}) + +#=============================================================================== +# +#=============================================================================== +def pbBattlePointShop(stock, speech = nil) + if speech.nil? + pbMessage(_INTL("Welcome to the Exchange Service Corner!")) + pbMessage(_INTL("We can exchange your BP for fabulous items.")) + else + pbMessage(speech) + end + UI::BPShop.new(stock, $bag).main + pbMessage(_INTL("Thank you for visiting.")) + pbMessage(_INTL("Please visit us again when you have saved up more BP.")) + $game_temp.clear_mart_prices +end diff --git a/Data/Scripts/016b_UI redesign/022_UI_MoveReminder.rb b/Data/Scripts/016b_UI redesign/022_UI_MoveReminder.rb new file mode 100644 index 000000000..af97b20e6 --- /dev/null +++ b/Data/Scripts/016b_UI redesign/022_UI_MoveReminder.rb @@ -0,0 +1,364 @@ +#=============================================================================== +# +#=============================================================================== +class UI::MoveReminderCursor < IconSprite + attr_accessor :top_index + + CURSOR_WIDTH = 258 + CURSOR_HEIGHT = 72 + CURSOR_THICKNESS = 6 + + def initialize(viewport = nil) + super(0, 0, viewport) + setBitmap("Graphics/UI/Move Reminder/cursor") + self.src_rect = Rect.new(0, 0, CURSOR_WIDTH, CURSOR_HEIGHT) + self.z = 1600 + @bg_sprite = IconSprite.new(x, y, viewport) + @bg_sprite.setBitmap("Graphics/UI/Move Reminder/cursor") + @bg_sprite.src_rect = Rect.new(0, CURSOR_HEIGHT, CURSOR_WIDTH, CURSOR_HEIGHT) + @top_index = 0 + self.index = 0 + end + + def dispose + @bg_sprite.dispose + @bg_sprite = nil + super + end + + def index=(value) + @index = value + refresh_position + end + + def visible=(value) + super + @bg_sprite.visible = value + end + + def refresh_position + return if @index < 0 + self.x = UI::MoveReminderVisuals::MOVE_LIST_X + self.y = UI::MoveReminderVisuals::MOVE_LIST_Y - CURSOR_THICKNESS + self.y += (@index - @top_index) * UI::MoveReminderVisuals::MOVE_LIST_SPACING + @bg_sprite.x = self.x + @bg_sprite.y = self.y + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::MoveReminderVisuals < UI::BaseVisuals + attr_reader :index + + GRAPHICS_FOLDER = "Move Reminder/" # Subfolder in Graphics/UI + TEXT_COLOR_THEMES = { # These color themes are added to @sprites[:overlay] + :default => [Color.new(248, 248, 248), Color.new(0, 0, 0)], # Base and shadow colour + :white => [Color.new(248, 248, 248), Color.new(0, 0, 0)], + :black => [Color.new(64, 64, 64), Color.new(176, 176, 176)], + :header => [Color.new(88, 88, 80), Color.new(168, 184, 184)] + } + MOVE_LIST_X = 0 + MOVE_LIST_Y = 84 + MOVE_LIST_SPACING = 64 # Y distance between top of two adjacent move areas + VISIBLE_MOVES = 4 + + def initialize(pokemon, moves) + @pokemon = pokemon + @moves = moves + @top_index = 0 + @index = 0 + super() + refresh_cursor + end + + def initialize_bitmaps + @bitmaps[:types] = AnimatedBitmap.new(UI_FOLDER + _INTL("types")) + @bitmaps[:buttons] = AnimatedBitmap.new(graphics_folder + "buttons") + end + + def initialize_sprites + # Pokémon icon + @sprites[:pokemon_icon] = PokemonIconSprite.new(@pokemon, @viewport) + @sprites[:pokemon_icon].setOffset(PictureOrigin::CENTER) + @sprites[:pokemon_icon].x = 314 + @sprites[:pokemon_icon].y = 84 + @sprites[:pokemon_icon].z = 200 + # Cursor + @sprites[:cursor] = UI::MoveReminderCursor.new(@viewport) + end + + #----------------------------------------------------------------------------- + + def moves=(move_list) + @moves = move_list + @index = @moves.length - 1 if @index >= @moves.length + refresh_on_index_changed(@index) + @cursor.visible = false if @moves.empty? + refresh + end + + #----------------------------------------------------------------------------- + + def refresh_overlay + super + draw_header + draw_pokemon_type_icons(396, 70, 6) + draw_moves_list + draw_move_properties + draw_buttons + end + + def draw_header + draw_text(_INTL("Teach which move?"), 16, 14, theme: :header) + end + + # x and y are the top left corner of the type icon if there is only one type. + def draw_pokemon_type_icons(x, y, spacing) + @pokemon.types.each_with_index do |type, i| + type_number = GameData::Type.get(type).icon_position + offset = ((@pokemon.types.length - 1) * (GameData::Type::ICON_SIZE[0] + spacing) / 2) + offset = (offset / 2) * 2 + type_x = x - offset + ((GameData::Type::ICON_SIZE[0] + spacing) * i) + draw_image(@bitmaps[:types], type_x, y, + 0, type_number * GameData::Type::ICON_SIZE[1], *GameData::Type::ICON_SIZE) + end + end + + def draw_moves_list + VISIBLE_MOVES.times do |i| + move = @moves[@top_index + i] + next if move.nil? + move_data = GameData::Move.get(move) + draw_move_in_list(move_data, MOVE_LIST_X, MOVE_LIST_Y + (i * MOVE_LIST_SPACING)) + end + end + + def draw_move_in_list(move_data, x, y) + # Draw move name + move_name = move_data.name + move_name = crop_text(move_name, 230) + draw_text(move_name, x + 10, y + 6) + # Draw move type icon + type_number = GameData::Type.get(move_data.display_type(@pokemon)).icon_position + draw_image(@bitmaps[:types], x + 10, y + 32, + 0, type_number * GameData::Type::ICON_SIZE[1], *GameData::Type::ICON_SIZE) + # Draw move category + draw_image(UI_FOLDER + "category", x + 76, y + 32, + 0, move_data.display_category(@pokemon) * GameData::Move::CATEGORY_ICON_SIZE[1], *GameData::Move::CATEGORY_ICON_SIZE) + # Draw PP text + if move_data.total_pp > 0 + draw_text(_INTL("PP"), x + 150, y + 38, theme: :black) + draw_text(sprintf("%d/%d", move_data.total_pp, move_data.total_pp), x + 240, y + 38, align: :right, theme: :black) + end + end + + def draw_move_properties + move = @moves[@index] + move_data = GameData::Move.get(move) + # Power + draw_text(_INTL("POWER"), 278, 120) + power_text = move_data.display_power(@pokemon) + power_text = "---" if power_text == 0 # Status move + power_text = "???" if power_text == 1 # Variable power move + draw_text(power_text, 480, 120, align: :right, theme: :black) + # Accuracy + draw_text(_INTL("ACCURACY"), 278, 152) + accuracy = move_data.display_accuracy(@pokemon) + if accuracy == 0 + draw_text("---", 480, 152, align: :right, theme: :black) + else + draw_text(accuracy, 480, 152, align: :right, theme: :black) + draw_text("%", 480, 152, theme: :black) + end + # Description + draw_paragraph_text(move_data.description, 262, 184, 246, 6, theme: :black) + end + + def draw_buttons + draw_image(@bitmaps[:buttons], 44, 350, 0, 0, 76, 32) if @top_index < @moves.length - VISIBLE_MOVES + draw_image(@bitmaps[:buttons], 132, 350, 76, 0, 76, 32) if @top_index > 0 + end + + #----------------------------------------------------------------------------- + + def refresh_cursor + @sprites[:cursor].top_index = @top_index + @sprites[:cursor].index = @index + end + + def refresh_on_index_changed(old_index) + pbPlayCursorSE + # Change @top_index to keep @index in the middle of the visible list (or as + # close to it as possible) + middle_range_top = (VISIBLE_MOVES / 2) - ((VISIBLE_MOVES + 1) % 2) + middle_range_bottom = VISIBLE_MOVES / 2 + if @index < @top_index + middle_range_top + @top_index = @index - middle_range_top + elsif @index > @top_index + middle_range_bottom + @top_index = @index - middle_range_bottom + end + @top_index = @top_index.clamp(0, [@moves.length - VISIBLE_MOVES, 0].max) + refresh_cursor + refresh + end + + #----------------------------------------------------------------------------- + + def update_input + # Check for movement to a new move + update_cursor_movement + # Check for interaction + if Input.trigger?(Input::USE) + return update_interaction(Input::USE) + elsif Input.trigger?(Input::BACK) + return update_interaction(Input::BACK) + elsif Input.trigger?(Input::ACTION) + return update_interaction(Input::ACTION) + end + return nil + end + + def update_cursor_movement + # Check for movement to a new move + if Input.repeat?(Input::UP) + @index -= 1 + if Input.trigger?(Input::UP) + @index = @moves.length - 1 if @index < 0 # Wrap around + else + @index = 0 if @index < 0 + end + elsif Input.repeat?(Input::DOWN) + @index += 1 + if Input.trigger?(Input::DOWN) + @index = 0 if @index >= @moves.length # Wrap around + else + @index = @moves.length - 1 if @index >= @moves.length + end + elsif Input.repeat?(Input::JUMPUP) + @index -= VISIBLE_MOVES + @index = 0 if @index < 0 + elsif Input.repeat?(Input::JUMPDOWN) + @index += VISIBLE_MOVES + @index = @moves.length - 1 if @index >= @moves.length + end + return false + end + + def update_interaction(input) + case input + when Input::USE + pbPlayDecisionSE + return :learn + when Input::BACK + pbPlayCloseMenuSE + return :quit + end + return nil + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::MoveReminder < UI::BaseScreen + attr_reader :pokemon + + SCREEN_ID = :move_reminder_screen + + # mode is either :normal or :single. + def initialize(pokemon, mode: :normal) + @pokemon = pokemon + @mode = mode + generate_move_list + super() + end + + def initialize_visuals + @visuals = UI::MoveReminderVisuals.new(@pokemon, @moves) + end + + #----------------------------------------------------------------------------- + + def generate_move_list + @moves = [] + return if !@pokemon || @pokemon.egg? || @pokemon.shadowPokemon? + @pokemon.getMoveList.each do |move| + next if move[0] > @pokemon.level || @pokemon.hasMove?(move[1]) + @moves.push(move[1]) if !@moves.include?(move[1]) + end + if Settings::MOVE_RELEARNER_CAN_TEACH_MORE_MOVES && @pokemon.first_moves + first_moves = [] + @pokemon.first_moves.each do |move| + first_moves.push(move) if !@moves.include?(move) && !@pokemon.hasMove?(move) + end + @moves = first_moves + @moves # List first moves before level-up moves + end + @moves = @moves | [] # remove duplicates + end + + def refresh_move_list + generate_move_list + @visuals.moves = @moves + end + + #----------------------------------------------------------------------------- + + def move + return @moves[self.index] + end + + #----------------------------------------------------------------------------- + + def main + return if @disposed + start_screen + loop do + on_start_main_loop + command = @visuals.navigate + break if command == :quit && (@mode == @normal || + show_confirm_message(_INTL("Give up trying to teach a new move to {1}?", @pokemon.name))) + perform_action(command) + if @moves.empty? + show_message(_INTL("There are no more moves for {1} to learn.", @pokemon.name)) + break + end + if @disposed + @result = true + break + end + end + end_screen + return @result + end +end + +#=============================================================================== +# Actions that can be triggered in the Move Reminder screen. +#=============================================================================== +UIActionHandlers.add(UI::MoveReminder::SCREEN_ID, :learn, { + :effect => proc { |screen| + if screen.show_confirm_message(_INTL("Teach {1}?", GameData::Move.get(screen.move).name)) + if pbLearnMove(screen.pokemon, screen.move, false, false, screen) + $stats.moves_taught_by_reminder += 1 + if screen.mode == :normal + screen.refresh_move_list + else + screen.end_screen + end + end + end + } +}) + +#=============================================================================== +# +#=============================================================================== +def pbRelearnMoveScreen(pkmn) + ret = true + pbFadeOutIn do + ret = UI::MoveReminder.new(pkmn, mode: :single).main + end + return ret +end diff --git a/Data/Scripts/016c_UI_old/001_UI_old_PauseMenu.rb b/Data/Scripts/016c_UI_old/001_UI_old_PauseMenu.rb new file mode 100644 index 000000000..ec198a30e --- /dev/null +++ b/Data/Scripts/016c_UI_old/001_UI_old_PauseMenu.rb @@ -0,0 +1,130 @@ +=begin +#=============================================================================== +# +#=============================================================================== +class PokemonPauseMenu_Scene + def pbStartScene + @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) + @viewport.z = 99999 + @sprites = {} + @sprites["cmdwindow"] = Window_CommandPokemon.new([]) + @sprites["cmdwindow"].visible = false + @sprites["cmdwindow"].viewport = @viewport + @sprites["infowindow"] = Window_UnformattedTextPokemon.newWithSize("", 0, 0, 32, 32, @viewport) + @sprites["infowindow"].visible = false + @sprites["helpwindow"] = Window_UnformattedTextPokemon.newWithSize("", 0, 0, 32, 32, @viewport) + @sprites["helpwindow"].visible = false + @infostate = false + @helpstate = false + pbSEPlay("GUI menu open") + end + + def pbShowInfo(text) + @sprites["infowindow"].resizeToFit(text, Graphics.height) + @sprites["infowindow"].text = text + @sprites["infowindow"].visible = true + @infostate = true + end + + def pbShowHelp(text) + @sprites["helpwindow"].resizeToFit(text, Graphics.height) + @sprites["helpwindow"].text = text + @sprites["helpwindow"].visible = true + pbBottomLeft(@sprites["helpwindow"]) + @helpstate = true + end + + def pbShowMenu + @sprites["cmdwindow"].visible = true + @sprites["infowindow"].visible = @infostate + @sprites["helpwindow"].visible = @helpstate + end + + def pbHideMenu + @sprites["cmdwindow"].visible = false + @sprites["infowindow"].visible = false + @sprites["helpwindow"].visible = false + end + + def pbShowCommands(commands) + ret = -1 + cmdwindow = @sprites["cmdwindow"] + cmdwindow.commands = commands + cmdwindow.index = $game_temp.menu_last_choice + cmdwindow.resizeToFit(commands) + cmdwindow.x = Graphics.width - cmdwindow.width + cmdwindow.y = 0 + cmdwindow.visible = true + loop do + cmdwindow.update + Graphics.update + Input.update + pbUpdateSceneMap + if Input.trigger?(Input::BACK) || Input.trigger?(Input::ACTION) + ret = -1 + break + elsif Input.trigger?(Input::USE) + ret = cmdwindow.index + $game_temp.menu_last_choice = ret + break + end + end + return ret + end + + def pbEndScene + pbDisposeSpriteHash(@sprites) + @viewport.dispose + end + + def pbRefresh; end +end + +#=============================================================================== +# +#=============================================================================== +class PokemonPauseMenu + def initialize(scene) + @scene = scene + end + + def pbShowMenu + @scene.pbRefresh + @scene.pbShowMenu + end + + def pbShowInfo; end + + def pbStartPokemonMenu + if !$player + if $DEBUG + pbMessage(_INTL("The player trainer was not defined, so the pause menu can't be displayed.")) + pbMessage(_INTL("Please see the documentation to learn how to set up the trainer player.")) + end + return + end + @scene.pbStartScene + # Show extra info window if relevant + pbShowInfo + # Get all commands + command_list = [] + commands = [] + MenuHandlers.each_available(:pause_menu) do |option, hash, name| + command_list.push(name) + commands.push(hash) + end + # Main loop + end_scene = false + loop do + choice = @scene.pbShowCommands(command_list) + if choice < 0 + pbPlayCloseMenuSE + end_scene = true + break + end + break if commands[choice]["effect"].call(@scene) + end + @scene.pbEndScene if end_scene + end +end +=end diff --git a/Data/Scripts/016_UI/005_UI_Party.rb b/Data/Scripts/016c_UI_old/005_UI_old_Party.rb similarity index 90% rename from Data/Scripts/016_UI/005_UI_Party.rb rename to Data/Scripts/016c_UI_old/005_UI_old_Party.rb index ff04c7ff9..e31337181 100644 --- a/Data/Scripts/016_UI/005_UI_Party.rb +++ b/Data/Scripts/016c_UI_old/005_UI_old_Party.rb @@ -1,3 +1,4 @@ +=begin #=============================================================================== # Pokémon party buttons and menu. #=============================================================================== @@ -9,13 +10,13 @@ class PokemonPartyConfirmCancelSprite < Sprite @refreshBitmap = true @bgsprite = ChangelingSprite.new(0, 0, viewport) if narrowbox - @bgsprite.addBitmap("desel", "Graphics/UI/Party/icon_cancel_narrow") - @bgsprite.addBitmap("sel", "Graphics/UI/Party/icon_cancel_narrow_sel") + @bgsprite.add_bitmap(:desel, "Graphics/UI/Party/icon_cancel_narrow") + @bgsprite.add_bitmap(:sel, "Graphics/UI/Party/icon_cancel_narrow_sel") else - @bgsprite.addBitmap("desel", "Graphics/UI/Party/icon_cancel") - @bgsprite.addBitmap("sel", "Graphics/UI/Party/icon_cancel_sel") + @bgsprite.add_bitmap(:desel, "Graphics/UI/Party/icon_cancel") + @bgsprite.add_bitmap(:sel, "Graphics/UI/Party/icon_cancel_sel") end - @bgsprite.changeBitmap("desel") + @bgsprite.change_bitmap(:desel) @overlaysprite = BitmapSprite.new(@bgsprite.bitmap.width, @bgsprite.bitmap.height, viewport) @overlaysprite.z = self.z + 1 pbSetSystemFont(@overlaysprite.bitmap) @@ -61,7 +62,7 @@ class PokemonPartyConfirmCancelSprite < Sprite def refresh if @bgsprite && !@bgsprite.disposed? - @bgsprite.changeBitmap((@selected) ? "sel" : "desel") + @bgsprite.change_bitmap((@selected) ? :sel : :desel) @bgsprite.x = self.x @bgsprite.y = self.y @bgsprite.color = self.color @@ -184,31 +185,31 @@ class PokemonPartyPanel < Sprite @panelbgsprite = ChangelingSprite.new(0, 0, viewport) @panelbgsprite.z = self.z if @active # Rounded panel - @panelbgsprite.addBitmap("able", "Graphics/UI/Party/panel_round") - @panelbgsprite.addBitmap("ablesel", "Graphics/UI/Party/panel_round_sel") - @panelbgsprite.addBitmap("fainted", "Graphics/UI/Party/panel_round_faint") - @panelbgsprite.addBitmap("faintedsel", "Graphics/UI/Party/panel_round_faint_sel") - @panelbgsprite.addBitmap("swap", "Graphics/UI/Party/panel_round_swap") - @panelbgsprite.addBitmap("swapsel", "Graphics/UI/Party/panel_round_swap_sel") - @panelbgsprite.addBitmap("swapsel2", "Graphics/UI/Party/panel_round_swap_sel2") + @panelbgsprite.add_bitmap(:able, "Graphics/UI/Party/panel_round") + @panelbgsprite.add_bitmap(:ablesel, "Graphics/UI/Party/panel_round_sel") + @panelbgsprite.add_bitmap(:fainted, "Graphics/UI/Party/panel_round_faint") + @panelbgsprite.add_bitmap(:faintedsel, "Graphics/UI/Party/panel_round_faint_sel") + @panelbgsprite.add_bitmap(:swap, "Graphics/UI/Party/panel_round_swap") + @panelbgsprite.add_bitmap(:swapsel, "Graphics/UI/Party/panel_round_swap_sel") + @panelbgsprite.add_bitmap(:swapsel2, "Graphics/UI/Party/panel_round_swap_sel2") else # Rectangular panel - @panelbgsprite.addBitmap("able", "Graphics/UI/Party/panel_rect") - @panelbgsprite.addBitmap("ablesel", "Graphics/UI/Party/panel_rect_sel") - @panelbgsprite.addBitmap("fainted", "Graphics/UI/Party/panel_rect_faint") - @panelbgsprite.addBitmap("faintedsel", "Graphics/UI/Party/panel_rect_faint_sel") - @panelbgsprite.addBitmap("swap", "Graphics/UI/Party/panel_rect_swap") - @panelbgsprite.addBitmap("swapsel", "Graphics/UI/Party/panel_rect_swap_sel") - @panelbgsprite.addBitmap("swapsel2", "Graphics/UI/Party/panel_rect_swap_sel2") + @panelbgsprite.add_bitmap(:able, "Graphics/UI/Party/panel_rect") + @panelbgsprite.add_bitmap(:ablesel, "Graphics/UI/Party/panel_rect_sel") + @panelbgsprite.add_bitmap(:fainted, "Graphics/UI/Party/panel_rect_faint") + @panelbgsprite.add_bitmap(:faintedsel, "Graphics/UI/Party/panel_rect_faint_sel") + @panelbgsprite.add_bitmap(:swap, "Graphics/UI/Party/panel_rect_swap") + @panelbgsprite.add_bitmap(:swapsel, "Graphics/UI/Party/panel_rect_swap_sel") + @panelbgsprite.add_bitmap(:swapsel2, "Graphics/UI/Party/panel_rect_swap_sel2") end @hpbgsprite = ChangelingSprite.new(0, 0, viewport) @hpbgsprite.z = self.z + 1 - @hpbgsprite.addBitmap("able", _INTL("Graphics/UI/Party/overlay_hp_back")) - @hpbgsprite.addBitmap("fainted", _INTL("Graphics/UI/Party/overlay_hp_back_faint")) - @hpbgsprite.addBitmap("swap", _INTL("Graphics/UI/Party/overlay_hp_back_swap")) + @hpbgsprite.add_bitmap(:able, _INTL("Graphics/UI/Party/overlay_hp_back")) + @hpbgsprite.add_bitmap(:fainted, _INTL("Graphics/UI/Party/overlay_hp_back_faint")) + @hpbgsprite.add_bitmap(:swap, _INTL("Graphics/UI/Party/overlay_hp_back_swap")) @ballsprite = ChangelingSprite.new(0, 0, viewport) @ballsprite.z = self.z + 1 - @ballsprite.addBitmap("desel", "Graphics/UI/Party/icon_ball") - @ballsprite.addBitmap("sel", "Graphics/UI/Party/icon_ball_sel") + @ballsprite.add_bitmap(:desel, "Graphics/UI/Party/icon_ball") + @ballsprite.add_bitmap(:sel, "Graphics/UI/Party/icon_ball_sel") @pkmnsprite = PokemonIconSprite.new(pokemon, viewport) @pkmnsprite.setOffset(PictureOrigin::CENTER) @pkmnsprite.active = @active @@ -296,21 +297,21 @@ class PokemonPartyPanel < Sprite return if !@panelbgsprite || @panelbgsprite.disposed? if self.selected if self.preselected - @panelbgsprite.changeBitmap("swapsel2") + @panelbgsprite.change_bitmap(:swapsel2) elsif @switching - @panelbgsprite.changeBitmap("swapsel") + @panelbgsprite.change_bitmap(:swapsel) elsif @pokemon.fainted? - @panelbgsprite.changeBitmap("faintedsel") + @panelbgsprite.change_bitmap(:faintedsel) else - @panelbgsprite.changeBitmap("ablesel") + @panelbgsprite.change_bitmap(:ablesel) end else if self.preselected - @panelbgsprite.changeBitmap("swap") + @panelbgsprite.change_bitmap(:swap) elsif @pokemon.fainted? - @panelbgsprite.changeBitmap("fainted") + @panelbgsprite.change_bitmap(:fainted) else - @panelbgsprite.changeBitmap("able") + @panelbgsprite.change_bitmap(:able) end end @panelbgsprite.x = self.x @@ -323,11 +324,11 @@ class PokemonPartyPanel < Sprite @hpbgsprite.visible = (!@pokemon.egg? && !(@text && @text.length > 0)) return if !@hpbgsprite.visible if self.preselected || (self.selected && @switching) - @hpbgsprite.changeBitmap("swap") + @hpbgsprite.change_bitmap(:swap) elsif @pokemon.fainted? - @hpbgsprite.changeBitmap("fainted") + @hpbgsprite.change_bitmap(:fainted) else - @hpbgsprite.changeBitmap("able") + @hpbgsprite.change_bitmap(:able) end @hpbgsprite.x = self.x + 96 @hpbgsprite.y = self.y + 50 @@ -336,7 +337,7 @@ class PokemonPartyPanel < Sprite def refresh_ball_graphic return if !@ballsprite || @ballsprite.disposed? - @ballsprite.changeBitmap((self.selected) ? "sel" : "desel") + @ballsprite.change_bitmap((self.selected) ? :sel : :desel) @ballsprite.x = self.x + 10 @ballsprite.y = self.y @ballsprite.color = self.color @@ -686,10 +687,7 @@ class PokemonParty_Scene self.update break if oldsprite.x == old_start_x - (old_mult * Graphics.width / 2) end - Settings::MAX_PARTY_SIZE.times do |i| - @sprites["pokemon#{i}"].preselected = false - @sprites["pokemon#{i}"].switching = false - end + pbClearSwitching pbRefresh end @@ -702,9 +700,7 @@ class PokemonParty_Scene def pbSummary(pkmnid, inbattle = false) oldsprites = pbFadeOutAndHide(@sprites) - scene = PokemonSummary_Scene.new - screen = PokemonSummaryScreen.new(scene, inbattle) - screen.pbStartScreen(@party, pkmnid) + UI::PokemonSummary.new(@party, pkmnid, mode: (inbattle ? :in_battle : :normal)).main yield if block_given? pbRefresh pbFadeInAndShow(@sprites, oldsprites) @@ -728,7 +724,7 @@ class PokemonParty_Scene screen = PokemonBagScreen.new(scene, bag) ret = screen.pbChooseItemScreen(proc { |item| itm = GameData::Item.get(item) - next false if !pbCanUseOnPokemon?(itm) + next false if !pbCanUseItemOnPokemon?(itm) next false if pokemon.hyper_mode && !GameData::Item.get(item)&.is_scent? if itm.is_machine? move = itm.move @@ -916,43 +912,6 @@ class PokemonPartyScreen @scene.pbStartScene(@party, helptext, annotations) end - def pbChoosePokemon(helptext = nil) - @scene.pbSetHelpText(helptext) if helptext - return @scene.pbChoosePokemon - end - - def pbPokemonGiveScreen(item) - @scene.pbStartScene(@party, _INTL("Give to which Pokémon?")) - pkmnid = @scene.pbChoosePokemon - ret = false - if pkmnid >= 0 - ret = pbGiveItemToPokemon(item, @party[pkmnid], self, pkmnid) - end - pbRefreshSingle(pkmnid) - @scene.pbEndScene - return ret - end - - def pbPokemonGiveMailScreen(mailIndex) - @scene.pbStartScene(@party, _INTL("Give to which Pokémon?")) - pkmnid = @scene.pbChoosePokemon - if pkmnid >= 0 - pkmn = @party[pkmnid] - if pkmn.hasItem? || pkmn.mail - pbDisplay(_INTL("This Pokémon is holding an item. It can't hold mail.")) - elsif pkmn.egg? - pbDisplay(_INTL("Eggs can't hold mail.")) - else - pbDisplay(_INTL("Mail was transferred from the Mailbox.")) - pkmn.mail = $PokemonGlobal.mailbox[mailIndex] - pkmn.item = pkmn.mail.item - $PokemonGlobal.mailbox.delete_at(mailIndex) - pbRefreshSingle(pkmnid) - end - end - @scene.pbEndScene - end - def pbEndScene @scene.pbEndScene end @@ -1008,6 +967,53 @@ class PokemonPartyScreen return true end + # For after using an evolution stone. + def pbRefreshAnnotations(ableProc) + return if !@scene.pbHasAnnotations? + annot = [] + @party.each do |pkmn| + elig = ableProc.call(pkmn) + annot.push((elig) ? _INTL("ABLE") : _INTL("NOT ABLE")) + end + @scene.pbAnnotate(annot) + end + + def pbClearAnnotations + @scene.pbAnnotate(nil) + end + + def pbPokemonGiveScreen(item) + @scene.pbStartScene(@party, _INTL("Give to which Pokémon?")) + pkmnid = @scene.pbChoosePokemon + ret = false + if pkmnid >= 0 + ret = pbGiveItemToPokemon(item, @party[pkmnid], self, pkmnid) + end + pbRefreshSingle(pkmnid) + @scene.pbEndScene + return ret + end + + def pbPokemonGiveMailScreen(mailIndex) + @scene.pbStartScene(@party, _INTL("Give to which Pokémon?")) + pkmnid = @scene.pbChoosePokemon + if pkmnid >= 0 + pkmn = @party[pkmnid] + if pkmn.hasItem? || pkmn.mail + pbDisplay(_INTL("This Pokémon is holding an item. It can't hold mail.")) + elsif pkmn.egg? + pbDisplay(_INTL("Eggs can't hold mail.")) + else + pbDisplay(_INTL("Mail was transferred from the Mailbox.")) + pkmn.mail = $PokemonGlobal.mailbox[mailIndex] + pkmn.item = pkmn.mail.item + $PokemonGlobal.mailbox.delete_at(mailIndex) + pbRefreshSingle(pkmnid) + end + end + @scene.pbEndScene + end + def pbSwitch(oldid, newid) if oldid != newid @scene.pbSwitchBegin(oldid, newid) @@ -1031,21 +1037,6 @@ class PokemonPartyScreen return @scene.pbShowCommands(helptext, movenames, index) end - # For after using an evolution stone. - def pbRefreshAnnotations(ableProc) - return if !@scene.pbHasAnnotations? - annot = [] - @party.each do |pkmn| - elig = ableProc.call(pkmn) - annot.push((elig) ? _INTL("ABLE") : _INTL("NOT ABLE")) - end - @scene.pbAnnotate(annot) - end - - def pbClearAnnotations - @scene.pbAnnotate(nil) - end - def pbPokemonMultipleEntryScreenEx(ruleset) annot = [] statuses = [] @@ -1136,6 +1127,11 @@ class PokemonPartyScreen return ret end + def pbChoosePokemon(helptext = nil) + @scene.pbSetHelpText(helptext) if helptext + return @scene.pbChoosePokemon + end + def pbChooseAblePokemon(ableProc, allowIneligible = false) annot = [] eligibility = [] @@ -1482,78 +1478,4 @@ MenuHandlers.add(:party_menu_item, :move, { screen.scene.pbSelect(old_party_idx) if !moved } }) - -#=============================================================================== -# Open the party screen. -#=============================================================================== -def pbPokemonScreen - pbFadeOutIn do - sscene = PokemonParty_Scene.new - sscreen = PokemonPartyScreen.new(sscene, $player.party) - sscreen.pbPokemonScreen - end -end - -#=============================================================================== -# Choose a Pokémon in the party. -#=============================================================================== -# Choose a Pokémon/egg from the party. -# Stores result in variable _variableNumber_ and the chosen Pokémon's name in -# variable _nameVarNumber_; result is -1 if no Pokémon was chosen -def pbChoosePokemon(variableNumber, nameVarNumber, ableProc = nil, allowIneligible = false) - chosen = 0 - pbFadeOutIn do - scene = PokemonParty_Scene.new - screen = PokemonPartyScreen.new(scene, $player.party) - if ableProc - chosen = screen.pbChooseAblePokemon(ableProc, allowIneligible) - else - screen.pbStartScene(_INTL("Choose a Pokémon."), false) - chosen = screen.pbChoosePokemon - screen.pbEndScene - end - end - pbSet(variableNumber, chosen) - if chosen >= 0 - pbSet(nameVarNumber, $player.party[chosen].name) - else - pbSet(nameVarNumber, "") - end -end - -def pbChooseNonEggPokemon(variableNumber, nameVarNumber) - pbChoosePokemon(variableNumber, nameVarNumber, proc { |pkmn| !pkmn.egg? }) -end - -def pbChooseAblePokemon(variableNumber, nameVarNumber) - pbChoosePokemon(variableNumber, nameVarNumber, proc { |pkmn| !pkmn.egg? && pkmn.hp > 0 }) -end - -# Same as pbChoosePokemon, but prevents choosing an egg or a Shadow Pokémon. -def pbChooseTradablePokemon(variableNumber, nameVarNumber, ableProc = nil, allowIneligible = false) - chosen = 0 - pbFadeOutIn do - scene = PokemonParty_Scene.new - screen = PokemonPartyScreen.new(scene, $player.party) - if ableProc - chosen = screen.pbChooseTradablePokemon(ableProc, allowIneligible) - else - screen.pbStartScene(_INTL("Choose a Pokémon."), false) - chosen = screen.pbChoosePokemon - screen.pbEndScene - end - end - pbSet(variableNumber, chosen) - if chosen >= 0 - pbSet(nameVarNumber, $player.party[chosen].name) - else - pbSet(nameVarNumber, "") - end -end - -def pbChoosePokemonForTrade(variableNumber, nameVarNumber, wanted) - wanted = GameData::Species.get(wanted).species - pbChooseTradablePokemon(variableNumber, nameVarNumber, proc { |pkmn| - next pkmn.species == wanted - }) -end +=end diff --git a/Data/Scripts/016_UI/006_UI_Summary.rb b/Data/Scripts/016c_UI_old/006_UI_old_Summary.rb similarity index 98% rename from Data/Scripts/016_UI/006_UI_Summary.rb rename to Data/Scripts/016c_UI_old/006_UI_old_Summary.rb index 1483ae8b5..31ac3612e 100644 --- a/Data/Scripts/016_UI/006_UI_Summary.rb +++ b/Data/Scripts/016c_UI_old/006_UI_old_Summary.rb @@ -1,3 +1,4 @@ +=begin #=============================================================================== # #=============================================================================== @@ -75,12 +76,23 @@ class RibbonSelectionSprite < MoveSelectionSprite @spriteVisible = value if !@updating end + def recheck_visibility + @updating = true + self.visible = @spriteVisible && @index >= 0 && + @index < UI::PokemonSummaryVisuals::RIBBON_COLUMNS * UI::PokemonSummaryVisuals::RIBBON_ROWS + @updating = false + end + def refresh + recheck_visibility + cols = UI::PokemonSummaryVisuals::RIBBON_COLUMNS + offset_x = UI::PokemonSummaryVisuals::RIBBON_SIZE[0] + UI::PokemonSummaryVisuals::RIBBON_SPACING_X + offset_y = UI::PokemonSummaryVisuals::RIBBON_SIZE[1] + UI::PokemonSummaryVisuals::RIBBON_SPACING_Y + self.x = UI::PokemonSummaryVisuals::RIBBON_X - 2 + ((self.index % cols) * offset_x) + self.y = UI::PokemonSummaryVisuals::RIBBON_Y - 2 + ((self.index / cols) * offset_y) + self.bitmap = @movesel.bitmap w = @movesel.width h = @movesel.height / 2 - self.x = 228 + ((self.index % 4) * 68) - self.y = 76 + ((self.index / 4).floor * 68) - self.bitmap = @movesel.bitmap if self.preselected self.src_rect.set(0, h, w, h) else @@ -89,11 +101,9 @@ class RibbonSelectionSprite < MoveSelectionSprite end def update - @updating = true super - self.visible = @spriteVisible && @index >= 0 && @index < 12 + recheck_visibility @movesel.update - @updating = false refresh end end @@ -839,7 +849,7 @@ class PokemonSummary_Scene pbDrawTextPositions(overlay, textpos) # Draw selected move's damage category icon imagepos = [["Graphics/UI/category", 166, 124, - 0, selected_move.display_category(@pokemon) * CATEGORY_ICON_SIZE[1], *CATEGORY_ICON_SIZE]] + 0, selected_move.display_category(@pokemon) * GameData::Move::CATEGORY_ICON_SIZE[1], *GameData::Move::CATEGORY_ICON_SIZE]] pbDrawImagePositions(overlay, imagepos) # Draw selected move's description drawTextEx(overlay, 4, 224, 230, 5, selected_move.description, base, shadow) @@ -1367,6 +1377,7 @@ class PokemonSummaryScreen return ret end + # Unused. def pbStartChooseMoveScreen(party, partyindex, message) ret = -1 @scene.pbStartForgetScene(party, partyindex, nil) @@ -1388,9 +1399,8 @@ def pbChooseMove(pokemon, variableNumber, nameVarNumber) return if !pokemon ret = -1 pbFadeOutIn do - scene = PokemonSummary_Scene.new - screen = PokemonSummaryScreen.new(scene) - ret = screen.pbStartForgetScreen([pokemon], 0, nil) + screen = UI::PokemonSummary.new(pokemon, mode: :choose_move) + ret = screen.choose_move end $game_variables[variableNumber] = ret if ret >= 0 @@ -1400,3 +1410,4 @@ def pbChooseMove(pokemon, variableNumber, nameVarNumber) end $game_map.need_refresh = true if $game_map end +=end diff --git a/Data/Scripts/016_UI/007_UI_Bag.rb b/Data/Scripts/016c_UI_old/007_UI_old_Bag.rb similarity index 98% rename from Data/Scripts/016_UI/007_UI_Bag.rb rename to Data/Scripts/016c_UI_old/007_UI_old_Bag.rb index 3840913c5..ceb59a540 100644 --- a/Data/Scripts/016_UI/007_UI_Bag.rb +++ b/Data/Scripts/016c_UI_old/007_UI_old_Bag.rb @@ -1,3 +1,4 @@ +=begin #=============================================================================== # #=============================================================================== @@ -97,7 +98,7 @@ class Window_PokemonBag < Window_DrawableCommand end if item_data.show_quantity? && !showing_register_icon qty = (@filterlist) ? thispocket[@filterlist[@pocket][index]][1] : thispocket[index][1] - qtytext = _ISPRINTF("x{1: 3d}", qty) + qtytext = _ISPRINTF("×{1: 3d}", qty) xQty = rect.x + rect.width - self.contents.text_size(qtytext).width - 16 textpos.push([qtytext, xQty, rect.y + 2, :left, baseColor, shadowColor]) end @@ -513,10 +514,11 @@ class PokemonBagScreen @scene.pbDisplay(_INTL("The {1} can't be held.", itm.portion_name)) else pbFadeOutIn do - sscene = PokemonParty_Scene.new - sscreen = PokemonPartyScreen.new(sscene, $player.party) - sscreen.pbPokemonGiveScreen(item) - @scene.pbRefresh + screen = UI::Party.new($player.party, mode: :choose_pokemon) + screen.choose_pokemon do |pkmn, party_index| + pbGiveItemToPokemon(item, screen.pokemon, screen, chosen) if party_index >= 0 + next true + end end end elsif cmdToss >= 0 && command == cmdToss # Toss item @@ -702,3 +704,4 @@ class PokemonBagScreen @scene.pbEndScene end end +=end diff --git a/Data/Scripts/016_UI/009_UI_RegionMap.rb b/Data/Scripts/016c_UI_old/009_UI_old_TownMap.rb similarity index 98% rename from Data/Scripts/016_UI/009_UI_RegionMap.rb rename to Data/Scripts/016c_UI_old/009_UI_old_TownMap.rb index 3749127d0..c042aaabd 100644 --- a/Data/Scripts/016_UI/009_UI_RegionMap.rb +++ b/Data/Scripts/016c_UI_old/009_UI_old_TownMap.rb @@ -1,3 +1,4 @@ +=begin #=============================================================================== # #=============================================================================== @@ -186,6 +187,8 @@ class PokemonRegionMap_Scene next if point[0] != x || point[1] != y return "" if point[7] && (@wallmap || point[7] <= 0 || !$game_switches[point[7]]) name = pbGetMessageFromHash(MessageTypes::REGION_LOCATION_NAMES, point[2]) + name = name.gsub(/\\PN/, $player.name) + name = name.gsub(/\\v\[(\d+)\]/) { |num| $game_variables[$~[1].to_i].to_s } return (@editor) ? point[2] : name end return "" @@ -336,7 +339,7 @@ class PokemonRegionMapScreen end def pbStartScreen - @scene.pbStartScene($DEBUG) + @scene.pbStartScene # ($DEBUG) ret = @scene.pbMapScene @scene.pbEndScene return ret @@ -354,3 +357,4 @@ def pbShowMap(region = -1, wallmap = true) $game_temp.fly_destination = ret if ret && !wallmap end end +=end diff --git a/Data/Scripts/016_UI/012_UI_TrainerCard.rb b/Data/Scripts/016c_UI_old/012_UI_old_TrainerCard.rb similarity index 99% rename from Data/Scripts/016_UI/012_UI_TrainerCard.rb rename to Data/Scripts/016c_UI_old/012_UI_old_TrainerCard.rb index c92b73b9b..2856d1413 100644 --- a/Data/Scripts/016_UI/012_UI_TrainerCard.rb +++ b/Data/Scripts/016c_UI_old/012_UI_old_TrainerCard.rb @@ -1,3 +1,4 @@ +=begin #=============================================================================== # #=============================================================================== @@ -113,3 +114,4 @@ class PokemonTrainerCardScreen @scene.pbEndScene end end +=end diff --git a/Data/Scripts/016_UI/013_UI_Load.rb b/Data/Scripts/016c_UI_old/013_UI_old_Load.rb similarity index 99% rename from Data/Scripts/016_UI/013_UI_Load.rb rename to Data/Scripts/016c_UI_old/013_UI_old_Load.rb index 9d15a685d..0b510c284 100644 --- a/Data/Scripts/016_UI/013_UI_Load.rb +++ b/Data/Scripts/016c_UI_old/013_UI_old_Load.rb @@ -1,3 +1,4 @@ +=begin #=============================================================================== # #=============================================================================== @@ -356,3 +357,4 @@ class PokemonLoadScreen end end end +=end diff --git a/Data/Scripts/016_UI/014_UI_Save.rb b/Data/Scripts/016c_UI_old/014_UI_old_Save.rb similarity index 97% rename from Data/Scripts/016_UI/014_UI_Save.rb rename to Data/Scripts/016c_UI_old/014_UI_old_Save.rb index 56c2c97d6..249106a03 100644 --- a/Data/Scripts/016_UI/014_UI_Save.rb +++ b/Data/Scripts/016c_UI_old/014_UI_old_Save.rb @@ -1,3 +1,4 @@ +=begin #=============================================================================== # #=============================================================================== @@ -107,9 +108,8 @@ end # #=============================================================================== def pbSaveScreen - scene = PokemonSave_Scene.new - screen = PokemonSaveScreen.new(scene) - ret = screen.pbSaveScreen + ret = false + pbFadeOutIn { ret = UI::Save.new.main } return ret end @@ -137,3 +137,4 @@ def pbEmergencySave end $scene = oldscene end +=end diff --git a/Data/Scripts/016_UI/017_UI_PokemonStorage.rb b/Data/Scripts/016c_UI_old/017_UI_old_PokemonStorage.rb similarity index 97% rename from Data/Scripts/016_UI/017_UI_PokemonStorage.rb rename to Data/Scripts/016c_UI_old/017_UI_old_PokemonStorage.rb index 88eb85ac8..fdfac9efe 100644 --- a/Data/Scripts/016_UI/017_UI_PokemonStorage.rb +++ b/Data/Scripts/016c_UI_old/017_UI_old_PokemonStorage.rb @@ -1,3 +1,4 @@ +=begin #=============================================================================== # Pokémon icons. #=============================================================================== @@ -156,15 +157,15 @@ class PokemonBoxArrow < Sprite @quickswap = false @heldpkmn = nil @handsprite = ChangelingSprite.new(0, 0, viewport) - @handsprite.addBitmap("point1", "Graphics/UI/Storage/cursor_point_1") - @handsprite.addBitmap("point2", "Graphics/UI/Storage/cursor_point_2") - @handsprite.addBitmap("grab", "Graphics/UI/Storage/cursor_grab") - @handsprite.addBitmap("fist", "Graphics/UI/Storage/cursor_fist") - @handsprite.addBitmap("point1q", "Graphics/UI/Storage/cursor_point_1_q") - @handsprite.addBitmap("point2q", "Graphics/UI/Storage/cursor_point_2_q") - @handsprite.addBitmap("grabq", "Graphics/UI/Storage/cursor_grab_q") - @handsprite.addBitmap("fistq", "Graphics/UI/Storage/cursor_fist_q") - @handsprite.changeBitmap("fist") + @handsprite.add_bitmap(:point1, "Graphics/UI/Storage/cursor_point_1") + @handsprite.add_bitmap(:point2, "Graphics/UI/Storage/cursor_point_2") + @handsprite.add_bitmap(:grab, "Graphics/UI/Storage/cursor_grab") + @handsprite.add_bitmap(:fist, "Graphics/UI/Storage/cursor_fist") + @handsprite.add_bitmap(:point1q, "Graphics/UI/Storage/cursor_point_1_q") + @handsprite.add_bitmap(:point2q, "Graphics/UI/Storage/cursor_point_2_q") + @handsprite.add_bitmap(:grabq, "Graphics/UI/Storage/cursor_grab_q") + @handsprite.add_bitmap(:fistq, "Graphics/UI/Storage/cursor_fist_q") + @handsprite.change_bitmap(:fist) @spriteX = self.x @spriteY = self.y end @@ -269,36 +270,36 @@ class PokemonBoxArrow < Sprite @holding = false if !heldpkmn if @grabbing_timer_start if System.uptime - @grabbing_timer_start <= GRAB_TIME / 2 - @handsprite.changeBitmap((@quickswap) ? "grabq" : "grab") + @handsprite.change_bitmap((@quickswap) ? :grabq : :grab) self.y = @spriteY + lerp(0, 16, GRAB_TIME / 2, @grabbing_timer_start, System.uptime) else @holding = true - @handsprite.changeBitmap((@quickswap) ? "fistq" : "fist") + @handsprite.change_bitmap((@quickswap) ? :fistq : :fist) delta_y = lerp(16, 0, GRAB_TIME / 2, @grabbing_timer_start + (GRAB_TIME / 2), System.uptime) self.y = @spriteY + delta_y @grabbing_timer_start = nil if delta_y == 0 end elsif @placing_timer_start if System.uptime - @placing_timer_start <= GRAB_TIME / 2 - @handsprite.changeBitmap((@quickswap) ? "fistq" : "fist") + @handsprite.change_bitmap((@quickswap) ? :fistq : :fist) self.y = @spriteY + lerp(0, 16, GRAB_TIME / 2, @placing_timer_start, System.uptime) else @holding = false @heldpkmn = nil - @handsprite.changeBitmap((@quickswap) ? "grabq" : "grab") + @handsprite.change_bitmap((@quickswap) ? :grabq : :grab) delta_y = lerp(16, 0, GRAB_TIME / 2, @placing_timer_start + (GRAB_TIME / 2), System.uptime) self.y = @spriteY + delta_y @placing_timer_start = nil if delta_y == 0 end elsif holding? - @handsprite.changeBitmap((@quickswap) ? "fistq" : "fist") + @handsprite.change_bitmap((@quickswap) ? :fistq : :fist) else # Idling self.x = @spriteX self.y = @spriteY if (System.uptime / 0.5).to_i.even? # Changes every 0.5 seconds - @handsprite.changeBitmap((@quickswap) ? "point1q" : "point1") + @handsprite.change_bitmap((@quickswap) ? :point1q : :point1) else - @handsprite.changeBitmap((@quickswap) ? "point2q" : "point2") + @handsprite.change_bitmap((@quickswap) ? :point2q : :point2) end end @updating = false @@ -501,6 +502,13 @@ class PokemonBoxPartySprite < Sprite refresh end + def z=(value) + super + Settings::MAX_PARTY_SIZE.times do |i| + @pokemonsprites[i].z = value + 1 if @pokemonsprites[i] && !@pokemonsprites[i].disposed? + end + end + def color=(value) super Settings::MAX_PARTY_SIZE.times do |i| @@ -565,7 +573,7 @@ class PokemonBoxPartySprite < Sprite sprite.viewport = self.viewport sprite.x = self.x + xvalues[j] sprite.y = self.y + yvalues[j] - sprite.z = 1 + sprite.z = self.z + 1 end end @@ -1237,25 +1245,24 @@ class PokemonStorageScene def pbChooseItem(bag) ret = nil pbFadeOutIn do - scene = PokemonBag_Scene.new - screen = PokemonBagScreen.new(scene, bag) - ret = screen.pbChooseItemScreen(proc { |item| GameData::Item.get(item).can_hold? }) + bag_screen = UI::Bag.new(bag, mode: :choose_item) + bag_screen.set_filter_proc(proc { |itm| GameData::Item.get(itm).can_hold? }) + ret = bag_screen.choose_item end return ret end def pbSummary(selected, heldpoke) oldsprites = pbFadeOutAndHide(@sprites) - scene = PokemonSummary_Scene.new - screen = PokemonSummaryScreen.new(scene) if heldpoke - screen.pbStartScreen([heldpoke], 0) + UI::PokemonSummary.new(heldpoke).main elsif selected[0] == -1 - @selection = screen.pbStartScreen(@storage.party, selected[1]) + screen = UI::PokemonSummary.new(@storage.party, selected[1]).main + @selection = screen.result pbPartySetArrow(@sprites["arrow"], @selection) pbUpdateOverlay(@selection, @storage.party) else - @selection = screen.pbStartScreen(@storage.boxes[selected[0]], selected[1]) + @selection = UI::PokemonSummary.new(@storage.boxes[selected[0]].pokemon, selected[1]).main pbSetArrow(@sprites["arrow"], @selection) pbUpdateOverlay(@selection) end @@ -1576,7 +1583,7 @@ class PokemonStorageScreen elsif cmdRelease >= 0 && command == cmdRelease # Release pbRelease(selected, @heldpkmn) elsif cmdDebug >= 0 && command == cmdDebug # Debug - pbPokemonDebug((@heldpkmn) ? @heldpkmn : pokemon, selected, heldpoke) + pokemon_debug_menu((@heldpkmn) ? @heldpkmn : pokemon, selected, heldpoke) end end end @@ -2023,3 +2030,4 @@ class PokemonStorageScreen return retval end end +=end diff --git a/Data/Scripts/016_UI/020_UI_PokeMart.rb b/Data/Scripts/016c_UI_old/020_UI_old_PokeMart.rb similarity index 89% rename from Data/Scripts/016_UI/020_UI_PokeMart.rb rename to Data/Scripts/016c_UI_old/020_UI_old_PokeMart.rb index c918a9613..7e2732715 100644 --- a/Data/Scripts/016_UI/020_UI_PokeMart.rb +++ b/Data/Scripts/016c_UI_old/020_UI_old_PokeMart.rb @@ -1,3 +1,4 @@ +=begin #=============================================================================== # Abstraction layer for Pokemon Essentials. #=============================================================================== @@ -27,12 +28,7 @@ class PokemonMartAdapter end def getDisplayName(item) - item_name = GameData::Item.get(item).name - if GameData::Item.get(item).is_machine? - machine = GameData::Item.get(item).move - item_name = _INTL("{1} {2}", item_name, GameData::Move.get(machine).name) - end - return item_name + return GameData::Item.get(item).display_name end def getDisplayNamePlural(item) @@ -161,11 +157,8 @@ class SellAdapter end def getDisplayPrice(item) - if @adapter.showQuantity?(item) - return sprintf("x%d", @adapter.getQuantity(item)) - else - return "" - end + return sprintf("×%d", @adapter.getQuantity(item)) if @adapter.showQuantity?(item) + return "" end def isSelling? @@ -218,27 +211,6 @@ end # #=============================================================================== class PokemonMart_Scene - def update - pbUpdateSpriteHash(@sprites) - @subscene&.pbUpdate - end - - def pbRefresh - if @subscene - @subscene.pbRefresh - else - itemwindow = @sprites["itemwindow"] - @sprites["icon"].item = itemwindow.item - @sprites["itemtextwindow"].text = - (itemwindow.item) ? @adapter.getDescription(itemwindow.item) : _INTL("Quit shopping.") - @sprites["qtywindow"].visible = !itemwindow.item.nil? - @sprites["qtywindow"].text = _INTL("In Bag:{1}", @adapter.getQuantity(itemwindow.item)) - @sprites["qtywindow"].y = Graphics.height - 102 - @sprites["qtywindow"].height - itemwindow.refresh - end - @sprites["moneywindow"].text = _INTL("Money:\n{1}", @adapter.getMoneyString) - end - def pbStartBuyOrSellScene(buying, stock, adapter) # Scroll right before showing screen pbScrollMap(6, 5, 5) @@ -249,7 +221,7 @@ class PokemonMart_Scene @sprites = {} @sprites["background"] = IconSprite.new(0, 0, @viewport) @sprites["background"].setBitmap("Graphics/UI/Mart/bg") - @sprites["icon"] = ItemIconSprite.new(36, Graphics.height - 50, nil, @viewport) + @sprites["icon"] = ItemIconSprite.new(48, Graphics.height - 48, nil, @viewport) winAdapter = buying ? BuyAdapter.new(adapter) : SellAdapter.new(adapter) @sprites["itemwindow"] = Window_PokemonMart.new( stock, winAdapter, Graphics.width - 316 - 16, 10, 330 + 16, Graphics.height - 124 @@ -258,7 +230,7 @@ class PokemonMart_Scene @sprites["itemwindow"].index = 0 @sprites["itemwindow"].refresh @sprites["itemtextwindow"] = Window_UnformattedTextPokemon.newWithSize( - "", 64, Graphics.height - 96 - 16, Graphics.width - 64, 128, @viewport + "", 76, 272, Graphics.width - 98, 128, @viewport ) pbPrepareWindow(@sprites["itemtextwindow"]) @sprites["itemtextwindow"].baseColor = Color.new(248, 248, 248) @@ -362,6 +334,8 @@ class PokemonMart_Scene pbScrollMap(4, 5, 5) if !@subscene end + #----------------------------------------------------------------------------- + def pbPrepareWindow(window) window.visible = true window.letterbyletter = false @@ -387,6 +361,8 @@ class PokemonMart_Scene @sprites["qtywindow"].visible = false end + #----------------------------------------------------------------------------- + def pbDisplay(msg, brief = false) cw = @sprites["helpwindow"] cw.letterbyletter = true @@ -487,7 +463,7 @@ class PokemonMart_Scene numwindow.height = 64 numwindow.baseColor = Color.new(88, 88, 80) numwindow.shadowColor = Color.new(168, 184, 184) - numwindow.text = _INTL("x{1}$ {2}", curnumber, (curnumber * itemprice).to_s_formatted) + numwindow.text = _INTL("×{1}$ {2}", curnumber, (curnumber * itemprice).to_s_formatted) pbBottomRight(numwindow) numwindow.y -= helpwindow.height loop do @@ -500,28 +476,28 @@ class PokemonMart_Scene curnumber -= 10 curnumber = 1 if curnumber < 1 if curnumber != oldnumber - numwindow.text = _INTL("x{1}$ {2}", curnumber, (curnumber * itemprice).to_s_formatted) + numwindow.text = _INTL("×{1}$ {2}", curnumber, (curnumber * itemprice).to_s_formatted) pbPlayCursorSE end elsif Input.repeat?(Input::RIGHT) curnumber += 10 curnumber = maximum if curnumber > maximum if curnumber != oldnumber - numwindow.text = _INTL("x{1}$ {2}", curnumber, (curnumber * itemprice).to_s_formatted) + numwindow.text = _INTL("×{1}$ {2}", curnumber, (curnumber * itemprice).to_s_formatted) pbPlayCursorSE end elsif Input.repeat?(Input::UP) curnumber += 1 curnumber = 1 if curnumber > maximum if curnumber != oldnumber - numwindow.text = _INTL("x{1}$ {2}", curnumber, (curnumber * itemprice).to_s_formatted) + numwindow.text = _INTL("×{1}$ {2}", curnumber, (curnumber * itemprice).to_s_formatted) pbPlayCursorSE end elsif Input.repeat?(Input::DOWN) curnumber -= 1 curnumber = maximum if curnumber < 1 if curnumber != oldnumber - numwindow.text = _INTL("x{1}$ {2}", curnumber, (curnumber * itemprice).to_s_formatted) + numwindow.text = _INTL("×{1}$ {2}", curnumber, (curnumber * itemprice).to_s_formatted) pbPlayCursorSE end elsif Input.trigger?(Input::USE) @@ -538,6 +514,31 @@ class PokemonMart_Scene return ret end + #----------------------------------------------------------------------------- + + def pbRefresh + if @subscene + @subscene.pbRefresh + else + itemwindow = @sprites["itemwindow"] + @sprites["icon"].item = itemwindow.item + @sprites["itemtextwindow"].text = + (itemwindow.item) ? @adapter.getDescription(itemwindow.item) : _INTL("Quit shopping.") + @sprites["qtywindow"].visible = !itemwindow.item.nil? + @sprites["qtywindow"].text = _INTL("In Bag:{1}", @adapter.getQuantity(itemwindow.item)) + @sprites["qtywindow"].y = Graphics.height - 102 - @sprites["qtywindow"].height + itemwindow.refresh + end + @sprites["moneywindow"].text = _INTL("Money:\n{1}", @adapter.getMoneyString) + end + + def update + pbUpdateSpriteHash(@sprites) + @subscene&.pbUpdate + end + + #----------------------------------------------------------------------------- + def pbChooseBuyItem itemwindow = @sprites["itemwindow"] @sprites["helpwindow"].visible = false @@ -583,18 +584,22 @@ class PokemonMartScreen @adapter = PokemonMartAdapter.new end - def pbConfirm(msg) - return @scene.pbConfirm(msg) - end + #----------------------------------------------------------------------------- def pbDisplay(msg) return @scene.pbDisplay(msg) end + def pbConfirm(msg) + return @scene.pbConfirm(msg) + end + def pbDisplayPaused(msg, &block) return @scene.pbDisplayPaused(msg, &block) end + #----------------------------------------------------------------------------- + def pbBuyScreen @scene.pbStartBuyScene(@stock, @adapter) item = nil @@ -614,8 +619,8 @@ class PokemonMartScreen itemname, price.to_s_formatted)) quantity = 1 else - maxafford = (price <= 0) ? Settings::BAG_MAX_PER_SLOT : @adapter.getMoney / price - maxafford = Settings::BAG_MAX_PER_SLOT if maxafford > Settings::BAG_MAX_PER_SLOT + maxafford = (price <= 0) ? PokemonBag::MAX_PER_SLOT : @adapter.getMoney / price + maxafford = PokemonBag::MAX_PER_SLOT if maxafford > PokemonBag::MAX_PER_SLOT quantity = @scene.pbChooseNumber( _INTL("So how many {1}?", itemnameplural), item, maxafford ) @@ -715,34 +720,4 @@ class PokemonMartScreen @scene.pbEndSellScene end end - -#=============================================================================== -# -#=============================================================================== -def pbPokemonMart(stock, speech = nil, cantsell = false) - stock.delete_if { |item| GameData::Item.get(item).is_important? && $bag.has?(item) } - commands = [] - cmdBuy = -1 - cmdSell = -1 - cmdQuit = -1 - commands[cmdBuy = commands.length] = _INTL("I'm here to buy") - commands[cmdSell = commands.length] = _INTL("I'm here to sell") if !cantsell - commands[cmdQuit = commands.length] = _INTL("No, thanks") - cmd = pbMessage(speech || _INTL("Welcome! How may I help you?"), commands, cmdQuit + 1) - loop do - if cmdBuy >= 0 && cmd == cmdBuy - scene = PokemonMart_Scene.new - screen = PokemonMartScreen.new(scene, stock) - screen.pbBuyScreen - elsif cmdSell >= 0 && cmd == cmdSell - scene = PokemonMart_Scene.new - screen = PokemonMartScreen.new(scene, stock) - screen.pbSellScreen - else - pbMessage(_INTL("Do come again!")) - break - end - cmd = pbMessage(_INTL("Is there anything else I can do for you?"), commands, cmdQuit + 1) - end - $game_temp.clear_mart_prices -end +=end diff --git a/Data/Scripts/016_UI/021_UI_BattlePointShop.rb b/Data/Scripts/016c_UI_old/021_UI_old_BattlePointShop.rb similarity index 91% rename from Data/Scripts/016_UI/021_UI_BattlePointShop.rb rename to Data/Scripts/016c_UI_old/021_UI_old_BattlePointShop.rb index fa744787a..dd2c13ced 100644 --- a/Data/Scripts/016_UI/021_UI_BattlePointShop.rb +++ b/Data/Scripts/016c_UI_old/021_UI_old_BattlePointShop.rb @@ -1,3 +1,4 @@ +=begin #=============================================================================== # Abstraction layer for Pokemon Essentials. #=============================================================================== @@ -343,7 +344,7 @@ class BattlePointShop_Scene numwindow.height = 64 numwindow.baseColor = Color.new(88, 88, 80) numwindow.shadowColor = Color.new(168, 184, 184) - numwindow.text = _INTL("x{1}{2} BP", curnumber, (curnumber * itemprice).to_s_formatted) + numwindow.text = _INTL("×{1}{2} BP", curnumber, (curnumber * itemprice).to_s_formatted) pbBottomRight(numwindow) numwindow.y -= helpwindow.height loop do @@ -356,28 +357,28 @@ class BattlePointShop_Scene curnumber -= 10 curnumber = 1 if curnumber < 1 if curnumber != oldnumber - numwindow.text = _INTL("x{1}{2} BP", curnumber, (curnumber * itemprice).to_s_formatted) + numwindow.text = _INTL("×{1}{2} BP", curnumber, (curnumber * itemprice).to_s_formatted) pbPlayCursorSE end elsif Input.repeat?(Input::RIGHT) curnumber += 10 curnumber = maximum if curnumber > maximum if curnumber != oldnumber - numwindow.text = _INTL("x{1}{2} BP", curnumber, (curnumber * itemprice).to_s_formatted) + numwindow.text = _INTL("×{1}{2} BP", curnumber, (curnumber * itemprice).to_s_formatted) pbPlayCursorSE end elsif Input.repeat?(Input::UP) curnumber += 1 curnumber = 1 if curnumber > maximum if curnumber != oldnumber - numwindow.text = _INTL("x{1}{2} BP", curnumber, (curnumber * itemprice).to_s_formatted) + numwindow.text = _INTL("×{1}{2} BP", curnumber, (curnumber * itemprice).to_s_formatted) pbPlayCursorSE end elsif Input.repeat?(Input::DOWN) curnumber -= 1 curnumber = maximum if curnumber < 1 if curnumber != oldnumber - numwindow.text = _INTL("x{1}{2} BP", curnumber, (curnumber * itemprice).to_s_formatted) + numwindow.text = _INTL("×{1}{2} BP", curnumber, (curnumber * itemprice).to_s_formatted) pbPlayCursorSE end elsif Input.trigger?(Input::USE) @@ -462,8 +463,8 @@ class BattlePointShopScreen itemname, price.to_s_formatted)) quantity = 1 else - maxafford = (price <= 0) ? Settings::BAG_MAX_PER_SLOT : @adapter.getBP / price - maxafford = Settings::BAG_MAX_PER_SLOT if maxafford > Settings::BAG_MAX_PER_SLOT + maxafford = (price <= 0) ? PokemonBag::MAX_PER_SLOT : @adapter.getBP / price + maxafford = PokemonBag::MAX_PER_SLOT if maxafford > PokemonBag::MAX_PER_SLOT quantity = @scene.pbChooseNumber( _INTL("How many {1} would you like?", itemnameplural), item, maxafford ) @@ -504,22 +505,4 @@ class BattlePointShopScreen @scene.pbEndScene end end - -#=============================================================================== -# -#=============================================================================== -def pbBattlePointShop(stock, speech = nil) - stock.delete_if { |item| GameData::Item.get(item).is_important? && $bag.has?(item) } - if speech.nil? - pbMessage(_INTL("Welcome to the Exchange Service Corner!")) - pbMessage(_INTL("We can exchange your BP for fabulous items.")) - else - pbMessage(speech) - end - scene = BattlePointShop_Scene.new - screen = BattlePointShopScreen.new(scene, stock) - screen.pbBuyScreen - pbMessage(_INTL("Thank you for visiting.")) - pbMessage(_INTL("Please visit us again when you have saved up more BP.")) - $game_temp.clear_mart_prices -end +=end diff --git a/Data/Scripts/016_UI/022_UI_MoveRelearner.rb b/Data/Scripts/016c_UI_old/022_UI_old_MoveRelearner.rb similarity index 98% rename from Data/Scripts/016_UI/022_UI_MoveRelearner.rb rename to Data/Scripts/016c_UI_old/022_UI_old_MoveRelearner.rb index 34084414d..220a09e00 100644 --- a/Data/Scripts/016_UI/022_UI_MoveRelearner.rb +++ b/Data/Scripts/016c_UI_old/022_UI_old_MoveRelearner.rb @@ -1,3 +1,4 @@ +=begin #=============================================================================== # Scene class for handling appearance of the screen. #=============================================================================== @@ -84,7 +85,7 @@ class MoveRelearner_Scene 0, 78 + ((@sprites["commands"].index - @sprites["commands"].top_item) * 64), 0, 0, 258, 72]) selMoveData = GameData::Move.get(@moves[@sprites["commands"].index]) - power = selMoveData.display_damage(@pokemon) + power = selMoveData.display_power(@pokemon) category = selMoveData.display_category(@pokemon) accuracy = selMoveData.display_accuracy(@pokemon) textpos.push([_INTL("CATEGORY"), 272, 120, :left, Color.new(248, 248, 248), Color.black]) @@ -95,7 +96,7 @@ class MoveRelearner_Scene textpos.push([accuracy == 0 ? "---" : "#{accuracy}%", 468, 184, :center, Color.new(64, 64, 64), Color.new(176, 176, 176)]) pbDrawTextPositions(overlay, textpos) - imagepos.push(["Graphics/UI/category", 436, 116, 0, category * CATEGORY_ICON_SIZE[1], *CATEGORY_ICON_SIZE]) + imagepos.push(["Graphics/UI/category", 436, 116, 0, category * GameData::Move::CATEGORY_ICON_SIZE[1], *GameData::Move::CATEGORY_ICON_SIZE]) if @sprites["commands"].index < @moves.length - 1 imagepos.push(["Graphics/UI/Move Reminder/buttons", 48, 350, 0, 0, 76, 32]) end @@ -197,3 +198,4 @@ def pbRelearnMoveScreen(pkmn) end return retval end +=end diff --git a/Data/Scripts/018_Alternate battle modes/001_Battle Frontier/002_Challenge_Data.rb b/Data/Scripts/018_Alternate battle modes/001_Battle Frontier/002_Challenge_Data.rb index e75815f93..62f26f8ff 100644 --- a/Data/Scripts/018_Alternate battle modes/001_Battle Frontier/002_Challenge_Data.rb +++ b/Data/Scripts/018_Alternate battle modes/001_Battle Frontier/002_Challenge_Data.rb @@ -36,17 +36,16 @@ end # #=============================================================================== def pbEntryScreen(*arg) - retval = false + ret_val = false pbFadeOutIn do - scene = PokemonParty_Scene.new - screen = PokemonPartyScreen.new(scene, $player.party) - ret = screen.pbPokemonMultipleEntryScreenEx(pbBattleChallenge.rules.ruleset) + screen = UI::Party.new($player.party, mode: :choose_entry_order) + ret = screen.choose_pokemon_entry_order(pbBattleChallenge.rules.ruleset) # Set party pbBattleChallenge.setParty(ret) if ret # Continue (return true) if Pokémon were chosen - retval = (ret && ret.length > 0) + ret_val = (ret && ret.length > 0) end - return retval + return ret_val end #=============================================================================== diff --git a/Data/Scripts/018_Alternate battle modes/001_Battle Frontier/005_UI_BattleSwap.rb b/Data/Scripts/018_Alternate battle modes/001_Battle Frontier/005_UI_BattleSwap.rb index 2da2abc48..ef253a316 100644 --- a/Data/Scripts/018_Alternate battle modes/001_Battle Frontier/005_UI_BattleSwap.rb +++ b/Data/Scripts/018_Alternate battle modes/001_Battle Frontier/005_UI_BattleSwap.rb @@ -146,9 +146,8 @@ class BattleSwapScene def pbSummary(list, index) visibleSprites = pbFadeOutAndHide(@sprites) { pbUpdate } - scene = PokemonSummary_Scene.new - screen = PokemonSummaryScreen.new(scene) - @sprites["list"].index = screen.pbStartScreen(list, index) + screen = UI::PokemonSummary.new(list, index).main + @sprites["list"].index = screen.result pbFadeInAndShow(@sprites, visibleSprites) { pbUpdate } end diff --git a/Data/Scripts/018_Alternate battle modes/001_SafariZone.rb b/Data/Scripts/018_Alternate battle modes/001_SafariZone.rb index 82a7011db..ab94963e0 100644 --- a/Data/Scripts/018_Alternate battle modes/001_SafariZone.rb +++ b/Data/Scripts/018_Alternate battle modes/001_SafariZone.rb @@ -164,21 +164,36 @@ end #=============================================================================== # #=============================================================================== -class PokemonPauseMenu - alias __safari_pbShowInfo pbShowInfo unless method_defined?(:__safari_pbShowInfo) +class UI::PauseMenu < UI::BaseScreen + alias __safari_show_info show_info unless method_defined?(:__safari_show_info) - def pbShowInfo - __safari_pbShowInfo + def show_info + __safari_show_info return if !pbInSafari? if Settings::SAFARI_STEPS <= 0 - @scene.pbShowInfo(_INTL("Balls: {1}", pbSafariState.ballcount)) + @visuals.show_info(_INTL("Balls: {1}", pbSafariState.ballcount)) else - @scene.pbShowInfo(_INTL("Steps: {1}/{2}\nBalls: {3}", - pbSafariState.steps, Settings::SAFARI_STEPS, pbSafariState.ballcount)) + @visuals.show_info(_INTL("Steps: {1}/{2}\nBalls: {3}", + pbSafariState.steps, Settings::SAFARI_STEPS, pbSafariState.ballcount)) end end end +# class PokemonPauseMenu +# alias __safari_pbShowInfo pbShowInfo unless method_defined?(:__safari_pbShowInfo) +# +# def pbShowInfo +# __safari_pbShowInfo +# return if !pbInSafari? +# if Settings::SAFARI_STEPS <= 0 +# @scene.pbShowInfo(_INTL("Balls: {1}", pbSafariState.ballcount)) +# else +# @scene.pbShowInfo(_INTL("Steps: {1}/{2}\nBalls: {3}", +# pbSafariState.steps, Settings::SAFARI_STEPS, pbSafariState.ballcount)) +# end +# end +# end + #=============================================================================== # #=============================================================================== @@ -188,15 +203,15 @@ MenuHandlers.add(:pause_menu, :quit_safari_game, { "order" => 60, "condition" => proc { next pbInSafari? }, "effect" => proc { |menu| - menu.pbHideMenu + menu.hide_menu if pbConfirmMessage(_INTL("Would you like to leave the Safari Game right now?")) - menu.pbEndScene + menu.silent_end_screen pbSafariState.decision = 1 pbSafariState.pbGoToStart next true end - menu.pbRefresh - menu.pbShowMenu + menu.refresh + menu.show_menu next false } }) diff --git a/Data/Scripts/018_Alternate battle modes/002_BugContest.rb b/Data/Scripts/018_Alternate battle modes/002_BugContest.rb index 85c35d76d..49ed0da56 100644 --- a/Data/Scripts/018_Alternate battle modes/002_BugContest.rb +++ b/Data/Scripts/018_Alternate battle modes/002_BugContest.rb @@ -408,23 +408,40 @@ end #=============================================================================== # #=============================================================================== -class PokemonPauseMenu - alias __bug_contest_pbShowInfo pbShowInfo unless method_defined?(:__bug_contest_pbShowInfo) +class UI::PauseMenu < UI::BaseScreen + alias __bug_contest_show_info show_info unless method_defined?(:__bug_contest_show_info) - def pbShowInfo - __bug_contest_pbShowInfo + def show_info + __bug_contest_show_info return if !pbInBugContest? if pbBugContestState.lastPokemon - @scene.pbShowInfo(_INTL("Caught: {1}\nLevel: {2}\nBalls: {3}", - pbBugContestState.lastPokemon.speciesName, - pbBugContestState.lastPokemon.level, - pbBugContestState.ballcount)) + @visuals.show_info(_INTL("Caught: {1}\nLevel: {2}\nBalls: {3}", + pbBugContestState.lastPokemon.speciesName, + pbBugContestState.lastPokemon.level, + pbBugContestState.ballcount)) else - @scene.pbShowInfo(_INTL("Caught: None\nBalls: {1}", pbBugContestState.ballcount)) + @visuals.show_info(_INTL("Caught: None\nBalls: {1}", pbBugContestState.ballcount)) end end end +# class PokemonPauseMenu +# alias __bug_contest_pbShowInfo pbShowInfo unless method_defined?(:__bug_contest_pbShowInfo) +# +# def pbShowInfo +# __bug_contest_pbShowInfo +# return if !pbInBugContest? +# if pbBugContestState.lastPokemon +# @scene.pbShowInfo(_INTL("Caught: {1}\nLevel: {2}\nBalls: {3}", +# pbBugContestState.lastPokemon.speciesName, +# pbBugContestState.lastPokemon.level, +# pbBugContestState.ballcount)) +# else +# @scene.pbShowInfo(_INTL("Caught: None\nBalls: {1}", pbBugContestState.ballcount)) +# end +# end +# end + #=============================================================================== # #=============================================================================== @@ -434,14 +451,14 @@ MenuHandlers.add(:pause_menu, :quit_bug_contest, { "order" => 60, "condition" => proc { next pbInBugContest? }, "effect" => proc { |menu| - menu.pbHideMenu + menu.hide_menu if pbConfirmMessage(_INTL("Would you like to end the Contest now?")) - menu.pbEndScene + menu.silent_end_screen pbBugContestState.pbStartJudging next true end - menu.pbRefresh - menu.pbShowMenu + menu.refresh + menu.show_menu next false } }) diff --git a/Data/Scripts/019_Utilities/001_Utilities.rb b/Data/Scripts/019_Utilities/001_Utilities.rb index f78f0bf0e..c9c65c18b 100644 --- a/Data/Scripts/019_Utilities/001_Utilities.rb +++ b/Data/Scripts/019_Utilities/001_Utilities.rb @@ -60,6 +60,11 @@ def pbGetLanguage return 2 # Use 'English' by default end +def pbChooseLanguage + commands = Settings::LANGUAGES.map { |val| val[0] } + return pbShowCommands(nil, commands) +end + # Converts a Celsius temperature to Fahrenheit. def toFahrenheit(celsius) return (celsius * 9.0 / 5.0).round + 32 @@ -445,39 +450,38 @@ def pbMoveTutorAnnotations(move, movelist = nil) return ret end -def pbMoveTutorChoose(move, movelist = nil, bymachine = false, oneusemachine = false) +# TODO: The Bag screen needs passing into this method (if using a machine). If +# it exists, refresh it before finishing pbFadeOutIn to update the party +# compatibility icons. +def pbMoveTutorChoose(move, movelist = nil, by_machine = false, one_use_machine = false) ret = false move = GameData::Move.get(move).id if movelist.is_a?(Array) movelist.map! { |m| GameData::Move.get(m).id } end pbFadeOutIn do - movename = GameData::Move.get(move).name + move_name = GameData::Move.get(move).name + screen = UI::Party.new($player.party, mode: :teach_pokemon) annot = pbMoveTutorAnnotations(move, movelist) - scene = PokemonParty_Scene.new - screen = PokemonPartyScreen.new(scene, $player.party) - screen.pbStartScene(_INTL("Teach which Pokémon?"), false, annot) - loop do - chosen = screen.pbChoosePokemon - break if chosen < 0 - pokemon = $player.party[chosen] - if pokemon.egg? - pbMessage(_INTL("Eggs can't be taught any moves.")) { screen.pbUpdate } - elsif pokemon.shadowPokemon? - pbMessage(_INTL("Shadow Pokémon can't be taught any moves.")) { screen.pbUpdate } - elsif movelist && movelist.none? { |j| j == pokemon.species } - pbMessage(_INTL("{1} can't learn {2}.", pokemon.name, movename)) { screen.pbUpdate } - elsif !pokemon.compatible_with_move?(move) - pbMessage(_INTL("{1} can't learn {2}.", pokemon.name, movename)) { screen.pbUpdate } - elsif pbLearnMove(pokemon, move, false, bymachine) { screen.pbUpdate } - $stats.moves_taught_by_item += 1 if bymachine - $stats.moves_taught_by_tutor += 1 if !bymachine - pokemon.add_first_move(move) if oneusemachine - ret = true - break + screen.set_annotations(annot) + screen.choose_pokemon do |pkmn, party_index| + next true if party_index < 0 + if pkmn.egg? + screen.show_message(_INTL("Eggs can't be taught any moves.")) + elsif pkmn.shadowPokemon? + screen.show_message(_INTL("Shadow Pokémon can't be taught any moves.")) + elsif movelist && movelist.none? { |j| j == pkmn.species } + screen.show_message(_INTL("{1} can't learn {2}.", pkmn.name, move_name)) + elsif !pkmn.compatible_with_move?(move) + screen.show_message(_INTL("{1} can't learn {2}.", pkmn.name, move_name)) + elsif pbLearnMove(pkmn, move, false, by_machine, screen) { screen.update } + $stats.moves_taught_by_item += 1 if by_machine + $stats.moves_taught_by_tutor += 1 if !by_machine + pkmn.add_first_move(move) if one_use_machine + next true end + next false end - screen.pbEndScene end return ret # Returns whether the move was learned by a Pokemon end @@ -596,14 +600,6 @@ def pbLoadRpgxpScene(scene) Graphics.transition end -def pbChooseLanguage - commands = [] - Settings::LANGUAGES.each do |lang| - commands.push(lang[0]) - end - return pbShowCommands(nil, commands) -end - def pbScreenCapture t = Time.now filestart = t.strftime("[%Y-%m-%d] %H_%M_%S.%L") diff --git a/Data/Scripts/020_Debug/001_Editor screens/001_EditorScreens.rb b/Data/Scripts/020_Debug/001_Editor screens/001_EditorScreens.rb index 84e8bb004..da8a7a26d 100644 --- a/Data/Scripts/020_Debug/001_Editor screens/001_EditorScreens.rb +++ b/Data/Scripts/020_Debug/001_Editor screens/001_EditorScreens.rb @@ -896,8 +896,8 @@ def pbItemEditorNew(default_name) return end # Choose a pocket - pocket = PocketProperty.set("", 0) - return if pocket == 0 + pocket = PocketProperty.set("", :None) + return if pocket == :None # Choose a price price = LimitProperty.new(999_999).set(_INTL("Purchase price"), -1) return if price == -1 diff --git a/Data/Scripts/020_Debug/002_Editor_DataTypes.rb b/Data/Scripts/020_Debug/002_Editor_DataTypes.rb index fd86d23fd..43b61b4c6 100644 --- a/Data/Scripts/020_Debug/002_Editor_DataTypes.rb +++ b/Data/Scripts/020_Debug/002_Editor_DataTypes.rb @@ -923,18 +923,21 @@ end #=============================================================================== module PocketProperty def self.set(_settingname, oldsetting) - commands = Settings.bag_pocket_names.clone - cmd = pbMessage(_INTL("Choose a pocket for this item."), commands, -1) - return (cmd >= 0) ? cmd + 1 : oldsetting + pockets = GameData::BagPocket.all_pockets + commands = [] + pockets.each { |pckt| commands.push(GameData::BagPocket.get(pckt).name) } + initial_val = pockets.index(GameData::BagPocket.get(oldsetting || 1).id) + cmd = pbMessage(_INTL("Choose a pocket for this item."), commands, -1, nil, initial_val) + return (cmd >= 0) ? pockets[cmd] : oldsetting end def self.defaultValue - return 1 + return GameData::BagPocket.all_pockets.first end def self.format(value) - return _INTL("No Pocket") if value == 0 - return (value) ? Settings.bag_pocket_names[value - 1] : value.inspect + return _INTL("No Pocket") if value == 0 || value == :None + return (value) ? GameData::BagPocket.get(value).name : value.inspect end end diff --git a/Data/Scripts/020_Debug/003_Debug menus/001_Debug_Menus.rb b/Data/Scripts/020_Debug/003_Debug menus/001_Debug_Menus.rb index bcd7903eb..3c2cbb0ec 100644 --- a/Data/Scripts/020_Debug/003_Debug menus/001_Debug_Menus.rb +++ b/Data/Scripts/020_Debug/003_Debug menus/001_Debug_Menus.rb @@ -149,7 +149,7 @@ end # #=============================================================================== module PokemonDebugMixin - def pbPokemonDebug(pkmn, pkmnid, heldpoke = nil, settingUpBattle = false) + def pokemon_debug_menu(pkmn, pkmnid, settingUpBattle = false) # Get all commands commands = CommandMenuList.new MenuHandlers.each_available(:pokemon_debug_menu) do |option, hash, name| @@ -159,7 +159,7 @@ module PokemonDebugMixin # Main loop command = 0 loop do - command = pbShowCommands(_INTL("Do what with {1}?", pkmn.name), commands.list, command) + command = show_menu(_INTL("Do what with {1}?", pkmn.name), commands.list, command) if command < 0 parent = commands.getParent break if !parent @@ -170,7 +170,7 @@ module PokemonDebugMixin if commands.hasSubMenu?(cmd) commands.currentList = cmd command = 0 - elsif MenuHandlers.call(:pokemon_debug_menu, cmd, "effect", pkmn, pkmnid, heldpoke, settingUpBattle, self) + elsif MenuHandlers.call(:pokemon_debug_menu, cmd, "effect", pkmn, pkmnid, settingUpBattle, self) break end end @@ -178,6 +178,73 @@ module PokemonDebugMixin end end +#=============================================================================== +# +#=============================================================================== +class UI::Party + include PokemonDebugMixin +end + +#=============================================================================== +# +#=============================================================================== +class UI::PokemonStorage + include PokemonDebugMixin + + def choose_move(pkmn, message) + move_names = [] + pkmn.moves.each do |move| + next if !move || !move.id + if move.total_pp <= 0 + move_names.push(_INTL("{1} (PP: ---)", move.name)) + else + move_names.push(_INTL("{1} (PP: {2}/{3})", move.name, move.pp, move.total_pp)) + end + end + return show_menu(message, move_names) + end +end + +#=============================================================================== +# +#=============================================================================== +class UI::PartyDebugVisuals < UI::BaseVisuals + def initialize_background; end + def initialize_overlay; end + + def choose_number(help_text, maximum, init_value = 1) + old_letter_by_letter = @sprites[:speech_box].letterbyletter + @sprites[:speech_box].letterbyletter = false + ret = super + @sprites[:speech_box].letterbyletter = old_letter_by_letter + return ret + end +end + +class UI::PartyDebug < UI::BaseScreen + include PokemonDebugMixin + + def initialize_visuals + @visuals = UI::PartyDebugVisuals.new + end + + def choose_move(pkmn, message, index = 0) + # TODO: The move names can get rather wide, making the message box rather + # thin. It's just about acceptable, but maybe the choice window needs + # to be displayed above the message box instead of to the right of it. + move_names = [] + pkmn.moves.each do |move| + next if !move || !move.id + if move.total_pp <= 0 + move_names.push(_INTL("{1} (PP: ---)", move.name)) + else + move_names.push(_INTL("{1} (PP: {2}/{3})", move.name, move.pp, move.total_pp)) + end + end + return show_menu(message, move_names, index) + end +end + #=============================================================================== # #=============================================================================== @@ -405,27 +472,6 @@ module Battle::DebugMixin end end -#=============================================================================== -# -#=============================================================================== -class PokemonPartyScreen - include PokemonDebugMixin -end - -#=============================================================================== -# -#=============================================================================== -class PokemonStorageScreen - include PokemonDebugMixin -end - -#=============================================================================== -# -#=============================================================================== -class PokemonDebugPartyScreen - include PokemonDebugMixin -end - #=============================================================================== # #=============================================================================== diff --git a/Data/Scripts/020_Debug/003_Debug menus/002_Debug_MenuCommands.rb b/Data/Scripts/020_Debug/003_Debug menus/002_Debug_MenuCommands.rb index aaf9a57d1..37ab51a77 100644 --- a/Data/Scripts/020_Debug/003_Debug menus/002_Debug_MenuCommands.rb +++ b/Data/Scripts/020_Debug/003_Debug menus/002_Debug_MenuCommands.rb @@ -221,33 +221,33 @@ MenuHandlers.add(:debug_menu, :storage_wallpapers, { "description" => _INTL("Unlock and lock special wallpapers used in Pokémon storage."), "effect" => proc { w = $PokemonStorage.allWallpapers - if w.length <= PokemonStorage::BASICWALLPAPERQTY + if w.length <= PokemonStorage::BASIC_WALLPAPER_COUNT pbMessage(_INTL("There are no special wallpapers defined.")) - else - paperscmd = 0 - unlockarray = $PokemonStorage.unlockedWallpapers - loop do - paperscmds = [] - paperscmds.push(_INTL("Unlock all")) - paperscmds.push(_INTL("Lock all")) - (PokemonStorage::BASICWALLPAPERQTY...w.length).each do |i| - paperscmds.push((unlockarray[i] ? "[Y]" : "[ ]") + " " + w[i]) + next + end + paperscmd = 0 + unlockarray = $PokemonStorage.unlockedWallpapers + loop do + paperscmds = [] + paperscmds.push(_INTL("Unlock all")) + paperscmds.push(_INTL("Lock all")) + (PokemonStorage::BASIC_WALLPAPER_COUNT...w.length).each do |i| + paperscmds.push((unlockarray[i] ? "[Y]" : "[ ]") + " " + w[i]) + end + paperscmd = pbShowCommands(nil, paperscmds, -1, paperscmd) + break if paperscmd < 0 + case paperscmd + when 0 # Unlock all + (PokemonStorage::BASIC_WALLPAPER_COUNT...w.length).each do |i| + unlockarray[i] = true end - paperscmd = pbShowCommands(nil, paperscmds, -1, paperscmd) - break if paperscmd < 0 - case paperscmd - when 0 # Unlock all - (PokemonStorage::BASICWALLPAPERQTY...w.length).each do |i| - unlockarray[i] = true - end - when 1 # Lock all - (PokemonStorage::BASICWALLPAPERQTY...w.length).each do |i| - unlockarray[i] = false - end - else - paperindex = paperscmd - 2 + PokemonStorage::BASICWALLPAPERQTY - unlockarray[paperindex] = !$PokemonStorage.unlockedWallpapers[paperindex] + when 1 # Lock all + (PokemonStorage::BASIC_WALLPAPER_COUNT...w.length).each do |i| + unlockarray[i] = false end + else + paperindex = paperscmd - 2 + PokemonStorage::BASIC_WALLPAPER_COUNT + unlockarray[paperindex] = !$PokemonStorage.unlockedWallpapers[paperindex] end end } @@ -354,9 +354,9 @@ MenuHandlers.add(:debug_menu, :test_wild_battle_advanced, { end else # Edit a Pokémon if pbConfirmMessage(_INTL("Change this Pokémon?")) - scr = PokemonDebugPartyScreen.new - scr.pbPokemonDebug(pkmn[pkmnCmd], -1, nil, true) - scr.pbEndScreen + scr = UI::PartyDebug.new + scr.pokemon_debug_menu(pkmn[pkmnCmd], -1, true) + scr.silent_end_screen elsif pbConfirmMessage(_INTL("Delete this Pokémon?")) pkmn.delete_at(pkmnCmd) size0 = [pkmn.length, 1].max @@ -711,9 +711,7 @@ MenuHandlers.add(:debug_menu, :open_storage, { "description" => _INTL("Opens the Pokémon storage boxes in Organize Boxes mode."), "effect" => proc { pbFadeOutIn do - scene = PokemonStorageScene.new - screen = PokemonStorageScreen.new(scene, $PokemonStorage) - screen.pbStartScreen(0) + UI::PokemonStorage.new($PokemonStorage, mode: :organize).main end } }) @@ -788,7 +786,7 @@ MenuHandlers.add(:debug_menu, :add_item, { pbListScreenBlock(_INTL("ADD ITEM"), ItemLister.new) do |button, item| if button == Input::USE && item params = ChooseNumberParams.new - params.setRange(1, Settings::BAG_MAX_PER_SLOT) + params.setRange(1, PokemonBag::MAX_PER_SLOT) params.setInitialValue(1) params.setCancelValue(0) qty = pbMessageChooseNumber(_INTL("Add how many {1}?", @@ -808,7 +806,7 @@ MenuHandlers.add(:debug_menu, :fill_bag, { "description" => _INTL("Empties the Bag and then fills it with a certain number of every item."), "effect" => proc { params = ChooseNumberParams.new - params.setRange(1, Settings::BAG_MAX_PER_SLOT) + params.setRange(1, PokemonBag::MAX_PER_SLOT) params.setInitialValue(1) params.setCancelValue(0) qty = pbMessageChooseNumber(_INTL("Choose the number of items."), params) @@ -816,13 +814,15 @@ MenuHandlers.add(:debug_menu, :fill_bag, { $bag.clear # NOTE: This doesn't simply use $bag.add for every item in turn, because # that's really slow when done in bulk. - pocket_sizes = Settings::BAG_MAX_POCKET_SIZE + pocket_sizes = {} + GameData::BagPocket.each { |pckt| pocket_sizes[pckt.id] = pckt.max_slots } bag = $bag.pockets # Called here so that it only rearranges itself once GameData::Item.each do |i| - next if !pocket_sizes[i.pocket - 1] || pocket_sizes[i.pocket - 1] == 0 - next if pocket_sizes[i.pocket - 1] > 0 && bag[i.pocket].length >= pocket_sizes[i.pocket - 1] + bag_pocket = i.bag_pocket + next if !pocket_sizes[bag_pocket] || pocket_sizes[bag_pocket] == 0 + next if pocket_sizes[bag_pocket] > 0 && bag[bag_pocket].length >= pocket_sizes[bag_pocket] item_qty = (i.is_important?) ? 1 : qty - bag[i.pocket].push([i.id, item_qty]) + bag[bag_pocket].push([i.id, item_qty]) end # NOTE: Auto-sorting pockets don't need to be sorted afterwards, because # items are added in the same order they would be sorted into. diff --git a/Data/Scripts/020_Debug/003_Debug menus/003_Debug_MenuExtraCode.rb b/Data/Scripts/020_Debug/003_Debug menus/003_Debug_MenuExtraCode.rb index ab9ac9488..5f9a949bb 100644 --- a/Data/Scripts/020_Debug/003_Debug menus/003_Debug_MenuExtraCode.rb +++ b/Data/Scripts/020_Debug/003_Debug menus/003_Debug_MenuExtraCode.rb @@ -362,9 +362,7 @@ def pbDebugDayCare [_INTL("Summary"), _INTL("Withdraw"), _INTL("Cancel")], 3) when 0 # Summary pbFadeOutIn do - scene = PokemonSummary_Scene.new - screen = PokemonSummaryScreen.new(scene, false) - screen.pbStartScreen([pkmn], 0) + UI::PokemonSummary.new(pkmn).main need_refresh = true end when 1 # Withdraw @@ -450,10 +448,10 @@ class SpriteWindow_DebugRoamers < Window_DrawableCommand self.shadowtext(_INTL("[Clear all current roamer locations]"), rect.x, rect.y, nameWidth, rect.height) else pkmn = Settings::ROAMING_SPECIES[index] - name = GameData::Species.get(pkmn[0]).name + " (Lv. #{pkmn[1]})" + name = GameData::Species.get(pkmn[:species]).name + " (Lv. #{pkmn[:level]})" status = "" statuscolor = 0 - if pkmn[2] <= 0 || $game_switches[pkmn[2]] + if !pkmn[:game_switch] || pkmn[:game_switch] <= 0 || $game_switches[pkmn[:game_switch]] status = $PokemonGlobal.roamPokemon[index] if status == true if $PokemonGlobal.roamPokemonCaught[index] @@ -474,7 +472,7 @@ class SpriteWindow_DebugRoamers < Window_DrawableCommand statuscolor = 2 end else - status = "[NOT ROAMING][Switch #{pkmn[2]} is off]" + status = "[NOT ROAMING][Switch #{pkmn[:game_switch]} is off]" end self.shadowtext(name, rect.x, rect.y, nameWidth, rect.height) self.shadowtext(status, rect.x + nameWidth, rect.y, statusWidth, rect.height, 1, statuscolor) @@ -502,7 +500,7 @@ def pbDebugRoamers pkmn = nil end if Input.trigger?(Input::ACTION) && cmdwindow.index < cmdwindow.roamerCount && - (pkmn[2] <= 0 || $game_switches[pkmn[2]]) && + (!pkmn[:game_switch] || pkmn[:game_switch] <= 0 || $game_switches[pkmn[:game_switch]]) && $PokemonGlobal.roamPokemon[cmdwindow.index] != true # Roam selected Pokémon pbPlayDecisionSE @@ -529,9 +527,9 @@ def pbDebugRoamers if cmdwindow.index < cmdwindow.roamerCount pbPlayDecisionSE # Toggle through roaming, not roaming, defeated - if pkmn[2] > 0 && !$game_switches[pkmn[2]] + if pkmn[:game_switch] && pkmn[:game_switch] > 0 && !$game_switches[pkmn[:game_switch]] # not roaming -> roaming - $game_switches[pkmn[2]] = true + $game_switches[pkmn[:game_switch]] = true elsif $PokemonGlobal.roamPokemon[cmdwindow.index] != true # roaming -> defeated $PokemonGlobal.roamPokemon[cmdwindow.index] = true @@ -540,9 +538,9 @@ def pbDebugRoamers !$PokemonGlobal.roamPokemonCaught[cmdwindow.index] # defeated -> caught $PokemonGlobal.roamPokemonCaught[cmdwindow.index] = true - elsif pkmn[2] > 0 + elsif pkmn[:game_switch] && pkmn[:game_switch] > 0 # caught -> not roaming (or roaming if Switch ID is 0) - $game_switches[pkmn[2]] = false if pkmn[2] > 0 + $game_switches[pkmn[:game_switch]] = false if pkmn[:game_switch] && pkmn[:game_switch] > 0 $PokemonGlobal.roamPokemon[cmdwindow.index] = nil $PokemonGlobal.roamPokemonCaught[cmdwindow.index] = false end @@ -764,133 +762,3 @@ def pbCheckTileValidity(tile_id, map, tilesets, passages) end return false end - -#=============================================================================== -# Pseudo-party screen for editing Pokémon being set up for a wild battle. -#=============================================================================== -class PokemonDebugPartyScreen - def initialize - @viewport = Viewport.new(0, 0, Graphics.width, Graphics.height) - @viewport.z = 99999 - @messageBox = Window_AdvancedTextPokemon.new("") - @messageBox.viewport = @viewport - @messageBox.visible = false - @messageBox.letterbyletter = true - pbBottomLeftLines(@messageBox, 2) - @helpWindow = Window_UnformattedTextPokemon.new("") - @helpWindow.viewport = @viewport - @helpWindow.visible = true - pbBottomLeftLines(@helpWindow, 1) - end - - def pbEndScreen - @messageBox.dispose - @helpWindow.dispose - @viewport.dispose - end - - def pbDisplay(text) - @messageBox.text = text - @messageBox.visible = true - @helpWindow.visible = false - pbPlayDecisionSE - loop do - Graphics.update - Input.update - pbUpdate - if @messageBox.busy? - if Input.trigger?(Input::USE) - pbPlayDecisionSE if @messageBox.pausing? - @messageBox.resume - end - else - if Input.trigger?(Input::BACK) || Input.trigger?(Input::USE) - break - end - end - end - @messageBox.visible = false - @helpWindow.visible = true - end - - def pbConfirm(text) - ret = -1 - @messageBox.text = text - @messageBox.visible = true - @helpWindow.visible = false - using(cmdwindow = Window_CommandPokemon.new([_INTL("Yes"), _INTL("No")])) do - cmdwindow.visible = false - pbBottomRight(cmdwindow) - cmdwindow.y -= @messageBox.height - cmdwindow.z = @viewport.z + 1 - loop do - Graphics.update - Input.update - cmdwindow.visible = true if !@messageBox.busy? - cmdwindow.update - pbUpdate - if !@messageBox.busy? - if Input.trigger?(Input::BACK) - ret = false - break - elsif Input.trigger?(Input::USE) && @messageBox.resume - ret = (cmdwindow.index == 0) - break - end - end - end - end - @messageBox.visible = false - @helpWindow.visible = true - return ret - end - - def pbShowCommands(text, commands, index = 0) - ret = -1 - @helpWindow.visible = true - using(cmdwindow = Window_CommandPokemonColor.new(commands)) do - cmdwindow.z = @viewport.z + 1 - cmdwindow.index = index - pbBottomRight(cmdwindow) - @helpWindow.resizeHeightToFit(text, Graphics.width - cmdwindow.width) - @helpWindow.text = text - pbBottomLeft(@helpWindow) - loop do - Graphics.update - Input.update - cmdwindow.update - pbUpdate - if Input.trigger?(Input::BACK) - pbPlayCancelSE - ret = -1 - break - elsif Input.trigger?(Input::USE) - pbPlayDecisionSE - ret = cmdwindow.index - break - end - end - end - return ret - end - - def pbChooseMove(pkmn, text, index = 0) - moveNames = [] - pkmn.moves.each do |i| - if i.total_pp <= 0 - moveNames.push(_INTL("{1} (PP: ---)", i.name)) - else - moveNames.push(_INTL("{1} (PP: {2}/{3})", i.name, i.pp, i.total_pp)) - end - end - return pbShowCommands(text, moveNames, index) - end - - def pbRefreshSingle(index); end - - def update - @messageBox.update - @helpWindow.update - end - alias pbUpdate update -end diff --git a/Data/Scripts/020_Debug/003_Debug menus/005_Debug_BattlePkmnCommands.rb b/Data/Scripts/020_Debug/003_Debug menus/005_Debug_BattlePkmnCommands.rb index 7afb4bbce..60d67b08e 100644 --- a/Data/Scripts/020_Debug/003_Debug menus/005_Debug_BattlePkmnCommands.rb +++ b/Data/Scripts/020_Debug/003_Debug menus/005_Debug_BattlePkmnCommands.rb @@ -632,8 +632,8 @@ MenuHandlers.add(:battle_pokemon_debug_menu, :set_item, { end when 1 # Remove item if pkmn.hasItem? - (battler || pkmn).item = nil - pkmn.mail = nil + pkmn.item = nil + battler.item = nil if battler end else break diff --git a/Data/Scripts/020_Debug/003_Debug menus/007_Debug_PokemonCommands.rb b/Data/Scripts/020_Debug/003_Debug menus/007_Debug_PokemonCommands.rb index e4aaa7cf1..24389beb1 100644 --- a/Data/Scripts/020_Debug/003_Debug menus/007_Debug_PokemonCommands.rb +++ b/Data/Scripts/020_Debug/003_Debug menus/007_Debug_PokemonCommands.rb @@ -10,20 +10,18 @@ MenuHandlers.add(:pokemon_debug_menu, :hp_status_menu, { MenuHandlers.add(:pokemon_debug_menu, :set_hp, { "name" => _INTL("Set HP"), "parent" => :hp_status_menu, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| if pkmn.egg? - screen.pbDisplay(_INTL("{1} is an egg.", pkmn.name)) - else - params = ChooseNumberParams.new - params.setRange(0, pkmn.totalhp) - params.setDefaultValue(pkmn.hp) - newhp = pbMessageChooseNumber( - _INTL("Set {1}'s HP (max. {2}).", pkmn.name, pkmn.totalhp), params - ) { screen.pbUpdate } - if newhp != pkmn.hp - pkmn.hp = newhp - screen.pbRefreshSingle(pkmnid) - end + screen.show_message(_INTL("{1} is an egg.", pkmn.name)) + next false + end + params = ChooseNumberParams.new + params.setRange(0, pkmn.totalhp) + params.setDefaultValue(pkmn.hp) + new_hp = screen.choose_number("\\se[]" + _INTL("Set the Pokémon's HP (max. {1}).", params.maxNumber), params) + if new_hp != pkmn.hp + pkmn.hp = new_hp + screen.refresh end next false } @@ -32,49 +30,44 @@ MenuHandlers.add(:pokemon_debug_menu, :set_hp, { MenuHandlers.add(:pokemon_debug_menu, :set_status, { "name" => _INTL("Set status"), "parent" => :hp_status_menu, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| if pkmn.egg? - screen.pbDisplay(_INTL("{1} is an egg.", pkmn.name)) + screen.show_message(_INTL("{1} is an egg.", pkmn.name)) + next false elsif pkmn.hp <= 0 - screen.pbDisplay(_INTL("{1} is fainted, can't change status.", pkmn.name)) - else - cmd = 0 - commands = [_INTL("[Cure]")] - ids = [:NONE] - GameData::Status.each do |s| - next if s.id == :NONE - commands.push(_INTL("Set {1}", s.name)) - ids.push(s.id) + screen.show_message(_INTL("{1} is fainted, can't change status.", pkmn.name)) + next false + end + commands = {:NONE => _INTL("[Cure]")} + GameData::Status.each do |s| + commands[s.id] = _INTL("Set {1}", s.name) if s.id != :NONE + end + cmd = commands.keys.first + loop do + msg = _INTL("Current status: {1}", GameData::Status.get(pkmn.status).name) + if pkmn.status == :SLEEP + msg = _INTL("Current status: {1} (turns: {2})", GameData::Status.get(pkmn.status).name, pkmn.statusCount) end - loop do - msg = _INTL("Current status: {1}", GameData::Status.get(pkmn.status).name) - if pkmn.status == :SLEEP - msg = _INTL("Current status: {1} (turns: {2})", - GameData::Status.get(pkmn.status).name, pkmn.statusCount) + cmd = screen.show_menu(msg, commands, commands.keys.index(cmd)) + break if cmd.nil? + case cmd + when :NONE # Cure + pkmn.heal_status + screen.refresh + else # Give status problem + count = 0 + cancel = false + if cmd == :SLEEP + params = ChooseNumberParams.new + params.setRange(0, 9) + params.setDefaultValue(3) + count = screen.choose_number("\\se[]" + _INTL("Set the Pokémon's sleep count."), params) + cancel = true if count <= 0 end - cmd = screen.pbShowCommands(msg, commands, cmd) - break if cmd < 0 - case cmd - when 0 # Cure - pkmn.heal_status - screen.pbRefreshSingle(pkmnid) - else # Give status problem - count = 0 - cancel = false - if ids[cmd] == :SLEEP - params = ChooseNumberParams.new - params.setRange(0, 9) - params.setDefaultValue(3) - count = pbMessageChooseNumber( - _INTL("Set the Pokémon's sleep count."), params - ) { screen.pbUpdate } - cancel = true if count <= 0 - end - if !cancel - pkmn.status = ids[cmd] - pkmn.statusCount = count - screen.pbRefreshSingle(pkmnid) - end + if !cancel + pkmn.status = cmd + pkmn.statusCount = count + screen.refresh end end end @@ -85,13 +78,12 @@ MenuHandlers.add(:pokemon_debug_menu, :set_status, { MenuHandlers.add(:pokemon_debug_menu, :full_heal, { "name" => _INTL("Fully heal"), "parent" => :hp_status_menu, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| if pkmn.egg? - screen.pbDisplay(_INTL("{1} is an egg.", pkmn.name)) + screen.show_message(_INTL("{1} is an egg.", pkmn.name)) else pkmn.heal - screen.pbDisplay(_INTL("{1} was fully healed.", pkmn.name)) - screen.pbRefreshSingle(pkmnid) + screen.refresh end next false } @@ -100,12 +92,12 @@ MenuHandlers.add(:pokemon_debug_menu, :full_heal, { MenuHandlers.add(:pokemon_debug_menu, :make_fainted, { "name" => _INTL("Make fainted"), "parent" => :hp_status_menu, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| if pkmn.egg? - screen.pbDisplay(_INTL("{1} is an egg.", pkmn.name)) + screen.show_message(_INTL("{1} is an egg.", pkmn.name)) else pkmn.hp = 0 - screen.pbRefreshSingle(pkmnid) + screen.refresh end next false } @@ -114,32 +106,35 @@ MenuHandlers.add(:pokemon_debug_menu, :make_fainted, { MenuHandlers.add(:pokemon_debug_menu, :set_pokerus, { "name" => _INTL("Set Pokérus"), "parent" => :hp_status_menu, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + commands = { + :random_strain => _INTL("Give random strain"), + :non_infectious => _INTL("Make not infectious"), + :clear => _INTL("Clear Pokérus") + } + cmd = commands.keys.first loop do pokerus = (pkmn.pokerus) ? pkmn.pokerus : 0 msg = [_INTL("{1} doesn't have Pokérus.", pkmn.name), _INTL("Has strain {1}, infectious for {2} more days.", pokerus / 16, pokerus % 16), _INTL("Has strain {1}, not infectious.", pokerus / 16)][pkmn.pokerusStage] - cmd = screen.pbShowCommands(msg, - [_INTL("Give random strain"), - _INTL("Make not infectious"), - _INTL("Clear Pokérus")], cmd) - break if cmd < 0 + cmd = screen.show_menu(msg, commands, commands.keys.index(cmd)) + break if cmd.nil? case cmd - when 0 # Give random strain + when :random_strain + pkmn.pokerus = 0 pkmn.givePokerus - screen.pbRefreshSingle(pkmnid) - when 1 # Make not infectious + screen.refresh + when :non_infectious if pokerus > 0 strain = pokerus / 16 p = strain << 4 pkmn.pokerus = p - screen.pbRefreshSingle(pkmnid) + screen.refresh end - when 2 # Clear Pokérus + when :clear pkmn.pokerus = 0 - screen.pbRefreshSingle(pkmnid) + screen.refresh end end next false @@ -158,21 +153,19 @@ MenuHandlers.add(:pokemon_debug_menu, :level_stats, { MenuHandlers.add(:pokemon_debug_menu, :set_level, { "name" => _INTL("Set level"), "parent" => :level_stats, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| if pkmn.egg? - screen.pbDisplay(_INTL("{1} is an egg.", pkmn.name)) - else - params = ChooseNumberParams.new - params.setRange(1, GameData::GrowthRate.max_level) - params.setDefaultValue(pkmn.level) - level = pbMessageChooseNumber( - _INTL("Set the Pokémon's level (max. {1}).", params.maxNumber), params - ) { screen.pbUpdate } - if level != pkmn.level - pkmn.level = level - pkmn.calc_stats - screen.pbRefreshSingle(pkmnid) - end + screen.show_message(_INTL("{1} is an egg.", pkmn.name)) + next false + end + params = ChooseNumberParams.new + params.setRange(1, GameData::GrowthRate.max_level) + params.setDefaultValue(pkmn.level) + level = screen.choose_number("\\se[]" + _INTL("Set the Pokémon's level (max. {1}).", params.maxNumber), params) + if level != pkmn.level + pkmn.level = level + pkmn.calc_stats + screen.refresh end next false } @@ -181,27 +174,25 @@ MenuHandlers.add(:pokemon_debug_menu, :set_level, { MenuHandlers.add(:pokemon_debug_menu, :set_exp, { "name" => _INTL("Set Exp"), "parent" => :level_stats, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| if pkmn.egg? - screen.pbDisplay(_INTL("{1} is an egg.", pkmn.name)) - else - minxp = pkmn.growth_rate.minimum_exp_for_level(pkmn.level) - maxxp = pkmn.growth_rate.minimum_exp_for_level(pkmn.level + 1) - if minxp == maxxp - screen.pbDisplay(_INTL("{1} is at the maximum level.", pkmn.name)) - else - params = ChooseNumberParams.new - params.setRange(minxp, maxxp - 1) - params.setDefaultValue(pkmn.exp) - newexp = pbMessageChooseNumber( - _INTL("Set the Pokémon's Exp (range {1}-{2}).", minxp, maxxp - 1), params - ) { screen.pbUpdate } - if newexp != pkmn.exp - pkmn.exp = newexp - pkmn.calc_stats - screen.pbRefreshSingle(pkmnid) - end - end + screen.show_message(_INTL("{1} is an egg.", pkmn.name)) + next false + end + min_xp = pkmn.growth_rate.minimum_exp_for_level(pkmn.level) + max_xp = pkmn.growth_rate.minimum_exp_for_level(pkmn.level + 1) + if min_xp == max_xp + screen.show_message(_INTL("{1} is at the maximum level.", pkmn.name)) + next false + end + params = ChooseNumberParams.new + params.setRange(min_xp, max_xp - 1) + params.setDefaultValue(pkmn.exp) + new_exp = screen.choose_number("\\se[]" + _INTL("Set the Pokémon's Exp (range {1}-{2}).", min_xp, max_xp - 1), params) + if new_exp != pkmn.exp + pkmn.exp = new_exp + pkmn.calc_stats + screen.refresh end next false } @@ -210,110 +201,111 @@ MenuHandlers.add(:pokemon_debug_menu, :set_exp, { MenuHandlers.add(:pokemon_debug_menu, :hidden_values, { "name" => _INTL("EV/IV/personal ID..."), "parent" => :level_stats, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + commands = { + :set_evs => _INTL("Set EVs"), + :set_ivs => _INTL("Set IVs"), + :random_pid => _INTL("Randomize pID") + } + cmd = commands.keys.first loop do - persid = sprintf("0x%08X", pkmn.personalID) - cmd = screen.pbShowCommands(_INTL("Personal ID is {1}.", persid), - [_INTL("Set EVs"), - _INTL("Set IVs"), - _INTL("Randomise pID")], cmd) - break if cmd < 0 + pers_id = sprintf("0x%08X", pkmn.personalID) + cmd = screen.show_menu(_INTL("Personal ID is {1}.", pers_id), commands, commands.keys.index(cmd)) + break if cmd.nil? case cmd - when 0 # Set EVs - cmd2 = 0 + when :set_evs + ev_cmd = nil loop do - totalev = 0 - evcommands = [] - ev_id = [] + total_evs = 0 + ev_commands = {} + stats = [] GameData::Stat.each_main do |s| - evcommands.push(s.name + " (#{pkmn.ev[s.id]})") - ev_id.push(s.id) - totalev += pkmn.ev[s.id] + ev_commands[s.id] = s.name + " (#{pkmn.ev[s.id]})" + stats.push(s.id) + total_evs += pkmn.ev[s.id] end - evcommands.push(_INTL("Randomise all")) - evcommands.push(_INTL("Max randomise all")) - cmd2 = screen.pbShowCommands(_INTL("Change which EV?\nTotal: {1}/{2} ({3}%)", - totalev, Pokemon::EV_LIMIT, - 100 * totalev / Pokemon::EV_LIMIT), evcommands, cmd2) - break if cmd2 < 0 - if cmd2 < ev_id.length - params = ChooseNumberParams.new - upperLimit = 0 - GameData::Stat.each_main { |s| upperLimit += pkmn.ev[s.id] if s.id != ev_id[cmd2] } - upperLimit = Pokemon::EV_LIMIT - upperLimit - upperLimit = [upperLimit, Pokemon::EV_STAT_LIMIT].min - thisValue = [pkmn.ev[ev_id[cmd2]], upperLimit].min - params.setRange(0, upperLimit) - params.setDefaultValue(thisValue) - params.setCancelValue(thisValue) - f = pbMessageChooseNumber(_INTL("Set the EV for {1} (max. {2}).", - GameData::Stat.get(ev_id[cmd2]).name, upperLimit), params) { screen.pbUpdate } - if f != pkmn.ev[ev_id[cmd2]] - pkmn.ev[ev_id[cmd2]] = f - pkmn.calc_stats - screen.pbRefreshSingle(pkmnid) - end - else # (Max) Randomise all - evTotalTarget = Pokemon::EV_LIMIT - if cmd2 == evcommands.length - 2 # Randomize all (not max) - evTotalTarget = rand(Pokemon::EV_LIMIT) - end - GameData::Stat.each_main { |s| pkmn.ev[s.id] = 0 } - while evTotalTarget > 0 - r = rand(ev_id.length) - next if pkmn.ev[ev_id[r]] >= Pokemon::EV_STAT_LIMIT - addVal = 1 + rand(Pokemon::EV_STAT_LIMIT / 4) - addVal = addVal.clamp(0, evTotalTarget) - addVal = addVal.clamp(0, Pokemon::EV_STAT_LIMIT - pkmn.ev[ev_id[r]]) - next if addVal == 0 - pkmn.ev[ev_id[r]] += addVal - evTotalTarget -= addVal + ev_commands[:randomize] = _INTL("Randomize all") + ev_commands[:max_randomize] = _INTL("Max randomize all") + ev_cmd ||= ev_commands.keys.first + ev_cmd = screen.show_menu( + _INTL("Change which EV?\nTotal: {1}/{2} ({3}%)", total_evs, Pokemon::EV_LIMIT, 100 * total_evs / Pokemon::EV_LIMIT), + ev_commands, ev_commands.keys.index(ev_cmd) + ) + break if ev_cmd.nil? + case ev_cmd + when :randomize, :max_randomize + ev_total_target = (ev_cmd == :randomize) ? rand(Pokemon::EV_LIMIT) : Pokemon::EV_LIMIT + stats.each { |stat| pkmn.ev[stat] = 0 } + while ev_total_target > 0 + stat = stats.sample + next if pkmn.ev[stat] >= Pokemon::EV_STAT_LIMIT + add_val = [1 + rand(Pokemon::EV_STAT_LIMIT / 4), ev_total_target, Pokemon::EV_STAT_LIMIT - pkmn.ev[stat]].min + next if add_val == 0 + pkmn.ev[stat] += add_val + ev_total_target -= add_val end pkmn.calc_stats - screen.pbRefreshSingle(pkmnid) + screen.refresh + else # Set a particular stat's EVs + params = ChooseNumberParams.new + total_other_evs = 0 + stats.each { |stat| total_other_evs += pkmn.ev[stat] if stat != ev_cmd } + upper_limit = [Pokemon::EV_LIMIT - total_other_evs, Pokemon::EV_STAT_LIMIT].min + this_value = [pkmn.ev[ev_cmd], upper_limit].min + params.setRange(0, upper_limit) + params.setDefaultValue(this_value) + params.setCancelValue(this_value) + new_val = screen.choose_number("\\se[]" + _INTL("Set the EV for {1} (max. {2}).", + GameData::Stat.get(ev_cmd).name, upper_limit), params) + if new_val != pkmn.ev[ev_cmd] + pkmn.ev[ev_cmd] = new_val + pkmn.calc_stats + screen.refresh + end end end - when 1 # Set IVs - cmd2 = 0 + when :set_ivs + iv_cmd = nil loop do - hiddenpower = pbHiddenPower(pkmn) - totaliv = 0 - ivcommands = [] - iv_id = [] + total_ivs = 0 + iv_commands = {} + stats = [] GameData::Stat.each_main do |s| - ivcommands.push(s.name + " (#{pkmn.iv[s.id]})") - iv_id.push(s.id) - totaliv += pkmn.iv[s.id] + iv_commands[s.id] = s.name + " (#{pkmn.iv[s.id]})" + stats.push(s.id) + total_ivs += pkmn.iv[s.id] end + iv_commands[:randomize] = _INTL("Randomize all") + iv_cmd ||= iv_commands.keys.first + hidden_power = pbHiddenPower(pkmn) msg = _INTL("Change which IV?\nHidden Power:\n{1}, power {2}\nTotal: {3}/{4} ({5}%)", - GameData::Type.get(hiddenpower[0]).name, hiddenpower[1], totaliv, - iv_id.length * Pokemon::IV_STAT_LIMIT, 100 * totaliv / (iv_id.length * Pokemon::IV_STAT_LIMIT)) - ivcommands.push(_INTL("Randomise all")) - cmd2 = screen.pbShowCommands(msg, ivcommands, cmd2) - break if cmd2 < 0 - if cmd2 < iv_id.length + GameData::Type.get(hidden_power[0]).name, hidden_power[1], total_ivs, + stats.length * Pokemon::IV_STAT_LIMIT, 100 * total_ivs / (stats.length * Pokemon::IV_STAT_LIMIT)) + iv_cmd = screen.show_menu(msg, iv_commands, iv_commands.keys.index(iv_cmd)) + break if iv_cmd.nil? + case iv_cmd + when :randomize + stats.each { |stat| pkmn.iv[stat] = rand(Pokemon::IV_STAT_LIMIT + 1) } + pkmn.calc_stats + screen.refresh + else # Set a particular stat's IVs params = ChooseNumberParams.new params.setRange(0, Pokemon::IV_STAT_LIMIT) - params.setDefaultValue(pkmn.iv[iv_id[cmd2]]) - params.setCancelValue(pkmn.iv[iv_id[cmd2]]) - f = pbMessageChooseNumber(_INTL("Set the IV for {1} (max. 31).", - GameData::Stat.get(iv_id[cmd2]).name), params) { screen.pbUpdate } - if f != pkmn.iv[iv_id[cmd2]] - pkmn.iv[iv_id[cmd2]] = f + params.setDefaultValue(pkmn.iv[iv_cmd]) + params.setCancelValue(pkmn.iv[iv_cmd]) + new_val = screen.choose_number("\\se[]" + _INTL("Set the IV for {1} (max. {2}).", + GameData::Stat.get(iv_cmd).name, params.maxNumber), params) + if new_val != pkmn.iv[iv_cmd] + pkmn.iv[iv_cmd] = new_val pkmn.calc_stats - screen.pbRefreshSingle(pkmnid) + screen.refresh end - else # Randomise all - GameData::Stat.each_main { |s| pkmn.iv[s.id] = rand(Pokemon::IV_STAT_LIMIT + 1) } - pkmn.calc_stats - screen.pbRefreshSingle(pkmnid) end end - when 2 # Randomise pID + when :random_pid pkmn.personalID = rand(2**16) | (rand(2**16) << 16) pkmn.calc_stats - screen.pbRefreshSingle(pkmnid) + screen.refresh end end next false @@ -323,16 +315,14 @@ MenuHandlers.add(:pokemon_debug_menu, :hidden_values, { MenuHandlers.add(:pokemon_debug_menu, :set_happiness, { "name" => _INTL("Set happiness"), "parent" => :level_stats, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| params = ChooseNumberParams.new params.setRange(0, 255) params.setDefaultValue(pkmn.happiness) - h = pbMessageChooseNumber( - _INTL("Set the Pokémon's happiness (max. 255)."), params - ) { screen.pbUpdate } - if h != pkmn.happiness - pkmn.happiness = h - screen.pbRefreshSingle(pkmnid) + new_val = screen.choose_number("\\se[]" + _INTL("Set the Pokémon's happiness (max. {1}).", params.maxNumber), params) + if new_val != pkmn.happiness + pkmn.happiness = new_val + screen.refresh end next false } @@ -346,16 +336,14 @@ MenuHandlers.add(:pokemon_debug_menu, :contest_stats, { MenuHandlers.add(:pokemon_debug_menu, :set_beauty, { "name" => _INTL("Set Beauty"), "parent" => :contest_stats, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| params = ChooseNumberParams.new params.setRange(0, 255) params.setDefaultValue(pkmn.beauty) - newval = pbMessageChooseNumber( - _INTL("Set the Pokémon's Beauty (max. 255)."), params - ) { screen.pbUpdate } - if newval != pkmn.beauty - pkmn.beauty = newval - screen.pbRefreshSingle(pkmnid) + new_val = screen.choose_number("\\se[]" + _INTL("Set the Pokémon's Beauty (max. {1}).", params.maxNumber), params) + if new_val != pkmn.beauty + pkmn.beauty = new_val + screen.refresh end next false } @@ -364,16 +352,14 @@ MenuHandlers.add(:pokemon_debug_menu, :set_beauty, { MenuHandlers.add(:pokemon_debug_menu, :set_cool, { "name" => _INTL("Set Cool"), "parent" => :contest_stats, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| params = ChooseNumberParams.new params.setRange(0, 255) params.setDefaultValue(pkmn.cool) - newval = pbMessageChooseNumber( - _INTL("Set the Pokémon's Cool (max. 255)."), params - ) { screen.pbUpdate } - if newval != pkmn.cool - pkmn.cool = newval - screen.pbRefreshSingle(pkmnid) + new_val = screen.choose_number("\\se[]" + _INTL("Set the Pokémon's Cool (max. {1}).", params.maxNumber), params) + if new_val != pkmn.cool + pkmn.cool = new_val + screen.refresh end next false } @@ -382,16 +368,14 @@ MenuHandlers.add(:pokemon_debug_menu, :set_cool, { MenuHandlers.add(:pokemon_debug_menu, :set_cute, { "name" => _INTL("Set Cute"), "parent" => :contest_stats, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| params = ChooseNumberParams.new params.setRange(0, 255) params.setDefaultValue(pkmn.cute) - newval = pbMessageChooseNumber( - _INTL("Set the Pokémon's Cute (max. 255)."), params - ) { screen.pbUpdate } - if newval != pkmn.cute - pkmn.cute = newval - screen.pbRefreshSingle(pkmnid) + new_val = screen.choose_number("\\se[]" + _INTL("Set the Pokémon's Cute (max. {1}).", params.maxNumber), params) + if new_val != pkmn.cute + pkmn.cute = new_val + screen.refresh end next false } @@ -400,16 +384,14 @@ MenuHandlers.add(:pokemon_debug_menu, :set_cute, { MenuHandlers.add(:pokemon_debug_menu, :set_smart, { "name" => _INTL("Set Smart"), "parent" => :contest_stats, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| params = ChooseNumberParams.new params.setRange(0, 255) params.setDefaultValue(pkmn.smart) - newval = pbMessageChooseNumber( - _INTL("Set the Pokémon's Smart (max. 255)."), params - ) { screen.pbUpdate } - if newval != pkmn.smart - pkmn.smart = newval - screen.pbRefreshSingle(pkmnid) + new_val = screen.choose_number("\\se[]" + _INTL("Set the Pokémon's Smart (max. {1}).", params.maxNumber), params) + if new_val != pkmn.smart + pkmn.smart = new_val + screen.refresh end next false } @@ -418,16 +400,14 @@ MenuHandlers.add(:pokemon_debug_menu, :set_smart, { MenuHandlers.add(:pokemon_debug_menu, :set_tough, { "name" => _INTL("Set Tough"), "parent" => :contest_stats, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| params = ChooseNumberParams.new params.setRange(0, 255) params.setDefaultValue(pkmn.tough) - newval = pbMessageChooseNumber( - _INTL("Set the Pokémon's Tough (max. 255)."), params - ) { screen.pbUpdate } - if newval != pkmn.tough - pkmn.tough = newval - screen.pbRefreshSingle(pkmnid) + new_val = screen.choose_number("\\se[]" + _INTL("Set the Pokémon's Tough (max. {1}).", params.maxNumber), params) + if new_val != pkmn.tough + pkmn.tough = new_val + screen.refresh end next false } @@ -436,16 +416,14 @@ MenuHandlers.add(:pokemon_debug_menu, :set_tough, { MenuHandlers.add(:pokemon_debug_menu, :set_sheen, { "name" => _INTL("Set Sheen"), "parent" => :contest_stats, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| params = ChooseNumberParams.new params.setRange(0, 255) params.setDefaultValue(pkmn.sheen) - newval = pbMessageChooseNumber( - _INTL("Set the Pokémon's Sheen (max. 255)."), params - ) { screen.pbUpdate } - if newval != pkmn.sheen - pkmn.sheen = newval - screen.pbRefreshSingle(pkmnid) + new_val = screen.choose_number("\\se[]" + _INTL("Set the Pokémon's Sheen (max. {1}).", params.maxNumber), params) + if new_val != pkmn.sheen + pkmn.sheen = new_val + screen.refresh end next false } @@ -463,11 +441,13 @@ MenuHandlers.add(:pokemon_debug_menu, :moves, { MenuHandlers.add(:pokemon_debug_menu, :teach_move, { "name" => _INTL("Teach move"), "parent" => :moves, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| move = pbChooseMoveList if move pbLearnMove(pkmn, move) - screen.pbRefreshSingle(pkmnid) + screen.refresh + else + pbPlayCancelSE end next false } @@ -476,13 +456,13 @@ MenuHandlers.add(:pokemon_debug_menu, :teach_move, { MenuHandlers.add(:pokemon_debug_menu, :forget_move, { "name" => _INTL("Forget move"), "parent" => :moves, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - moveindex = screen.pbChooseMove(pkmn, _INTL("Choose move to forget.")) - if moveindex >= 0 - movename = pkmn.moves[moveindex].name - pkmn.forget_move_at_index(moveindex) - screen.pbDisplay(_INTL("{1} forgot {2}.", pkmn.name, movename)) - screen.pbRefreshSingle(pkmnid) + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + move_index = screen.choose_move(pkmn, _INTL("Choose move to forget.")) + if move_index >= 0 + move_name = pkmn.moves[move_index].name + pkmn.forget_move_at_index(move_index) + screen.refresh + screen.show_message(_INTL("{1} forgot {2}.", pkmn.name, move_name)) end next false } @@ -491,71 +471,65 @@ MenuHandlers.add(:pokemon_debug_menu, :forget_move, { MenuHandlers.add(:pokemon_debug_menu, :reset_moves, { "name" => _INTL("Reset moves"), "parent" => :moves, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| pkmn.reset_moves - screen.pbDisplay(_INTL("{1}'s moves were reset.", pkmn.name)) - screen.pbRefreshSingle(pkmnid) + screen.refresh + screen.show_message(_INTL("{1}'s moves were reset.", pkmn.name)) next false } }) MenuHandlers.add(:pokemon_debug_menu, :set_move_pp, { - "name" => _INTL("Set move PP"), + "name" => _INTL("Set move PP..."), "parent" => :moves, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + cmd = nil loop do - commands = [] - pkmn.moves.each do |i| - break if !i.id - if i.total_pp <= 0 - commands.push(_INTL("{1} (PP: ---)", i.name)) + commands = {} + pkmn.moves.each_with_index do |move, i| + break if !move.id + if move.total_pp <= 0 + commands[i] = _INTL("{1} (PP: ---)", move.name) else - commands.push(_INTL("{1} (PP: {2}/{3})", i.name, i.pp, i.total_pp)) + commands[i] = _INTL("{1} (PP: {2}/{3})", move.name, move.pp, move.total_pp) end end - commands.push(_INTL("Restore all PP")) - cmd = screen.pbShowCommands(_INTL("Alter PP of which move?"), commands, cmd) - break if cmd < 0 - if cmd >= 0 && cmd < commands.length - 1 # Move + commands[:restore_pp] = _INTL("[Restore all PP]") + cmd ||= commands.keys.first + cmd = screen.show_menu(_INTL("Alter PP of which move?"), commands, commands.keys.index(cmd)) + break if cmd.nil? + if cmd == :restore_pp + pkmn.heal_PP + elsif pkmn.moves[cmd].total_pp <= 0 + screen.show_message(_INTL("{1} has infinite PP.", pkmn.moves[cmd].name)) + else move = pkmn.moves[cmd] - movename = move.name - if move.total_pp <= 0 - screen.pbDisplay(_INTL("{1} has infinite PP.", movename)) - else - cmd2 = 0 - loop do - msg = _INTL("{1}: PP {2}/{3} (PP Up {4}/3)", movename, move.pp, move.total_pp, move.ppup) - cmd2 = screen.pbShowCommands(msg, - [_INTL("Set PP"), - _INTL("Full PP"), - _INTL("Set PP Up")], cmd2) - break if cmd2 < 0 - case cmd2 - when 0 # Change PP - params = ChooseNumberParams.new - params.setRange(0, move.total_pp) - params.setDefaultValue(move.pp) - h = pbMessageChooseNumber( - _INTL("Set PP of {1} (max. {2}).", movename, move.total_pp), params - ) { screen.pbUpdate } - move.pp = h - when 1 # Full PP - move.pp = move.total_pp - when 2 # Change PP Up - params = ChooseNumberParams.new - params.setRange(0, 3) - params.setDefaultValue(move.ppup) - h = pbMessageChooseNumber( - _INTL("Set PP Up of {1} (max. 3).", movename), params - ) { screen.pbUpdate } - move.ppup = h - move.pp = move.total_pp if move.pp > move.total_pp - end + pp_commands = { + :set_pp => _INTL("Set PP"), + :full_pp => _INTL("Full PP"), + :pp_up => _INTL("Set PP Up") + } + pp_cmd = pp_commands.keys.first + loop do + msg = _INTL("{1}: PP {2}/{3} (PP Up {4}/3)", move.name, move.pp, move.total_pp, move.ppup) + pp_cmd = screen.show_menu(msg, pp_commands, pp_commands.keys.index(pp_cmd)) + break if pp_cmd.nil? + case pp_cmd + when :set_pp + params = ChooseNumberParams.new + params.setRange(0, move.total_pp) + params.setDefaultValue(move.pp) + move.pp = screen.choose_number("\\se[]" + _INTL("Set PP of {1} (max. {2}).", move.name, params.maxNumber), params) + when :full_pp + move.pp = move.total_pp + when :pp_up + params = ChooseNumberParams.new + params.setRange(0, 3) + params.setDefaultValue(move.ppup) + new_val = screen.choose_number("\\se[]" + _INTL("Set PP Up of {1} (max. {2}).", move.name, params.maxNumber), params) + move.ppup = new_val end end - elsif cmd == commands.length - 1 # Restore all PP - pkmn.heal_PP end end next false @@ -565,10 +539,10 @@ MenuHandlers.add(:pokemon_debug_menu, :set_move_pp, { MenuHandlers.add(:pokemon_debug_menu, :set_initial_moves, { "name" => _INTL("Reset initial moves"), "parent" => :moves, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| pkmn.record_first_moves - screen.pbDisplay(_INTL("{1}'s moves were set as its first-known moves.", pkmn.name)) - screen.pbRefreshSingle(pkmnid) + screen.refresh + screen.show_message(_INTL("{1}'s current moves were set as its first-known moves.", pkmn.name)) next false } }) @@ -580,34 +554,32 @@ MenuHandlers.add(:pokemon_debug_menu, :set_initial_moves, { MenuHandlers.add(:pokemon_debug_menu, :set_item, { "name" => _INTL("Set item"), "parent" => :main, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 - commands = [ - _INTL("Change item"), - _INTL("Remove item") - ] + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + commands = { + :change_item => _INTL("Change item"), + :delete_item => _INTL("Remove item") + } + cmd = commands.keys.first loop do msg = (pkmn.hasItem?) ? _INTL("Item is {1}.", pkmn.item.name) : _INTL("No item.") - cmd = screen.pbShowCommands(msg, commands, cmd) - break if cmd < 0 + cmd = screen.show_menu(msg, commands, commands.keys.index(cmd)) + break if cmd.nil? case cmd - when 0 # Change item + when :change_item item = pbChooseItemList(pkmn.item_id) if item && item != pkmn.item_id + pbPlayDecisionSE pkmn.item = item - if GameData::Item.get(item).is_mail? - pkmn.mail = Mail.new(item, _INTL("Text"), $player.name) - end - screen.pbRefreshSingle(pkmnid) + pkmn.mail = Mail.new(item, _INTL("Text"), $player.name) if GameData::Item.get(item).is_mail? + screen.refresh + else + pbPlayCancelSE end - when 1 # Remove item + when :delete_item if pkmn.hasItem? pkmn.item = nil - pkmn.mail = nil - screen.pbRefreshSingle(pkmnid) + screen.refresh end - else - break end end next false @@ -617,45 +589,49 @@ MenuHandlers.add(:pokemon_debug_menu, :set_item, { MenuHandlers.add(:pokemon_debug_menu, :set_ability, { "name" => _INTL("Set ability"), "parent" => :main, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 - commands = [ - _INTL("Set possible ability"), - _INTL("Set any ability"), - _INTL("Reset") - ] + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + commands = { + :set_ability_index => _INTL("Set possible ability"), + :give_any_ability => _INTL("Set any ability"), + :reset_ability => _INTL("Reset") + } + cmd = commands.keys.first loop do if pkmn.ability msg = _INTL("Ability is {1} (index {2}).", pkmn.ability.name, pkmn.ability_index) else msg = _INTL("No ability (index {1}).", pkmn.ability_index) end - cmd = screen.pbShowCommands(msg, commands, cmd) - break if cmd < 0 + cmd = screen.show_menu(msg, commands, commands.keys.index(cmd)) + break if cmd.nil? case cmd - when 0 # Set possible ability + when :set_ability_index abils = pkmn.getAbilityList - ability_commands = [] - abil_cmd = 0 - abils.each do |i| - ability_commands.push(((i[1] < 2) ? "" : "(H) ") + GameData::Ability.get(i[0]).name) - abil_cmd = ability_commands.length - 1 if pkmn.ability_id == i[0] + ability_commands = {} + abil_cmd = nil + abils.each do |abil| + ability_commands[abil[1]] = ((abil[1] < 2) ? "" : "(H) ") + GameData::Ability.get(abil[0]).name + abil_cmd = abil[1] if pkmn.ability_id == abil[0] end - abil_cmd = screen.pbShowCommands(_INTL("Choose an ability."), ability_commands, abil_cmd) - next if abil_cmd < 0 - pkmn.ability_index = abils[abil_cmd][1] + abil_cmd ||= ability_commands.keys.first + abil_cmd = screen.show_menu(_INTL("Choose an ability."), ability_commands, ability_commands.keys.index(abil_cmd)) + next if abil_cmd.nil? + pkmn.ability_index = abil_cmd pkmn.ability = nil - screen.pbRefreshSingle(pkmnid) - when 1 # Set any ability + screen.refresh + when :give_any_ability new_ability = pbChooseAbilityList(pkmn.ability_id) if new_ability && new_ability != pkmn.ability_id + pbPlayDecisionSE pkmn.ability = new_ability - screen.pbRefreshSingle(pkmnid) + screen.refresh + else + pbPlayCancelSE end - when 2 # Reset + when :reset_ability pkmn.ability_index = nil pkmn.ability = nil - screen.pbRefreshSingle(pkmnid) + screen.refresh end end next false @@ -665,40 +641,33 @@ MenuHandlers.add(:pokemon_debug_menu, :set_ability, { MenuHandlers.add(:pokemon_debug_menu, :set_nature, { "name" => _INTL("Set nature"), "parent" => :main, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - commands = [] - ids = [] + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + commands = {} GameData::Nature.each do |nature| if nature.stat_changes.length == 0 - commands.push(_INTL("{1} (---)", nature.real_name)) - else - plus_text = "" - minus_text = "" - nature.stat_changes.each do |change| - if change[1] > 0 - plus_text += "/" if !plus_text.empty? - plus_text += GameData::Stat.get(change[0]).name_brief - elsif change[1] < 0 - minus_text += "/" if !minus_text.empty? - minus_text += GameData::Stat.get(change[0]).name_brief - end + commands[nature.id] = _INTL("{1} (---)", nature.real_name) + next + end + plus_text = "" + minus_text = "" + nature.stat_changes.each do |change| + if change[1] > 0 + plus_text += "/" if !plus_text.empty? + plus_text += GameData::Stat.get(change[0]).name_brief + elsif change[1] < 0 + minus_text += "/" if !minus_text.empty? + minus_text += GameData::Stat.get(change[0]).name_brief end - commands.push(_INTL("{1} (+{2}, -{3})", nature.real_name, plus_text, minus_text)) end - ids.push(nature.id) + commands[nature.id] = _INTL("{1} (+{2}, -{3})", nature.real_name, plus_text, minus_text) end - commands.push(_INTL("[Reset]")) - cmd = ids.index(pkmn.nature_id || ids[0]) + commands[:reset_nature] = _INTL("[Reset]") + cmd = (commands.keys.include?(pkmn.nature_id)) ? pkmn.nature_id : commands.keys.first loop do - msg = _INTL("Nature is {1}.", pkmn.nature.name) - cmd = screen.pbShowCommands(msg, commands, cmd) - break if cmd < 0 - if cmd >= 0 && cmd < commands.length - 1 # Set nature - pkmn.nature = ids[cmd] - elsif cmd == commands.length - 1 # Reset - pkmn.nature = nil - end - screen.pbRefreshSingle(pkmnid) + cmd = screen.show_menu(_INTL("Nature is {1}.", pkmn.nature.name), commands, commands.keys.index(cmd)) + break if cmd.nil? + pkmn.nature = (cmd == :reset_nature) ? nil : cmd + screen.refresh end next false } @@ -707,35 +676,35 @@ MenuHandlers.add(:pokemon_debug_menu, :set_nature, { MenuHandlers.add(:pokemon_debug_menu, :set_gender, { "name" => _INTL("Set gender"), "parent" => :main, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| if pkmn.singleGendered? - screen.pbDisplay(_INTL("{1} is single-gendered or genderless.", pkmn.speciesName)) - else - cmd = 0 - loop do - msg = [_INTL("Gender is male."), _INTL("Gender is female.")][pkmn.male? ? 0 : 1] - cmd = screen.pbShowCommands(msg, - [_INTL("Make male"), - _INTL("Make female"), - _INTL("Reset")], cmd) - break if cmd < 0 - case cmd - when 0 # Make male - pkmn.makeMale - if !pkmn.male? - screen.pbDisplay(_INTL("{1}'s gender couldn't be changed.", pkmn.name)) - end - when 1 # Make female - pkmn.makeFemale - if !pkmn.female? - screen.pbDisplay(_INTL("{1}'s gender couldn't be changed.", pkmn.name)) - end - when 2 # Reset - pkmn.gender = nil - end - $player.pokedex.register(pkmn) if !settingUpBattle && !pkmn.egg? - screen.pbRefreshSingle(pkmnid) + screen.show_message(_INTL("{1} is single-gendered or genderless.", pkmn.speciesName)) + next false + end + commands = { + :make_male => _INTL("Make male"), + :make_female => _INTL("Make female"), + :reset_gender => _INTL("Reset") + } + cmd = commands.keys.first + loop do + msg = _INTL("Unknown gender.") + msg = _INTL("Gender is male.") if pkmn.male? + msg = _INTL("Gender is female.") if pkmn.female? + cmd = screen.show_menu(msg, commands, commands.keys.index(cmd)) + break if cmd.nil? + case cmd + when :make_male + pkmn.makeMale + screen.show_message(_INTL("{1}'s gender couldn't be changed.", pkmn.name)) if !pkmn.male? + when :make_female + pkmn.makeFemale + screen.show_message(_INTL("{1}'s gender couldn't be changed.", pkmn.name)) if !pkmn.female? + when :reset_gender + pkmn.gender = nil end + $player.pokedex.register(pkmn) if !setting_up_battle && !pkmn.egg? + screen.refresh end next false } @@ -744,61 +713,66 @@ MenuHandlers.add(:pokemon_debug_menu, :set_gender, { MenuHandlers.add(:pokemon_debug_menu, :species_and_form, { "name" => _INTL("Species/form..."), "parent" => :main, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + commands = { + :set_species => _INTL("Set species"), + :set_form => _INTL("Set form"), + :reset_form => _INTL("Remove form override") + } + cmd = commands.keys.first loop do msg = [_INTL("Species {1}, form {2}.", pkmn.speciesName, pkmn.form), _INTL("Species {1}, form {2} (forced).", pkmn.speciesName, pkmn.form)][(pkmn.forced_form.nil?) ? 0 : 1] - cmd = screen.pbShowCommands(msg, - [_INTL("Set species"), - _INTL("Set form"), - _INTL("Remove form override")], cmd) - break if cmd < 0 + cmd = screen.show_menu(msg, commands, commands.keys.index(cmd)) + break if cmd.nil? case cmd - when 0 # Set species + when :set_species species = pbChooseSpeciesList(pkmn.species) if species && species != pkmn.species + pbPlayDecisionSE pkmn.species = species + pkmn.gender = nil pkmn.calc_stats - $player.pokedex.register(pkmn) if !settingUpBattle && !pkmn.egg? - screen.pbRefreshSingle(pkmnid) + $player.pokedex.register(pkmn) if !setting_up_battle && !pkmn.egg? + screen.refresh + else + pbPlayCancelSE end - when 1 # Set form - cmd2 = 0 - formcmds = [[], []] + when :set_form + # TODO: Allow setting any form number for any species. + form_cmd = 0 + form_commands = {} GameData::Species.each do |sp| next if sp.species != pkmn.species form_name = sp.form_name form_name = _INTL("Unnamed form") if !form_name || form_name.empty? form_name = sprintf("%d: %s", sp.form, form_name) - formcmds[0].push(sp.form) - formcmds[1].push(form_name) - cmd2 = formcmds[0].length - 1 if pkmn.form == sp.form + form_commands[sp.form] = form_name + form_cmd = sp.form if pkmn.form == sp.form end - if formcmds[0].length <= 1 - screen.pbDisplay(_INTL("Species {1} only has one form.", pkmn.speciesName)) - if pkmn.form != 0 && screen.pbConfirm(_INTL("Do you want to reset the form to 0?")) + if form_commands.length <= 1 + screen.show_message(_INTL("Species {1} only has one form.", pkmn.speciesName)) + if pkmn.form != 0 && screen.show_confirm_message(_INTL("Do you want to reset the form to 0?")) pkmn.form = 0 - $player.pokedex.register(pkmn) if !settingUpBattle && !pkmn.egg? - screen.pbRefreshSingle(pkmnid) + $player.pokedex.register(pkmn) if !setting_up_battle && !pkmn.egg? + screen.refresh end else - cmd2 = screen.pbShowCommands(_INTL("Set the Pokémon's form."), formcmds[1], cmd2) - next if cmd2 < 0 - f = formcmds[0][cmd2] - if f != pkmn.form + form_cmd = screen.show_menu(_INTL("Set the Pokémon's form."), form_commands, form_commands.keys.index(form_cmd)) + next if form_cmd.nil? + if form_cmd != pkmn.form if MultipleForms.hasFunction?(pkmn, "getForm") - next if !screen.pbConfirm(_INTL("This species decides its own form. Override?")) - pkmn.forced_form = f + next if !screen.show_confirm_message(_INTL("This species decides its own form. Override?")) + pkmn.forced_form = form_cmd end - pkmn.form = f - $player.pokedex.register(pkmn) if !settingUpBattle && !pkmn.egg? - screen.pbRefreshSingle(pkmnid) + pkmn.form = form_cmd + $player.pokedex.register(pkmn) if !setting_up_battle && !pkmn.egg? + screen.refresh end end - when 2 # Remove form override + when :reset_form pkmn.forced_form = nil - screen.pbRefreshSingle(pkmnid) + screen.refresh end end next false @@ -817,29 +791,34 @@ MenuHandlers.add(:pokemon_debug_menu, :cosmetic, { MenuHandlers.add(:pokemon_debug_menu, :set_shininess, { "name" => _INTL("Set shininess"), "parent" => :cosmetic, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + commands = { + :make_shiny => _INTL("Make shiny"), + :make_super_shiny => _INTL("Make super shiny"), + :make_not_shiny => _INTL("Make normal"), + :reset_shininess => _INTL("Reset") + } + cmd = commands.keys.first loop do msg_idx = pkmn.shiny? ? (pkmn.super_shiny? ? 1 : 0) : 2 msg = [_INTL("Is shiny."), _INTL("Is super shiny."), _INTL("Is normal (not shiny).")][msg_idx] - cmd = screen.pbShowCommands(msg, [_INTL("Make shiny"), _INTL("Make super shiny"), - _INTL("Make normal"), _INTL("Reset")], cmd) - break if cmd < 0 + cmd = screen.show_menu(msg, commands, commands.keys.index(cmd)) + break if cmd.nil? case cmd - when 0 # Make shiny + when :make_shiny pkmn.shiny = true pkmn.super_shiny = false - when 1 # Make super shiny + when :make_super_shiny pkmn.super_shiny = true - when 2 # Make normal + when :make_not_shiny pkmn.shiny = false pkmn.super_shiny = false - when 3 # Reset + when :reset_shininess pkmn.shiny = nil pkmn.super_shiny = nil end - $player.pokedex.register(pkmn) if !settingUpBattle && !pkmn.egg? - screen.pbRefreshSingle(pkmnid) + $player.pokedex.register(pkmn) if !setting_up_battle && !pkmn.egg? + screen.refresh end next false } @@ -848,25 +827,20 @@ MenuHandlers.add(:pokemon_debug_menu, :set_shininess, { MenuHandlers.add(:pokemon_debug_menu, :set_pokeball, { "name" => _INTL("Set Poké Ball"), "parent" => :cosmetic, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - commands = [] - balls = [] - GameData::Item.each do |item_data| - balls.push([item_data.id, item_data.name]) if item_data.is_poke_ball? + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + commands = {} + cmd = nil + GameData::Item.each do |item| + next if !item.is_poke_ball? + commands[item.id] = item.name + cmd = item.id if item.id == pkmn.poke_ball end - balls.sort! { |a, b| a[1] <=> b[1] } - cmd = 0 - balls.each_with_index do |ball, i| - next if ball[0] != pkmn.poke_ball - cmd = i - break - end - balls.each { |ball| commands.push(ball[1]) } + commands = commands.sort_by { |key, val| val }.to_h + cmd ||= commands.keys.first loop do - oldball = GameData::Item.get(pkmn.poke_ball).name - cmd = screen.pbShowCommands(_INTL("{1} used.", oldball), commands, cmd) - break if cmd < 0 - pkmn.poke_ball = balls[cmd][0] + cmd = screen.show_menu(_INTL("{1} used.", GameData::Item.get(pkmn.poke_ball).name), commands, commands.keys.index(cmd)) + break if cmd.nil? + pkmn.poke_ball = cmd end next false } @@ -875,32 +849,25 @@ MenuHandlers.add(:pokemon_debug_menu, :set_pokeball, { MenuHandlers.add(:pokemon_debug_menu, :set_ribbons, { "name" => _INTL("Set ribbons"), "parent" => :cosmetic, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + cmd = nil loop do - commands = [] - ids = [] - GameData::Ribbon.each do |ribbon_data| - commands.push(_INTL("{1} {2}", - (pkmn.hasRibbon?(ribbon_data.id)) ? "[Y]" : "[ ]", ribbon_data.name)) - ids.push(ribbon_data.id) + commands = {} + GameData::Ribbon.each do |ribbon| + commands[ribbon.id] = (pkmn.hasRibbon?(ribbon.id) ? "[Y]" : "[ ]") + " " + ribbon.name end - commands.push(_INTL("Give all")) - commands.push(_INTL("Clear all")) - cmd = screen.pbShowCommands(_INTL("{1} ribbons.", pkmn.numRibbons), commands, cmd) - break if cmd < 0 - if cmd >= 0 && cmd < ids.length # Toggle ribbon - if pkmn.hasRibbon?(ids[cmd]) - pkmn.takeRibbon(ids[cmd]) - else - pkmn.giveRibbon(ids[cmd]) - end - elsif cmd == commands.length - 2 # Give all - GameData::Ribbon.each do |ribbon_data| - pkmn.giveRibbon(ribbon_data.id) - end - elsif cmd == commands.length - 1 # Clear all + commands[:give_all] = _INTL("Give all") + commands[:clear_all] = _INTL("Clear all") + cmd ||= commands.keys.first + cmd = screen.show_menu(_INTL("{1} ribbons.", pkmn.numRibbons), commands, commands.keys.index(cmd)) + break if cmd.nil? + case cmd + when :give_all + GameData::Ribbon.each { |ribbon| pkmn.giveRibbon(ribbon.id) } + when :clear_all pkmn.clearAllRibbons + else # Toggle a specific ribbon + pkmn.hasRibbon?(cmd) ? pkmn.takeRibbon(cmd) : pkmn.giveRibbon(cmd) end end next false @@ -910,25 +877,27 @@ MenuHandlers.add(:pokemon_debug_menu, :set_ribbons, { MenuHandlers.add(:pokemon_debug_menu, :set_nickname, { "name" => _INTL("Set nickname"), "parent" => :cosmetic, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + commands = { + :rename => _INTL("Rename"), + :clear_name => _INTL("Erase name") + } + cmd = commands.keys.first loop do - speciesname = pkmn.speciesName - msg = [_INTL("{1} has the nickname {2}.", speciesname, pkmn.name), - _INTL("{1} has no nickname.", speciesname)][pkmn.nicknamed? ? 0 : 1] - cmd = screen.pbShowCommands(msg, [_INTL("Rename"), _INTL("Erase name")], cmd) - break if cmd < 0 + species_name = pkmn.speciesName + msg = [_INTL("{1} has the nickname {2}.", species_name, pkmn.name), + _INTL("{1} has no nickname.", species_name)][pkmn.nicknamed? ? 0 : 1] + cmd = screen.show_menu(msg, commands, commands.keys.index(cmd)) + break if cmd.nil? case cmd - when 0 # Rename - oldname = (pkmn.nicknamed?) ? pkmn.name : "" - newname = pbEnterPokemonName(_INTL("{1}'s nickname?", speciesname), - 0, Pokemon::MAX_NAME_SIZE, oldname, pkmn) - pkmn.name = newname - screen.pbRefreshSingle(pkmnid) - when 1 # Erase name + when :rename + old_name = (pkmn.nicknamed?) ? pkmn.name : "" + pkmn.name = pbEnterPokemonName(_INTL("{1}'s nickname?", species_name), + 0, Pokemon::MAX_NAME_SIZE, old_name, pkmn) + when :clear_name pkmn.name = nil - screen.pbRefreshSingle(pkmnid) end + screen.refresh end next false } @@ -937,40 +906,48 @@ MenuHandlers.add(:pokemon_debug_menu, :set_nickname, { MenuHandlers.add(:pokemon_debug_menu, :ownership, { "name" => _INTL("Ownership..."), "parent" => :cosmetic, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + commands = { + :make_players => _INTL("Make player's"), + :set_ot_name => _INTL("Set OT's name"), + :set_ot_gender => _INTL("Set OT's gender"), + :random_foreign_id => _INTL("Random foreign ID"), + :set_id => _INTL("Set foreign ID") + } + cmd = commands.keys.first loop do - gender = [_INTL("Male"), _INTL("Female"), _INTL("Unknown")][pkmn.owner.gender] + gender_text = _INTL("Unknown gender") + gender_text = _INTL("Male") if pkmn.owner.male? + gender_text = _INTL("Female") if pkmn.owner.female? + public_id_text = sprintf("%05d", pkmn.owner.public_id) msg = [_INTL("Player's Pokémon\n{1}\n{2}\n{3} ({4})", - pkmn.owner.name, gender, pkmn.owner.public_id, pkmn.owner.id), + pkmn.owner.name, gender_text, public_id_text, pkmn.owner.id), _INTL("Foreign Pokémon\n{1}\n{2}\n{3} ({4})", - pkmn.owner.name, gender, pkmn.owner.public_id, pkmn.owner.id)][pkmn.foreign?($player) ? 1 : 0] - cmd = screen.pbShowCommands(msg, - [_INTL("Make player's"), - _INTL("Set OT's name"), - _INTL("Set OT's gender"), - _INTL("Random foreign ID"), - _INTL("Set foreign ID")], cmd) - break if cmd < 0 + pkmn.owner.name, gender_text, public_id_text, pkmn.owner.id)][pkmn.foreign?($player) ? 1 : 0] + cmd = screen.show_menu(msg, commands, commands.keys.index(cmd)) + break if cmd.nil? case cmd - when 0 # Make player's + when :make_players pkmn.owner = Pokemon::Owner.new_from_trainer($player) - when 1 # Set OT's name - pkmn.owner.name = pbEnterPlayerName(_INTL("{1}'s OT's name?", pkmn.name), 1, Settings::MAX_PLAYER_NAME_SIZE) - when 2 # Set OT's gender - cmd2 = screen.pbShowCommands(_INTL("Set OT's gender."), - [_INTL("Male"), _INTL("Female"), _INTL("Unknown")], pkmn.owner.gender) - pkmn.owner.gender = cmd2 if cmd2 >= 0 - when 3 # Random foreign ID + when :set_ot_name + pkmn.owner.name = pbEnterPlayerName(_INTL("{1}'s OT's name?", pkmn.name), 1, Settings::MAX_PLAYER_NAME_SIZE, pkmn.owner.name) + when :set_ot_gender + gender_commands = { + 0 => _INTL("Male"), + 1 => _INTL("Female"), + 2 => _INTL("Unknown") + } + gender_cmd = gender_commands.keys.index(pkmn.owner.gender) || gender_commands.keys.first + gender_cmd = screen.show_menu(_INTL("Set OT's gender."), gender_commands, gender_cmd) + pkmn.owner.gender = gender_cmd if gender_cmd + when :random_foreign_id pkmn.owner.id = $player.make_foreign_ID - when 4 # Set foreign ID + when :set_id params = ChooseNumberParams.new params.setRange(0, 65_535) params.setDefaultValue(pkmn.owner.public_id) - val = pbMessageChooseNumber( - _INTL("Set the new ID (max. 65535)."), params - ) { screen.pbUpdate } - pkmn.owner.id = val | (val << 16) + new_val = screen.choose_number("\\se[]" + _INTL("Set the new ID (max. {1}).", params.maxNumber), params) + pkmn.owner.id = new_val | (new_val << 16) end end next false @@ -984,22 +961,23 @@ MenuHandlers.add(:pokemon_debug_menu, :ownership, { MenuHandlers.add(:pokemon_debug_menu, :set_discardable, { "name" => _INTL("Set discardable"), "parent" => :main, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + cmd = nil loop do - msg = _INTL("Click option to toggle.") - cmds = [] - cmds.push((pkmn.cannot_store) ? _INTL("Cannot store") : _INTL("Can store")) - cmds.push((pkmn.cannot_release) ? _INTL("Cannot release") : _INTL("Can release")) - cmds.push((pkmn.cannot_trade) ? _INTL("Cannot trade") : _INTL("Can trade")) - cmd = screen.pbShowCommands(msg, cmds, cmd) - break if cmd < 0 + commands = { + :store => (pkmn.cannot_store) ? _INTL("Cannot store") : _INTL("Can store"), + :release => (pkmn.cannot_release) ? _INTL("Cannot release") : _INTL("Can release"), + :trade => (pkmn.cannot_trade) ? _INTL("Cannot trade") : _INTL("Can trade") + } + cmd ||= commands.keys.first + cmd = screen.show_menu(_INTL("Click option to toggle."), commands, commands.keys.index(cmd)) + break if cmd.nil? case cmd - when 0 # Toggle storing + when :store pkmn.cannot_store = !pkmn.cannot_store - when 1 # Toggle releasing + when :release pkmn.cannot_release = !pkmn.cannot_release - when 2 # Toggle trading + when :trade pkmn.cannot_trade = !pkmn.cannot_trade end end @@ -1015,38 +993,40 @@ MenuHandlers.add(:pokemon_debug_menu, :set_egg, { "name" => _INTL("Set egg"), "parent" => :main, "always_show" => false, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + commands = { + :make_egg => _INTL("Make egg"), + :make_pokemon => _INTL("Make Pokémon"), + :one_egg_step => _INTL("Set steps left to 1") + } + cmd = commands.keys.first loop do - msg = [_INTL("Not an egg"), + msg = [_INTL("Not an egg."), _INTL("Egg (hatches in {1} steps).", pkmn.steps_to_hatch)][pkmn.egg? ? 1 : 0] - cmd = screen.pbShowCommands(msg, - [_INTL("Make egg"), - _INTL("Make Pokémon"), - _INTL("Set steps left to 1")], cmd) - break if cmd < 0 + cmd = screen.show_menu(msg, commands, commands.keys.index(cmd)) + break if cmd.nil? case cmd - when 0 # Make egg + when :make_egg if !pkmn.egg? && (pbHasEgg?(pkmn.species) || - screen.pbConfirm(_INTL("{1} cannot legally be an egg. Make egg anyway?", pkmn.speciesName))) + screen.show_confirm_message(_INTL("{1} cannot legally be an egg. Make egg anyway?", pkmn.speciesName))) pkmn.level = Settings::EGG_LEVEL pkmn.calc_stats pkmn.name = _INTL("Egg") pkmn.steps_to_hatch = pkmn.species_data.hatch_steps pkmn.hatched_map = 0 pkmn.obtain_method = 1 - screen.pbRefreshSingle(pkmnid) + screen.refresh end - when 1 # Make Pokémon + when :make_pokemon if pkmn.egg? pkmn.name = nil pkmn.steps_to_hatch = 0 pkmn.hatched_map = 0 pkmn.obtain_method = 0 - $player.pokedex.register(pkmn) if !settingUpBattle - screen.pbRefreshSingle(pkmnid) + $player.pokedex.register(pkmn) if !setting_up_battle + screen.refresh end - when 2 # Set steps left to 1 + when :one_egg_step pkmn.steps_to_hatch = 1 if pkmn.egg? end end @@ -1057,37 +1037,38 @@ MenuHandlers.add(:pokemon_debug_menu, :set_egg, { MenuHandlers.add(:pokemon_debug_menu, :shadow_pkmn, { "name" => _INTL("Shadow Pkmn..."), "parent" => :main, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - cmd = 0 + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + # TODO: Option to make not a Shadow Pokémon. + commands = { + :make_shadow => _INTL("Make Shadow"), + :set_heart_gauge => _INTL("Set heart gauge") + } + cmd = commands.keys.first loop do msg = [_INTL("Not a Shadow Pokémon."), _INTL("Heart gauge is {1} (stage {2}).", pkmn.heart_gauge, pkmn.heartStage)][pkmn.shadowPokemon? ? 1 : 0] - cmd = screen.pbShowCommands(msg, [_INTL("Make Shadow"), _INTL("Set heart gauge")], cmd) - break if cmd < 0 + cmd = screen.show_menu(msg, commands, commands.keys.index(cmd)) + break if cmd.nil? case cmd - when 0 # Make Shadow + when :make_shadow if pkmn.shadowPokemon? - screen.pbDisplay(_INTL("{1} is already a Shadow Pokémon.", pkmn.name)) + screen.show_message(_INTL("{1} is already a Shadow Pokémon.", pkmn.name)) else pkmn.makeShadow - screen.pbRefreshSingle(pkmnid) + screen.refresh end - when 1 # Set heart gauge + when :set_heart_gauge if pkmn.shadowPokemon? - oldheart = pkmn.heart_gauge params = ChooseNumberParams.new params.setRange(0, pkmn.max_gauge_size) params.setDefaultValue(pkmn.heart_gauge) - val = pbMessageChooseNumber( - _INTL("Set the heart gauge (max. {1}).", pkmn.max_gauge_size), - params - ) { screen.pbUpdate } - if val != oldheart - pkmn.adjustHeart(val - oldheart) + new_val = screen.choose_number("\\se[]" + _INTL("Set the heart gauge (max. {1}).", params.maxNumber), params) + if new_val != pkmn.heart_gauge + pkmn.adjustHeart(new_val - pkmn.heart_gauge) pkmn.check_ready_to_purify end else - screen.pbDisplay(_INTL("{1} is not a Shadow Pokémon.", pkmn.name)) + screen.show_message(_INTL("{1} is not a Shadow Pokémon.", pkmn.name)) end end end @@ -1099,7 +1080,7 @@ MenuHandlers.add(:pokemon_debug_menu, :mystery_gift, { "name" => _INTL("Mystery Gift"), "parent" => :main, "always_show" => false, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| pbCreateMysteryGift(0, pkmn) next false } @@ -1109,30 +1090,28 @@ MenuHandlers.add(:pokemon_debug_menu, :duplicate, { "name" => _INTL("Duplicate"), "parent" => :main, "always_show" => false, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - next false if !screen.pbConfirm(_INTL("Are you sure you want to copy this Pokémon?")) - clonedpkmn = pkmn.clone + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + next false if !screen.show_confirm_message(_INTL("Are you sure you want to copy this Pokémon?")) + cloned_pkmn = pkmn.clone case screen - when PokemonPartyScreen - pbStorePokemon(clonedpkmn) - screen.pbHardRefresh - screen.pbDisplay(_INTL("The Pokémon was duplicated.")) - when PokemonStorageScreen - if screen.storage.pbMoveCaughtToParty(clonedpkmn) - if pkmnid[0] != -1 - screen.pbDisplay(_INTL("The duplicated Pokémon was moved to your party.")) - end + when UI::Party + pbStorePokemon(cloned_pkmn) # Add to party, or to storage if party is full + screen.refresh_party + screen.refresh + when UI::PokemonStorage + if screen.storage.pbMoveCaughtToParty(cloned_pkmn) + screen.show_message(_INTL("The duplicated Pokémon was moved to your party.")) if party_index[0] >= 0 else - oldbox = screen.storage.currentBox - newbox = screen.storage.pbStoreCaught(clonedpkmn) - if newbox < 0 - screen.pbDisplay(_INTL("All boxes are full.")) - elsif newbox != oldbox - screen.pbDisplay(_INTL("The duplicated Pokémon was moved to box \"{1}.\"", screen.storage[newbox].name)) - screen.storage.currentBox = oldbox + old_box = screen.storage.currentBox + new_box = screen.storage.pbStoreCaught(cloned_pkmn) + if new_box < 0 + screen.show_message(_INTL("All boxes are full.")) + elsif new_box != old_box + screen.show_message(_INTL("The duplicated Pokémon was moved to box \"{1}.\"", screen.storage[new_box].name)) + screen.storage.currentBox = old_box end end - screen.pbHardRefresh + screen.refresh end next true } @@ -1142,17 +1121,17 @@ MenuHandlers.add(:pokemon_debug_menu, :delete, { "name" => _INTL("Delete"), "parent" => :main, "always_show" => false, - "effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen| - next false if !screen.pbConfirm(_INTL("Are you sure you want to delete this Pokémon?")) + "effect" => proc { |pkmn, party_index, setting_up_battle, screen| + next false if !screen.show_confirm_message(_INTL("Are you sure you want to delete this Pokémon?")) case screen - when PokemonPartyScreen - screen.party.delete_at(pkmnid) - screen.pbHardRefresh - when PokemonStorageScreen - screen.scene.pbRelease(pkmnid, heldpoke) - (heldpoke) ? screen.heldpkmn = nil : screen.storage.pbDelete(pkmnid[0], pkmnid[1]) - screen.scene.pbRefresh + when UI::Party + screen.party.delete_at(party_index) + screen.refresh_party + when UI::PokemonStorage + screen.visuals.release_pokemon(true) + screen.storage.pbDelete(party_index[0], party_index[1]) if !screen.holding_pokemon? end + screen.refresh next true } }) diff --git a/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb b/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb index fc2665d50..7b4f13261 100644 --- a/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb +++ b/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb @@ -207,9 +207,79 @@ module Compiler # Compile Town Map data. #----------------------------------------------------------------------------- def compile_town_map(*paths) - compile_PBS_file_generic(GameData::TownMap, *paths) do |final_validate, hash| - (final_validate) ? validate_all_compiled_town_maps : validate_compiled_town_map(hash) + GameData::TownMap::DATA.clear + schema = GameData::TownMap.schema + sub_schema = GameData::TownMap.sub_schema + idx = 0 + # Read from PBS file(s) + paths.each do |path| + compile_pbs_file_message_start(path) + file_suffix = File.basename(path, ".txt")[GameData::TownMap::PBS_BASE_FILENAME.length + 1, path.length] || "" + data_hash = nil + current_point = nil + section_name = nil + section_line = nil + # Read each line of town_map.txt at a time and compile it as a town map property + pbCompilerEachPreppedLine(path) do |line, line_no| + echo "." if idx % 100 == 0 + idx += 1 + Graphics.update if idx % 500 == 0 + FileLineData.setSection(section_name, nil, section_line) + if line[/^\s*\[\s*(.+)\s*\]\s*$/] + # New section [region_number] + section_name = $~[1] + section_line = line + if data_hash + validate_compiled_town_map(data_hash) + GameData::TownMap.register(data_hash) + end + FileLineData.setSection(section_name, nil, section_line) + # Construct data hash + data_hash = { + :pbs_file_suffix => file_suffix + } + data_hash[schema["SectionName"][0]] = get_csv_record(section_name.clone, schema["SectionName"]) + data_hash[schema["Point"][0]] = [] + current_point = nil + elsif line[/^\s*(\w+)\s*=\s*(.*)$/] + # XXX=YYY lines + if !data_hash + raise _INTL("Expected a section at the beginning of the file.") + "\n" + FileLineData.linereport + end + key = $~[1] + if schema[key] # Property of the town map + property_value = get_csv_record($~[2], schema[key]) + if key == "Point" + current_point = { + :position => [property_value[0], property_value[1]], + :real_name => property_value[2] + } + current_point[:real_description] = property_value[3] if property_value[3] + current_point[:fly_spot] = [property_value[4], property_value[5], property_value[6]] if property_value[4] + current_point[:switch] = property_value[7] if property_value[7] + data_hash[schema[key][0]].push(current_point) + else + data_hash[schema[key][0]] = property_value + end + elsif sub_schema[key] # Property of a point + if !current_point + raise _INTL("Property \"{1}\" is point-specific, but a point hasn't been defined yet.", key) + "\n" + FileLineData.linereport + end + current_point[sub_schema[key][0]] = get_csv_record($~[2], sub_schema[key]) + end + end + end + # Add last town map's data to records + if data_hash + FileLineData.setSection(section_name, nil, section_line) + validate_compiled_town_map(data_hash) + GameData::TownMap.register(data_hash) + end + process_pbs_file_message_end end + validate_all_compiled_town_maps + # Save all data + GameData::TownMap.save end def validate_compiled_town_map(hash) @@ -219,19 +289,19 @@ module Compiler # Get town map names and descriptions for translating region_names = [] point_names = [] - interest_names = [] + point_descriptions = [] GameData::TownMap.each do |town_map| region_names[town_map.id] = town_map.real_name - town_map.point.each do |point| - point_names.push(point[2]) - interest_names.push(point[3]) + town_map.points.each do |point| + point_names.push(point[:real_name]) + point_descriptions.push(point[:real_description]) end end point_names.uniq! - interest_names.uniq! + point_descriptions.uniq! MessageTypes.setMessagesAsHash(MessageTypes::REGION_NAMES, region_names) MessageTypes.setMessagesAsHash(MessageTypes::REGION_LOCATION_NAMES, point_names) - MessageTypes.setMessagesAsHash(MessageTypes::REGION_LOCATION_DESCRIPTIONS, interest_names) + MessageTypes.setMessagesAsHash(MessageTypes::REGION_LOCATION_DESCRIPTIONS, point_descriptions) end #----------------------------------------------------------------------------- @@ -375,6 +445,14 @@ module Compiler end def validate_compiled_item(hash) + # Support for pockets still being numbers + if hash[:pocket] && hash[:pocket].is_a?(Integer) + all_pockets = GameData::BagPocket.all_pockets + if hash[:pocket] <= 0 || !all_pockets[hash[:pocket] - 1] + raise _INTL("Invalid pocket number {1} for item {2}.", hash[:pocket], hash[:id]) + end + hash[:pocket] = all_pockets[hash[:pocket] - 1] + end end def validate_all_compiled_items diff --git a/Data/Scripts/021_Compiler/003_Compiler_WritePBS.rb b/Data/Scripts/021_Compiler/003_Compiler_WritePBS.rb index de4310637..cb0afb3c6 100644 --- a/Data/Scripts/021_Compiler/003_Compiler_WritePBS.rb +++ b/Data/Scripts/021_Compiler/003_Compiler_WritePBS.rb @@ -107,7 +107,57 @@ module Compiler # Save Town Map data to PBS file. #----------------------------------------------------------------------------- def write_town_map - write_PBS_file_generic(GameData::TownMap) + paths = get_all_PBS_file_paths(GameData::TownMap) + schema = GameData::TownMap.schema + sub_schema = GameData::TownMap.sub_schema + idx = 0 + paths.each do |path| + write_pbs_file_message_start(path[0]) + File.open(path[0], "wb") do |f| + add_PBS_header_to_file(f) + # Write each element in turn + GameData::TownMap.each do |element| + next if element.pbs_file_suffix != path[1] + echo "." if idx % 100 == 0 + Graphics.update if idx % 500 == 0 + idx += 1 + f.write("\#-------------------------------\r\n") + if schema["SectionName"] + f.write("[") + pbWriteCsvRecord(element.get_property_for_PBS("SectionName"), f, schema["SectionName"]) + f.write("]\r\n") + else + f.write("[#{element.id}]\r\n") + end + # Write each town map property + schema.each_key do |key| + next if ["SectionName", "Point"].include?(key) + val = element.get_property_for_PBS(key) + next if val.nil? + f.write(sprintf("%s = ", key)) + pbWriteCsvRecord(val, f, schema[key]) + f.write("\r\n") + end + # Write each point in turn + element.points.each_with_index do |point, i| + # Write position/name + val = element.get_point_property_for_PBS("Point", i) + f.write("Point = ") + pbWriteCsvRecord(val, f, schema["Point"]) + f.write("\r\n") + # Write other point properties + sub_schema.each_key do |key| + val = element.get_point_property_for_PBS(key, i) + next if val.nil? + f.write(sprintf(" %s = ", key)) + pbWriteCsvRecord(val, f, sub_schema[key]) + f.write("\r\n") + end + end + end + end + process_pbs_file_message_end + end end #----------------------------------------------------------------------------- diff --git a/Data/Scripts/999_Main/999_Main.rb b/Data/Scripts/999_Main/999_Main.rb index f0007662d..3b1b0da9b 100644 --- a/Data/Scripts/999_Main/999_Main.rb +++ b/Data/Scripts/999_Main/999_Main.rb @@ -4,9 +4,7 @@ class Scene_DebugIntro def main Graphics.transition(0) - sscene = PokemonLoad_Scene.new - sscreen = PokemonLoadScreen.new(sscene) - sscreen.pbStartLoadScreen + UI::Load.new.main Graphics.freeze end end diff --git a/PBS/Gen 5 backup/items.txt b/PBS/Gen 5 backup/items.txt index 748cb675e..5b374586e 100644 --- a/PBS/Gen 5 backup/items.txt +++ b/PBS/Gen 5 backup/items.txt @@ -3,7 +3,7 @@ [REPEL] Name = Repel NamePlural = Repels -Pocket = 1 +Pocket = Items Price = 350 FieldUse = Direct Flags = Repel,Fling_30 @@ -12,7 +12,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 100 st [SUPERREPEL] Name = Super Repel NamePlural = Super Repels -Pocket = 1 +Pocket = Items Price = 500 FieldUse = Direct Flags = Repel,Fling_30 @@ -21,7 +21,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 200 st [MAXREPEL] Name = Max Repel NamePlural = Max Repels -Pocket = 1 +Pocket = Items Price = 700 FieldUse = Direct Flags = Repel,Fling_30 @@ -30,7 +30,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 250 st [BLACKFLUTE] Name = Black Flute NamePlural = Black Flutes -Pocket = 1 +Pocket = Items Price = 400 FieldUse = Direct Flags = Fling_30 @@ -40,7 +40,7 @@ Description = A black flute made from blown glass. Its melody makes wild Pokémo [WHITEFLUTE] Name = White Flute NamePlural = White Flutes -Pocket = 1 +Pocket = Items Price = 500 FieldUse = Direct Flags = Fling_30 @@ -52,7 +52,7 @@ Name = Honey NamePlural = Honey PortionName = jar of Honey PortionNamePlural = jars of Honey -Pocket = 1 +Pocket = Items Price = 300 FieldUse = Direct Flags = Fling_30 @@ -61,7 +61,7 @@ Description = A sweet honey with an aroma that attracts wild Pokémon when used [ESCAPEROPE] Name = Escape Rope NamePlural = Escape Ropes -Pocket = 1 +Pocket = Items Price = 550 FieldUse = Direct Flags = Fling_30 @@ -70,7 +70,7 @@ Description = A long, durable rope. Use it to escape instantly from a cave or a [REDSHARD] Name = Red Shard NamePlural = Red Shards -Pocket = 1 +Pocket = Items Price = 200 Flags = Fling_30 Description = A small red shard. It appears to be from some sort of implement made long ago. @@ -78,7 +78,7 @@ Description = A small red shard. It appears to be from some sort of implement ma [YELLOWSHARD] Name = Yellow Shard NamePlural = Yellow Shards -Pocket = 1 +Pocket = Items Price = 200 Flags = Fling_30 Description = A small yellow shard. It appears to be from some sort of implement made long ago. @@ -86,7 +86,7 @@ Description = A small yellow shard. It appears to be from some sort of implement [BLUESHARD] Name = Blue Shard NamePlural = Blue Shards -Pocket = 1 +Pocket = Items Price = 200 Flags = Fling_30 Description = A small blue shard. It appears to be from some sort of implement made long ago. @@ -94,7 +94,7 @@ Description = A small blue shard. It appears to be from some sort of implement m [GREENSHARD] Name = Green Shard NamePlural = Green Shards -Pocket = 1 +Pocket = Items Price = 200 Flags = Fling_30 Description = A small green shard. It appears to be from some sort of implement made long ago. @@ -102,7 +102,7 @@ Description = A small green shard. It appears to be from some sort of implement [FIRESTONE] Name = Fire Stone NamePlural = Fire Stones -Pocket = 1 +Pocket = Items Price = 2100 BPPrice = 3 FieldUse = OnPokemon @@ -112,7 +112,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [THUNDERSTONE] Name = Thunder Stone NamePlural = Thunder Stones -Pocket = 1 +Pocket = Items Price = 2100 BPPrice = 3 FieldUse = OnPokemon @@ -122,7 +122,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [WATERSTONE] Name = Water Stone NamePlural = Water Stones -Pocket = 1 +Pocket = Items Price = 2100 BPPrice = 3 FieldUse = OnPokemon @@ -132,7 +132,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [LEAFSTONE] Name = Leaf Stone NamePlural = Leaf Stones -Pocket = 1 +Pocket = Items Price = 2100 BPPrice = 3 FieldUse = OnPokemon @@ -142,7 +142,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [MOONSTONE] Name = Moon Stone NamePlural = Moon Stones -Pocket = 1 +Pocket = Items Price = 2100 BPPrice = 3 FieldUse = OnPokemon @@ -152,7 +152,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SUNSTONE] Name = Sun Stone NamePlural = Sun Stones -Pocket = 1 +Pocket = Items Price = 2100 BPPrice = 3 FieldUse = OnPokemon @@ -162,7 +162,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DUSKSTONE] Name = Dusk Stone NamePlural = Dusk Stones -Pocket = 1 +Pocket = Items Price = 2100 BPPrice = 3 FieldUse = OnPokemon @@ -172,7 +172,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DAWNSTONE] Name = Dawn Stone NamePlural = Dawn Stones -Pocket = 1 +Pocket = Items Price = 2100 BPPrice = 3 FieldUse = OnPokemon @@ -182,7 +182,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SHINYSTONE] Name = Shiny Stone NamePlural = Shiny Stones -Pocket = 1 +Pocket = Items Price = 2100 BPPrice = 3 FieldUse = OnPokemon @@ -192,7 +192,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [REDAPRICORN] Name = Red Apricorn NamePlural = Red Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A red Apricorn. It assails your nostrils. @@ -200,7 +200,7 @@ Description = A red Apricorn. It assails your nostrils. [YLWAPRICORN] Name = Ylw Apricorn NamePlural = Ylw Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A yellow Apricorn. It has an invigorating scent. @@ -208,7 +208,7 @@ Description = A yellow Apricorn. It has an invigorating scent. [BLUAPRICORN] Name = Blu Apricorn NamePlural = Blu Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A blue Apricorn. It smells a bit like grass. @@ -216,7 +216,7 @@ Description = A blue Apricorn. It smells a bit like grass. [GRNAPRICORN] Name = Grn Apricorn NamePlural = Grn Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A green Apricorn. It has a mysterious, aromatic scent. @@ -224,7 +224,7 @@ Description = A green Apricorn. It has a mysterious, aromatic scent. [PNKAPRICORN] Name = Pnk Apricorn NamePlural = Pnk Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A pink Apricorn. It has a nice, sweet scent. @@ -232,7 +232,7 @@ Description = A pink Apricorn. It has a nice, sweet scent. [WHTAPRICORN] Name = Wht Apricorn NamePlural = Wht Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A white Apricorn. It doesn't smell like anything. @@ -240,7 +240,7 @@ Description = A white Apricorn. It doesn't smell like anything. [BLKAPRICORN] Name = Blk Apricorn NamePlural = Blk Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A black Apricorn. It has an indescribable scent. @@ -248,7 +248,7 @@ Description = A black Apricorn. It has an indescribable scent. [HELIXFOSSIL] Name = Helix Fossil NamePlural = Helix Fossils -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a seashell. @@ -256,7 +256,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [DOMEFOSSIL] Name = Dome Fossil NamePlural = Dome Fossils -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a shell. @@ -264,7 +264,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [OLDAMBER] Name = Old Amber NamePlural = Old Ambers -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A piece of amber that contains the genes of an ancient Pokémon. It is clear with a reddish tint. @@ -272,7 +272,7 @@ Description = A piece of amber that contains the genes of an ancient Pokémon. I [ROOTFOSSIL] Name = Root Fossil NamePlural = Root Fossils -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a plant root. @@ -280,7 +280,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [CLAWFOSSIL] Name = Claw Fossil NamePlural = Claw Fossils -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a claw. @@ -288,7 +288,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [SKULLFOSSIL] Name = Skull Fossil NamePlural = Skull Fossils -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a head. @@ -296,7 +296,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [ARMORFOSSIL] Name = Armor Fossil NamePlural = Armor Fossils -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a collar. @@ -304,7 +304,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [COVERFOSSIL] Name = Cover Fossil NamePlural = Cover Fossils -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea in ancient times. It appears to be part of its back. @@ -312,7 +312,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea in ancient t [PLUMEFOSSIL] Name = Plume Fossil NamePlural = Plume Fossils -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that flew in the sky in ancient times. It appears to be part of its wing. @@ -320,7 +320,7 @@ Description = A fossil of an ancient Pokémon that flew in the sky in ancient ti [PRETTYWING] Name = Pretty Wing NamePlural = Pretty Wings -Pocket = 1 +Pocket = Items Price = 200 Flags = Fling_20 Description = Though this feather is beautiful, it's just a regular feather and has no effect on Pokémon. @@ -328,7 +328,7 @@ Description = Though this feather is beautiful, it's just a regular feather and [TINYMUSHROOM] Name = Tiny Mushroom NamePlural = Tiny Mushrooms -Pocket = 1 +Pocket = Items Price = 500 Flags = Fling_30 Description = A small and rare mushroom. It is sought after by collectors. @@ -336,7 +336,7 @@ Description = A small and rare mushroom. It is sought after by collectors. [BIGMUSHROOM] Name = Big Mushroom NamePlural = Big Mushrooms -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_30 Description = A large and rare mushroom. It is sought after by collectors. @@ -344,7 +344,7 @@ Description = A large and rare mushroom. It is sought after by collectors. [BALMMUSHROOM] Name = Balm Mushroom NamePlural = Balm Mushrooms -Pocket = 1 +Pocket = Items Price = 50000 Flags = Fling_30 Description = A rare mushroom which gives off a nice fragrance. A maniac will buy it for a high price. @@ -352,7 +352,7 @@ Description = A rare mushroom which gives off a nice fragrance. A maniac will bu [PEARL] Name = Pearl NamePlural = Pearls -Pocket = 1 +Pocket = Items Price = 1400 Flags = Fling_30 Description = A somewhat-small pearl that sparkles in a pretty silver color. It can be sold cheaply to shops. @@ -360,7 +360,7 @@ Description = A somewhat-small pearl that sparkles in a pretty silver color. It [BIGPEARL] Name = Big Pearl NamePlural = Big Pearls -Pocket = 1 +Pocket = Items Price = 7500 Flags = Fling_30 Description = A quite-large pearl that sparkles in a pretty silver color. It can be sold at a high price to shops. @@ -368,7 +368,7 @@ Description = A quite-large pearl that sparkles in a pretty silver color. It can [PEARLSTRING] Name = Pearl String NamePlural = Pearl Strings -Pocket = 1 +Pocket = Items Price = 50000 Flags = Fling_30 Description = Very large pearls that sparkle in a pretty silver color. A maniac will buy them for a high price. @@ -378,7 +378,7 @@ Name = Stardust NamePlural = Stardusts PortionName = bag of Stardust PortionNamePlural = bags of Stardust -Pocket = 1 +Pocket = Items Price = 2000 Flags = Fling_30 Description = Lovely, red-colored sand with a loose, silky feel. It can be sold at a high price to shops. @@ -386,7 +386,7 @@ Description = Lovely, red-colored sand with a loose, silky feel. It can be sold [STARPIECE] Name = Star Piece NamePlural = Star Pieces -Pocket = 1 +Pocket = Items Price = 9800 Flags = Fling_30 Description = A shard of a pretty gem that sparkles in a red color. It can be sold at a high price to shops. @@ -394,7 +394,7 @@ Description = A shard of a pretty gem that sparkles in a red color. It can be so [COMETSHARD] Name = Comet Shard NamePlural = Comet Shards -Pocket = 1 +Pocket = Items Price = 120000 Flags = Fling_30 Description = A shard which fell to the ground when a comet approached. A maniac will buy it for a high price. @@ -402,7 +402,7 @@ Description = A shard which fell to the ground when a comet approached. A maniac [NUGGET] Name = Nugget NamePlural = Nuggets -Pocket = 1 +Pocket = Items Price = 10000 Flags = Fling_30 Description = A nugget of pure gold that gives off a lustrous gleam. It can be sold at a high price to shops. @@ -410,7 +410,7 @@ Description = A nugget of pure gold that gives off a lustrous gleam. It can be s [BIGNUGGET] Name = Big Nugget NamePlural = Big Nuggets -Pocket = 1 +Pocket = Items Price = 60000 Flags = Fling_30 Description = A big nugget of pure gold that gives off a lustrous gleam. A maniac will buy it for a high price. @@ -418,7 +418,7 @@ Description = A big nugget of pure gold that gives off a lustrous gleam. A mania [HEARTSCALE] Name = Heart Scale NamePlural = Heart Scales -Pocket = 1 +Pocket = Items Price = 100 Flags = Fling_30 Description = A pretty, heart-shaped scale that is extremely rare. It glows faintly in the colors of the rainbow. @@ -426,14 +426,14 @@ Description = A pretty, heart-shaped scale that is extremely rare. It glows fain [SLOWPOKETAIL] Name = Slowpoke Tail NamePlural = Slowpoke Tails -Pocket = 1 +Pocket = Items Price = 9800 Description = A very tasty tail of something. It sells for a high price. #------------------------------- [RAREBONE] Name = Rare Bone NamePlural = Rare Bones -Pocket = 1 +Pocket = Items Price = 10000 Flags = Fling_100 Description = A bone that is extremely valuable for Pokémon archaeology. It can be sold for a high price to shops. @@ -443,7 +443,7 @@ Name = Relic Copper NamePlural = Relic Coppers PortionName = Relic Copper coin PortionNamePlural = Relic Copper coins -Pocket = 1 +Pocket = Items Price = 2000 Flags = Fling_30 Description = A copper coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -453,7 +453,7 @@ Name = Relic Silver NamePlural = Relic Silvers PortionName = Relic Silver coin PortionNamePlural = Relic Silver coins -Pocket = 1 +Pocket = Items Price = 10000 Flags = Fling_30 Description = A silver coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -463,7 +463,7 @@ Name = Relic Gold NamePlural = Relic Golds PortionName = Relic Gold coin PortionNamePlural = Relic Gold coins -Pocket = 1 +Pocket = Items Price = 20000 Flags = Fling_30 Description = A gold coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -471,7 +471,7 @@ Description = A gold coin used in a civilization about 3,000 years ago. A maniac [RELICVASE] Name = Relic Vase NamePlural = Relic Vases -Pocket = 1 +Pocket = Items Price = 100000 Flags = Fling_30 Description = A vase made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -479,7 +479,7 @@ Description = A vase made in a civilization about 3,000 years ago. A maniac will [RELICBAND] Name = Relic Band NamePlural = Relic Bands -Pocket = 1 +Pocket = Items Price = 200000 Flags = Fling_30 Description = A bracelet made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -487,7 +487,7 @@ Description = A bracelet made in a civilization about 3,000 years ago. A maniac [RELICSTATUE] Name = Relic Statue NamePlural = Relic Statues -Pocket = 1 +Pocket = Items Price = 400000 Flags = Fling_30 Description = A stone figure made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -495,7 +495,7 @@ Description = A stone figure made in a civilization about 3,000 years ago. A man [RELICCROWN] Name = Relic Crown NamePlural = Relic Crowns -Pocket = 1 +Pocket = Items Price = 600000 Flags = Fling_30 Description = A crown made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -505,7 +505,7 @@ Name = Growth Mulch NamePlural = Growth Mulch PortionName = bag of Growth Mulch PortionNamePlural = bags of Growth Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -515,7 +515,7 @@ Name = Damp Mulch NamePlural = Damp Mulch PortionName = bag of Damp Mulch PortionNamePlural = bags of Damp Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -525,7 +525,7 @@ Name = Stable Mulch NamePlural = Stable Mulch PortionName = bag of Stable Mulch PortionNamePlural = bags of Stable Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -535,7 +535,7 @@ Name = Gooey Mulch NamePlural = Gooey Mulch PortionName = bag of Gooey Mulch PortionNamePlural = bags of Gooey Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -545,7 +545,7 @@ Name = Shoal Salt NamePlural = Shoal Salts PortionName = pile of Shoal Salt PortionNamePlural = piles of Shoal Salt -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = Pure salt that can be discovered deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -553,7 +553,7 @@ Description = Pure salt that can be discovered deep inside the Shoal Cave. A man [SHOALSHELL] Name = Shoal Shell NamePlural = Shoal Shells -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = A pretty seashell that can be found deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -561,1338 +561,135 @@ Description = A pretty seashell that can be found deep inside the Shoal Cave. A [ODDKEYSTONE] Name = Odd Keystone NamePlural = Odd Keystones -Pocket = 1 +Pocket = Items Price = 2100 Flags = Fling_80 Description = A vital item that is needed to keep a stone tower from collapsing. Voices can be heard from it occasionally. #------------------------------- -[AIRBALLOON] -Name = Air Balloon -NamePlural = Air Balloons -Pocket = 1 -Price = 200 -BPPrice = 12 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. -#------------------------------- -[BRIGHTPOWDER] -Name = Bright Powder -NamePlural = Bright Powders -PortionName = bag of Bright Powder -PortionNamePlural = bags of Bright Powder -Pocket = 1 -Price = 10 -BPPrice = 12 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. -#------------------------------- -[EVIOLITE] -Name = Eviolite -NamePlural = Eviolites -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_40 -Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. -#------------------------------- -[FLOATSTONE] -Name = Float Stone -NamePlural = Float Stones -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_30 -Description = A very light stone. It reduces the weight of a Pokémon when held. -#------------------------------- -[DESTINYKNOT] -Name = Destiny Knot -NamePlural = Destiny Knots -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_10 -Description = A long, thin, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. -#------------------------------- -[ROCKYHELMET] -Name = Rocky Helmet -NamePlural = Rocky Helmets -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_60 -Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. -#------------------------------- -[EJECTBUTTON] -Name = Eject Button -NamePlural = Eject Buttons -Pocket = 1 -Price = 200 -BPPrice = 16 -Flags = Fling_30 -Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. -#------------------------------- -[REDCARD] -Name = Red Card -NamePlural = Red Cards -Pocket = 1 -Price = 200 -BPPrice = 16 -Flags = Fling_10 -Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. -#------------------------------- -[SHEDSHELL] -Name = Shed Shell -NamePlural = Shed Shells -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. -#------------------------------- -[SMOKEBALL] -Name = Smoke Ball -NamePlural = Smoke Balls -Pocket = 1 -Price = 200 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. -#------------------------------- -[LUCKYEGG] -Name = Lucky Egg -NamePlural = Lucky Eggs -Pocket = 1 -Price = 200 -BPPrice = 77 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. -#------------------------------- -[EXPSHARE] -Name = Exp. Share -NamePlural = Exp. Shares -Pocket = 1 -Price = 3000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. -#------------------------------- -[AMULETCOIN] -Name = Amulet Coin -NamePlural = Amulet Coins -Pocket = 1 -Price = 100 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[SOOTHEBELL] -Name = Soothe Bell -NamePlural = Soothe Bells -Pocket = 1 -Price = 100 -BPPrice = 8 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. -#------------------------------- -[CLEANSETAG] -Name = Cleanse Tag -NamePlural = Cleanse Tags -Pocket = 1 -Price = 200 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[CHOICEBAND] -Name = Choice Band -NamePlural = Choice Bands -Pocket = 1 -Price = 100 -BPPrice = 24 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. -#------------------------------- -[CHOICESPECS] -Name = Choice Specs -NamePlural = Choice Specs -PortionName = pair of Choice Specs -PortionNamePlural = pairs of Choice Specs -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_10 -Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. -#------------------------------- -[CHOICESCARF] -Name = Choice Scarf -NamePlural = Choice Scarves -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. -#------------------------------- -[HEATROCK] -Name = Heat Rock -NamePlural = Heat Rocks -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. -#------------------------------- -[DAMPROCK] -Name = Damp Rock -NamePlural = Damp Rocks -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. -#------------------------------- -[SMOOTHROCK] -Name = Smooth Rock -NamePlural = Smooth Rocks -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_10 -Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. -#------------------------------- -[ICYROCK] -Name = Icy Rock -NamePlural = Icy Rocks -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_40 -Description = A Pokémon held item that extends the duration of the move Hail used by the holder. -#------------------------------- -[LIGHTCLAY] -Name = Light Clay -NamePlural = Light Clays -PortionName = lump of Light Clay -PortionNamePlural = lumps of Light Clay -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_30 -Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. -#------------------------------- -[GRIPCLAW] -Name = Grip Claw -NamePlural = Grip Claws -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_90 -Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. -#------------------------------- -[BINDINGBAND] -Name = Binding Band -NamePlural = Binding Bands -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_30 -Description = A band that increases the power of binding moves when held. -#------------------------------- -[BIGROOT] -Name = Big Root -NamePlural = Big Roots -Pocket = 1 -Price = 200 -BPPrice = 16 -Flags = Fling_10 -Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. -#------------------------------- -[BLACKSLUDGE] -Name = Black Sludge -NamePlural = Black Sludges -PortionName = blob of Black Sludge -PortionNamePlural = blobs of Black Sludge -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_30 -Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. -#------------------------------- -[LEFTOVERS] -Name = Leftovers -NamePlural = Leftovers -PortionName = serving of Leftovers -PortionNamePlural = servings of Leftovers -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. -#------------------------------- -[SHELLBELL] -Name = Shell Bell -NamePlural = Shell Bells -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. -#------------------------------- -[MENTALHERB] -Name = Mental Herb -NamePlural = Mental Herbs -Pocket = 1 -Price = 100 -BPPrice = 16 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. -#------------------------------- -[WHITEHERB] -Name = White Herb -NamePlural = White Herbs -Pocket = 1 -Price = 100 -BPPrice = 16 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. -#------------------------------- -[POWERHERB] -Name = Power Herb -NamePlural = Power Herbs -Pocket = 1 -Price = 100 -BPPrice = 16 -Flags = Fling_10 -Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. -#------------------------------- -[ABSORBBULB] -Name = Absorb Bulb -NamePlural = Absorb Bulbs -Pocket = 1 -Price = 200 -BPPrice = 16 -Flags = Fling_30 -Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. -#------------------------------- -[CELLBATTERY] -Name = Cell Battery -NamePlural = Cell Batteries -Pocket = 1 -Price = 200 -BPPrice = 16 -Flags = Fling_30 -Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. -#------------------------------- -[LIFEORB] -Name = Life Orb -NamePlural = Life Orbs -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. -#------------------------------- -[EXPERTBELT] -Name = Expert Belt -NamePlural = Expert Belts -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. -#------------------------------- -[METRONOME] -Name = Metronome -NamePlural = Metronomes -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_30 -Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. -#------------------------------- -[MUSCLEBAND] -Name = Muscle Band -NamePlural = Muscle Bands -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. -#------------------------------- -[WISEGLASSES] -Name = Wise Glasses -NamePlural = Wise Glasses -PortionName = pair of Wise Glasses -PortionNamePlural = pairs of Wise Glasses -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. -#------------------------------- -[RAZORCLAW] -Name = Razor Claw -NamePlural = Razor Claws -Pocket = 1 -Price = 2100 -BPPrice = 8 -Flags = Fling_80 -Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. -#------------------------------- -[SCOPELENS] -Name = Scope Lens -NamePlural = Scope Lenses -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. -#------------------------------- -[WIDELENS] -Name = Wide Lens -NamePlural = Wide Lenses -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. -#------------------------------- -[ZOOMLENS] -Name = Zoom Lens -NamePlural = Zoom Lenses -Pocket = 1 -Price = 200 -BPPrice = 12 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. -#------------------------------- -[KINGSROCK] -Name = King's Rock -NamePlural = King's Rocks -Pocket = 1 -Price = 100 -BPPrice = 8 -Flags = Fling_30 -Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. -#------------------------------- -[RAZORFANG] -Name = Razor Fang -NamePlural = Razor Fangs -Pocket = 1 -Price = 2100 -BPPrice = 8 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. -#------------------------------- -[LAGGINGTAIL] -Name = Lagging Tail -NamePlural = Lagging Tails -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. -#------------------------------- -[QUICKCLAW] -Name = Quick Claw -NamePlural = Quick Claws -Pocket = 1 -Price = 100 -BPPrice = 24 -Flags = Fling_80 -Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. -#------------------------------- -[FOCUSBAND] -Name = Focus Band -NamePlural = Focus Bands -Pocket = 1 -Price = 200 -BPPrice = 12 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. -#------------------------------- -[FOCUSSASH] -Name = Focus Sash -NamePlural = Focus Sashes -Pocket = 1 -Price = 200 -BPPrice = 24 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. -#------------------------------- -[FLAMEORB] -Name = Flame Orb -NamePlural = Flame Orbs -Pocket = 1 -Price = 100 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. -#------------------------------- -[TOXICORB] -Name = Toxic Orb -NamePlural = Toxic Orbs -Pocket = 1 -Price = 100 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. -#------------------------------- -[STICKYBARB] -Name = Sticky Barb -NamePlural = Sticky Barbs -Pocket = 1 -Price = 200 -BPPrice = 16 -Flags = Fling_80 -Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. -#------------------------------- -[IRONBALL] -Name = Iron Ball -NamePlural = Iron Balls -Pocket = 1 -Price = 200 -BPPrice = 12 -Flags = Fling_130 -Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. -#------------------------------- -[RINGTARGET] -Name = Ring Target -NamePlural = Ring Targets -Pocket = 1 -Price = 200 -BPPrice = 12 -Flags = Fling_10 -Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. -#------------------------------- -[MACHOBRACE] -Name = Macho Brace -NamePlural = Macho Braces -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_60 -Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. -#------------------------------- -[POWERWEIGHT] -Name = Power Weight -NamePlural = Power Weights -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBRACER] -Name = Power Bracer -NamePlural = Power Bracers -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBELT] -Name = Power Belt -NamePlural = Power Belts -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERLENS] -Name = Power Lens -NamePlural = Power Lenses -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBAND] -Name = Power Band -NamePlural = Power Bands -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERANKLET] -Name = Power Anklet -NamePlural = Power Anklets -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. -#------------------------------- -[LAXINCENSE] -Name = Lax Incense -NamePlural = Lax Incenses -PortionName = jar of Lax Incense -PortionNamePlural = jars of Lax Incense -Pocket = 1 -Price = 9600 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. -#------------------------------- -[FULLINCENSE] -Name = Full Incense -NamePlural = Full Incenses -PortionName = jar of Full Incense -PortionNamePlural = jars of Full Incense -Pocket = 1 -Price = 9600 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. -#------------------------------- -[LUCKINCENSE] -Name = Luck Incense -NamePlural = Luck Incenses -PortionName = jar of Luck Incense -PortionNamePlural = jars of Luck Incense -Pocket = 1 -Price = 9600 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[PUREINCENSE] -Name = Pure Incense -NamePlural = Pure Incenses -PortionName = jar of Pure Incense -PortionNamePlural = jars of Pure Incense -Pocket = 1 -Price = 9600 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[SEAINCENSE] -Name = Sea Incense -NamePlural = Sea Incenses -PortionName = jar of Sea Incense -PortionNamePlural = jars of Sea Incense -Pocket = 1 -Price = 9600 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[WAVEINCENSE] -Name = Wave Incense -NamePlural = Wave Incenses -PortionName = jar of Wave Incense -PortionNamePlural = jars of Wave Incense -Pocket = 1 -Price = 9600 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[ROSEINCENSE] -Name = Rose Incense -NamePlural = Rose Incenses -PortionName = jar of Rose Incense -PortionNamePlural = jars of Rose Incense -Pocket = 1 -Price = 9600 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. -#------------------------------- -[ODDINCENSE] -Name = Odd Incense -NamePlural = Odd Incenses -PortionName = jar of Odd Incense -PortionNamePlural = jars of Odd Incense -Pocket = 1 -Price = 9600 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. -#------------------------------- -[ROCKINCENSE] -Name = Rock Incense -NamePlural = Rock Incenses -PortionName = jar of Rock Incense -PortionNamePlural = jars of Rock Incense -Pocket = 1 -Price = 9600 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. -#------------------------------- -[CHARCOAL] -Name = Charcoal -NamePlural = Charcoals -PortionName = piece of Charcoal -PortionNamePlural = pieces of Charcoal -Pocket = 1 -Price = 9800 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. -#------------------------------- -[MYSTICWATER] -Name = Mystic Water -NamePlural = Mystic Waters -Pocket = 1 -Price = 100 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. -#------------------------------- -[MAGNET] -Name = Magnet -NamePlural = Magnets -Pocket = 1 -Price = 100 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. -#------------------------------- -[MIRACLESEED] -Name = Miracle Seed -NamePlural = Miracle Seeds -Pocket = 1 -Price = 100 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. -#------------------------------- -[NEVERMELTICE] -Name = Never-Melt Ice -NamePlural = Never-Melt Ices -PortionName = piece of Never-Melt Ice -PortionNamePlural = pieces of Never-Melt Ice -Pocket = 1 -Price = 100 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. -#------------------------------- -[BLACKBELT] -Name = Black Belt -NamePlural = Black Belts -Pocket = 1 -Price = 100 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. -#------------------------------- -[POISONBARB] -Name = Poison Barb -NamePlural = Poison Barbs -Pocket = 1 -Price = 100 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. -#------------------------------- -[SOFTSAND] -Name = Soft Sand -NamePlural = Soft Sand -PortionName = bag of Soft Sand -PortionNamePlural = bags of Soft Sand -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. -#------------------------------- -[SHARPBEAK] -Name = Sharp Beak -NamePlural = Sharp Beaks -Pocket = 1 -Price = 100 -Flags = Fling_50 -Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. -#------------------------------- -[TWISTEDSPOON] -Name = Twisted Spoon -NamePlural = Twisted Spoons -Pocket = 1 -Price = 100 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. -#------------------------------- -[SILVERPOWDER] -Name = Silver Powder -NamePlural = Silver Powders -PortionName = pile of Silver Powder -PortionNamePlural = piles of Silver Powder -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. -#------------------------------- -[HARDSTONE] -Name = Hard Stone -NamePlural = Hard Stones -Pocket = 1 -Price = 100 -Flags = Fling_100 -Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. -#------------------------------- -[SPELLTAG] -Name = Spell Tag -NamePlural = Spell Tags -Pocket = 1 -Price = 100 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. -#------------------------------- -[DRAGONFANG] -Name = Dragon Fang -NamePlural = Dragon Fangs -Pocket = 1 -Price = 100 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. -#------------------------------- -[BLACKGLASSES] -Name = Black Glasses -NamePlural = Black Glasses -PortionName = pair of Black Glasses -PortionNamePlural = pairs of Black Glasses -Pocket = 1 -Price = 100 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. -#------------------------------- -[METALCOAT] -Name = Metal Coat -NamePlural = Metal Coats -Pocket = 1 -Price = 100 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. -#------------------------------- -[SILKSCARF] -Name = Silk Scarf -NamePlural = Silk Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. -#------------------------------- -[FLAMEPLATE] -Name = Flame Plate -NamePlural = Flame Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. -#------------------------------- -[SPLASHPLATE] -Name = Splash Plate -NamePlural = Splash Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. -#------------------------------- -[ZAPPLATE] -Name = Zap Plate -NamePlural = Zap Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. -#------------------------------- -[MEADOWPLATE] -Name = Meadow Plate -NamePlural = Meadow Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. -#------------------------------- -[ICICLEPLATE] -Name = Icicle Plate -NamePlural = Icicle Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. -#------------------------------- -[FISTPLATE] -Name = Fist Plate -NamePlural = Fist Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. -#------------------------------- -[TOXICPLATE] -Name = Toxic Plate -NamePlural = Toxic Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. -#------------------------------- -[EARTHPLATE] -Name = Earth Plate -NamePlural = Earth Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. -#------------------------------- -[SKYPLATE] -Name = Sky Plate -NamePlural = Sky Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. -#------------------------------- -[MINDPLATE] -Name = Mind Plate -NamePlural = Mind Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. -#------------------------------- -[INSECTPLATE] -Name = Insect Plate -NamePlural = Insect Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. -#------------------------------- -[STONEPLATE] -Name = Stone Plate -NamePlural = Stone Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. -#------------------------------- -[SPOOKYPLATE] -Name = Spooky Plate -NamePlural = Spooky Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. -#------------------------------- -[DRACOPLATE] -Name = Draco Plate -NamePlural = Draco Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. -#------------------------------- -[DREADPLATE] -Name = Dread Plate -NamePlural = Dread Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. -#------------------------------- -[IRONPLATE] -Name = Iron Plate -NamePlural = Iron Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. -#------------------------------- -[FIREGEM] -Name = Fire Gem -NamePlural = Fire Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. -#------------------------------- -[WATERGEM] -Name = Water Gem -NamePlural = Water Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. -#------------------------------- -[ELECTRICGEM] -Name = Electric Gem -NamePlural = Electric Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. -#------------------------------- -[GRASSGEM] -Name = Grass Gem -NamePlural = Grass Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. -#------------------------------- -[ICEGEM] -Name = Ice Gem -NamePlural = Ice Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. -#------------------------------- -[FIGHTINGGEM] -Name = Fighting Gem -NamePlural = Fighting Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. -#------------------------------- -[POISONGEM] -Name = Poison Gem -NamePlural = Poison Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. -#------------------------------- -[GROUNDGEM] -Name = Ground Gem -NamePlural = Ground Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. -#------------------------------- -[FLYINGGEM] -Name = Flying Gem -NamePlural = Flying Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. -#------------------------------- -[PSYCHICGEM] -Name = Psychic Gem -NamePlural = Psychic Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. -#------------------------------- -[BUGGEM] -Name = Bug Gem -NamePlural = Bug Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. -#------------------------------- -[ROCKGEM] -Name = Rock Gem -NamePlural = Rock Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. -#------------------------------- -[GHOSTGEM] -Name = Ghost Gem -NamePlural = Ghost Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. -#------------------------------- -[DRAGONGEM] -Name = Dragon Gem -NamePlural = Dragon Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. -#------------------------------- -[DARKGEM] -Name = Dark Gem -NamePlural = Dark Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. -#------------------------------- -[STEELGEM] -Name = Steel Gem -NamePlural = Steel Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. -#------------------------------- -[NORMALGEM] -Name = Normal Gem -NamePlural = Normal Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. -#------------------------------- -[LIGHTBALL] -Name = Light Ball -NamePlural = Light Balls -Pocket = 1 -Price = 100 -Flags = Fling_30 -Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. -#------------------------------- -[LUCKYPUNCH] -Name = Lucky Punch -NamePlural = Lucky Punches -Pocket = 1 -Price = 10 -BPPrice = 7 -Flags = Fling_40 -Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. -#------------------------------- -[METALPOWDER] -Name = Metal Powder -NamePlural = Metal Powders -PortionName = bag of Metal Powder -PortionNamePlural = bags of Metal Powder -Pocket = 1 -Price = 10 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. -#------------------------------- -[QUICKPOWDER] -Name = Quick Powder -NamePlural = Quick Powders -PortionName = bag of Quick Powder -PortionNamePlural = bags of Quick Powder -Pocket = 1 -Price = 10 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. -#------------------------------- -[THICKCLUB] -Name = Thick Club -NamePlural = Thick Clubs -Pocket = 1 -Price = 500 -Flags = Fling_90 -Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. -#------------------------------- -[STICK] -Name = Stick -NamePlural = Sticks -Pocket = 1 -Price = 200 -Flags = Fling_60 -Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. -#------------------------------- -[SOULDEW] -Name = Soul Dew -NamePlural = Soul Dews -Pocket = 1 -Price = 200 -Flags = Fling_30 -Description = A wondrous orb to be held by Latios or Latias. It raises both the Sp. Atk and Sp. Def stats. -#------------------------------- -[DEEPSEATOOTH] -Name = Deep Sea Tooth -NamePlural = Deep Sea Teeth -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_90 -Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. -#------------------------------- -[DEEPSEASCALE] -Name = Deep Sea Scale -NamePlural = Deep Sea Scales -Pocket = 1 -Price = 200 -BPPrice = 8 -Flags = Fling_30 -Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. -#------------------------------- -[ADAMANTORB] -Name = Adamant Orb -NamePlural = Adamant Orbs -Pocket = 1 -Price = 10000 -Flags = Fling_60 -Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. -#------------------------------- -[LUSTROUSORB] -Name = Lustrous Orb -NamePlural = Lustrous Orbs -Pocket = 1 -Price = 10000 -Flags = Fling_60 -Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. -#------------------------------- -[GRISEOUSORB] -Name = Griseous Orb -NamePlural = Griseous Orbs -Pocket = 1 -Price = 10000 -Flags = Fling_60 -Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. -#------------------------------- -[DOUSEDRIVE] -Name = Douse Drive -NamePlural = Douse Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. -#------------------------------- -[SHOCKDRIVE] -Name = Shock Drive -NamePlural = Shock Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. -#------------------------------- -[BURNDRIVE] -Name = Burn Drive -NamePlural = Burn Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. -#------------------------------- -[CHILLDRIVE] -Name = Chill Drive -NamePlural = Chill Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. -#------------------------------- -[EVERSTONE] -Name = Everstone -NamePlural = Everstones -Pocket = 1 -Price = 200 -BPPrice = 3 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. -#------------------------------- -[DRAGONSCALE] -Name = Dragon Scale -NamePlural = Dragon Scales -Pocket = 1 -Price = 2100 -BPPrice = 8 -Flags = Fling_30 -Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. -#------------------------------- -[UPGRADE] -Name = Up-Grade -NamePlural = Up-Grades -Pocket = 1 -Price = 2100 -BPPrice = 8 -Flags = Fling_30 -Description = A transparent device filled with all sorts of data. It was produced by Silph Co. -#------------------------------- -[DUBIOUSDISC] -Name = Dubious Disc -NamePlural = Dubious Discs -Pocket = 1 -Price = 2100 -BPPrice = 8 -Flags = Fling_50 -Description = A transparent device overflowing with dubious data. Its producer is unknown. -#------------------------------- -[PROTECTOR] -Name = Protector -NamePlural = Protectors -Pocket = 1 -Price = 2100 -BPPrice = 8 -Flags = Fling_80 -Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. -#------------------------------- -[ELECTIRIZER] -Name = Electirizer -NamePlural = Electirizers -Pocket = 1 -Price = 2100 -BPPrice = 8 -Flags = Fling_80 -Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. -#------------------------------- -[MAGMARIZER] -Name = Magmarizer -NamePlural = Magmarizers -Pocket = 1 -Price = 2100 -BPPrice = 8 -Flags = Fling_80 -Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. -#------------------------------- -[REAPERCLOTH] -Name = Reaper Cloth -NamePlural = Reaper Cloths -PortionName = scrap of Reaper Cloth -PortionNamePlural = scraps of Reaper Cloth -Pocket = 1 -Price = 2100 -BPPrice = 8 -Flags = Fling_10 -Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. -#------------------------------- -[PRISMSCALE] -Name = Prism Scale -NamePlural = Prism Scales -Pocket = 1 -Price = 500 -BPPrice = 8 -Flags = Fling_30 -Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. -#------------------------------- -[OVALSTONE] -Name = Oval Stone -NamePlural = Oval Stones -Pocket = 1 -Price = 2100 -BPPrice = 8 -Flags = Fling_80 -Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. -#------------------------------- -[REDSCARF] -Name = Red Scarf -NamePlural = Red Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Cool aspect of the holder in a Contest. -#------------------------------- -[BLUESCARF] -Name = Blue Scarf -NamePlural = Blue Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Beauty aspect of the holder in a Contest. -#------------------------------- -[PINKSCARF] -Name = Pink Scarf -NamePlural = Pink Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Cute aspect of the holder in a Contest. -#------------------------------- -[GREENSCARF] -Name = Green Scarf -NamePlural = Green Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Smart aspect of the holder in a Contest. -#------------------------------- -[YELLOWSCARF] -Name = Yellow Scarf -NamePlural = Yellow Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Tough aspect of the holder in a Contest. +[GRASSMAIL] +Name = Grass Mail +NamePlural = Grass Mail +PortionName = piece of Grass Mail +PortionNamePlural = pieces of Grass Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. +#------------------------------- +[FLAMEMAIL] +Name = Flame Mail +NamePlural = Flame Mail +PortionName = piece of Flame Mail +PortionNamePlural = pieces of Flame Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. +#------------------------------- +[BUBBLEMAIL] +Name = Bubble Mail +NamePlural = Bubble Mail +PortionName = piece of Bubble Mail +PortionNamePlural = pieces of Bubble Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. +#------------------------------- +[BLOOMMAIL] +Name = Bloom Mail +NamePlural = Bloom Mail +PortionName = piece of Bloom Mail +PortionNamePlural = pieces of Bloom Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[TUNNELMAIL] +Name = Tunnel Mail +NamePlural = Tunnel Mail +PortionName = piece of Tunnel Mail +PortionNamePlural = pieces of Tunnel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. +#------------------------------- +[STEELMAIL] +Name = Steel Mail +NamePlural = Steel Mail +PortionName = piece of Steel Mail +PortionNamePlural = pieces of Steel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. +#------------------------------- +[HEARTMAIL] +Name = Heart Mail +NamePlural = Heart Mail +PortionName = piece of Heart Mail +PortionNamePlural = pieces of Heart Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[SNOWMAIL] +Name = Snow Mail +NamePlural = Snow Mail +PortionName = piece of Snow Mail +PortionNamePlural = pieces of Snow Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. +#------------------------------- +[SPACEMAIL] +Name = Space Mail +NamePlural = Space Mail +PortionName = piece of Space Mail +PortionNamePlural = pieces of Space Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print showing the huge expanse of space. Let a Pokémon hold it for delivery. +#------------------------------- +[AIRMAIL] +Name = Air Mail +NamePlural = Air Mail +PortionName = piece of Air Mail +PortionNamePlural = pieces of Air Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. +#------------------------------- +[MOSAICMAIL] +Name = Mosaic Mail +NamePlural = Mosaic Mail +PortionName = piece of Mosaic Mail +PortionNamePlural = pieces of Mosaic Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. +#------------------------------- +[BRICKMAIL] +Name = Brick Mail +NamePlural = Brick Mail +PortionName = piece of Brick Mail +PortionNamePlural = pieces of Brick Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. #------------------------------- [POTION] Name = Potion NamePlural = Potions -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -1902,7 +699,7 @@ Description = A spray-type medicine for wounds. It restores the HP of one Pokém [SUPERPOTION] Name = Super Potion NamePlural = Super Potions -Pocket = 2 +Pocket = Medicine Price = 700 FieldUse = OnPokemon BattleUse = OnPokemon @@ -1912,7 +709,7 @@ Description = A spray-type medicine for wounds. It restores the HP of one Pokém [HYPERPOTION] Name = Hyper Potion NamePlural = Hyper Potions -Pocket = 2 +Pocket = Medicine Price = 1200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -1922,7 +719,7 @@ Description = A spray-type medicine for wounds. It restores the HP of one Pokém [MAXPOTION] Name = Max Potion NamePlural = Max Potions -Pocket = 2 +Pocket = Medicine Price = 2500 BPPrice = 2 FieldUse = OnPokemon @@ -1933,7 +730,7 @@ Description = A spray-type medicine for wounds. It completely restores the HP of [FULLRESTORE] Name = Full Restore NamePlural = Full Restores -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -1945,7 +742,7 @@ Name = Sacred Ash NamePlural = Sacred Ashes PortionName = bag of Sacred Ash PortionNamePlural = bags of Sacred Ash -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = Direct Flags = Fling_30 @@ -1954,7 +751,7 @@ Description = It revives all fainted Pokémon. In doing so, it also fully restor [AWAKENING] Name = Awakening NamePlural = Awakenings -Pocket = 2 +Pocket = Medicine Price = 250 FieldUse = OnPokemon BattleUse = OnPokemon @@ -1964,7 +761,7 @@ Description = A spray-type medicine. It awakens a Pokémon from the clutches of [ANTIDOTE] Name = Antidote NamePlural = Antidotes -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -1974,7 +771,7 @@ Description = A spray-type medicine. It lifts the effect of poison from one Pok [BURNHEAL] Name = Burn Heal NamePlural = Burn Heals -Pocket = 2 +Pocket = Medicine Price = 250 FieldUse = OnPokemon BattleUse = OnPokemon @@ -1984,7 +781,7 @@ Description = A spray-type medicine. It heals a single Pokémon that is sufferin [PARALYZEHEAL] Name = Paralyze Heal NamePlural = Paralyze Heals -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -1994,7 +791,7 @@ Description = A spray-type medicine. It eliminates paralysis from a single Poké [ICEHEAL] Name = Ice Heal NamePlural = Ice Heals -Pocket = 2 +Pocket = Medicine Price = 250 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2004,7 +801,7 @@ Description = A spray-type medicine. It defrosts a Pokémon that has been frozen [FULLHEAL] Name = Full Heal NamePlural = Full Heals -Pocket = 2 +Pocket = Medicine Price = 600 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2014,7 +811,7 @@ Description = A spray-type medicine. It heals all the status problems of a singl [LAVACOOKIE] Name = Lava Cookie NamePlural = Lava Cookies -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2024,7 +821,7 @@ Description = Lavaridge Town's local specialty. It heals all the status problems [OLDGATEAU] Name = Old Gateau NamePlural = Old Gateaux -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2034,7 +831,7 @@ Description = Old Chateau's hidden specialty. It heals all the status problems o [CASTELIACONE] Name = Casteliacone NamePlural = Casteliacones -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2044,7 +841,7 @@ Description = Castelia City's specialty, soft-serve ice cream. It heals all the [REVIVE] Name = Revive NamePlural = Revives -Pocket = 2 +Pocket = Medicine Price = 1500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2054,7 +851,7 @@ Description = A medicine that revives a fainted Pokémon. It restores half the P [MAXREVIVE] Name = Max Revive NamePlural = Max Revives -Pocket = 2 +Pocket = Medicine Price = 4000 BPPrice = 24 FieldUse = OnPokemon @@ -2067,7 +864,7 @@ Name = Berry Juice NamePlural = Berry Juices PortionName = cup of Berry Juice PortionNamePlural = cups of Berry Juice -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2077,7 +874,7 @@ Description = A 100% pure juice made of Berries. It restores the HP of one Poké [RAGECANDYBAR] Name = Rage Candy Bar NamePlural = Rage Candy Bars -Pocket = 2 +Pocket = Medicine Price = 400 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2087,7 +884,7 @@ Description = A famous Mahogany Town candy that tourists like to buy. It restore [SWEETHEART] Name = Sweet Heart NamePlural = Sweet Hearts -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2099,7 +896,7 @@ Name = Fresh Water NamePlural = Fresh Waters PortionName = bottle of Fresh Water PortionNamePlural = bottles of Fresh Water -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2111,7 +908,7 @@ Name = Soda Pop NamePlural = Soda Pops PortionName = bottle of Soda Pop PortionNamePlural = bottles of Soda Pop -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2123,7 +920,7 @@ Name = Lemonade NamePlural = Lemonades PortionName = can of Lemonade PortionNamePlural = cans of Lemonade -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2135,7 +932,7 @@ Name = Moomoo Milk NamePlural = Moomoo Milks PortionName = bottle of Moomoo Milk PortionNamePlural = bottles of Moomoo Milk -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2147,7 +944,7 @@ Name = Energy Powder NamePlural = Energy Powders PortionName = dose of Energy Powder PortionNamePlural = doses of Energy Powder -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2157,7 +954,7 @@ Description = A very bitter medicine powder. It restores the HP of one Pokémon [ENERGYROOT] Name = Energy Root NamePlural = Energy Roots -Pocket = 2 +Pocket = Medicine Price = 800 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2169,7 +966,7 @@ Name = Heal Powder NamePlural = Heal Powders PortionName = dose of Heal Powder PortionNamePlural = doses of Heal Powder -Pocket = 2 +Pocket = Medicine Price = 450 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2179,7 +976,7 @@ Description = A very bitter medicine powder. It heals all the status problems of [REVIVALHERB] Name = Revival Herb NamePlural = Revival Herbs -Pocket = 2 +Pocket = Medicine Price = 2800 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2189,7 +986,7 @@ Description = A very bitter medicinal herb. It revives a fainted Pokémon, fully [ETHER] Name = Ether NamePlural = Ethers -Pocket = 2 +Pocket = Medicine Price = 1200 BPPrice = 4 FieldUse = OnPokemon @@ -2200,7 +997,7 @@ Description = It restores the PP of a Pokémon's selected move by a maximum of 1 [MAXETHER] Name = Max Ether NamePlural = Max Ethers -Pocket = 2 +Pocket = Medicine Price = 2000 FieldUse = OnPokemon BattleUse = OnMove @@ -2210,7 +1007,7 @@ Description = It fully restores the PP of a single selected move that has been l [ELIXIR] Name = Elixir NamePlural = Elixirs -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2220,7 +1017,7 @@ Description = It restores the PP of all the moves learned by the targeted Pokém [MAXELIXIR] Name = Max Elixir NamePlural = Max Elixirs -Pocket = 2 +Pocket = Medicine Price = 4500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2232,7 +1029,7 @@ Name = PP Up NamePlural = PP Ups PortionName = bottle of PP Up PortionNamePlural = bottles of PP Up -Pocket = 2 +Pocket = Medicine Price = 9800 BPPrice = 16 FieldUse = OnPokemon @@ -2244,7 +1041,7 @@ Name = PP Max NamePlural = PP Maxes PortionName = bottle of PP Max PortionNamePlural = bottles of PP Max -Pocket = 2 +Pocket = Medicine Price = 9800 FieldUse = OnPokemon Flags = Fling_30 @@ -2255,7 +1052,7 @@ Name = HP Up NamePlural = HP Ups PortionName = bottle of HP Up PortionNamePlural = bottles of HP Up -Pocket = 2 +Pocket = Medicine Price = 9800 FieldUse = OnPokemon Flags = Fling_30 @@ -2266,7 +1063,7 @@ Name = Protein NamePlural = Proteins PortionName = bottle of Protein PortionNamePlural = bottles of Protein -Pocket = 2 +Pocket = Medicine Price = 9800 FieldUse = OnPokemon Flags = Fling_30 @@ -2277,7 +1074,7 @@ Name = Iron NamePlural = Irons PortionName = bottle of Iron PortionNamePlural = bottles of Iron -Pocket = 2 +Pocket = Medicine Price = 9800 FieldUse = OnPokemon Flags = Fling_30 @@ -2288,7 +1085,7 @@ Name = Calcium NamePlural = Calciums PortionName = bottle of Calcium PortionNamePlural = bottles of Calcium -Pocket = 2 +Pocket = Medicine Price = 9800 FieldUse = OnPokemon Flags = Fling_30 @@ -2299,7 +1096,7 @@ Name = Zinc NamePlural = Zincs PortionName = bottle of Zinc PortionNamePlural = bottles of Zinc -Pocket = 2 +Pocket = Medicine Price = 9800 FieldUse = OnPokemon Flags = Fling_30 @@ -2310,7 +1107,7 @@ Name = Carbos NamePlural = Carbos PortionName = bottle of Carbos PortionNamePlural = bottles of Carbos -Pocket = 2 +Pocket = Medicine Price = 9800 FieldUse = OnPokemon Flags = Fling_30 @@ -2319,7 +1116,7 @@ Description = A nutritious drink for Pokémon. It raises the base Speed stat of [HEALTHWING] Name = Health Wing NamePlural = Health Wings -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon Flags = Fling_20 @@ -2328,7 +1125,7 @@ Description = An item for use on a Pokémon. It slightly increases the base HP o [MUSCLEWING] Name = Muscle Wing NamePlural = Muscle Wings -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon Flags = Fling_20 @@ -2337,7 +1134,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Atta [RESISTWING] Name = Resist Wing NamePlural = Resist Wings -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon Flags = Fling_20 @@ -2346,7 +1143,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Defe [GENIUSWING] Name = Genius Wing NamePlural = Genius Wings -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon Flags = Fling_20 @@ -2355,7 +1152,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [CLEVERWING] Name = Clever Wing NamePlural = Clever Wings -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon Flags = Fling_20 @@ -2364,7 +1161,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [SWIFTWING] Name = Swift Wing NamePlural = Swift Wings -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon Flags = Fling_20 @@ -2373,7 +1170,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Spee [RARECANDY] Name = Rare Candy NamePlural = Rare Candies -Pocket = 2 +Pocket = Medicine Price = 4800 BPPrice = 24 FieldUse = OnPokemon @@ -2383,7 +1180,7 @@ Description = A candy that is packed with energy. It raises the level of a singl [MASTERBALL] Name = Master Ball NamePlural = Master Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -2392,7 +1189,7 @@ Description = The best Ball with the ultimate level of performance. It will catc [ULTRABALL] Name = Ultra Ball NamePlural = Ultra Balls -Pocket = 3 +Pocket = PokeBalls Price = 1200 BattleUse = OnFoe Flags = PokeBall @@ -2401,7 +1198,7 @@ Description = An ultra-performance Ball that provides a higher Pokémon catch ra [GREATBALL] Name = Great Ball NamePlural = Great Balls -Pocket = 3 +Pocket = PokeBalls Price = 600 BattleUse = OnFoe Flags = PokeBall @@ -2410,7 +1207,7 @@ Description = A good, high-performance Ball that provides a higher Pokémon catc [POKEBALL] Name = Poké Ball NamePlural = Poké Balls -Pocket = 3 +Pocket = PokeBalls Price = 200 BattleUse = OnFoe Flags = PokeBall @@ -2419,7 +1216,7 @@ Description = A device for catching wild Pokémon. It is thrown like a ball at t [SAFARIBALL] Name = Safari Ball NamePlural = Safari Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -2428,7 +1225,7 @@ Description = A special Poké Ball that is used only in the Safari Zone. It is d [SPORTBALL] Name = Sport Ball NamePlural = Sport Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -2437,7 +1234,7 @@ Description = A special Poké Ball for the Bug-Catching Contest. [NETBALL] Name = Net Ball NamePlural = Net Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -2446,7 +1243,7 @@ Description = A somewhat different Poké Ball that works especially well on Wate [DIVEBALL] Name = Dive Ball NamePlural = Dive Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -2455,7 +1252,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [NESTBALL] Name = Nest Ball NamePlural = Nest Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -2464,7 +1261,7 @@ Description = A somewhat different Poké Ball that works especially well on weak [REPEATBALL] Name = Repeat Ball NamePlural = Repeat Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -2473,7 +1270,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [TIMERBALL] Name = Timer Ball NamePlural = Timer Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -2482,7 +1279,7 @@ Description = A somewhat different Ball that becomes progressively better the mo [LUXURYBALL] Name = Luxury Ball NamePlural = Luxury Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -2491,7 +1288,7 @@ Description = A comfortable Poké Ball that makes a caught wild Pokémon quickly [PREMIERBALL] Name = Premier Ball NamePlural = Premier Balls -Pocket = 3 +Pocket = PokeBalls Price = 200 BattleUse = OnFoe Flags = PokeBall @@ -2500,7 +1297,7 @@ Description = A somewhat rare Poké Ball that has been specially made to commemo [DUSKBALL] Name = Dusk Ball NamePlural = Dusk Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -2509,7 +1306,7 @@ Description = A somewhat different Poké Ball that makes it easier to catch wild [HEALBALL] Name = Heal Ball NamePlural = Heal Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -2518,7 +1315,7 @@ Description = A remedial Poké Ball that restores the caught Pokémon's HP and e [QUICKBALL] Name = Quick Ball NamePlural = Quick Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -2527,7 +1324,7 @@ Description = A somewhat different Poké Ball that provides a better catch rate [CHERISHBALL] Name = Cherish Ball NamePlural = Cherish Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -2536,7 +1333,7 @@ Description = A quite rare Poké Ball that has been specially crafted to commemo [FASTBALL] Name = Fast Ball NamePlural = Fast Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -2545,7 +1342,7 @@ Description = A Poké Ball that makes it easier to catch fast Pokémon. [LEVELBALL] Name = Level Ball NamePlural = Level Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -2554,7 +1351,7 @@ Description = A Poké Ball for catching Pokémon that are a lower level than you [LUREBALL] Name = Lure Ball NamePlural = Lure Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -2563,7 +1360,7 @@ Description = A Poké Ball for catching Pokémon hooked by a Rod when fishing. [HEAVYBALL] Name = Heavy Ball NamePlural = Heavy Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -2572,7 +1369,7 @@ Description = A Poké Ball for catching very heavy Pokémon. [LOVEBALL] Name = Love Ball NamePlural = Love Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -2581,7 +1378,7 @@ Description = A Poké Ball for catching Pokémon that are the opposite gender of [FRIENDBALL] Name = Friend Ball NamePlural = Friend Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -2590,1020 +1387,16 @@ Description = A Poké Ball that makes caught Pokémon more friendly. [MOONBALL] Name = Moon Ball NamePlural = Moon Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall Description = A Poké Ball for catching Pokémon that evolve using the Moon Stone. #------------------------------- -[TM01] -Name = TM01 -NamePlural = TM01s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = HONECLAWS -Description = The user sharpens its claws to boost its Attack stat and accuracy. -#------------------------------- -[TM02] -Name = TM02 -NamePlural = TM02s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = DRAGONCLAW -Description = The user slashes the target with huge, sharp claws. -#------------------------------- -[TM03] -Name = TM03 -NamePlural = TM03s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = PSYSHOCK -Description = The user materializes an odd psychic wave to attack the target. This attack does physical damage. -#------------------------------- -[TM04] -Name = TM04 -NamePlural = TM04s -Pocket = 4 -Price = 1500 -BPPrice = 6 -FieldUse = TM -Move = CALMMIND -Description = The user quietly focuses its mind and calms its spirit to raise its Sp. Atk and Sp. Def stats. -#------------------------------- -[TM05] -Name = TM05 -NamePlural = TM05s -Pocket = 4 -Price = 1000 -BPPrice = 6 -FieldUse = TM -Move = ROAR -Description = The target is scared off and replaced by another Pokémon in its party. In the wild, the battle ends. -#------------------------------- -[TM06] -Name = TM06 -NamePlural = TM06s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = TOXIC -Description = A move that leaves the target badly poisoned. Its poison damage worsens every turn. -#------------------------------- -[TM07] -Name = TM07 -NamePlural = TM07s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = HAIL -Description = Summons a hailstorm that lasts for five turns. The hailstorm damages all types except Ice. -#------------------------------- -[TM08] -Name = TM08 -NamePlural = TM08s -Pocket = 4 -Price = 1500 -BPPrice = 6 -FieldUse = TM -Move = BULKUP -Description = The user tenses its muscles to bulk up its body, boosting both its Attack and Defense stats. -#------------------------------- -[TM09] -Name = TM09 -NamePlural = TM09s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = VENOSHOCK -Description = The user drenches the target in a special poisonous liquid. Its power is doubled if the target is poisoned. -#------------------------------- -[TM10] -Name = TM10 -NamePlural = TM10s -Pocket = 4 -Price = 2000 -BPPrice = 18 -FieldUse = TM -Move = HIDDENPOWER -Description = A unique attack that varies in type and intensity depending on the Pokémon using it. -#------------------------------- -[TM11] -Name = TM11 -NamePlural = TM11s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = SUNNYDAY -Description = The user intensifies the sun for five turns, powering up Fire-type moves. -#------------------------------- -[TM12] -Name = TM12 -NamePlural = TM12s -Pocket = 4 -Price = 1500 -BPPrice = 6 -FieldUse = TM -Move = TAUNT -Description = The target is taunted into a rage that allows it to use only attack moves for three turns. -#------------------------------- -[TM13] -Name = TM13 -NamePlural = TM13s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = ICEBEAM -Description = The target is struck with an icy-cold beam of energy. It may also freeze the target solid. -#------------------------------- -[TM14] -Name = TM14 -NamePlural = TM14s -Pocket = 4 -Price = 5500 -BPPrice = 6 -FieldUse = TM -Move = BLIZZARD -Description = A howling blizzard is summoned to strike the opposing team. It may also freeze them solid. -#------------------------------- -[TM15] -Name = TM15 -NamePlural = TM15s -Pocket = 4 -Price = 7500 -BPPrice = 6 -FieldUse = TM -Move = HYPERBEAM -Description = The target is attacked with a powerful beam. The user must rest on the next turn to regain its energy. -#------------------------------- -[TM16] -Name = TM16 -NamePlural = TM16s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = LIGHTSCREEN -Description = A wondrous wall of light is put up to suppress damage from special attacks for five turns. -#------------------------------- -[TM17] -Name = TM17 -NamePlural = TM17s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = PROTECT -Description = It enables the user to evade all attacks. Its chance of failing rises if it is used in succession. -#------------------------------- -[TM18] -Name = TM18 -NamePlural = TM18s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = RAINDANCE -Description = The user summons a heavy rain that falls for five turns, powering up Water-type moves. -#------------------------------- -[TM19] -Name = TM19 -NamePlural = TM19s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = TELEKINESIS -Description = The user makes the target float with its psychic power. The target is easier to hit for three turns. -#------------------------------- -[TM20] -Name = TM20 -NamePlural = TM20s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = SAFEGUARD -Description = The user creates a protective field that prevents status problems for five turns. -#------------------------------- -[TM21] -Name = TM21 -NamePlural = TM21s -Pocket = 4 -Price = 1000 -BPPrice = 6 -FieldUse = TM -Move = FRUSTRATION -Description = A full-power attack that grows more powerful the less the user likes its Trainer. -#------------------------------- -[TM22] -Name = TM22 -NamePlural = TM22s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = SOLARBEAM -Description = A two-turn attack. The user gathers light, then blasts a bundled beam on the second turn. -#------------------------------- -[TM23] -Name = TM23 -NamePlural = TM23s -Pocket = 4 -Price = 3000 -BPPrice = 18 -FieldUse = TM -Move = SMACKDOWN -Description = The user throws a stone or similar projectile to attack a foe. A flying Pokémon will fall to the ground if hit. -#------------------------------- -[TM24] -Name = TM24 -NamePlural = TM24s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = THUNDERBOLT -Description = A strong electric blast is loosed at the target. It may also leave the target with paralysis. -#------------------------------- -[TM25] -Name = TM25 -NamePlural = TM25s -Pocket = 4 -Price = 5500 -BPPrice = 6 -FieldUse = TM -Move = THUNDER -Description = A wicked thunderbolt is dropped on the target to inflict damage. It may also leave the target with paralysis. -#------------------------------- -[TM26] -Name = TM26 -NamePlural = TM26s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = EARTHQUAKE -Description = The user sets off an earthquake that strikes every Pokémon around it. -#------------------------------- -[TM27] -Name = TM27 -NamePlural = TM27s -Pocket = 4 -Price = 1000 -BPPrice = 6 -FieldUse = TM -Move = RETURN -Description = A full-power attack that grows more powerful the more the user likes its Trainer. -#------------------------------- -[TM28] -Name = TM28 -NamePlural = TM28s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = DIG -Description = The user burrows, then attacks on the second turn. It can also be used to exit dungeons. -#------------------------------- -[TM29] -Name = TM29 -NamePlural = TM29s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = PSYCHIC -Description = The target is hit by a strong telekinetic force. It may also reduce the target's Sp. Def stat. -#------------------------------- -[TM30] -Name = TM30 -NamePlural = TM30s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = SHADOWBALL -Description = The user hurls a shadowy blob at the target. It may also lower the target's Sp. Def stat. -#------------------------------- -[TM31] -Name = TM31 -NamePlural = TM31s -Pocket = 4 -Price = 3000 -BPPrice = 12 -FieldUse = TM -Move = BRICKBREAK -Description = The user attacks with tough fists, etc. It can also break any barrier such as Light Screen and Reflect. -#------------------------------- -[TM32] -Name = TM32 -NamePlural = TM32s -Pocket = 4 -Price = 1000 -BPPrice = 6 -FieldUse = TM -Move = DOUBLETEAM -Description = By moving rapidly, the user makes illusory copies of itself to raise its evasiveness. -#------------------------------- -[TM33] -Name = TM33 -NamePlural = TM33s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = REFLECT -Description = A wondrous wall of light is put up to suppress damage from physical attacks for five turns. -#------------------------------- -[TM34] -Name = TM34 -NamePlural = TM34s -Pocket = 4 -Price = 3000 -BPPrice = 24 -FieldUse = TM -Move = SLUDGEWAVE -Description = It swamps the area around the user with a giant sludge wave. It may also poison those hit. -#------------------------------- -[TM35] -Name = TM35 -NamePlural = TM35s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = FLAMETHROWER -Description = The target is scorched with an intense blast of fire. It may also leave the target with a burn. -#------------------------------- -[TM36] -Name = TM36 -NamePlural = TM36s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = SLUDGEBOMB -Description = Unsanitary sludge is hurled at the target. It may also poison the target. -#------------------------------- -[TM37] -Name = TM37 -NamePlural = TM37s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = SANDSTORM -Description = A five-turn sandstorm is summoned to hurt all combatants except the Rock, Ground, and Steel types. -#------------------------------- -[TM38] -Name = TM38 -NamePlural = TM38s -Pocket = 4 -Price = 5500 -BPPrice = 6 -FieldUse = TM -Move = FIREBLAST -Description = The foe is attacked with an intense blast of all-consuming fire. It may also leave the target with a burn. -#------------------------------- -[TM39] -Name = TM39 -NamePlural = TM39s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = ROCKTOMB -Description = Boulders are hurled at the target. It also lowers the target's Speed by preventing its movement. -#------------------------------- -[TM40] -Name = TM40 -NamePlural = TM40s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = AERIALACE -Description = The user confounds the target with speed, then slashes. The attack lands without fail. -#------------------------------- -[TM41] -Name = TM41 -NamePlural = TM41s -Pocket = 4 -Price = 1500 -BPPrice = 6 -FieldUse = TM -Move = TORMENT -Description = The user torments and enrages the target, making it incapable of using the same move twice in a row. -#------------------------------- -[TM42] -Name = TM42 -NamePlural = TM42s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = FACADE -Description = An attack move that doubles its power if the user is poisoned, paralyzed, or has a burn. -#------------------------------- -[TM43] -Name = TM43 -NamePlural = TM43s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = FLAMECHARGE -Description = The user cloaks itself with flame and attacks. Building up more power, it raises the user's Speed stat. -#------------------------------- -[TM44] -Name = TM44 -NamePlural = TM44s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = REST -Description = The user goes to sleep for two turns. It fully restores the user's HP and heals any status problem. -#------------------------------- -[TM45] -Name = TM45 -NamePlural = TM45s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = ATTRACT -Description = If it is the opposite gender of the user, the target becomes infatuated and less likely to attack. -#------------------------------- -[TM46] -Name = TM46 -NamePlural = TM46s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = THIEF -Description = The user attacks and steals the target's held item simultaneously. It can't steal if the user holds an item. -#------------------------------- -[TM47] -Name = TM47 -NamePlural = TM47s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = LOWSWEEP -Description = The user attacks the target's legs swiftly, reducing the target's Speed stat. -#------------------------------- -[TM48] -Name = TM48 -NamePlural = TM48s -Pocket = 4 -Price = 3000 -BPPrice = 18 -FieldUse = TM -Move = ROUND -Description = The user attacks the target with a song. Others can join in the Round to increase the power of the attack. -#------------------------------- -[TM49] -Name = TM49 -NamePlural = TM49s -Pocket = 4 -Price = 1500 -BPPrice = 6 -FieldUse = TM -Move = ECHOEDVOICE -Description = The user attacks the target with an echoing voice. If this move is used every turn, it does greater damage. -#------------------------------- -[TM50] -Name = TM50 -NamePlural = TM50s -Pocket = 4 -Price = 5500 -BPPrice = 6 -FieldUse = TM -Move = OVERHEAT -Description = The user attacks the target at full power. The attack's recoil sharply reduces the user's Sp. Atk stat. -#------------------------------- -[TM51] -Name = TM51 -NamePlural = TM51s -Pocket = 4 -Price = 1000 -BPPrice = 24 -FieldUse = TM -Move = ALLYSWITCH -Description = The user teleports using a strange power and switches its place with one of its allies. -#------------------------------- -[TM52] -Name = TM52 -NamePlural = TM52s -Pocket = 4 -Price = 5500 -BPPrice = 6 -FieldUse = TM -Move = FOCUSBLAST -Description = The user heightens its mental focus and unleashes its power. It may also lower the target's Sp. Def. -#------------------------------- -[TM53] -Name = TM53 -NamePlural = TM53s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = ENERGYBALL -Description = The user draws power from nature and fires it at the target. It may also lower the target's Sp. Def. -#------------------------------- -[TM54] -Name = TM54 -NamePlural = TM54s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = FALSESWIPE -Description = A restrained attack that prevents the target from fainting. The target is left with at least 1 HP. -#------------------------------- -[TM55] -Name = TM55 -NamePlural = TM55s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = SCALD -Description = The user shoots boiling hot water at its target. It may also leave the target with a burn. -#------------------------------- -[TM56] -Name = TM56 -NamePlural = TM56s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = FLING -Description = The user flings its held item at the target as an attack. Its power and effects depend on the item. -#------------------------------- -[TM57] -Name = TM57 -NamePlural = TM57s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = CHARGEBEAM -Description = The user fires a concentrated bundle of electricity. It may also raise the user's Sp. Atk stat. -#------------------------------- -[TM58] -Name = TM58 -NamePlural = TM58s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = SKYDROP -Description = The user hurls the foe into the sky, then drops it on the next turn. The foe cannot attack while in the sky. -#------------------------------- -[TM59] -Name = TM59 -NamePlural = TM59s -Pocket = 4 -Price = 1500 -BPPrice = 6 -FieldUse = TM -Move = INCINERATE -Description = The user attacks the target with fire. If the target is holding a Berry, it becomes burnt up and unusable. -#------------------------------- -[TM60] -Name = TM60 -NamePlural = TM60s -Pocket = 4 -Price = 3000 -BPPrice = 24 -FieldUse = TM -Move = QUASH -Description = The user suppresses the target and makes its move go last. -#------------------------------- -[TM61] -Name = TM61 -NamePlural = TM61s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = WILLOWISP -Description = The user shoots a sinister, bluish-white flame at the target to inflict a burn. -#------------------------------- -[TM62] -Name = TM62 -NamePlural = TM62s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = ACROBATICS -Description = The user nimbly strikes the target. If the user is not holding an item, this attack inflicts massive damage. -#------------------------------- -[TM63] -Name = TM63 -NamePlural = TM63s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = EMBARGO -Description = It prevents the target from using its held item. Its Trainer is also prevented from using items on it. -#------------------------------- -[TM64] -Name = TM64 -NamePlural = TM64s -Pocket = 4 -Price = 7500 -BPPrice = 24 -FieldUse = TM -Move = EXPLOSION -Description = The user explodes to inflict damage on those around it. The user faints upon using this move. -#------------------------------- -[TM65] -Name = TM65 -NamePlural = TM65s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = SHADOWCLAW -Description = The user slashes with a sharp claw made from shadows. It has a high critical-hit ratio. -#------------------------------- -[TM66] -Name = TM66 -NamePlural = TM66s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = PAYBACK -Description = The user stores power, then attacks. If the user can use this attack after the foe, its power is doubled. -#------------------------------- -[TM67] -Name = TM67 -NamePlural = TM67s -Pocket = 4 -Price = 1000 -BPPrice = 6 -FieldUse = TM -Move = RETALIATE -Description = The user gets revenge for a fainted ally. If an ally fainted in the last turn, this move's power is increased. -#------------------------------- -[TM68] -Name = TM68 -NamePlural = TM68s -Pocket = 4 -Price = 7500 -BPPrice = 6 -FieldUse = TM -Move = GIGAIMPACT -Description = The user charges at the target using every bit of its power. The user must rest on the next turn. -#------------------------------- -[TM69] -Name = TM69 -NamePlural = TM69s -Pocket = 4 -Price = 1500 -BPPrice = 6 -FieldUse = TM -Move = ROCKPOLISH -Description = The user polishes its body to reduce drag. It sharply raises the Speed stat. -#------------------------------- -[TM70] -Name = TM70 -NamePlural = TM70s -Pocket = 4 -Price = 1000 -BPPrice = 6 -FieldUse = TM -Move = FLASH -Description = The user flashes a bright light that cuts the target's accuracy. It can also be used to illuminate caves. -#------------------------------- -[TM71] -Name = TM71 -NamePlural = TM71s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = STONEEDGE -Description = The user stabs the foe with sharpened stones from below. It has a high critical-hit ratio. -#------------------------------- -[TM72] -Name = TM72 -NamePlural = TM72s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = VOLTSWITCH -Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. -#------------------------------- -[TM73] -Name = TM73 -NamePlural = TM73s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = THUNDERWAVE -Description = A weak electric charge is launched at the target. It causes paralysis if it hits. -#------------------------------- -[TM74] -Name = TM74 -NamePlural = TM74s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = GYROBALL -Description = The user tackles the target with a high-speed spin. The slower the user, the greater the damage. -#------------------------------- -[TM75] -Name = TM75 -NamePlural = TM75s -Pocket = 4 -Price = 1500 -BPPrice = 18 -FieldUse = TM -Move = SWORDSDANCE -Description = A frenetic dance to uplift the fighting spirit. It sharply raises the user's Attack stat. -#------------------------------- -[TM76] -Name = TM76 -NamePlural = TM76s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = STRUGGLEBUG -Description = Resisting, the user attacks the opposing Pokémon. The targets' Sp. Atk stat is reduced. -#------------------------------- -[TM77] -Name = TM77 -NamePlural = TM77s -Pocket = 4 -Price = 1500 -BPPrice = 24 -FieldUse = TM -Move = PSYCHUP -Description = The user hypnotizes itself into copying any stat change made by the target. -#------------------------------- -[TM78] -Name = TM78 -NamePlural = TM78s -Pocket = 4 -Price = 1500 -BPPrice = 6 -FieldUse = TM -Move = BULLDOZE -Description = The user stomps down on the ground and attacks everything in the area. The targets' Speed stat is reduced. -#------------------------------- -[TM79] -Name = TM79 -NamePlural = TM79s -Pocket = 4 -Price = 3000 -BPPrice = 12 -FieldUse = TM -Move = FROSTBREATH -Description = The user blows a cold breath on the target. This attack always results in a critical hit. -#------------------------------- -[TM80] -Name = TM80 -NamePlural = TM80s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = ROCKSLIDE -Description = Large boulders are hurled at the opposing team to inflict damage. They may also make the targets flinch. -#------------------------------- -[TM81] -Name = TM81 -NamePlural = TM81s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = XSCISSOR -Description = The user slashes at the target by crossing its scythes or claws as if they were a pair of scissors. -#------------------------------- -[TM82] -Name = TM82 -NamePlural = TM82s -Pocket = 4 -Price = 1000 -BPPrice = 6 -FieldUse = TM -Move = DRAGONTAIL -Description = The user knocks away the target and drags out another Pokémon in its party. In the wild, the battle ends. -#------------------------------- -[TM83] -Name = TM83 -NamePlural = TM83s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = WORKUP -Description = The user is roused, and its Attack and Sp. Atk stats increase. -#------------------------------- -[TM84] -Name = TM84 -NamePlural = TM84s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = POISONJAB -Description = The target is stabbed with a tentacle or arm steeped in poison. It may also poison the target. -#------------------------------- -[TM85] -Name = TM85 -NamePlural = TM85s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = DREAMEATER -Description = The user eats the dreams of a sleeping target. It absorbs half the damage caused to heal the user's HP. -#------------------------------- -[TM86] -Name = TM86 -NamePlural = TM86s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = GRASSKNOT -Description = The user snares the target with grass and trips it. The heavier the target, the greater the damage. -#------------------------------- -[TM87] -Name = TM87 -NamePlural = TM87s -Pocket = 4 -Price = 1500 -BPPrice = 18 -FieldUse = TM -Move = SWAGGER -Description = The user enrages and confuses the target. However, it also sharply raises the target's Attack stat. -#------------------------------- -[TM88] -Name = TM88 -NamePlural = TM88s -Pocket = 4 -Price = 3000 -BPPrice = 18 -FieldUse = TM -Move = PLUCK -Description = The user pecks the target. If the target is holding a Berry, the user plucks it and gains its effect. -#------------------------------- -[TM89] -Name = TM89 -NamePlural = TM89s -Pocket = 4 -Price = 3000 -BPPrice = 12 -FieldUse = TM -Move = UTURN -Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. -#------------------------------- -[TM90] -Name = TM90 -NamePlural = TM90s -Pocket = 4 -Price = 2000 -BPPrice = 6 -FieldUse = TM -Move = SUBSTITUTE -Description = The user makes a copy of itself using some of its HP. The copy serves as the user's decoy. -#------------------------------- -[TM91] -Name = TM91 -NamePlural = TM91s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = FLASHCANNON -Description = The user gathers all its light energy and releases it at once. It may also lower the target's Sp. Def stat. -#------------------------------- -[TM92] -Name = TM92 -NamePlural = TM92s -Pocket = 4 -Price = 5500 -BPPrice = 6 -FieldUse = TM -Move = TRICKROOM -Description = The user creates a bizarre space in which slower Pokémon get to move first for five turns. -#------------------------------- -[TM93] -Name = TM93 -NamePlural = TM93s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = WILDCHARGE -Description = The user shrouds itself in electricity and smashes into its target. It also damages the user a little. -#------------------------------- -[TM94] -Name = TM94 -NamePlural = TM94s -Pocket = 4 -Price = 1000 -BPPrice = 6 -FieldUse = TM -Move = ROCKSMASH -Description = The user attacks with a punch that can shatter a rock. It may also lower the target's Defense stat. -#------------------------------- -[TM95] -Name = TM95 -NamePlural = TM95s -Pocket = 4 -Price = 3000 -BPPrice = 6 -FieldUse = TM -Move = SNARL -Description = The user yells as if it is ranting about something, making the target's Sp. Atk stat decrease. -#------------------------------- -[HM01] -Name = HM01 -NamePlural = HM01s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = CUT -Description = The target is cut with a scythe or claw. It can also be used to cut down thin trees. -#------------------------------- -[HM02] -Name = HM02 -NamePlural = HM02s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = FLY -Description = The user soars, then strikes on the second turn. It can also be used to fly to any familiar town. -#------------------------------- -[HM03] -Name = HM03 -NamePlural = HM03s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = SURF -Description = It swamps the area around the user with a giant wave. It can also be used for crossing water. -#------------------------------- -[HM04] -Name = HM04 -NamePlural = HM04s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = STRENGTH -Description = The target is slugged with a punch thrown at maximum power. This move can also be used to move boulders. -#------------------------------- -[HM05] -Name = HM05 -NamePlural = HM05s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = WATERFALL -Description = The user charges the target at an awesome speed. It can also be used to climb a waterfall. -#------------------------------- -[HM06] -Name = HM06 -NamePlural = HM06s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = DIVE -Description = The user dives on the first turn, and floats up and attacks on the second. It can be used to dive in the ocean. -#------------------------------- [CHERIBERRY] Name = Cheri Berry NamePlural = Cheri Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3613,7 +1406,7 @@ Description = It may be used or held by a Pokémon to recover from paralysis. [CHESTOBERRY] Name = Chesto Berry NamePlural = Chesto Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3623,7 +1416,7 @@ Description = It may be used or held by a Pokémon to recover from sleep. [PECHABERRY] Name = Pecha Berry NamePlural = Pecha Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3633,7 +1426,7 @@ Description = It may be used or held by a Pokémon to recover from poison. [RAWSTBERRY] Name = Rawst Berry NamePlural = Rawst Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3643,7 +1436,7 @@ Description = It may be used or held by a Pokémon to recover from a burn. [ASPEARBERRY] Name = Aspear Berry NamePlural = Aspear Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3653,7 +1446,7 @@ Description = It may be used or held by a Pokémon to defrost it. [LEPPABERRY] Name = Leppa Berry NamePlural = Leppa Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnMove @@ -3663,7 +1456,7 @@ Description = It may be used or held by a Pokémon to restore a move's PP by 10. [ORANBERRY] Name = Oran Berry NamePlural = Oran Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3673,7 +1466,7 @@ Description = It may be used or held by a Pokémon to heal the user by just 10 H [PERSIMBERRY] Name = Persim Berry NamePlural = Persim Berries -Pocket = 5 +Pocket = Berries Price = 20 BattleUse = OnBattler Flags = Berry,Fling_10,NaturalGift_GROUND_60 @@ -3682,7 +1475,7 @@ Description = It may be used or held by a Pokémon to recover from confusion. [LUMBERRY] Name = Lum Berry NamePlural = Lum Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3692,7 +1485,7 @@ Description = It may be used or held by a Pokémon to recover from any status pr [SITRUSBERRY] Name = Sitrus Berry NamePlural = Sitrus Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3702,7 +1495,7 @@ Description = It may be used or held by a Pokémon to heal the user's HP a littl [FIGYBERRY] Name = Figy Berry NamePlural = Figy Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_60 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -3710,7 +1503,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [WIKIBERRY] Name = Wiki Berry NamePlural = Wiki Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_60 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -3718,7 +1511,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [MAGOBERRY] Name = Mago Berry NamePlural = Mago Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_60 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -3726,7 +1519,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [AGUAVBERRY] Name = Aguav Berry NamePlural = Aguav Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_60 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -3734,7 +1527,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [IAPAPABERRY] Name = Iapapa Berry NamePlural = Iapapa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_60 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -3742,7 +1535,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [RAZZBERRY] Name = Razz Berry NamePlural = Razz Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_60 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3750,7 +1543,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [BLUKBERRY] Name = Bluk Berry NamePlural = Bluk Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_70 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3758,7 +1551,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [NANABBERRY] Name = Nanab Berry NamePlural = Nanab Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_70 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3766,7 +1559,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [WEPEARBERRY] Name = Wepear Berry NamePlural = Wepear Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_70 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3774,7 +1567,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [PINAPBERRY] Name = Pinap Berry NamePlural = Pinap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_70 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3782,7 +1575,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [POMEGBERRY] Name = Pomeg Berry NamePlural = Pomeg Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_ICE_70 @@ -3791,7 +1584,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [KELPSYBERRY] Name = Kelpsy Berry NamePlural = Kelpsy Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_FIGHTING_70 @@ -3800,7 +1593,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [QUALOTBERRY] Name = Qualot Berry NamePlural = Qualot Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_POISON_70 @@ -3809,7 +1602,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [HONDEWBERRY] Name = Hondew Berry NamePlural = Hondew Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_GROUND_70 @@ -3818,7 +1611,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [GREPABERRY] Name = Grepa Berry NamePlural = Grepa Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_FLYING_70 @@ -3827,7 +1620,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [TAMATOBERRY] Name = Tamato Berry NamePlural = Tamato Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_PSYCHIC_70 @@ -3836,7 +1629,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [CORNNBERRY] Name = Cornn Berry NamePlural = Cornn Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_70 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3844,7 +1637,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [MAGOSTBERRY] Name = Magost Berry NamePlural = Magost Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_70 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3852,7 +1645,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [RABUTABERRY] Name = Rabuta Berry NamePlural = Rabuta Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_70 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3860,7 +1653,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [NOMELBERRY] Name = Nomel Berry NamePlural = Nomel Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_70 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3868,7 +1661,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [SPELONBERRY] Name = Spelon Berry NamePlural = Spelon Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_70 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3876,7 +1669,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [PAMTREBERRY] Name = Pamtre Berry NamePlural = Pamtre Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_70 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3884,7 +1677,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [WATMELBERRY] Name = Watmel Berry NamePlural = Watmel Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_80 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3892,7 +1685,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [DURINBERRY] Name = Durin Berry NamePlural = Durin Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_80 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3900,7 +1693,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [BELUEBERRY] Name = Belue Berry NamePlural = Belue Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_80 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -3908,143 +1701,143 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [OCCABERRY] Name = Occa Berry NamePlural = Occa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_60 -Description = Weakens a supereffective Fire-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fire-type attack. #------------------------------- [PASSHOBERRY] Name = Passho Berry NamePlural = Passho Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_60 -Description = Weakens a supereffective Water-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Water-type attack. #------------------------------- [WACANBERRY] Name = Wacan Berry NamePlural = Wacan Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_60 -Description = Weakens a supereffective Electric-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Electric attack. #------------------------------- [RINDOBERRY] Name = Rindo Berry NamePlural = Rindo Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_60 -Description = Weakens a supereffective Grass-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Grass-type attack. #------------------------------- [YACHEBERRY] Name = Yache Berry NamePlural = Yache Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ICE_60 -Description = Weakens a supereffective Ice-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ice-type attack. #------------------------------- [CHOPLEBERRY] Name = Chople Berry NamePlural = Chople Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIGHTING_60 -Description = Weakens a supereffective Fighting-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fighting attack. #------------------------------- [KEBIABERRY] Name = Kebia Berry NamePlural = Kebia Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_POISON_60 -Description = Weakens a supereffective Poison-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Poison-type attack. #------------------------------- [SHUCABERRY] Name = Shuca Berry NamePlural = Shuca Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GROUND_60 -Description = Weakens a supereffective Ground-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ground-type attack. #------------------------------- [COBABERRY] Name = Coba Berry NamePlural = Coba Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FLYING_60 -Description = Weakens a supereffective Flying-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Flying-type attack. #------------------------------- [PAYAPABERRY] Name = Payapa Berry NamePlural = Payapa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_PSYCHIC_60 -Description = Weakens a supereffective Psychic-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Psychic attack. #------------------------------- [TANGABERRY] Name = Tanga Berry NamePlural = Tanga Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_60 -Description = Weakens a supereffective Bug-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Bug-type attack. #------------------------------- [CHARTIBERRY] Name = Charti Berry NamePlural = Charti Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_60 -Description = Weakens a supereffective Rock-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Rock-type attack. #------------------------------- [KASIBBERRY] Name = Kasib Berry NamePlural = Kasib Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_60 -Description = Weakens a supereffective Ghost-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ghost-type attack. #------------------------------- [HABANBERRY] Name = Haban Berry NamePlural = Haban Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_60 -Description = Weakens a supereffective Dragon-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dragon-type attack. #------------------------------- [COLBURBERRY] Name = Colbur Berry NamePlural = Colbur Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_60 -Description = Weakens a supereffective Dark-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dark-type attack. #------------------------------- [BABIRIBERRY] Name = Babiri Berry NamePlural = Babiri Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_60 -Description = Weakens a supereffective Steel-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Steel-type attack. #------------------------------- [CHILANBERRY] Name = Chilan Berry NamePlural = Chilan Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_NORMAL_60 -Description = Weakens a Normal-type attack against the Pokémon holding this berry. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one Normal-type attack. #------------------------------- [LIECHIBERRY] Name = Liechi Berry NamePlural = Liechi Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_80 Description = If held by a Pokémon, it raises its Attack stat in a pinch. @@ -4052,7 +1845,7 @@ Description = If held by a Pokémon, it raises its Attack stat in a pinch. [GANLONBERRY] Name = Ganlon Berry NamePlural = Ganlon Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ICE_80 Description = If held by a Pokémon, it raises its Defense stat in a pinch. @@ -4060,7 +1853,7 @@ Description = If held by a Pokémon, it raises its Defense stat in a pinch. [SALACBERRY] Name = Salac Berry NamePlural = Salac Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIGHTING_80 Description = If held by a Pokémon, it raises its Speed stat in a pinch. @@ -4068,7 +1861,7 @@ Description = If held by a Pokémon, it raises its Speed stat in a pinch. [PETAYABERRY] Name = Petaya Berry NamePlural = Petaya Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_POISON_80 Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. @@ -4076,7 +1869,7 @@ Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. [APICOTBERRY] Name = Apicot Berry NamePlural = Apicot Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GROUND_80 Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. @@ -4084,7 +1877,7 @@ Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. [LANSATBERRY] Name = Lansat Berry NamePlural = Lansat Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FLYING_80 Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch. @@ -4092,7 +1885,7 @@ Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch [STARFBERRY] Name = Starf Berry NamePlural = Starf Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_PSYCHIC_80 Description = If held by a Pokémon, it sharply raises one of its stats in a pinch. @@ -4100,7 +1893,7 @@ Description = If held by a Pokémon, it sharply raises one of its stats in a pin [ENIGMABERRY] Name = Enigma Berry NamePlural = Enigma Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_80 Description = If held by a Pokémon, it restores its HP if it is hit by any supereffective attack. @@ -4108,7 +1901,7 @@ Description = If held by a Pokémon, it restores its HP if it is hit by any supe [MICLEBERRY] Name = Micle Berry NamePlural = Micle Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_80 Description = If held by a Pokémon, it raises the accuracy of a move just once in a pinch. @@ -4116,7 +1909,7 @@ Description = If held by a Pokémon, it raises the accuracy of a move just once [CUSTAPBERRY] Name = Custap Berry NamePlural = Custap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_80 Description = If held by a Pokémon, it gets to move first just once in a pinch. @@ -4124,7 +1917,7 @@ Description = If held by a Pokémon, it gets to move first just once in a pinch. [JABOCABERRY] Name = Jaboca Berry NamePlural = Jaboca Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_80 Description = If held by a Pokémon and a physical attack lands, the attacker also takes damage. @@ -4132,135 +1925,1298 @@ Description = If held by a Pokémon and a physical attack lands, the attacker al [ROWAPBERRY] Name = Rowap Berry NamePlural = Rowap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_80 Description = If held by a Pokémon and a special attack lands, the attacker also takes damage. #------------------------------- -[GRASSMAIL] -Name = Grass Mail -NamePlural = Grass Mail -PortionName = piece of Grass Mail -PortionNamePlural = pieces of Grass Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. +[AIRBALLOON] +Name = Air Balloon +NamePlural = Air Balloons +Pocket = HeldItems +Price = 200 +BPPrice = 12 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. #------------------------------- -[FLAMEMAIL] -Name = Flame Mail -NamePlural = Flame Mail -PortionName = piece of Flame Mail -PortionNamePlural = pieces of Flame Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. +[BRIGHTPOWDER] +Name = Bright Powder +NamePlural = Bright Powders +PortionName = bag of Bright Powder +PortionNamePlural = bags of Bright Powder +Pocket = HeldItems +Price = 10 +BPPrice = 12 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. #------------------------------- -[BUBBLEMAIL] -Name = Bubble Mail -NamePlural = Bubble Mail -PortionName = piece of Bubble Mail -PortionNamePlural = pieces of Bubble Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. +[EVIOLITE] +Name = Eviolite +NamePlural = Eviolites +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_40 +Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. #------------------------------- -[BLOOMMAIL] -Name = Bloom Mail -NamePlural = Bloom Mail -PortionName = piece of Bloom Mail -PortionNamePlural = pieces of Bloom Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. +[FLOATSTONE] +Name = Float Stone +NamePlural = Float Stones +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_30 +Description = A very light stone. It reduces the weight of a Pokémon when held. #------------------------------- -[TUNNELMAIL] -Name = Tunnel Mail -NamePlural = Tunnel Mail -PortionName = piece of Tunnel Mail -PortionNamePlural = pieces of Tunnel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. +[DESTINYKNOT] +Name = Destiny Knot +NamePlural = Destiny Knots +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_10 +Description = A long, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. #------------------------------- -[STEELMAIL] -Name = Steel Mail -NamePlural = Steel Mail -PortionName = piece of Steel Mail -PortionNamePlural = pieces of Steel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. +[ROCKYHELMET] +Name = Rocky Helmet +NamePlural = Rocky Helmets +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_60 +Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. #------------------------------- -[HEARTMAIL] -Name = Heart Mail -NamePlural = Heart Mail -PortionName = piece of Heart Mail -PortionNamePlural = pieces of Heart Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. +[EJECTBUTTON] +Name = Eject Button +NamePlural = Eject Buttons +Pocket = HeldItems +Price = 200 +BPPrice = 16 +Flags = Fling_30 +Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. #------------------------------- -[SNOWMAIL] -Name = Snow Mail -NamePlural = Snow Mail -PortionName = piece of Snow Mail -PortionNamePlural = pieces of Snow Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. +[REDCARD] +Name = Red Card +NamePlural = Red Cards +Pocket = HeldItems +Price = 200 +BPPrice = 16 +Flags = Fling_10 +Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. #------------------------------- -[SPACEMAIL] -Name = Space Mail -NamePlural = Space Mail -PortionName = piece of Space Mail -PortionNamePlural = pieces of Space Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print depicting the huge expanse of space. Let a Pokémon hold it for delivery. +[SHEDSHELL] +Name = Shed Shell +NamePlural = Shed Shells +Pocket = HeldItems +Price = 100 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. #------------------------------- -[AIRMAIL] -Name = Air Mail -NamePlural = Air Mail -PortionName = piece of Air Mail -PortionNamePlural = pieces of Air Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. +[SMOKEBALL] +Name = Smoke Ball +NamePlural = Smoke Balls +Pocket = HeldItems +Price = 200 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. #------------------------------- -[MOSAICMAIL] -Name = Mosaic Mail -NamePlural = Mosaic Mail -PortionName = piece of Mosaic Mail -PortionNamePlural = pieces of Mosaic Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. +[LUCKYEGG] +Name = Lucky Egg +NamePlural = Lucky Eggs +Pocket = HeldItems +Price = 200 +BPPrice = 77 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. #------------------------------- -[BRICKMAIL] -Name = Brick Mail -NamePlural = Brick Mail -PortionName = piece of Brick Mail -PortionNamePlural = pieces of Brick Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. +[EXPSHARE] +Name = Exp. Share +NamePlural = Exp. Shares +Pocket = HeldItems +Price = 3000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. +#------------------------------- +[AMULETCOIN] +Name = Amulet Coin +NamePlural = Amulet Coins +Pocket = HeldItems +Price = 100 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[SOOTHEBELL] +Name = Soothe Bell +NamePlural = Soothe Bells +Pocket = HeldItems +Price = 100 +BPPrice = 8 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. +#------------------------------- +[CLEANSETAG] +Name = Cleanse Tag +NamePlural = Cleanse Tags +Pocket = HeldItems +Price = 200 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[CHOICEBAND] +Name = Choice Band +NamePlural = Choice Bands +Pocket = HeldItems +Price = 100 +BPPrice = 24 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. +#------------------------------- +[CHOICESPECS] +Name = Choice Specs +NamePlural = Choice Specs +PortionName = pair of Choice Specs +PortionNamePlural = pairs of Choice Specs +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_10 +Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. +#------------------------------- +[CHOICESCARF] +Name = Choice Scarf +NamePlural = Choice Scarves +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. +#------------------------------- +[HEATROCK] +Name = Heat Rock +NamePlural = Heat Rocks +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. +#------------------------------- +[DAMPROCK] +Name = Damp Rock +NamePlural = Damp Rocks +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. +#------------------------------- +[SMOOTHROCK] +Name = Smooth Rock +NamePlural = Smooth Rocks +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_10 +Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. +#------------------------------- +[ICYROCK] +Name = Icy Rock +NamePlural = Icy Rocks +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_40 +Description = A Pokémon held item that extends the duration of the move Hail used by the holder. +#------------------------------- +[LIGHTCLAY] +Name = Light Clay +NamePlural = Light Clays +PortionName = lump of Light Clay +PortionNamePlural = lumps of Light Clay +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_30 +Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. +#------------------------------- +[GRIPCLAW] +Name = Grip Claw +NamePlural = Grip Claws +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_90 +Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. +#------------------------------- +[BINDINGBAND] +Name = Binding Band +NamePlural = Binding Bands +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_30 +Description = A band that increases the power of binding moves when held. +#------------------------------- +[BIGROOT] +Name = Big Root +NamePlural = Big Roots +Pocket = HeldItems +Price = 200 +BPPrice = 16 +Flags = Fling_10 +Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. +#------------------------------- +[BLACKSLUDGE] +Name = Black Sludge +NamePlural = Black Sludges +PortionName = blob of Black Sludge +PortionNamePlural = blobs of Black Sludge +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_30 +Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. +#------------------------------- +[LEFTOVERS] +Name = Leftovers +NamePlural = Leftovers +PortionName = serving of Leftovers +PortionNamePlural = servings of Leftovers +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. +#------------------------------- +[SHELLBELL] +Name = Shell Bell +NamePlural = Shell Bells +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. +#------------------------------- +[MENTALHERB] +Name = Mental Herb +NamePlural = Mental Herbs +Pocket = HeldItems +Price = 100 +BPPrice = 16 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. +#------------------------------- +[WHITEHERB] +Name = White Herb +NamePlural = White Herbs +Pocket = HeldItems +Price = 100 +BPPrice = 16 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. +#------------------------------- +[POWERHERB] +Name = Power Herb +NamePlural = Power Herbs +Pocket = HeldItems +Price = 100 +BPPrice = 16 +Flags = Fling_10 +Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. +#------------------------------- +[ABSORBBULB] +Name = Absorb Bulb +NamePlural = Absorb Bulbs +Pocket = HeldItems +Price = 200 +BPPrice = 16 +Flags = Fling_30 +Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. +#------------------------------- +[CELLBATTERY] +Name = Cell Battery +NamePlural = Cell Batteries +Pocket = HeldItems +Price = 200 +BPPrice = 16 +Flags = Fling_30 +Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. +#------------------------------- +[LIFEORB] +Name = Life Orb +NamePlural = Life Orbs +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. +#------------------------------- +[EXPERTBELT] +Name = Expert Belt +NamePlural = Expert Belts +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. +#------------------------------- +[METRONOME] +Name = Metronome +NamePlural = Metronomes +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_30 +Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. +#------------------------------- +[MUSCLEBAND] +Name = Muscle Band +NamePlural = Muscle Bands +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. +#------------------------------- +[WISEGLASSES] +Name = Wise Glasses +NamePlural = Wise Glasses +PortionName = pair of Wise Glasses +PortionNamePlural = pairs of Wise Glasses +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. +#------------------------------- +[RAZORCLAW] +Name = Razor Claw +NamePlural = Razor Claws +Pocket = HeldItems +Price = 2100 +BPPrice = 8 +Flags = Fling_80 +Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. +#------------------------------- +[SCOPELENS] +Name = Scope Lens +NamePlural = Scope Lenses +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. +#------------------------------- +[WIDELENS] +Name = Wide Lens +NamePlural = Wide Lenses +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. +#------------------------------- +[ZOOMLENS] +Name = Zoom Lens +NamePlural = Zoom Lenses +Pocket = HeldItems +Price = 200 +BPPrice = 12 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. +#------------------------------- +[KINGSROCK] +Name = King's Rock +NamePlural = King's Rocks +Pocket = HeldItems +Price = 100 +BPPrice = 8 +Flags = Fling_30 +Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. +#------------------------------- +[RAZORFANG] +Name = Razor Fang +NamePlural = Razor Fangs +Pocket = HeldItems +Price = 2100 +BPPrice = 8 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. +#------------------------------- +[LAGGINGTAIL] +Name = Lagging Tail +NamePlural = Lagging Tails +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. +#------------------------------- +[QUICKCLAW] +Name = Quick Claw +NamePlural = Quick Claws +Pocket = HeldItems +Price = 100 +BPPrice = 24 +Flags = Fling_80 +Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. +#------------------------------- +[FOCUSBAND] +Name = Focus Band +NamePlural = Focus Bands +Pocket = HeldItems +Price = 200 +BPPrice = 12 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. +#------------------------------- +[FOCUSSASH] +Name = Focus Sash +NamePlural = Focus Sashes +Pocket = HeldItems +Price = 200 +BPPrice = 24 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. +#------------------------------- +[FLAMEORB] +Name = Flame Orb +NamePlural = Flame Orbs +Pocket = HeldItems +Price = 100 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. +#------------------------------- +[TOXICORB] +Name = Toxic Orb +NamePlural = Toxic Orbs +Pocket = HeldItems +Price = 100 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. +#------------------------------- +[STICKYBARB] +Name = Sticky Barb +NamePlural = Sticky Barbs +Pocket = HeldItems +Price = 200 +BPPrice = 16 +Flags = Fling_80 +Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. +#------------------------------- +[IRONBALL] +Name = Iron Ball +NamePlural = Iron Balls +Pocket = HeldItems +Price = 200 +BPPrice = 12 +Flags = Fling_130 +Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. +#------------------------------- +[RINGTARGET] +Name = Ring Target +NamePlural = Ring Targets +Pocket = HeldItems +Price = 200 +BPPrice = 12 +Flags = Fling_10 +Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. +#------------------------------- +[MACHOBRACE] +Name = Macho Brace +NamePlural = Macho Braces +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_60 +Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. +#------------------------------- +[POWERWEIGHT] +Name = Power Weight +NamePlural = Power Weights +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBRACER] +Name = Power Bracer +NamePlural = Power Bracers +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBELT] +Name = Power Belt +NamePlural = Power Belts +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERLENS] +Name = Power Lens +NamePlural = Power Lenses +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBAND] +Name = Power Band +NamePlural = Power Bands +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERANKLET] +Name = Power Anklet +NamePlural = Power Anklets +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. +#------------------------------- +[LAXINCENSE] +Name = Lax Incense +NamePlural = Lax Incenses +PortionName = jar of Lax Incense +PortionNamePlural = jars of Lax Incense +Pocket = HeldItems +Price = 9600 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. +#------------------------------- +[FULLINCENSE] +Name = Full Incense +NamePlural = Full Incenses +PortionName = jar of Full Incense +PortionNamePlural = jars of Full Incense +Pocket = HeldItems +Price = 9600 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. +#------------------------------- +[LUCKINCENSE] +Name = Luck Incense +NamePlural = Luck Incenses +PortionName = jar of Luck Incense +PortionNamePlural = jars of Luck Incense +Pocket = HeldItems +Price = 9600 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[PUREINCENSE] +Name = Pure Incense +NamePlural = Pure Incenses +PortionName = jar of Pure Incense +PortionNamePlural = jars of Pure Incense +Pocket = HeldItems +Price = 9600 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[SEAINCENSE] +Name = Sea Incense +NamePlural = Sea Incenses +PortionName = jar of Sea Incense +PortionNamePlural = jars of Sea Incense +Pocket = HeldItems +Price = 9600 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[WAVEINCENSE] +Name = Wave Incense +NamePlural = Wave Incenses +PortionName = jar of Wave Incense +PortionNamePlural = jars of Wave Incense +Pocket = HeldItems +Price = 9600 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[ROSEINCENSE] +Name = Rose Incense +NamePlural = Rose Incenses +PortionName = jar of Rose Incense +PortionNamePlural = jars of Rose Incense +Pocket = HeldItems +Price = 9600 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. +#------------------------------- +[ODDINCENSE] +Name = Odd Incense +NamePlural = Odd Incenses +PortionName = jar of Odd Incense +PortionNamePlural = jars of Odd Incense +Pocket = HeldItems +Price = 9600 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. +#------------------------------- +[ROCKINCENSE] +Name = Rock Incense +NamePlural = Rock Incenses +PortionName = jar of Rock Incense +PortionNamePlural = jars of Rock Incense +Pocket = HeldItems +Price = 9600 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. +#------------------------------- +[CHARCOAL] +Name = Charcoal +NamePlural = Charcoals +PortionName = piece of Charcoal +PortionNamePlural = pieces of Charcoal +Pocket = HeldItems +Price = 9800 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. +#------------------------------- +[MYSTICWATER] +Name = Mystic Water +NamePlural = Mystic Waters +Pocket = HeldItems +Price = 100 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. +#------------------------------- +[MAGNET] +Name = Magnet +NamePlural = Magnets +Pocket = HeldItems +Price = 100 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. +#------------------------------- +[MIRACLESEED] +Name = Miracle Seed +NamePlural = Miracle Seeds +Pocket = HeldItems +Price = 100 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. +#------------------------------- +[NEVERMELTICE] +Name = Never-Melt Ice +NamePlural = Never-Melt Ices +PortionName = piece of Never-Melt Ice +PortionNamePlural = pieces of Never-Melt Ice +Pocket = HeldItems +Price = 100 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. +#------------------------------- +[BLACKBELT] +Name = Black Belt +NamePlural = Black Belts +Pocket = HeldItems +Price = 100 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. +#------------------------------- +[POISONBARB] +Name = Poison Barb +NamePlural = Poison Barbs +Pocket = HeldItems +Price = 100 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. +#------------------------------- +[SOFTSAND] +Name = Soft Sand +NamePlural = Soft Sand +PortionName = bag of Soft Sand +PortionNamePlural = bags of Soft Sand +Pocket = HeldItems +Price = 100 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. +#------------------------------- +[SHARPBEAK] +Name = Sharp Beak +NamePlural = Sharp Beaks +Pocket = HeldItems +Price = 100 +Flags = Fling_50 +Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. +#------------------------------- +[TWISTEDSPOON] +Name = Twisted Spoon +NamePlural = Twisted Spoons +Pocket = HeldItems +Price = 100 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. +#------------------------------- +[SILVERPOWDER] +Name = Silver Powder +NamePlural = Silver Powders +PortionName = pile of Silver Powder +PortionNamePlural = piles of Silver Powder +Pocket = HeldItems +Price = 100 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. +#------------------------------- +[HARDSTONE] +Name = Hard Stone +NamePlural = Hard Stones +Pocket = HeldItems +Price = 100 +Flags = Fling_100 +Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. +#------------------------------- +[SPELLTAG] +Name = Spell Tag +NamePlural = Spell Tags +Pocket = HeldItems +Price = 100 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. +#------------------------------- +[DRAGONFANG] +Name = Dragon Fang +NamePlural = Dragon Fangs +Pocket = HeldItems +Price = 100 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. +#------------------------------- +[BLACKGLASSES] +Name = Black Glasses +NamePlural = Black Glasses +PortionName = pair of Black Glasses +PortionNamePlural = pairs of Black Glasses +Pocket = HeldItems +Price = 100 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. +#------------------------------- +[METALCOAT] +Name = Metal Coat +NamePlural = Metal Coats +Pocket = HeldItems +Price = 100 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. +#------------------------------- +[SILKSCARF] +Name = Silk Scarf +NamePlural = Silk Scarves +Pocket = HeldItems +Price = 100 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. +#------------------------------- +[FLAMEPLATE] +Name = Flame Plate +NamePlural = Flame Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. +#------------------------------- +[SPLASHPLATE] +Name = Splash Plate +NamePlural = Splash Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. +#------------------------------- +[ZAPPLATE] +Name = Zap Plate +NamePlural = Zap Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. +#------------------------------- +[MEADOWPLATE] +Name = Meadow Plate +NamePlural = Meadow Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. +#------------------------------- +[ICICLEPLATE] +Name = Icicle Plate +NamePlural = Icicle Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. +#------------------------------- +[FISTPLATE] +Name = Fist Plate +NamePlural = Fist Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. +#------------------------------- +[TOXICPLATE] +Name = Toxic Plate +NamePlural = Toxic Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. +#------------------------------- +[EARTHPLATE] +Name = Earth Plate +NamePlural = Earth Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. +#------------------------------- +[SKYPLATE] +Name = Sky Plate +NamePlural = Sky Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. +#------------------------------- +[MINDPLATE] +Name = Mind Plate +NamePlural = Mind Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. +#------------------------------- +[INSECTPLATE] +Name = Insect Plate +NamePlural = Insect Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. +#------------------------------- +[STONEPLATE] +Name = Stone Plate +NamePlural = Stone Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. +#------------------------------- +[SPOOKYPLATE] +Name = Spooky Plate +NamePlural = Spooky Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. +#------------------------------- +[DRACOPLATE] +Name = Draco Plate +NamePlural = Draco Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. +#------------------------------- +[DREADPLATE] +Name = Dread Plate +NamePlural = Dread Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. +#------------------------------- +[IRONPLATE] +Name = Iron Plate +NamePlural = Iron Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. +#------------------------------- +[FIREGEM] +Name = Fire Gem +NamePlural = Fire Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. +#------------------------------- +[WATERGEM] +Name = Water Gem +NamePlural = Water Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. +#------------------------------- +[ELECTRICGEM] +Name = Electric Gem +NamePlural = Electric Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. +#------------------------------- +[GRASSGEM] +Name = Grass Gem +NamePlural = Grass Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. +#------------------------------- +[ICEGEM] +Name = Ice Gem +NamePlural = Ice Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. +#------------------------------- +[FIGHTINGGEM] +Name = Fighting Gem +NamePlural = Fighting Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. +#------------------------------- +[POISONGEM] +Name = Poison Gem +NamePlural = Poison Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. +#------------------------------- +[GROUNDGEM] +Name = Ground Gem +NamePlural = Ground Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. +#------------------------------- +[FLYINGGEM] +Name = Flying Gem +NamePlural = Flying Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. +#------------------------------- +[PSYCHICGEM] +Name = Psychic Gem +NamePlural = Psychic Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. +#------------------------------- +[BUGGEM] +Name = Bug Gem +NamePlural = Bug Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. +#------------------------------- +[ROCKGEM] +Name = Rock Gem +NamePlural = Rock Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. +#------------------------------- +[GHOSTGEM] +Name = Ghost Gem +NamePlural = Ghost Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. +#------------------------------- +[DRAGONGEM] +Name = Dragon Gem +NamePlural = Dragon Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. +#------------------------------- +[DARKGEM] +Name = Dark Gem +NamePlural = Dark Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. +#------------------------------- +[STEELGEM] +Name = Steel Gem +NamePlural = Steel Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. +#------------------------------- +[NORMALGEM] +Name = Normal Gem +NamePlural = Normal Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. +#------------------------------- +[LIGHTBALL] +Name = Light Ball +NamePlural = Light Balls +Pocket = HeldItems +Price = 100 +Flags = Fling_30 +Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. +#------------------------------- +[LUCKYPUNCH] +Name = Lucky Punch +NamePlural = Lucky Punches +Pocket = HeldItems +Price = 10 +BPPrice = 7 +Flags = Fling_40 +Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. +#------------------------------- +[METALPOWDER] +Name = Metal Powder +NamePlural = Metal Powders +PortionName = bag of Metal Powder +PortionNamePlural = bags of Metal Powder +Pocket = HeldItems +Price = 10 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. +#------------------------------- +[QUICKPOWDER] +Name = Quick Powder +NamePlural = Quick Powders +PortionName = bag of Quick Powder +PortionNamePlural = bags of Quick Powder +Pocket = HeldItems +Price = 10 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. +#------------------------------- +[THICKCLUB] +Name = Thick Club +NamePlural = Thick Clubs +Pocket = HeldItems +Price = 500 +Flags = Fling_90 +Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. +#------------------------------- +[STICK] +Name = Stick +NamePlural = Sticks +Pocket = HeldItems +Price = 200 +Flags = Fling_60 +Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. +#------------------------------- +[SOULDEW] +Name = Soul Dew +NamePlural = Soul Dews +Pocket = HeldItems +Price = 200 +Flags = Fling_30 +Description = A wondrous orb to be held by Latios or Latias. It raises both the Sp. Atk and Sp. Def stats. +#------------------------------- +[DEEPSEATOOTH] +Name = Deep Sea Tooth +NamePlural = Deep Sea Teeth +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_90 +Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. +#------------------------------- +[DEEPSEASCALE] +Name = Deep Sea Scale +NamePlural = Deep Sea Scales +Pocket = HeldItems +Price = 200 +BPPrice = 8 +Flags = Fling_30 +Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. +#------------------------------- +[ADAMANTORB] +Name = Adamant Orb +NamePlural = Adamant Orbs +Pocket = HeldItems +Price = 10000 +Flags = Fling_60 +Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. +#------------------------------- +[LUSTROUSORB] +Name = Lustrous Orb +NamePlural = Lustrous Orbs +Pocket = HeldItems +Price = 10000 +Flags = Fling_60 +Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. +#------------------------------- +[GRISEOUSORB] +Name = Griseous Orb +NamePlural = Griseous Orbs +Pocket = HeldItems +Price = 10000 +Flags = Fling_60 +Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. +#------------------------------- +[DOUSEDRIVE] +Name = Douse Drive +NamePlural = Douse Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. +#------------------------------- +[SHOCKDRIVE] +Name = Shock Drive +NamePlural = Shock Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. +#------------------------------- +[BURNDRIVE] +Name = Burn Drive +NamePlural = Burn Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. +#------------------------------- +[CHILLDRIVE] +Name = Chill Drive +NamePlural = Chill Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. +#------------------------------- +[EVERSTONE] +Name = Everstone +NamePlural = Everstones +Pocket = HeldItems +Price = 200 +BPPrice = 3 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. +#------------------------------- +[DRAGONSCALE] +Name = Dragon Scale +NamePlural = Dragon Scales +Pocket = HeldItems +Price = 2100 +BPPrice = 8 +Flags = Fling_30 +Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. +#------------------------------- +[UPGRADE] +Name = Up-Grade +NamePlural = Up-Grades +Pocket = HeldItems +Price = 2100 +BPPrice = 8 +Flags = Fling_30 +Description = A transparent device filled with all sorts of data. It was produced by Silph Co. +#------------------------------- +[DUBIOUSDISC] +Name = Dubious Disc +NamePlural = Dubious Discs +Pocket = HeldItems +Price = 2100 +BPPrice = 8 +Flags = Fling_50 +Description = A transparent device overflowing with dubious data. Its producer is unknown. +#------------------------------- +[PROTECTOR] +Name = Protector +NamePlural = Protectors +Pocket = HeldItems +Price = 2100 +BPPrice = 8 +Flags = Fling_80 +Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. +#------------------------------- +[ELECTIRIZER] +Name = Electirizer +NamePlural = Electirizers +Pocket = HeldItems +Price = 2100 +BPPrice = 8 +Flags = Fling_80 +Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. +#------------------------------- +[MAGMARIZER] +Name = Magmarizer +NamePlural = Magmarizers +Pocket = HeldItems +Price = 2100 +BPPrice = 8 +Flags = Fling_80 +Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. +#------------------------------- +[REAPERCLOTH] +Name = Reaper Cloth +NamePlural = Reaper Cloths +PortionName = scrap of Reaper Cloth +PortionNamePlural = scraps of Reaper Cloth +Pocket = HeldItems +Price = 2100 +BPPrice = 8 +Flags = Fling_10 +Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. +#------------------------------- +[PRISMSCALE] +Name = Prism Scale +NamePlural = Prism Scales +Pocket = HeldItems +Price = 500 +BPPrice = 8 +Flags = Fling_30 +Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. +#------------------------------- +[OVALSTONE] +Name = Oval Stone +NamePlural = Oval Stones +Pocket = HeldItems +Price = 2100 +BPPrice = 8 +Flags = Fling_80 +Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. #------------------------------- [XATTACK] Name = X Attack NamePlural = X Attacks -Pocket = 7 +Pocket = BattleItems Price = 500 BattleUse = OnBattler Flags = Fling_30 @@ -4269,7 +3225,7 @@ Description = An item that raises the Attack stat of a Pokémon in battle. It we [XATTACK2] Name = X Attack 2 NamePlural = X Attack 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4278,7 +3234,7 @@ Description = It sharply raises the Attack stat of a Pokémon in battle. It wear [XATTACK3] Name = X Attack 3 NamePlural = X Attack 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4287,7 +3243,7 @@ Description = It drastically raises the Attack stat of a Pokémon in battle. It [XATTACK6] Name = X Attack 6 NamePlural = X Attack 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4296,7 +3252,7 @@ Description = It raises the Attack stat of a Pokémon in battle immensely. It we [XDEFENSE] Name = X Defense NamePlural = X Defenses -Pocket = 7 +Pocket = BattleItems Price = 550 BattleUse = OnBattler Flags = Fling_30 @@ -4305,7 +3261,7 @@ Description = An item that raises the Defense of a Pokémon in battle. It wears [XDEFENSE2] Name = X Defense 2 NamePlural = X Defense 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4314,7 +3270,7 @@ Description = It sharply raises the Defense stat of a Pokémon in battle. It wea [XDEFENSE3] Name = X Defense 3 NamePlural = X Defense 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4323,7 +3279,7 @@ Description = It drastically raises the Defense stat of a Pokémon in battle. It [XDEFENSE6] Name = X Defense 6 NamePlural = X Defense 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4332,7 +3288,7 @@ Description = It raises the Defense stat of a Pokémon in battle immensely. It w [XSPATK] Name = X Sp. Atk NamePlural = X Sp. Atks -Pocket = 7 +Pocket = BattleItems Price = 350 BattleUse = OnBattler Flags = Fling_30 @@ -4341,7 +3297,7 @@ Description = An item that raises the Sp. Atk stat of a Pokémon in battle. It w [XSPATK2] Name = X Sp. Atk 2 NamePlural = X Sp. Atk 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4350,7 +3306,7 @@ Description = It sharply raises the Sp. Atk stat of a Pokémon in battle. It wea [XSPATK3] Name = X Sp. Atk 3 NamePlural = X Sp. Atk 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4359,7 +3315,7 @@ Description = It drastically raises the Sp. Atk stat of a Pokémon in battle. It [XSPATK6] Name = X Sp. Atk 6 NamePlural = X Sp. Atk 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4368,7 +3324,7 @@ Description = It raises the Sp. Atk stat of a Pokémon in battle immensely. It w [XSPDEF] Name = X Sp. Def NamePlural = X Sp. Defs -Pocket = 7 +Pocket = BattleItems Price = 350 BattleUse = OnBattler Flags = Fling_30 @@ -4377,7 +3333,7 @@ Description = An item that raises the Sp. Def stat of a Pokémon in battle. It w [XSPDEF2] Name = X Sp. Def 2 NamePlural = X Sp. Def 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4386,7 +3342,7 @@ Description = It sharply raises the Sp. Def stat of a Pokémon in battle. It wea [XSPDEF3] Name = X Sp. Def 3 NamePlural = X Sp. Def 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4395,7 +3351,7 @@ Description = It drastically raises the Sp. Def stat of a Pokémon in battle. It [XSPDEF6] Name = X Sp. Def 6 NamePlural = X Sp. Def 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4404,7 +3360,7 @@ Description = It raises the Sp. Def stat of a Pokémon in battle immensely. It w [XSPEED] Name = X Speed NamePlural = X Speeds -Pocket = 7 +Pocket = BattleItems Price = 350 BattleUse = OnBattler Flags = Fling_30 @@ -4413,7 +3369,7 @@ Description = An item that raises the Speed stat of a Pokémon in battle. It wea [XSPEED2] Name = X Speed 2 NamePlural = X Speed 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4422,7 +3378,7 @@ Description = It sharply raises the Speed stat of a Pokémon in battle. It wears [XSPEED3] Name = X Speed 3 NamePlural = X Speed 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4431,7 +3387,7 @@ Description = It drastically raises the Speed stat of a Pokémon in battle. It w [XSPEED6] Name = X Speed 6 NamePlural = X Speed 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4440,7 +3396,7 @@ Description = It raises the Speed stat of a Pokémon in battle immensely. It wea [XACCURACY] Name = X Accuracy NamePlural = X Accuracies -Pocket = 7 +Pocket = BattleItems Price = 950 BattleUse = OnBattler Flags = Fling_30 @@ -4449,7 +3405,7 @@ Description = An item that raises the accuracy of a Pokémon in battle. It wears [XACCURACY2] Name = X Accuracy 2 NamePlural = X Accuracy 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4458,7 +3414,7 @@ Description = It sharply raises the accuracy of a Pokémon in battle. It wears o [XACCURACY3] Name = X Accuracy 3 NamePlural = X Accuracy 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4467,7 +3423,7 @@ Description = It drastically raises the accuracy of a Pokémon in battle. It wea [XACCURACY6] Name = X Accuracy 6 NamePlural = X Accuracy 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4476,7 +3432,7 @@ Description = It raises the accuracy of a Pokémon in battle immensely. It wears [DIREHIT] Name = Dire Hit NamePlural = Dire Hits -Pocket = 7 +Pocket = BattleItems Price = 650 BattleUse = OnBattler Flags = Fling_30 @@ -4485,7 +3441,7 @@ Description = It raises the critical-hit ratio. It can be used only once and wea [DIREHIT2] Name = Dire Hit 2 NamePlural = Dire Hit 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4494,7 +3450,7 @@ Description = It sharply raises the critical-hit ratio. It wears off if the Pok [DIREHIT3] Name = Dire Hit 3 NamePlural = Dire Hit 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4503,7 +3459,7 @@ Description = It greatly raises the critical-hit ratio. It wears off if the Pok [GUARDSPEC] Name = Guard Spec. NamePlural = Guard Specs. -Pocket = 7 +Pocket = BattleItems Price = 700 BattleUse = Direct Flags = Fling_30 @@ -4512,7 +3468,7 @@ Description = An item that prevents stat reduction among the Trainer's party Pok [RESETURGE] Name = Reset Urge NamePlural = Reset Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it restores any stat changes of an ally Pokémon. @@ -4520,7 +3476,7 @@ Description = When used, it restores any stat changes of an ally Pokémon. [ABILITYURGE] Name = Ability Urge NamePlural = Ability Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it activates the Ability of an ally Pokémon. @@ -4528,7 +3484,7 @@ Description = When used, it activates the Ability of an ally Pokémon. [ITEMURGE] Name = Item Urge NamePlural = Item Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it causes an ally Pokémon to use its held item. @@ -4536,7 +3492,7 @@ Description = When used, it causes an ally Pokémon to use its held item. [ITEMDROP] Name = Item Drop NamePlural = Item Drops -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it causes an ally Pokémon to drop a held item. @@ -4544,7 +3500,7 @@ Description = When used, it causes an ally Pokémon to drop a held item. [BLUEFLUTE] Name = Blue Flute NamePlural = Blue Flutes -Pocket = 7 +Pocket = BattleItems Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -4555,7 +3511,7 @@ Description = A blue flute made from blown glass. Its melody awakens a single Po [YELLOWFLUTE] Name = Yellow Flute NamePlural = Yellow Flutes -Pocket = 7 +Pocket = BattleItems Price = 300 BattleUse = OnBattler Flags = Fling_30 @@ -4565,7 +3521,7 @@ Description = A yellow flute made from blown glass. Its melody snaps a single Po [REDFLUTE] Name = Red Flute NamePlural = Red Flutes -Pocket = 7 +Pocket = BattleItems Price = 200 BattleUse = OnBattler Flags = Fling_30 @@ -4575,7 +3531,7 @@ Description = A red flute made from blown glass. Its melody snaps a single Poké [POKEDOLL] Name = Poké Doll NamePlural = Poké Dolls -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = Direct Flags = Fling_30 @@ -4584,7 +3540,7 @@ Description = A doll that attracts Pokémon. Use it to flee from any battle with [FLUFFYTAIL] Name = Fluffy Tail NamePlural = Fluffy Tails -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = Direct Flags = Fling_30 @@ -4593,16 +3549,1020 @@ Description = An item that attracts Pokémon. Use it to flee from any battle wit [POKETOY] Name = Poké Toy NamePlural = Poké Toys -Pocket = 7 +Pocket = BattleItems Price = 500 BattleUse = Direct Flags = Fling_30 Description = An item that attracts Pokémon. Use it to flee from any battle with a wild Pokémon. #------------------------------- +[TM01] +Name = TM01 +NamePlural = TM01s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = HONECLAWS +Description = The user sharpens its claws to boost its Attack stat and accuracy. +#------------------------------- +[TM02] +Name = TM02 +NamePlural = TM02s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = DRAGONCLAW +Description = The user slashes the target with huge, sharp claws. +#------------------------------- +[TM03] +Name = TM03 +NamePlural = TM03s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = PSYSHOCK +Description = The user materializes an odd psychic wave to attack the target. This attack does physical damage. +#------------------------------- +[TM04] +Name = TM04 +NamePlural = TM04s +Pocket = Machines +Price = 1500 +BPPrice = 6 +FieldUse = TM +Move = CALMMIND +Description = The user quietly focuses its mind and calms its spirit to raise its Sp. Atk and Sp. Def stats. +#------------------------------- +[TM05] +Name = TM05 +NamePlural = TM05s +Pocket = Machines +Price = 1000 +BPPrice = 6 +FieldUse = TM +Move = ROAR +Description = The target is scared off and replaced by another Pokémon in its party. In the wild, the battle ends. +#------------------------------- +[TM06] +Name = TM06 +NamePlural = TM06s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = TOXIC +Description = A move that leaves the target badly poisoned. Its poison damage worsens every turn. +#------------------------------- +[TM07] +Name = TM07 +NamePlural = TM07s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = HAIL +Description = Summons a hailstorm that lasts for five turns. The hailstorm damages all types except Ice. +#------------------------------- +[TM08] +Name = TM08 +NamePlural = TM08s +Pocket = Machines +Price = 1500 +BPPrice = 6 +FieldUse = TM +Move = BULKUP +Description = The user tenses its muscles to bulk up its body, boosting both its Attack and Defense stats. +#------------------------------- +[TM09] +Name = TM09 +NamePlural = TM09s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = VENOSHOCK +Description = The user drenches the target in a special poisonous liquid. Its power is doubled if the target is poisoned. +#------------------------------- +[TM10] +Name = TM10 +NamePlural = TM10s +Pocket = Machines +Price = 2000 +BPPrice = 18 +FieldUse = TM +Move = HIDDENPOWER +Description = A unique attack that varies in type and intensity depending on the Pokémon using it. +#------------------------------- +[TM11] +Name = TM11 +NamePlural = TM11s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = SUNNYDAY +Description = The user intensifies the sun for five turns, powering up Fire-type moves. +#------------------------------- +[TM12] +Name = TM12 +NamePlural = TM12s +Pocket = Machines +Price = 1500 +BPPrice = 6 +FieldUse = TM +Move = TAUNT +Description = The target is taunted into a rage that allows it to use only attack moves for three turns. +#------------------------------- +[TM13] +Name = TM13 +NamePlural = TM13s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = ICEBEAM +Description = The target is struck with an icy-cold beam of energy. It may also freeze the target solid. +#------------------------------- +[TM14] +Name = TM14 +NamePlural = TM14s +Pocket = Machines +Price = 5500 +BPPrice = 6 +FieldUse = TM +Move = BLIZZARD +Description = A howling blizzard is summoned to strike the opposing team. It may also freeze them solid. +#------------------------------- +[TM15] +Name = TM15 +NamePlural = TM15s +Pocket = Machines +Price = 7500 +BPPrice = 6 +FieldUse = TM +Move = HYPERBEAM +Description = The target is attacked with a powerful beam. The user must rest on the next turn to regain its energy. +#------------------------------- +[TM16] +Name = TM16 +NamePlural = TM16s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = LIGHTSCREEN +Description = A wondrous wall of light is put up to suppress damage from special attacks for five turns. +#------------------------------- +[TM17] +Name = TM17 +NamePlural = TM17s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = PROTECT +Description = It enables the user to evade all attacks. Its chance of failing rises if it is used in succession. +#------------------------------- +[TM18] +Name = TM18 +NamePlural = TM18s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = RAINDANCE +Description = The user summons a heavy rain that falls for five turns, powering up Water-type moves. +#------------------------------- +[TM19] +Name = TM19 +NamePlural = TM19s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = TELEKINESIS +Description = The user makes the target float with its psychic power. The target is easier to hit for three turns. +#------------------------------- +[TM20] +Name = TM20 +NamePlural = TM20s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = SAFEGUARD +Description = The user creates a protective field that prevents status problems for five turns. +#------------------------------- +[TM21] +Name = TM21 +NamePlural = TM21s +Pocket = Machines +Price = 1000 +BPPrice = 6 +FieldUse = TM +Move = FRUSTRATION +Description = A full-power attack that grows more powerful the less the user likes its Trainer. +#------------------------------- +[TM22] +Name = TM22 +NamePlural = TM22s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = SOLARBEAM +Description = A two-turn attack. The user gathers light, then blasts a bundled beam on the second turn. +#------------------------------- +[TM23] +Name = TM23 +NamePlural = TM23s +Pocket = Machines +Price = 3000 +BPPrice = 18 +FieldUse = TM +Move = SMACKDOWN +Description = The user throws a stone or similar projectile to attack a foe. A flying Pokémon will fall to the ground if hit. +#------------------------------- +[TM24] +Name = TM24 +NamePlural = TM24s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = THUNDERBOLT +Description = A strong electric blast is loosed at the target. It may also leave the target with paralysis. +#------------------------------- +[TM25] +Name = TM25 +NamePlural = TM25s +Pocket = Machines +Price = 5500 +BPPrice = 6 +FieldUse = TM +Move = THUNDER +Description = A wicked thunderbolt is dropped on the target to inflict damage. It may also leave the target with paralysis. +#------------------------------- +[TM26] +Name = TM26 +NamePlural = TM26s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = EARTHQUAKE +Description = The user sets off an earthquake that strikes every Pokémon around it. +#------------------------------- +[TM27] +Name = TM27 +NamePlural = TM27s +Pocket = Machines +Price = 1000 +BPPrice = 6 +FieldUse = TM +Move = RETURN +Description = A full-power attack that grows more powerful the more the user likes its Trainer. +#------------------------------- +[TM28] +Name = TM28 +NamePlural = TM28s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = DIG +Description = The user burrows, then attacks on the second turn. It can also be used to exit dungeons. +#------------------------------- +[TM29] +Name = TM29 +NamePlural = TM29s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = PSYCHIC +Description = The target is hit by a strong telekinetic force. It may also reduce the target's Sp. Def stat. +#------------------------------- +[TM30] +Name = TM30 +NamePlural = TM30s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = SHADOWBALL +Description = The user hurls a shadowy blob at the target. It may also lower the target's Sp. Def stat. +#------------------------------- +[TM31] +Name = TM31 +NamePlural = TM31s +Pocket = Machines +Price = 3000 +BPPrice = 12 +FieldUse = TM +Move = BRICKBREAK +Description = The user attacks with tough fists, etc. It can also break any barrier such as Light Screen and Reflect. +#------------------------------- +[TM32] +Name = TM32 +NamePlural = TM32s +Pocket = Machines +Price = 1000 +BPPrice = 6 +FieldUse = TM +Move = DOUBLETEAM +Description = By moving rapidly, the user makes illusory copies of itself to raise its evasiveness. +#------------------------------- +[TM33] +Name = TM33 +NamePlural = TM33s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = REFLECT +Description = A wondrous wall of light is put up to suppress damage from physical attacks for five turns. +#------------------------------- +[TM34] +Name = TM34 +NamePlural = TM34s +Pocket = Machines +Price = 3000 +BPPrice = 24 +FieldUse = TM +Move = SLUDGEWAVE +Description = It swamps the area around the user with a giant sludge wave. It may also poison those hit. +#------------------------------- +[TM35] +Name = TM35 +NamePlural = TM35s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = FLAMETHROWER +Description = The target is scorched with an intense blast of fire. It may also leave the target with a burn. +#------------------------------- +[TM36] +Name = TM36 +NamePlural = TM36s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = SLUDGEBOMB +Description = Unsanitary sludge is hurled at the target. It may also poison the target. +#------------------------------- +[TM37] +Name = TM37 +NamePlural = TM37s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = SANDSTORM +Description = A five-turn sandstorm is summoned to hurt all combatants except the Rock, Ground, and Steel types. +#------------------------------- +[TM38] +Name = TM38 +NamePlural = TM38s +Pocket = Machines +Price = 5500 +BPPrice = 6 +FieldUse = TM +Move = FIREBLAST +Description = The foe is attacked with an intense blast of all-consuming fire. It may also leave the target with a burn. +#------------------------------- +[TM39] +Name = TM39 +NamePlural = TM39s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = ROCKTOMB +Description = Boulders are hurled at the target. It also lowers the target's Speed by preventing its movement. +#------------------------------- +[TM40] +Name = TM40 +NamePlural = TM40s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = AERIALACE +Description = The user confounds the target with speed, then slashes. The attack lands without fail. +#------------------------------- +[TM41] +Name = TM41 +NamePlural = TM41s +Pocket = Machines +Price = 1500 +BPPrice = 6 +FieldUse = TM +Move = TORMENT +Description = The user torments and enrages the target, making it incapable of using the same move twice in a row. +#------------------------------- +[TM42] +Name = TM42 +NamePlural = TM42s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = FACADE +Description = An attack move that doubles its power if the user is poisoned, paralyzed, or has a burn. +#------------------------------- +[TM43] +Name = TM43 +NamePlural = TM43s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = FLAMECHARGE +Description = The user cloaks itself with flame and attacks. Building up more power, it raises the user's Speed stat. +#------------------------------- +[TM44] +Name = TM44 +NamePlural = TM44s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = REST +Description = The user goes to sleep for two turns. It fully restores the user's HP and heals any status problem. +#------------------------------- +[TM45] +Name = TM45 +NamePlural = TM45s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = ATTRACT +Description = If it is the opposite gender of the user, the target becomes infatuated and less likely to attack. +#------------------------------- +[TM46] +Name = TM46 +NamePlural = TM46s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = THIEF +Description = The user attacks and steals the target's held item simultaneously. It can't steal if the user holds an item. +#------------------------------- +[TM47] +Name = TM47 +NamePlural = TM47s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = LOWSWEEP +Description = The user attacks the target's legs swiftly, reducing the target's Speed stat. +#------------------------------- +[TM48] +Name = TM48 +NamePlural = TM48s +Pocket = Machines +Price = 3000 +BPPrice = 18 +FieldUse = TM +Move = ROUND +Description = The user attacks the target with a song. Others can join in the Round to increase the power of the attack. +#------------------------------- +[TM49] +Name = TM49 +NamePlural = TM49s +Pocket = Machines +Price = 1500 +BPPrice = 6 +FieldUse = TM +Move = ECHOEDVOICE +Description = The user attacks the target with an echoing voice. If this move is used every turn, it does greater damage. +#------------------------------- +[TM50] +Name = TM50 +NamePlural = TM50s +Pocket = Machines +Price = 5500 +BPPrice = 6 +FieldUse = TM +Move = OVERHEAT +Description = The user attacks the target at full power. The attack's recoil sharply reduces the user's Sp. Atk stat. +#------------------------------- +[TM51] +Name = TM51 +NamePlural = TM51s +Pocket = Machines +Price = 1000 +BPPrice = 24 +FieldUse = TM +Move = ALLYSWITCH +Description = The user teleports using a strange power and switches its place with one of its allies. +#------------------------------- +[TM52] +Name = TM52 +NamePlural = TM52s +Pocket = Machines +Price = 5500 +BPPrice = 6 +FieldUse = TM +Move = FOCUSBLAST +Description = The user heightens its mental focus and unleashes its power. It may also lower the target's Sp. Def. +#------------------------------- +[TM53] +Name = TM53 +NamePlural = TM53s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = ENERGYBALL +Description = The user draws power from nature and fires it at the target. It may also lower the target's Sp. Def. +#------------------------------- +[TM54] +Name = TM54 +NamePlural = TM54s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = FALSESWIPE +Description = A restrained attack that prevents the target from fainting. The target is left with at least 1 HP. +#------------------------------- +[TM55] +Name = TM55 +NamePlural = TM55s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = SCALD +Description = The user shoots boiling hot water at its target. It may also leave the target with a burn. +#------------------------------- +[TM56] +Name = TM56 +NamePlural = TM56s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = FLING +Description = The user flings its held item at the target as an attack. Its power and effects depend on the item. +#------------------------------- +[TM57] +Name = TM57 +NamePlural = TM57s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = CHARGEBEAM +Description = The user attacks with an electric charge. The user may use any remaining charge to raise its Sp. Atk. +#------------------------------- +[TM58] +Name = TM58 +NamePlural = TM58s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = SKYDROP +Description = The user hurls the foe into the sky, then drops it on the next turn. The foe cannot attack while in the sky. +#------------------------------- +[TM59] +Name = TM59 +NamePlural = TM59s +Pocket = Machines +Price = 1500 +BPPrice = 6 +FieldUse = TM +Move = INCINERATE +Description = The user attacks the target with fire. If the target is holding a Berry, it becomes burnt up and unusable. +#------------------------------- +[TM60] +Name = TM60 +NamePlural = TM60s +Pocket = Machines +Price = 3000 +BPPrice = 24 +FieldUse = TM +Move = QUASH +Description = The user suppresses the target and makes its move go last. +#------------------------------- +[TM61] +Name = TM61 +NamePlural = TM61s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = WILLOWISP +Description = The user shoots a sinister, bluish-white flame at the target to inflict a burn. +#------------------------------- +[TM62] +Name = TM62 +NamePlural = TM62s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = ACROBATICS +Description = The user nimbly strikes the target. If the user is not holding an item, this attack inflicts massive damage. +#------------------------------- +[TM63] +Name = TM63 +NamePlural = TM63s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = EMBARGO +Description = It prevents the target from using its held item. Its Trainer is also prevented from using items on it. +#------------------------------- +[TM64] +Name = TM64 +NamePlural = TM64s +Pocket = Machines +Price = 7500 +BPPrice = 24 +FieldUse = TM +Move = EXPLOSION +Description = The user explodes to inflict damage on those around it. The user faints upon using this move. +#------------------------------- +[TM65] +Name = TM65 +NamePlural = TM65s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = SHADOWCLAW +Description = The user slashes with a sharp claw made from shadows. It has a high critical-hit ratio. +#------------------------------- +[TM66] +Name = TM66 +NamePlural = TM66s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = PAYBACK +Description = The user stores power, then attacks. If the user goes after the target, this attack's power doubles. +#------------------------------- +[TM67] +Name = TM67 +NamePlural = TM67s +Pocket = Machines +Price = 1000 +BPPrice = 6 +FieldUse = TM +Move = RETALIATE +Description = The user gets revenge for a fainted ally. If an ally fainted in the last turn, this move's power is increased. +#------------------------------- +[TM68] +Name = TM68 +NamePlural = TM68s +Pocket = Machines +Price = 7500 +BPPrice = 6 +FieldUse = TM +Move = GIGAIMPACT +Description = The user charges at the target using every bit of its power. The user must rest on the next turn. +#------------------------------- +[TM69] +Name = TM69 +NamePlural = TM69s +Pocket = Machines +Price = 1500 +BPPrice = 6 +FieldUse = TM +Move = ROCKPOLISH +Description = The user polishes its body to reduce drag. It sharply raises the Speed stat. +#------------------------------- +[TM70] +Name = TM70 +NamePlural = TM70s +Pocket = Machines +Price = 1000 +BPPrice = 6 +FieldUse = TM +Move = FLASH +Description = The user flashes a bright light that cuts the target's accuracy. It can also be used to illuminate caves. +#------------------------------- +[TM71] +Name = TM71 +NamePlural = TM71s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = STONEEDGE +Description = The user stabs the foe with sharpened stones from below. It has a high critical-hit ratio. +#------------------------------- +[TM72] +Name = TM72 +NamePlural = TM72s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = VOLTSWITCH +Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. +#------------------------------- +[TM73] +Name = TM73 +NamePlural = TM73s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = THUNDERWAVE +Description = A weak electric charge is launched at the target. It causes paralysis if it hits. +#------------------------------- +[TM74] +Name = TM74 +NamePlural = TM74s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = GYROBALL +Description = The user tackles the target with a high-speed spin. The slower the user, the greater the damage. +#------------------------------- +[TM75] +Name = TM75 +NamePlural = TM75s +Pocket = Machines +Price = 1500 +BPPrice = 18 +FieldUse = TM +Move = SWORDSDANCE +Description = A frenetic dance to uplift the fighting spirit. It sharply raises the user's Attack stat. +#------------------------------- +[TM76] +Name = TM76 +NamePlural = TM76s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = STRUGGLEBUG +Description = Resisting, the user attacks the opposing Pokémon. The targets' Sp. Atk stat is reduced. +#------------------------------- +[TM77] +Name = TM77 +NamePlural = TM77s +Pocket = Machines +Price = 1500 +BPPrice = 24 +FieldUse = TM +Move = PSYCHUP +Description = The user hypnotizes itself into copying any stat change made by the target. +#------------------------------- +[TM78] +Name = TM78 +NamePlural = TM78s +Pocket = Machines +Price = 1500 +BPPrice = 6 +FieldUse = TM +Move = BULLDOZE +Description = The user stomps down on the ground and attacks everything in the area. The targets' Speed stat is reduced. +#------------------------------- +[TM79] +Name = TM79 +NamePlural = TM79s +Pocket = Machines +Price = 3000 +BPPrice = 12 +FieldUse = TM +Move = FROSTBREATH +Description = The user blows a cold breath on the target. This attack always results in a critical hit. +#------------------------------- +[TM80] +Name = TM80 +NamePlural = TM80s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = ROCKSLIDE +Description = Large boulders are hurled at the opposing team to inflict damage. They may also make the targets flinch. +#------------------------------- +[TM81] +Name = TM81 +NamePlural = TM81s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = XSCISSOR +Description = The user slashes at the target by crossing its scythes or claws as if they were a pair of scissors. +#------------------------------- +[TM82] +Name = TM82 +NamePlural = TM82s +Pocket = Machines +Price = 1000 +BPPrice = 6 +FieldUse = TM +Move = DRAGONTAIL +Description = The user knocks away the target and drags out another Pokémon in its party. In the wild, the battle ends. +#------------------------------- +[TM83] +Name = TM83 +NamePlural = TM83s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = WORKUP +Description = The user is roused, and its Attack and Sp. Atk stats increase. +#------------------------------- +[TM84] +Name = TM84 +NamePlural = TM84s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = POISONJAB +Description = The target is stabbed with a tentacle or arm steeped in poison. It may also poison the target. +#------------------------------- +[TM85] +Name = TM85 +NamePlural = TM85s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = DREAMEATER +Description = The user eats the dreams of a sleeping target. It absorbs half the damage caused to heal the user's HP. +#------------------------------- +[TM86] +Name = TM86 +NamePlural = TM86s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = GRASSKNOT +Description = The user snares the target with grass and trips it. The heavier the target, the greater the damage. +#------------------------------- +[TM87] +Name = TM87 +NamePlural = TM87s +Pocket = Machines +Price = 1500 +BPPrice = 18 +FieldUse = TM +Move = SWAGGER +Description = The user enrages and confuses the target. However, it also sharply raises the target's Attack stat. +#------------------------------- +[TM88] +Name = TM88 +NamePlural = TM88s +Pocket = Machines +Price = 3000 +BPPrice = 18 +FieldUse = TM +Move = PLUCK +Description = The user pecks the target. If the target is holding a Berry, the user plucks it and gains its effect. +#------------------------------- +[TM89] +Name = TM89 +NamePlural = TM89s +Pocket = Machines +Price = 3000 +BPPrice = 12 +FieldUse = TM +Move = UTURN +Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. +#------------------------------- +[TM90] +Name = TM90 +NamePlural = TM90s +Pocket = Machines +Price = 2000 +BPPrice = 6 +FieldUse = TM +Move = SUBSTITUTE +Description = The user makes a copy of itself using some of its HP. The copy serves as the user's decoy. +#------------------------------- +[TM91] +Name = TM91 +NamePlural = TM91s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = FLASHCANNON +Description = The user gathers all its light energy and releases it at once. It may also lower the target's Sp. Def stat. +#------------------------------- +[TM92] +Name = TM92 +NamePlural = TM92s +Pocket = Machines +Price = 5500 +BPPrice = 6 +FieldUse = TM +Move = TRICKROOM +Description = The user creates a bizarre space in which slower Pokémon get to move first for five turns. +#------------------------------- +[TM93] +Name = TM93 +NamePlural = TM93s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = WILDCHARGE +Description = The user shrouds itself in electricity and smashes into its target. It also damages the user a little. +#------------------------------- +[TM94] +Name = TM94 +NamePlural = TM94s +Pocket = Machines +Price = 1000 +BPPrice = 6 +FieldUse = TM +Move = ROCKSMASH +Description = The user attacks with a punch that can shatter a rock. It may also lower the target's Defense stat. +#------------------------------- +[TM95] +Name = TM95 +NamePlural = TM95s +Pocket = Machines +Price = 3000 +BPPrice = 6 +FieldUse = TM +Move = SNARL +Description = The user yells as if it is ranting about something, making the target's Sp. Atk stat decrease. +#------------------------------- +[HM01] +Name = HM01 +NamePlural = HM01s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = CUT +Description = The target is cut with a scythe or claw. It can also be used to cut down thin trees. +#------------------------------- +[HM02] +Name = HM02 +NamePlural = HM02s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = FLY +Description = The user soars, then strikes on the second turn. It can also be used to fly to any familiar town. +#------------------------------- +[HM03] +Name = HM03 +NamePlural = HM03s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = SURF +Description = It swamps the area around the user with a giant wave. It can also be used for crossing water. +#------------------------------- +[HM04] +Name = HM04 +NamePlural = HM04s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = STRENGTH +Description = The target is slugged with a punch thrown at maximum power. This move can also be used to move boulders. +#------------------------------- +[HM05] +Name = HM05 +NamePlural = HM05s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = WATERFALL +Description = The user charges the target at an awesome speed. It can also be used to climb a waterfall. +#------------------------------- +[HM06] +Name = HM06 +NamePlural = HM06s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = DIVE +Description = The user dives on the first turn, and floats up and attacks on the next. It can be used to dive underwater. +#------------------------------- [BICYCLE] Name = Bicycle NamePlural = Bicycles -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -4611,7 +4571,7 @@ Description = A folding Bicycle that enables much faster movement than the Runni [OLDROD] Name = Old Rod NamePlural = Old Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -4620,7 +4580,7 @@ Description = An old and beat-up fishing rod. Use it by any body of water to fis [GOODROD] Name = Good Rod NamePlural = Good Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -4629,7 +4589,7 @@ Description = A new, good-quality fishing rod. Use it by any body of water to fi [SUPERROD] Name = Super Rod NamePlural = Super Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -4638,7 +4598,7 @@ Description = An awesome, high-tech fishing rod. Use it by any body of water to [ITEMFINDER] Name = Itemfinder NamePlural = Itemfinders -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -4647,7 +4607,7 @@ Description = A device used for finding items. If there is a hidden item nearby [DOWSINGMACHINE] Name = Dowsing Machine NamePlural = Dowsing Machines -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -4656,7 +4616,7 @@ Description = It checks for unseen items in the area and makes noise and lights [POKERADAR] Name = Poké Radar NamePlural = Poké Radars -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -4665,7 +4625,7 @@ Description = A tool that can search out Pokémon that are hiding in grass. Its [TOWNMAP] Name = Town Map NamePlural = Town Maps -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -4674,7 +4634,7 @@ Description = A very convenient map that can be viewed anytime. It even shows yo [POKEFLUTE] Name = Poké Flute NamePlural = Poké Flutes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon BattleUse = Direct @@ -4684,7 +4644,7 @@ Description = A flute that is said to instantly awaken any Pokémon. It has a lo [COINCASE] Name = Coin Case NamePlural = Coin Cases -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -4693,7 +4653,7 @@ Description = A case for holding coins obtained at the Game Corner. It holds up [SOOTSACK] Name = Soot Sack NamePlural = Soot Sacks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A sack used to gather and hold volcanic ash. @@ -4701,7 +4661,7 @@ Description = A sack used to gather and hold volcanic ash. [SILPHSCOPE] Name = Silph Scope NamePlural = Silph Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A scope that makes unseeable Pokémon visible. It is made by Silph Co. @@ -4709,7 +4669,7 @@ Description = A scope that makes unseeable Pokémon visible. It is made by Silph [DEVONSCOPE] Name = Devon Scope NamePlural = Devon Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A device by Devon that signals any unseeable Pokémon. @@ -4717,7 +4677,7 @@ Description = A device by Devon that signals any unseeable Pokémon. [SQUIRTBOTTLE] Name = Squirt Bottle NamePlural = Squirt Bottles -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Squirtle. It helps promote healthy growth of Berries planted in soft soil. @@ -4725,7 +4685,7 @@ Description = A watering can shaped like a Squirtle. It helps promote healthy gr [SPRAYDUCK] Name = Sprayduck NamePlural = Sprayducks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Psyduck. It helps promote healthy growth of Berries planted in soft soil. @@ -4733,7 +4693,7 @@ Description = A watering can shaped like a Psyduck. It helps promote healthy gro [WAILMERPAIL] Name = Wailmer Pail NamePlural = Wailmer Pails -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A nifty watering pail. Use it to promote strong growth in Berries planted in soft soil. @@ -4741,7 +4701,7 @@ Description = A nifty watering pail. Use it to promote strong growth in Berries [GRACIDEA] Name = Gracidea NamePlural = Gracideas -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -4750,7 +4710,7 @@ Description = A flower sometimes bundled in bouquets to convey gratitude on spec [AURORATICKET] Name = Aurora Ticket NamePlural = Aurora Tickets -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A ticket required to board the ship to Berth Island. It glows beautifully. @@ -4758,7 +4718,7 @@ Description = A ticket required to board the ship to Berth Island. It glows beau [OLDSEAMAP] Name = Old Sea Map NamePlural = Old Sea Maps -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A faded sea chart that shows the way to a certain island. @@ -4766,7 +4726,7 @@ Description = A faded sea chart that shows the way to a certain island. [DNASPLICERS] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -4775,7 +4735,7 @@ Description = A splicer that fuses Kyurem and a certain Pokémon. They are said [DNASPLICERSUSED] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -4784,7 +4744,7 @@ Description = A splicer that separates Kyurem and a certain Pokémon when they h [REVEALGLASS] Name = Reveal Glass NamePlural = Reveal Glasses -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -4793,7 +4753,7 @@ Description = A glass that reveals the truth. It is a mysterious glass that retu [OVALCHARM] Name = Oval Charm NamePlural = Oval Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = An oval charm said to increase the chance of Eggs being found at the Day Care. @@ -4801,7 +4761,7 @@ Description = An oval charm said to increase the chance of Eggs being found at t [SHINYCHARM] Name = Shiny Charm NamePlural = Shiny Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A shiny charm said to increase the chance of finding a Shiny Pokémon. diff --git a/PBS/Gen 6 backup/items.txt b/PBS/Gen 6 backup/items.txt index 81df41b30..5fdfa4f03 100644 --- a/PBS/Gen 6 backup/items.txt +++ b/PBS/Gen 6 backup/items.txt @@ -3,7 +3,7 @@ [REPEL] Name = Repel NamePlural = Repels -Pocket = 1 +Pocket = Items Price = 400 FieldUse = Direct Flags = Repel,Fling_30 @@ -12,7 +12,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 100 st [SUPERREPEL] Name = Super Repel NamePlural = Super Repels -Pocket = 1 +Pocket = Items Price = 700 FieldUse = Direct Flags = Repel,Fling_30 @@ -21,7 +21,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 200 st [MAXREPEL] Name = Max Repel NamePlural = Max Repels -Pocket = 1 +Pocket = Items Price = 900 FieldUse = Direct Flags = Repel,Fling_30 @@ -30,7 +30,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 250 st [BLACKFLUTE] Name = Black Flute NamePlural = Black Flutes -Pocket = 1 +Pocket = Items Price = 400 FieldUse = Direct Flags = Fling_30 @@ -40,7 +40,7 @@ Description = A black flute made from blown glass. Its melody makes wild Pokémo [WHITEFLUTE] Name = White Flute NamePlural = White Flutes -Pocket = 1 +Pocket = Items Price = 500 FieldUse = Direct Flags = Fling_30 @@ -52,7 +52,7 @@ Name = Honey NamePlural = Honey PortionName = jar of Honey PortionNamePlural = jars of Honey -Pocket = 1 +Pocket = Items Price = 300 FieldUse = Direct Flags = Fling_30 @@ -61,7 +61,7 @@ Description = A sweet honey with an aroma that attracts wild Pokémon when used [ESCAPEROPE] Name = Escape Rope NamePlural = Escape Ropes -Pocket = 1 +Pocket = Items Price = 1000 FieldUse = Direct Flags = Fling_30 @@ -70,7 +70,7 @@ Description = A long, durable rope. Use it to escape instantly from a cave or a [REDSHARD] Name = Red Shard NamePlural = Red Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small red shard. It appears to be from some sort of implement made long ago. @@ -78,7 +78,7 @@ Description = A small red shard. It appears to be from some sort of implement ma [YELLOWSHARD] Name = Yellow Shard NamePlural = Yellow Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small yellow shard. It appears to be from some sort of implement made long ago. @@ -86,7 +86,7 @@ Description = A small yellow shard. It appears to be from some sort of implement [BLUESHARD] Name = Blue Shard NamePlural = Blue Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small blue shard. It appears to be from some sort of implement made long ago. @@ -94,7 +94,7 @@ Description = A small blue shard. It appears to be from some sort of implement m [GREENSHARD] Name = Green Shard NamePlural = Green Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small green shard. It appears to be from some sort of implement made long ago. @@ -102,7 +102,7 @@ Description = A small green shard. It appears to be from some sort of implement [FIRESTONE] Name = Fire Stone NamePlural = Fire Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -112,7 +112,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [THUNDERSTONE] Name = Thunder Stone NamePlural = Thunder Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -122,7 +122,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [WATERSTONE] Name = Water Stone NamePlural = Water Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -132,7 +132,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [LEAFSTONE] Name = Leaf Stone NamePlural = Leaf Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -142,7 +142,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [MOONSTONE] Name = Moon Stone NamePlural = Moon Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -152,7 +152,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SUNSTONE] Name = Sun Stone NamePlural = Sun Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -162,7 +162,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DUSKSTONE] Name = Dusk Stone NamePlural = Dusk Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -172,7 +172,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DAWNSTONE] Name = Dawn Stone NamePlural = Dawn Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -182,7 +182,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SHINYSTONE] Name = Shiny Stone NamePlural = Shiny Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -192,7 +192,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [REDAPRICORN] Name = Red Apricorn NamePlural = Red Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A red Apricorn. It assails your nostrils. @@ -200,7 +200,7 @@ Description = A red Apricorn. It assails your nostrils. [YELLOWAPRICORN] Name = Yellow Apricorn NamePlural = Yellow Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A yellow Apricorn. It has an invigorating scent. @@ -208,7 +208,7 @@ Description = A yellow Apricorn. It has an invigorating scent. [BLUEAPRICORN] Name = Blue Apricorn NamePlural = Blue Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A blue Apricorn. It smells a bit like grass. @@ -216,7 +216,7 @@ Description = A blue Apricorn. It smells a bit like grass. [GREENAPRICORN] Name = Green Apricorn NamePlural = Green Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A green Apricorn. It has a mysterious, aromatic scent. @@ -224,7 +224,7 @@ Description = A green Apricorn. It has a mysterious, aromatic scent. [PINKAPRICORN] Name = Pink Apricorn NamePlural = Pink Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A pink Apricorn. It has a nice, sweet scent. @@ -232,7 +232,7 @@ Description = A pink Apricorn. It has a nice, sweet scent. [WHITEAPRICORN] Name = White Apricorn NamePlural = White Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A white Apricorn. It doesn't smell like anything. @@ -240,7 +240,7 @@ Description = A white Apricorn. It doesn't smell like anything. [BLACKAPRICORN] Name = Black Apricorn NamePlural = Black Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A black Apricorn. It has an indescribable scent. @@ -248,7 +248,7 @@ Description = A black Apricorn. It has an indescribable scent. [HELIXFOSSIL] Name = Helix Fossil NamePlural = Helix Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a seashell. @@ -256,7 +256,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [DOMEFOSSIL] Name = Dome Fossil NamePlural = Dome Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a shell. @@ -264,7 +264,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [OLDAMBER] Name = Old Amber NamePlural = Old Ambers -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A piece of amber that contains the genes of an ancient Pokémon. It is clear with a reddish tint. @@ -272,7 +272,7 @@ Description = A piece of amber that contains the genes of an ancient Pokémon. I [ROOTFOSSIL] Name = Root Fossil NamePlural = Root Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a plant root. @@ -280,7 +280,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [CLAWFOSSIL] Name = Claw Fossil NamePlural = Claw Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a claw. @@ -288,7 +288,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [SKULLFOSSIL] Name = Skull Fossil NamePlural = Skull Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a head. @@ -296,7 +296,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [ARMORFOSSIL] Name = Armor Fossil NamePlural = Armor Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a collar. @@ -304,7 +304,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [COVERFOSSIL] Name = Cover Fossil NamePlural = Cover Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea in ancient times. It appears to be part of its back. @@ -312,7 +312,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea in ancient t [PLUMEFOSSIL] Name = Plume Fossil NamePlural = Plume Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that flew in the sky in ancient times. It appears to be part of its wing. @@ -320,7 +320,7 @@ Description = A fossil of an ancient Pokémon that flew in the sky in ancient ti [JAWFOSSIL] Name = Jaw Fossil NamePlural = Jaw Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that once lived on the land. It appears to be part of a large jaw. @@ -328,7 +328,7 @@ Description = A fossil from a prehistoric Pokémon that once lived on the land. [SAILFOSSIL] Name = Sail Fossil NamePlural = Sail Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that once lived on the land. It looks like the impression from a skin sail. @@ -336,7 +336,7 @@ Description = A fossil from a prehistoric Pokémon that once lived on the land. [PRETTYWING] Name = Pretty Wing NamePlural = Pretty Wings -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_20 Description = Though this feather is beautiful, it's just a regular feather and has no effect on Pokémon. @@ -344,7 +344,7 @@ Description = Though this feather is beautiful, it's just a regular feather and [TINYMUSHROOM] Name = Tiny Mushroom NamePlural = Tiny Mushrooms -Pocket = 1 +Pocket = Items Price = 500 Flags = Fling_30 Description = A small and rare mushroom. It is sought after by collectors. @@ -352,7 +352,7 @@ Description = A small and rare mushroom. It is sought after by collectors. [BIGMUSHROOM] Name = Big Mushroom NamePlural = Big Mushrooms -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_30 Description = A large and rare mushroom. It is sought after by collectors. @@ -360,7 +360,7 @@ Description = A large and rare mushroom. It is sought after by collectors. [BALMMUSHROOM] Name = Balm Mushroom NamePlural = Balm Mushrooms -Pocket = 1 +Pocket = Items Price = 15000 Flags = Fling_30 Description = A rare mushroom which gives off a nice fragrance. A maniac will buy it for a high price. @@ -368,7 +368,7 @@ Description = A rare mushroom which gives off a nice fragrance. A maniac will bu [PEARL] Name = Pearl NamePlural = Pearls -Pocket = 1 +Pocket = Items Price = 2000 Flags = Fling_30 Description = A somewhat-small pearl that sparkles in a pretty silver color. It can be sold cheaply to shops. @@ -376,7 +376,7 @@ Description = A somewhat-small pearl that sparkles in a pretty silver color. It [BIGPEARL] Name = Big Pearl NamePlural = Big Pearls -Pocket = 1 +Pocket = Items Price = 8000 Flags = Fling_30 Description = A quite-large pearl that sparkles in a pretty silver color. It can be sold at a high price to shops. @@ -384,7 +384,7 @@ Description = A quite-large pearl that sparkles in a pretty silver color. It can [PEARLSTRING] Name = Pearl String NamePlural = Pearl Strings -Pocket = 1 +Pocket = Items Price = 30000 Flags = Fling_30 Description = Very large pearls that sparkle in a pretty silver color. A maniac will buy them for a high price. @@ -394,7 +394,7 @@ Name = Stardust NamePlural = Stardusts PortionName = bag of Stardust PortionNamePlural = bags of Stardust -Pocket = 1 +Pocket = Items Price = 3000 Flags = Fling_30 Description = Lovely, red-colored sand with a loose, silky feel. It can be sold at a high price to shops. @@ -402,7 +402,7 @@ Description = Lovely, red-colored sand with a loose, silky feel. It can be sold [STARPIECE] Name = Star Piece NamePlural = Star Pieces -Pocket = 1 +Pocket = Items Price = 12000 Flags = Fling_30 Description = A shard of a pretty gem that sparkles in a red color. It can be sold at a high price to shops. @@ -410,7 +410,7 @@ Description = A shard of a pretty gem that sparkles in a red color. It can be so [COMETSHARD] Name = Comet Shard NamePlural = Comet Shards -Pocket = 1 +Pocket = Items Price = 60000 Flags = Fling_30 Description = A shard which fell to the ground when a comet approached. A maniac will buy it for a high price. @@ -418,7 +418,7 @@ Description = A shard which fell to the ground when a comet approached. A maniac [NUGGET] Name = Nugget NamePlural = Nuggets -Pocket = 1 +Pocket = Items Price = 10000 Flags = Fling_30 Description = A nugget of pure gold that gives off a lustrous gleam. It can be sold at a high price to shops. @@ -426,7 +426,7 @@ Description = A nugget of pure gold that gives off a lustrous gleam. It can be s [BIGNUGGET] Name = Big Nugget NamePlural = Big Nuggets -Pocket = 1 +Pocket = Items Price = 40000 Flags = Fling_30 Description = A big nugget of pure gold that gives off a lustrous gleam. A maniac will buy it for a high price. @@ -434,7 +434,7 @@ Description = A big nugget of pure gold that gives off a lustrous gleam. A mania [HEARTSCALE] Name = Heart Scale NamePlural = Heart Scales -Pocket = 1 +Pocket = Items Price = 100 Flags = Fling_30 Description = A pretty, heart-shaped scale that is extremely rare. It glows faintly in the colors of the rainbow. @@ -442,14 +442,14 @@ Description = A pretty, heart-shaped scale that is extremely rare. It glows fain [SLOWPOKETAIL] Name = Slowpoke Tail NamePlural = Slowpoke Tails -Pocket = 1 +Pocket = Items Price = 10000 Description = A very tasty tail of something. It can be sold at a high price to shops. #------------------------------- [RAREBONE] Name = Rare Bone NamePlural = Rare Bones -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = A bone that is extremely valuable for Pokémon archaeology. It can be sold for a high price to shops. @@ -459,7 +459,7 @@ Name = Relic Copper NamePlural = Relic Coppers PortionName = Relic Copper coin PortionNamePlural = Relic Copper coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A copper coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -469,7 +469,7 @@ Name = Relic Silver NamePlural = Relic Silvers PortionName = Relic Silver coin PortionNamePlural = Relic Silver coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A silver coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -479,7 +479,7 @@ Name = Relic Gold NamePlural = Relic Golds PortionName = Relic Gold coin PortionNamePlural = Relic Gold coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A gold coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -487,7 +487,7 @@ Description = A gold coin used in a civilization about 3,000 years ago. A maniac [RELICVASE] Name = Relic Vase NamePlural = Relic Vases -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A vase made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -495,7 +495,7 @@ Description = A vase made in a civilization about 3,000 years ago. A maniac will [RELICBAND] Name = Relic Band NamePlural = Relic Bands -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A bracelet made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -503,7 +503,7 @@ Description = A bracelet made in a civilization about 3,000 years ago. A maniac [RELICSTATUE] Name = Relic Statue NamePlural = Relic Statues -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A stone figure made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -511,7 +511,7 @@ Description = A stone figure made in a civilization about 3,000 years ago. A man [RELICCROWN] Name = Relic Crown NamePlural = Relic Crowns -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A crown made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -521,7 +521,7 @@ Name = Growth Mulch NamePlural = Growth Mulch PortionName = bag of Growth Mulch PortionNamePlural = bags of Growth Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -531,7 +531,7 @@ Name = Damp Mulch NamePlural = Damp Mulch PortionName = bag of Damp Mulch PortionNamePlural = bags of Damp Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -541,7 +541,7 @@ Name = Stable Mulch NamePlural = Stable Mulch PortionName = bag of Stable Mulch PortionNamePlural = bags of Stable Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -551,7 +551,7 @@ Name = Gooey Mulch NamePlural = Gooey Mulch PortionName = bag of Gooey Mulch PortionNamePlural = bags of Gooey Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -561,7 +561,7 @@ Name = Shoal Salt NamePlural = Shoal Salts PortionName = pile of Shoal Salt PortionNamePlural = piles of Shoal Salt -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = Pure salt that can be discovered deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -569,7 +569,7 @@ Description = Pure salt that can be discovered deep inside the Shoal Cave. A man [SHOALSHELL] Name = Shoal Shell NamePlural = Shoal Shells -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = A pretty seashell that can be found deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -577,1862 +577,135 @@ Description = A pretty seashell that can be found deep inside the Shoal Cave. A [ODDKEYSTONE] Name = Odd Keystone NamePlural = Odd Keystones -Pocket = 1 +Pocket = Items Price = 2100 Flags = Fling_80 Description = A vital item that is needed to keep a stone tower from collapsing. Voices can be heard from it occasionally. #------------------------------- -[AIRBALLOON] -Name = Air Balloon -NamePlural = Air Balloons -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. -#------------------------------- -[BRIGHTPOWDER] -Name = Bright Powder -NamePlural = Bright Powders -PortionName = bag of Bright Powder -PortionNamePlural = bags of Bright Powder -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. -#------------------------------- -[EVIOLITE] -Name = Eviolite -NamePlural = Eviolites -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_40 -Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. -#------------------------------- -[FLOATSTONE] -Name = Float Stone -NamePlural = Float Stones -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = A very light stone. It reduces the weight of a Pokémon when held. -#------------------------------- -[DESTINYKNOT] -Name = Destiny Knot -NamePlural = Destiny Knots -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = A long, thin, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. -#------------------------------- -[ROCKYHELMET] -Name = Rocky Helmet -NamePlural = Rocky Helmets -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_60 -Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. -#------------------------------- -[ASSAULTVEST] -Name = Assault Vest -NamePlural = Assault Vests -Pocket = 1 -Price = 1000 -BPPrice = 48 -Flags = Fling_80 -Description = An item to be held by a Pokémon. This offensive vest raises Sp. Def but prevents the use of status moves. -#------------------------------- -[SAFETYGOGGLES] -Name = Safety Goggles -NamePlural = Safety Goggles -PortionName = pair of Safety Goggles -PortionNamePlural = pairs of Safety Goggles -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_80 -Description = An item to be held by a Pokémon. They protect the holder from weather-related damage and powder. -#------------------------------- -[EJECTBUTTON] -Name = Eject Button -NamePlural = Eject Buttons -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_30 -Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. -#------------------------------- -[REDCARD] -Name = Red Card -NamePlural = Red Cards -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_10 -Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. -#------------------------------- -[SHEDSHELL] -Name = Shed Shell -NamePlural = Shed Shells -Pocket = 1 -Price = 4000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. -#------------------------------- -[SMOKEBALL] -Name = Smoke Ball -NamePlural = Smoke Balls -Pocket = 1 -Price = 4000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. -#------------------------------- -[LUCKYEGG] -Name = Lucky Egg -NamePlural = Lucky Eggs -Pocket = 1 -Price = 10000 -BPPrice = 77 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. -#------------------------------- -[EXPSHARE] -Name = Exp. Share -NamePlural = Exp. Shares -Pocket = 1 -Price = 3000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. -#------------------------------- -[AMULETCOIN] -Name = Amulet Coin -NamePlural = Amulet Coins -Pocket = 1 -Price = 10000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[SOOTHEBELL] -Name = Soothe Bell -NamePlural = Soothe Bells -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. -#------------------------------- -[CLEANSETAG] -Name = Cleanse Tag -NamePlural = Cleanse Tags -Pocket = 1 -Price = 5000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[CHOICEBAND] -Name = Choice Band -NamePlural = Choice Bands -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. -#------------------------------- -[CHOICESPECS] -Name = Choice Specs -NamePlural = Choice Specs -PortionName = pair of Choice Specs -PortionNamePlural = pairs of Choice Specs -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. -#------------------------------- -[CHOICESCARF] -Name = Choice Scarf -NamePlural = Choice Scarves -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. -#------------------------------- -[HEATROCK] -Name = Heat Rock -NamePlural = Heat Rocks -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. -#------------------------------- -[DAMPROCK] -Name = Damp Rock -NamePlural = Damp Rocks -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. -#------------------------------- -[SMOOTHROCK] -Name = Smooth Rock -NamePlural = Smooth Rocks -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. -#------------------------------- -[ICYROCK] -Name = Icy Rock -NamePlural = Icy Rocks -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_40 -Description = A Pokémon held item that extends the duration of the move Hail used by the holder. -#------------------------------- -[LIGHTCLAY] -Name = Light Clay -NamePlural = Light Clays -PortionName = lump of Light Clay -PortionNamePlural = lumps of Light Clay -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. -#------------------------------- -[GRIPCLAW] -Name = Grip Claw -NamePlural = Grip Claws -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_90 -Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. -#------------------------------- -[BINDINGBAND] -Name = Binding Band -NamePlural = Binding Bands -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = A band that increases the power of binding moves when held. -#------------------------------- -[BIGROOT] -Name = Big Root -NamePlural = Big Roots -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_10 -Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. -#------------------------------- -[BLACKSLUDGE] -Name = Black Sludge -NamePlural = Black Sludges -PortionName = blob of Black Sludge -PortionNamePlural = blobs of Black Sludge -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. -#------------------------------- -[LEFTOVERS] -Name = Leftovers -NamePlural = Leftovers -PortionName = serving of Leftovers -PortionNamePlural = servings of Leftovers -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. -#------------------------------- -[SHELLBELL] -Name = Shell Bell -NamePlural = Shell Bells -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. -#------------------------------- -[MENTALHERB] -Name = Mental Herb -NamePlural = Mental Herbs -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. -#------------------------------- -[WHITEHERB] -Name = White Herb -NamePlural = White Herbs -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. -#------------------------------- -[POWERHERB] -Name = Power Herb -NamePlural = Power Herbs -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_10 -Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. -#------------------------------- -[ABSORBBULB] -Name = Absorb Bulb -NamePlural = Absorb Bulbs -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_30 -Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. -#------------------------------- -[CELLBATTERY] -Name = Cell Battery -NamePlural = Cell Batteries -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_30 -Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. -#------------------------------- -[LUMINOUSMOSS] -Name = Luminous Moss -NamePlural = Luminous Moss -PortionName = clump of Luminous Moss -PortionNamePlural = clumps of Luminous Moss -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Sp. Def if hit by a Water-type attack. It can only be used once. -#------------------------------- -[SNOWBALL] -Name = Snowball -NamePlural = Snowballs -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Attack if hit by an Ice-type attack. It can only be used once. -#------------------------------- -[WEAKNESSPOLICY] -Name = Weakness Policy -NamePlural = Weakness Policies -Pocket = 1 -Price = 1000 -BPPrice = 32 -Flags = Fling_80 -Description = An item to be held by a Pokémon. The holder's Attack and Sp. Atk sharply increase if hit by a move it's weak to. -#------------------------------- -[LIFEORB] -Name = Life Orb -NamePlural = Life Orbs -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. -#------------------------------- -[EXPERTBELT] -Name = Expert Belt -NamePlural = Expert Belts -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. -#------------------------------- -[METRONOME] -Name = Metronome -NamePlural = Metronomes -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. -#------------------------------- -[MUSCLEBAND] -Name = Muscle Band -NamePlural = Muscle Bands -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. -#------------------------------- -[WISEGLASSES] -Name = Wise Glasses -NamePlural = Wise Glasses -PortionName = pair of Wise Glasses -PortionNamePlural = pairs of Wise Glasses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. -#------------------------------- -[RAZORCLAW] -Name = Razor Claw -NamePlural = Razor Claws -Pocket = 1 -Price = 5000 -BPPrice = 48 -Flags = Fling_80 -Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. -#------------------------------- -[SCOPELENS] -Name = Scope Lens -NamePlural = Scope Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. -#------------------------------- -[WIDELENS] -Name = Wide Lens -NamePlural = Wide Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. -#------------------------------- -[ZOOMLENS] -Name = Zoom Lens -NamePlural = Zoom Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. -#------------------------------- -[KINGSROCK] -Name = King's Rock -NamePlural = King's Rocks -Pocket = 1 -Price = 5000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. -#------------------------------- -[RAZORFANG] -Name = Razor Fang -NamePlural = Razor Fangs -Pocket = 1 -Price = 5000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. -#------------------------------- -[LAGGINGTAIL] -Name = Lagging Tail -NamePlural = Lagging Tails -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. -#------------------------------- -[QUICKCLAW] -Name = Quick Claw -NamePlural = Quick Claws -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_80 -Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. -#------------------------------- -[FOCUSBAND] -Name = Focus Band -NamePlural = Focus Bands -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. -#------------------------------- -[FOCUSSASH] -Name = Focus Sash -NamePlural = Focus Sashes -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. -#------------------------------- -[FLAMEORB] -Name = Flame Orb -NamePlural = Flame Orbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. -#------------------------------- -[TOXICORB] -Name = Toxic Orb -NamePlural = Toxic Orbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. -#------------------------------- -[STICKYBARB] -Name = Sticky Barb -NamePlural = Sticky Barbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_80 -Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. -#------------------------------- -[IRONBALL] -Name = Iron Ball -NamePlural = Iron Balls -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_130 -Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. -#------------------------------- -[RINGTARGET] -Name = Ring Target -NamePlural = Ring Targets -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_10 -Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. -#------------------------------- -[MACHOBRACE] -Name = Macho Brace -NamePlural = Macho Braces -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_60 -Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. -#------------------------------- -[POWERWEIGHT] -Name = Power Weight -NamePlural = Power Weights -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBRACER] -Name = Power Bracer -NamePlural = Power Bracers -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBELT] -Name = Power Belt -NamePlural = Power Belts -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERLENS] -Name = Power Lens -NamePlural = Power Lenses -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBAND] -Name = Power Band -NamePlural = Power Bands -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERANKLET] -Name = Power Anklet -NamePlural = Power Anklets -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. -#------------------------------- -[LAXINCENSE] -Name = Lax Incense -NamePlural = Lax Incenses -PortionName = jar of Lax Incense -PortionNamePlural = jars of Lax Incense -Pocket = 1 -Price = 5000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. -#------------------------------- -[FULLINCENSE] -Name = Full Incense -NamePlural = Full Incenses -PortionName = jar of Full Incense -PortionNamePlural = jars of Full Incense -Pocket = 1 -Price = 5000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. -#------------------------------- -[LUCKINCENSE] -Name = Luck Incense -NamePlural = Luck Incenses -PortionName = jar of Luck Incense -PortionNamePlural = jars of Luck Incense -Pocket = 1 -Price = 11000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[PUREINCENSE] -Name = Pure Incense -NamePlural = Pure Incenses -PortionName = jar of Pure Incense -PortionNamePlural = jars of Pure Incense -Pocket = 1 -Price = 6000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[SEAINCENSE] -Name = Sea Incense -NamePlural = Sea Incenses -PortionName = jar of Sea Incense -PortionNamePlural = jars of Sea Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[WAVEINCENSE] -Name = Wave Incense -NamePlural = Wave Incenses -PortionName = jar of Wave Incense -PortionNamePlural = jars of Wave Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[ROSEINCENSE] -Name = Rose Incense -NamePlural = Rose Incenses -PortionName = jar of Rose Incense -PortionNamePlural = jars of Rose Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. -#------------------------------- -[ODDINCENSE] -Name = Odd Incense -NamePlural = Odd Incenses -PortionName = jar of Odd Incense -PortionNamePlural = jars of Odd Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. -#------------------------------- -[ROCKINCENSE] -Name = Rock Incense -NamePlural = Rock Incenses -PortionName = jar of Rock Incense -PortionNamePlural = jars of Rock Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. -#------------------------------- -[CHARCOAL] -Name = Charcoal -NamePlural = Charcoals -PortionName = piece of Charcoal -PortionNamePlural = pieces of Charcoal -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. -#------------------------------- -[MYSTICWATER] -Name = Mystic Water -NamePlural = Mystic Waters -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. -#------------------------------- -[MAGNET] -Name = Magnet -NamePlural = Magnets -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. -#------------------------------- -[MIRACLESEED] -Name = Miracle Seed -NamePlural = Miracle Seeds -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. -#------------------------------- -[NEVERMELTICE] -Name = Never-Melt Ice -NamePlural = Never-Melt Ices -PortionName = piece of Never-Melt Ice -PortionNamePlural = pieces of Never-Melt Ice -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. -#------------------------------- -[BLACKBELT] -Name = Black Belt -NamePlural = Black Belts -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. -#------------------------------- -[POISONBARB] -Name = Poison Barb -NamePlural = Poison Barbs -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. -#------------------------------- -[SOFTSAND] -Name = Soft Sand -NamePlural = Soft Sand -PortionName = bag of Soft Sand -PortionNamePlural = bags of Soft Sand -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. -#------------------------------- -[SHARPBEAK] -Name = Sharp Beak -NamePlural = Sharp Beaks -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. -#------------------------------- -[TWISTEDSPOON] -Name = Twisted Spoon -NamePlural = Twisted Spoons -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. -#------------------------------- -[SILVERPOWDER] -Name = Silver Powder -NamePlural = Silver Powders -PortionName = pile of Silver Powder -PortionNamePlural = piles of Silver Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. -#------------------------------- -[HARDSTONE] -Name = Hard Stone -NamePlural = Hard Stones -Pocket = 1 -Price = 1000 -Flags = Fling_100 -Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. -#------------------------------- -[SPELLTAG] -Name = Spell Tag -NamePlural = Spell Tags -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. -#------------------------------- -[DRAGONFANG] -Name = Dragon Fang -NamePlural = Dragon Fangs -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. -#------------------------------- -[BLACKGLASSES] -Name = Black Glasses -NamePlural = Black Glasses -PortionName = pair of Black Glasses -PortionNamePlural = pairs of Black Glasses -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. -#------------------------------- -[METALCOAT] -Name = Metal Coat -NamePlural = Metal Coats -Pocket = 1 -Price = 2000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. -#------------------------------- -[SILKSCARF] -Name = Silk Scarf -NamePlural = Silk Scarves -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. -#------------------------------- -[FLAMEPLATE] -Name = Flame Plate -NamePlural = Flame Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. -#------------------------------- -[SPLASHPLATE] -Name = Splash Plate -NamePlural = Splash Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. -#------------------------------- -[ZAPPLATE] -Name = Zap Plate -NamePlural = Zap Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. -#------------------------------- -[MEADOWPLATE] -Name = Meadow Plate -NamePlural = Meadow Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. -#------------------------------- -[ICICLEPLATE] -Name = Icicle Plate -NamePlural = Icicle Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. -#------------------------------- -[FISTPLATE] -Name = Fist Plate -NamePlural = Fist Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. -#------------------------------- -[TOXICPLATE] -Name = Toxic Plate -NamePlural = Toxic Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. -#------------------------------- -[EARTHPLATE] -Name = Earth Plate -NamePlural = Earth Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. -#------------------------------- -[SKYPLATE] -Name = Sky Plate -NamePlural = Sky Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. -#------------------------------- -[MINDPLATE] -Name = Mind Plate -NamePlural = Mind Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. -#------------------------------- -[INSECTPLATE] -Name = Insect Plate -NamePlural = Insect Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. -#------------------------------- -[STONEPLATE] -Name = Stone Plate -NamePlural = Stone Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. -#------------------------------- -[SPOOKYPLATE] -Name = Spooky Plate -NamePlural = Spooky Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. -#------------------------------- -[DRACOPLATE] -Name = Draco Plate -NamePlural = Draco Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. -#------------------------------- -[DREADPLATE] -Name = Dread Plate -NamePlural = Dread Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. -#------------------------------- -[IRONPLATE] -Name = Iron Plate -NamePlural = Iron Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. -#------------------------------- -[PIXIEPLATE] -Name = Pixie Plate -NamePlural = Pixie Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fairy-type moves. -#------------------------------- -[FIREGEM] -Name = Fire Gem -NamePlural = Fire Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. -#------------------------------- -[WATERGEM] -Name = Water Gem -NamePlural = Water Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. -#------------------------------- -[ELECTRICGEM] -Name = Electric Gem -NamePlural = Electric Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. -#------------------------------- -[GRASSGEM] -Name = Grass Gem -NamePlural = Grass Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. -#------------------------------- -[ICEGEM] -Name = Ice Gem -NamePlural = Ice Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. -#------------------------------- -[FIGHTINGGEM] -Name = Fighting Gem -NamePlural = Fighting Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. -#------------------------------- -[POISONGEM] -Name = Poison Gem -NamePlural = Poison Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. -#------------------------------- -[GROUNDGEM] -Name = Ground Gem -NamePlural = Ground Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. -#------------------------------- -[FLYINGGEM] -Name = Flying Gem -NamePlural = Flying Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. -#------------------------------- -[PSYCHICGEM] -Name = Psychic Gem -NamePlural = Psychic Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. -#------------------------------- -[BUGGEM] -Name = Bug Gem -NamePlural = Bug Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. -#------------------------------- -[ROCKGEM] -Name = Rock Gem -NamePlural = Rock Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. -#------------------------------- -[GHOSTGEM] -Name = Ghost Gem -NamePlural = Ghost Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. -#------------------------------- -[DRAGONGEM] -Name = Dragon Gem -NamePlural = Dragon Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. -#------------------------------- -[DARKGEM] -Name = Dark Gem -NamePlural = Dark Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. -#------------------------------- -[STEELGEM] -Name = Steel Gem -NamePlural = Steel Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. -#------------------------------- -[FAIRYGEM] -Name = Fairy Gem -NamePlural = Fairy Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of the fey. When held, it strengthens the power of a Fairy-type move only once. -#------------------------------- -[NORMALGEM] -Name = Normal Gem -NamePlural = Normal Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. -#------------------------------- -[LIGHTBALL] -Name = Light Ball -NamePlural = Light Balls -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. -#------------------------------- -[LUCKYPUNCH] -Name = Lucky Punch -NamePlural = Lucky Punches -Pocket = 1 -Price = 1000 -BPPrice = 7 -Flags = Fling_40 -Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. -#------------------------------- -[METALPOWDER] -Name = Metal Powder -NamePlural = Metal Powders -PortionName = bag of Metal Powder -PortionNamePlural = bags of Metal Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. -#------------------------------- -[QUICKPOWDER] -Name = Quick Powder -NamePlural = Quick Powders -PortionName = bag of Quick Powder -PortionNamePlural = bags of Quick Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. -#------------------------------- -[THICKCLUB] -Name = Thick Club -NamePlural = Thick Clubs -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. -#------------------------------- -[STICK] -Name = Stick -NamePlural = Sticks -Pocket = 1 -Price = 1000 -Flags = Fling_60 -Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. -#------------------------------- -[SOULDEW] -Name = Soul Dew -NamePlural = Soul Dews -Pocket = 1 -Price = 0 -Flags = Fling_30 -Description = A wondrous orb to be held by either Latios or Latias. It raises the power of Psychic- and Dragon-type moves. -#------------------------------- -[DEEPSEATOOTH] -Name = Deep Sea Tooth -NamePlural = Deep Sea Teeth -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_90 -Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. -#------------------------------- -[DEEPSEASCALE] -Name = Deep Sea Scale -NamePlural = Deep Sea Scales -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_30 -Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. -#------------------------------- -[ADAMANTORB] -Name = Adamant Orb -NamePlural = Adamant Orbs -Pocket = 1 -Price = 10000 -Flags = Fling_60 -Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. -#------------------------------- -[LUSTROUSORB] -Name = Lustrous Orb -NamePlural = Lustrous Orbs -Pocket = 1 -Price = 10000 -Flags = Fling_60 -Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. -#------------------------------- -[GRISEOUSORB] -Name = Griseous Orb -NamePlural = Griseous Orbs -Pocket = 1 -Price = 10000 -Flags = Fling_60 -Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. -#------------------------------- -[DOUSEDRIVE] -Name = Douse Drive -NamePlural = Douse Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. -#------------------------------- -[SHOCKDRIVE] -Name = Shock Drive -NamePlural = Shock Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. -#------------------------------- -[BURNDRIVE] -Name = Burn Drive -NamePlural = Burn Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. -#------------------------------- -[CHILLDRIVE] -Name = Chill Drive -NamePlural = Chill Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. -#------------------------------- -[EVERSTONE] -Name = Everstone -NamePlural = Everstones -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. -#------------------------------- -[DRAGONSCALE] -Name = Dragon Scale -NamePlural = Dragon Scales -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_30 -Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. -#------------------------------- -[UPGRADE] -Name = Up-Grade -NamePlural = Up-Grades -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_30 -Description = A transparent device filled with all sorts of data. It was produced by Silph Co. -#------------------------------- -[DUBIOUSDISC] -Name = Dubious Disc -NamePlural = Dubious Discs -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_50 -Description = A transparent device overflowing with dubious data. Its producer is unknown. -#------------------------------- -[PROTECTOR] -Name = Protector -NamePlural = Protectors -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. -#------------------------------- -[ELECTIRIZER] -Name = Electirizer -NamePlural = Electirizers -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. -#------------------------------- -[MAGMARIZER] -Name = Magmarizer -NamePlural = Magmarizers -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. -#------------------------------- -[REAPERCLOTH] -Name = Reaper Cloth -NamePlural = Reaper Cloths -PortionName = scrap of Reaper Cloth -PortionNamePlural = scraps of Reaper Cloth -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_10 -Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. -#------------------------------- -[PRISMSCALE] -Name = Prism Scale -NamePlural = Prism Scales -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_30 -Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. -#------------------------------- -[OVALSTONE] -Name = Oval Stone -NamePlural = Oval Stones -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. -#------------------------------- -[WHIPPEDDREAM] -Name = Whipped Dream -NamePlural = Whipped Dreams -PortionName = dollop of Whipped Dream -PortionNamePlural = dollops of Whipped Dream -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A soft and sweet treat made of fluffy, puffy and whirled cream. It's loved by a certain Pokémon. -#------------------------------- -[SACHET] -Name = Sachet -NamePlural = Sachets -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A sachet filled with slightly overwhelming fragrant perfumes. Yet it's loved by a certain Pokémon. -#------------------------------- -[REDSCARF] -Name = Red Scarf -NamePlural = Red Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Cool aspect of the holder in a Contest. -#------------------------------- -[BLUESCARF] -Name = Blue Scarf -NamePlural = Blue Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Beauty aspect of the holder in a Contest. -#------------------------------- -[PINKSCARF] -Name = Pink Scarf -NamePlural = Pink Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Cute aspect of the holder in a Contest. -#------------------------------- -[GREENSCARF] -Name = Green Scarf -NamePlural = Green Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Smart aspect of the holder in a Contest. -#------------------------------- -[YELLOWSCARF] -Name = Yellow Scarf -NamePlural = Yellow Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Tough aspect of the holder in a Contest. -#------------------------------- -[VENUSAURITE] -Name = Venusaurite -NamePlural = Venusaurites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Venusaur hold it, and it will be able to Mega Evolve. -#------------------------------- -[CHARIZARDITEX] -Name = Charizardite X -NamePlural = Charizardite Xs -Pocket = 1 -Price = 0 -BPPrice = 64 -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. -#------------------------------- -[CHARIZARDITEY] -Name = Charizardite Y -NamePlural = Charizardite Ys -Pocket = 1 -Price = 0 -BPPrice = 64 -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. -#------------------------------- -[BLASTOISINITE] -Name = Blastoisinite -NamePlural = Blastoisinites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Blastoise hold it, and it will be able to Mega Evolve. -#------------------------------- -[BEEDRILLITE] -Name = Beedrillite -NamePlural = Beedrillites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Beedrill hold it, and it will be able to Mega Evolve. -#------------------------------- -[PIDGEOTITE] -Name = Pidgeotite -NamePlural = Pidgeotites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Pidgeot hold it, and it will be able to Mega Evolve. -#------------------------------- -[ALAKAZITE] -Name = Alakazite -NamePlural = Alakazites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Alakazam hold it, and it will be able to Mega Evolve. -#------------------------------- -[SLOWBRONITE] -Name = Slowbronite -NamePlural = Slowbronites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Slowbro hold it, and it will be able to Mega Evolve. -#------------------------------- -[GENGARITE] -Name = Gengarite -NamePlural = Gengarites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gengar hold it, and it will be able to Mega Evolve. -#------------------------------- -[KANGASKHANITE] -Name = Kangaskhanite -NamePlural = Kangaskhanites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Kangaskhan hold it, and it will be able to Mega Evolve. -#------------------------------- -[PINSIRITE] -Name = Pinsirite -NamePlural = Pinsirites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Pinsir hold it, and it will be able to Mega Evolve. -#------------------------------- -[GYARADOSITE] -Name = Gyaradosite -NamePlural = Gyaradosites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gyarados hold it, and it will be able to Mega Evolve. -#------------------------------- -[AERODACTYLITE] -Name = Aerodactylite -NamePlural = Aerodactylites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Aerodactyl hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEWTWONITEX] -Name = Mewtwonite X -NamePlural = Mewtwonite Xs -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEWTWONITEY] -Name = Mewtwonite Y -NamePlural = Mewtwonite Ys -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. -#------------------------------- -[AMPHAROSITE] -Name = Ampharosite -NamePlural = Ampharosites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Ampharos hold it, and it will be able to Mega Evolve. -#------------------------------- -[STEELIXITE] -Name = Steelixite -NamePlural = Steelixites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Steelix hold it, and it will be able to Mega Evolve. -#------------------------------- -[SCIZORITE] -Name = Scizorite -NamePlural = Scizorites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Scizor hold it, and it will be able to Mega Evolve. -#------------------------------- -[HERACRONITE] -Name = Heracronite -NamePlural = Heracronites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Heracross hold it, and it will be able to Mega Evolve. -#------------------------------- -[HOUNDOOMINITE] -Name = Houndoominite -NamePlural = Houndoominites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Houndoom hold it, and it will be able to Mega Evolve. -#------------------------------- -[TYRANITARITE] -Name = Tyranitarite -NamePlural = Tyranitarites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Tyranitar hold it, and it will be able to Mega Evolve. -#------------------------------- -[SCEPTILITE] -Name = Sceptilite -NamePlural = Sceptilites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sceptile hold it, and it will be able to Mega Evolve. -#------------------------------- -[BLAZIKENITE] -Name = Blazikenite -NamePlural = Blazikenites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Blaziken hold it, and it will be able to Mega Evolve. -#------------------------------- -[SWAMPERTITE] -Name = Swampertite -NamePlural = Swampertites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Swampert hold it, and it will be able to Mega Evolve. -#------------------------------- -[GARDEVOIRITE] -Name = Gardevoirite -NamePlural = Gardevoirites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gardevoir hold it, and it will be able to Mega Evolve. -#------------------------------- -[SABLENITE] -Name = Sablenite -NamePlural = Sablenites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sableye hold it, and it will be able to Mega Evolve. -#------------------------------- -[MAWILITE] -Name = Mawilite -NamePlural = Mawilites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mawile hold it, and it will be able to Mega Evolve. -#------------------------------- -[AGGRONITE] -Name = Aggronite -NamePlural = Aggronites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Aggron hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEDICHAMITE] -Name = Medichamite -NamePlural = Medichamites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Medicham hold it, and it will be able to Mega Evolve. -#------------------------------- -[MANECTITE] -Name = Manectite -NamePlural = Manectites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Manectric hold it, and it will be able to Mega Evolve. -#------------------------------- -[SHARPEDONITE] -Name = Sharpedonite -NamePlural = Sharpedonites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sharpedo hold it, and it will be able to Mega Evolve. -#------------------------------- -[CAMERUPTITE] -Name = Cameruptite -NamePlural = Cameruptites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Camerupt hold it, and it will be able to Mega Evolve. -#------------------------------- -[ALTARIANITE] -Name = Altarianite -NamePlural = Altarianites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Altaria hold it, and it will be able to Mega Evolve. -#------------------------------- -[BANETTITE] -Name = Banettite -NamePlural = Banettites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Banette hold it, and it will be able to Mega Evolve. -#------------------------------- -[ABSOLITE] -Name = Absolite -NamePlural = Absolites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Absol hold it, and it will be able to Mega Evolve. -#------------------------------- -[GLALITITE] -Name = Glalitite -NamePlural = Glalitites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Glalie hold it, and it will be able to Mega Evolve. -#------------------------------- -[SALAMENCITE] -Name = Salamencite -NamePlural = Salamencites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Salamence hold it, and it will be able to Mega Evolve. -#------------------------------- -[METAGROSSITE] -Name = Metagrossite -NamePlural = Metagrossites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Metagross hold it, and it will be able to Mega Evolve. -#------------------------------- -[LATIASITE] -Name = Latiasite -NamePlural = Latiasites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Latias hold it, and it will be able to Mega Evolve. -#------------------------------- -[LATIOSITE] -Name = Latiosite -NamePlural = Latiosites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Latios hold it, and it will be able to Mega Evolve. -#------------------------------- -[LOPUNNITE] -Name = Lopunnite -NamePlural = Lopunnites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Lopunny hold it, and it will be able to Mega Evolve. -#------------------------------- -[GARCHOMPITE] -Name = Garchompite -NamePlural = Garchompites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Garchomp hold it, and it will be able to Mega Evolve. -#------------------------------- -[LUCARIONITE] -Name = Lucarionite -NamePlural = Lucarionites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Lucario hold it, and it will be able to Mega Evolve. -#------------------------------- -[ABOMASITE] -Name = Abomasite -NamePlural = Abomasites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Abomasnow hold it, and it will be able to Mega Evolve. -#------------------------------- -[GALLADITE] -Name = Galladite -NamePlural = Galladites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gallade hold it, and it will be able to Mega Evolve. -#------------------------------- -[AUDINITE] -Name = Audinite -NamePlural = Audinites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Audino hold it, and it will be able to Mega Evolve. -#------------------------------- -[DIANCITE] -Name = Diancite -NamePlural = Diancites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Diancie hold it, and it will be able to Mega Evolve. -#------------------------------- -[REDORB] -Name = Red Orb -NamePlural = Red Orbs -Pocket = 1 -Price = 0 -BPPrice = 64 -Description = A shiny red orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. -#------------------------------- -[BLUEORB] -Name = Blue Orb -NamePlural = Blue Orbs -Pocket = 1 -Price = 0 -BPPrice = 64 -Description = A shiny blue orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. +[GRASSMAIL] +Name = Grass Mail +NamePlural = Grass Mail +PortionName = piece of Grass Mail +PortionNamePlural = pieces of Grass Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. +#------------------------------- +[FLAMEMAIL] +Name = Flame Mail +NamePlural = Flame Mail +PortionName = piece of Flame Mail +PortionNamePlural = pieces of Flame Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. +#------------------------------- +[BUBBLEMAIL] +Name = Bubble Mail +NamePlural = Bubble Mail +PortionName = piece of Bubble Mail +PortionNamePlural = pieces of Bubble Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. +#------------------------------- +[BLOOMMAIL] +Name = Bloom Mail +NamePlural = Bloom Mail +PortionName = piece of Bloom Mail +PortionNamePlural = pieces of Bloom Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[TUNNELMAIL] +Name = Tunnel Mail +NamePlural = Tunnel Mail +PortionName = piece of Tunnel Mail +PortionNamePlural = pieces of Tunnel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. +#------------------------------- +[STEELMAIL] +Name = Steel Mail +NamePlural = Steel Mail +PortionName = piece of Steel Mail +PortionNamePlural = pieces of Steel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. +#------------------------------- +[HEARTMAIL] +Name = Heart Mail +NamePlural = Heart Mail +PortionName = piece of Heart Mail +PortionNamePlural = pieces of Heart Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[SNOWMAIL] +Name = Snow Mail +NamePlural = Snow Mail +PortionName = piece of Snow Mail +PortionNamePlural = pieces of Snow Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. +#------------------------------- +[SPACEMAIL] +Name = Space Mail +NamePlural = Space Mail +PortionName = piece of Space Mail +PortionNamePlural = pieces of Space Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print showing the huge expanse of space. Let a Pokémon hold it for delivery. +#------------------------------- +[AIRMAIL] +Name = Air Mail +NamePlural = Air Mail +PortionName = piece of Air Mail +PortionNamePlural = pieces of Air Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. +#------------------------------- +[MOSAICMAIL] +Name = Mosaic Mail +NamePlural = Mosaic Mail +PortionName = piece of Mosaic Mail +PortionNamePlural = pieces of Mosaic Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. +#------------------------------- +[BRICKMAIL] +Name = Brick Mail +NamePlural = Brick Mail +PortionName = piece of Brick Mail +PortionNamePlural = pieces of Brick Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. #------------------------------- [POTION] Name = Potion NamePlural = Potions -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2442,7 +715,7 @@ Description = A spray-type medicine for wounds. It restores the HP of one Pokém [SUPERPOTION] Name = Super Potion NamePlural = Super Potions -Pocket = 2 +Pocket = Medicine Price = 700 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2452,7 +725,7 @@ Description = A spray-type medicine for wounds. It restores the HP of one Pokém [HYPERPOTION] Name = Hyper Potion NamePlural = Hyper Potions -Pocket = 2 +Pocket = Medicine Price = 1500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2462,7 +735,7 @@ Description = A spray-type medicine for wounds. It restores the HP of one Pokém [MAXPOTION] Name = Max Potion NamePlural = Max Potions -Pocket = 2 +Pocket = Medicine Price = 2500 BPPrice = 2 FieldUse = OnPokemon @@ -2473,7 +746,7 @@ Description = A spray-type medicine for wounds. It completely restores the HP of [FULLRESTORE] Name = Full Restore NamePlural = Full Restores -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2485,7 +758,7 @@ Name = Sacred Ash NamePlural = Sacred Ashes PortionName = bag of Sacred Ash PortionNamePlural = bags of Sacred Ash -Pocket = 2 +Pocket = Medicine Price = 50000 FieldUse = Direct Flags = Fling_30 @@ -2494,7 +767,7 @@ Description = It revives all fainted Pokémon. In doing so, it also fully restor [AWAKENING] Name = Awakening NamePlural = Awakenings -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2504,7 +777,7 @@ Description = A spray-type medicine. It awakens a Pokémon from the clutches of [ANTIDOTE] Name = Antidote NamePlural = Antidotes -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2514,7 +787,7 @@ Description = A spray-type medicine. It lifts the effect of poison from one Pok [BURNHEAL] Name = Burn Heal NamePlural = Burn Heals -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2524,7 +797,7 @@ Description = A spray-type medicine. It heals a single Pokémon that is sufferin [PARALYZEHEAL] Name = Paralyze Heal NamePlural = Paralyze Heals -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2534,7 +807,7 @@ Description = A spray-type medicine. It eliminates paralysis from a single Poké [ICEHEAL] Name = Ice Heal NamePlural = Ice Heals -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2544,7 +817,7 @@ Description = A spray-type medicine. It defrosts a Pokémon that has been frozen [FULLHEAL] Name = Full Heal NamePlural = Full Heals -Pocket = 2 +Pocket = Medicine Price = 400 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2554,7 +827,7 @@ Description = A spray-type medicine. It heals all the status problems of a singl [RAGECANDYBAR] Name = Rage Candy Bar NamePlural = Rage Candy Bars -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2564,7 +837,7 @@ Description = Mahogany Town's famous candy. It can be used once to heal all the [LAVACOOKIE] Name = Lava Cookie NamePlural = Lava Cookies -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2574,7 +847,7 @@ Description = Lavaridge Town's local specialty. It heals all the status problems [OLDGATEAU] Name = Old Gateau NamePlural = Old Gateaux -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2584,7 +857,7 @@ Description = Old Chateau's hidden specialty. It heals all the status problems o [CASTELIACONE] Name = Casteliacone NamePlural = Casteliacones -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2594,27 +867,27 @@ Description = Castelia City's specialty, soft-serve ice cream. It heals all the [LUMIOSEGALETTE] Name = Lumiose Galette NamePlural = Lumiose Galettes -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = A popular treat in Lumiose City. It can be used once to heal all the status conditions of a Pokémon. +Description = A popular treat in Lumiose City. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [SHALOURSABLE] Name = Shalour Sable NamePlural = Shalour Sables -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = Shalour City's famous shortbread. It can be used once to heal all the status conditions of a Pokémon. +Description = Shalour City's famous shortbread. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [REVIVE] Name = Revive NamePlural = Revives -Pocket = 2 +Pocket = Medicine Price = 2000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2624,7 +897,7 @@ Description = A medicine that revives a fainted Pokémon. It restores half the P [MAXREVIVE] Name = Max Revive NamePlural = Max Revives -Pocket = 2 +Pocket = Medicine Price = 4000 BPPrice = 32 FieldUse = OnPokemon @@ -2637,7 +910,7 @@ Name = Berry Juice NamePlural = Berry Juices PortionName = cup of Berry Juice PortionNamePlural = cups of Berry Juice -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2647,7 +920,7 @@ Description = A 100% pure juice made of Berries. It restores the HP of one Poké [SWEETHEART] Name = Sweet Heart NamePlural = Sweet Hearts -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2659,7 +932,7 @@ Name = Fresh Water NamePlural = Fresh Waters PortionName = bottle of Fresh Water PortionNamePlural = bottles of Fresh Water -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2671,7 +944,7 @@ Name = Soda Pop NamePlural = Soda Pops PortionName = bottle of Soda Pop PortionNamePlural = bottles of Soda Pop -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2683,7 +956,7 @@ Name = Lemonade NamePlural = Lemonades PortionName = can of Lemonade PortionNamePlural = cans of Lemonade -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2695,7 +968,7 @@ Name = Moomoo Milk NamePlural = Moomoo Milks PortionName = bottle of Moomoo Milk PortionNamePlural = bottles of Moomoo Milk -Pocket = 2 +Pocket = Medicine Price = 600 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2707,7 +980,7 @@ Name = Energy Powder NamePlural = Energy Powders PortionName = dose of Energy Powder PortionNamePlural = doses of Energy Powder -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2717,7 +990,7 @@ Description = A very bitter medicine powder. It restores the HP of one Pokémon [ENERGYROOT] Name = Energy Root NamePlural = Energy Roots -Pocket = 2 +Pocket = Medicine Price = 1200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2729,7 +1002,7 @@ Name = Heal Powder NamePlural = Heal Powders PortionName = dose of Heal Powder PortionNamePlural = doses of Heal Powder -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2739,7 +1012,7 @@ Description = A very bitter medicine powder. It heals all the status problems of [REVIVALHERB] Name = Revival Herb NamePlural = Revival Herbs -Pocket = 2 +Pocket = Medicine Price = 2800 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2749,7 +1022,7 @@ Description = A very bitter medicinal herb. It revives a fainted Pokémon, fully [ETHER] Name = Ether NamePlural = Ethers -Pocket = 2 +Pocket = Medicine Price = 1200 BPPrice = 4 FieldUse = OnPokemon @@ -2760,7 +1033,7 @@ Description = It restores the PP of a Pokémon's selected move by a maximum of 1 [MAXETHER] Name = Max Ether NamePlural = Max Ethers -Pocket = 2 +Pocket = Medicine Price = 2000 FieldUse = OnPokemon BattleUse = OnMove @@ -2770,7 +1043,7 @@ Description = It fully restores the PP of a single selected move that has been l [ELIXIR] Name = Elixir NamePlural = Elixirs -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2780,7 +1053,7 @@ Description = It restores the PP of all the moves learned by the targeted Pokém [MAXELIXIR] Name = Max Elixir NamePlural = Max Elixirs -Pocket = 2 +Pocket = Medicine Price = 4500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2792,7 +1065,7 @@ Name = PP Up NamePlural = PP Ups PortionName = bottle of PP Up PortionNamePlural = bottles of PP Up -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 48 FieldUse = OnPokemon @@ -2804,7 +1077,7 @@ Name = PP Max NamePlural = PP Maxes PortionName = bottle of PP Max PortionNamePlural = bottles of PP Max -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -2815,7 +1088,7 @@ Name = HP Up NamePlural = HP Ups PortionName = bottle of HP Up PortionNamePlural = bottles of HP Up -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -2827,7 +1100,7 @@ Name = Protein NamePlural = Proteins PortionName = bottle of Protein PortionNamePlural = bottles of Protein -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -2839,7 +1112,7 @@ Name = Iron NamePlural = Irons PortionName = bottle of Iron PortionNamePlural = bottles of Iron -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -2851,7 +1124,7 @@ Name = Calcium NamePlural = Calciums PortionName = bottle of Calcium PortionNamePlural = bottles of Calcium -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -2863,7 +1136,7 @@ Name = Zinc NamePlural = Zincs PortionName = bottle of Zinc PortionNamePlural = bottles of Zinc -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -2875,7 +1148,7 @@ Name = Carbos NamePlural = Carbos PortionName = bottle of Carbos PortionNamePlural = bottles of Carbos -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -2885,7 +1158,7 @@ Description = A nutritious drink for Pokémon. It raises the base Speed stat of [HEALTHWING] Name = Health Wing NamePlural = Health Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -2894,7 +1167,7 @@ Description = An item for use on a Pokémon. It slightly increases the base HP o [MUSCLEWING] Name = Muscle Wing NamePlural = Muscle Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -2903,7 +1176,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Atta [RESISTWING] Name = Resist Wing NamePlural = Resist Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -2912,7 +1185,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Defe [GENIUSWING] Name = Genius Wing NamePlural = Genius Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -2921,7 +1194,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [CLEVERWING] Name = Clever Wing NamePlural = Clever Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -2930,7 +1203,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [SWIFTWING] Name = Swift Wing NamePlural = Swift Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -2939,7 +1212,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Spee [ABILITYCAPSULE] Name = Ability Capsule NamePlural = Ability Capsule -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 200 FieldUse = OnPokemon @@ -2948,7 +1221,7 @@ Description = A capsule that allows a Pokémon with two Abilities to switch betw [RARECANDY] Name = Rare Candy NamePlural = Rare Candies -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 48 FieldUse = OnPokemon @@ -2958,7 +1231,7 @@ Description = A candy that is packed with energy. It raises the level of a singl [MASTERBALL] Name = Master Ball NamePlural = Master Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -2967,7 +1240,7 @@ Description = The best Ball with the ultimate level of performance. It will catc [ULTRABALL] Name = Ultra Ball NamePlural = Ultra Balls -Pocket = 3 +Pocket = PokeBalls Price = 800 BattleUse = OnFoe Flags = PokeBall @@ -2976,7 +1249,7 @@ Description = An ultra-performance Ball that provides a higher Pokémon catch ra [GREATBALL] Name = Great Ball NamePlural = Great Balls -Pocket = 3 +Pocket = PokeBalls Price = 600 BattleUse = OnFoe Flags = PokeBall @@ -2985,7 +1258,7 @@ Description = A good, high-performance Ball that provides a higher Pokémon catc [POKEBALL] Name = Poké Ball NamePlural = Poké Balls -Pocket = 3 +Pocket = PokeBalls Price = 200 BattleUse = OnFoe Flags = PokeBall @@ -2994,7 +1267,7 @@ Description = A device for catching wild Pokémon. It is thrown like a ball at t [SAFARIBALL] Name = Safari Ball NamePlural = Safari Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -3003,7 +1276,7 @@ Description = A special Poké Ball that is used only in the Safari Zone. It is d [SPORTBALL] Name = Sport Ball NamePlural = Sport Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3012,7 +1285,7 @@ Description = A special Poké Ball for the Bug-Catching Contest. [NETBALL] Name = Net Ball NamePlural = Net Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3021,7 +1294,7 @@ Description = A somewhat different Poké Ball that works especially well on Wate [DIVEBALL] Name = Dive Ball NamePlural = Dive Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3030,7 +1303,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [NESTBALL] Name = Nest Ball NamePlural = Nest Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3039,7 +1312,7 @@ Description = A somewhat different Poké Ball that works especially well on weak [REPEATBALL] Name = Repeat Ball NamePlural = Repeat Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3048,7 +1321,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [TIMERBALL] Name = Timer Ball NamePlural = Timer Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3057,7 +1330,7 @@ Description = A somewhat different Ball that becomes progressively better the mo [LUXURYBALL] Name = Luxury Ball NamePlural = Luxury Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3066,7 +1339,7 @@ Description = A comfortable Poké Ball that makes a caught wild Pokémon quickly [PREMIERBALL] Name = Premier Ball NamePlural = Premier Balls -Pocket = 3 +Pocket = PokeBalls Price = 20 BattleUse = OnFoe Flags = PokeBall @@ -3075,7 +1348,7 @@ Description = A somewhat rare Poké Ball that has been specially made to commemo [DUSKBALL] Name = Dusk Ball NamePlural = Dusk Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3084,7 +1357,7 @@ Description = A somewhat different Poké Ball that makes it easier to catch wild [HEALBALL] Name = Heal Ball NamePlural = Heal Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3093,7 +1366,7 @@ Description = A remedial Poké Ball that restores the caught Pokémon's HP and e [QUICKBALL] Name = Quick Ball NamePlural = Quick Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3102,7 +1375,7 @@ Description = A somewhat different Poké Ball that provides a better catch rate [CHERISHBALL] Name = Cherish Ball NamePlural = Cherish Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -3111,7 +1384,7 @@ Description = A quite rare Poké Ball that has been specially crafted to commemo [FASTBALL] Name = Fast Ball NamePlural = Fast Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3120,7 +1393,7 @@ Description = A Poké Ball that makes it easier to catch fast Pokémon. [LEVELBALL] Name = Level Ball NamePlural = Level Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3129,7 +1402,7 @@ Description = A Poké Ball for catching Pokémon that are a lower level than you [LUREBALL] Name = Lure Ball NamePlural = Lure Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3138,7 +1411,7 @@ Description = A Poké Ball for catching Pokémon hooked by a Rod when fishing. [HEAVYBALL] Name = Heavy Ball NamePlural = Heavy Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3147,7 +1420,7 @@ Description = A Poké Ball for catching very heavy Pokémon. [LOVEBALL] Name = Love Ball NamePlural = Love Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3156,7 +1429,7 @@ Description = A Poké Ball for catching Pokémon that are the opposite gender of [FRIENDBALL] Name = Friend Ball NamePlural = Friend Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3165,7 +1438,7 @@ Description = A Poké Ball that makes caught Pokémon more friendly. [MOONBALL] Name = Moon Ball NamePlural = Moon Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3174,1070 +1447,16 @@ Description = A Poké Ball for catching Pokémon that evolve using the Moon Ston [DREAMBALL] Name = Dream Ball NamePlural = Dream Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall Description = A somewhat different Poké Ball that makes it easier to catch wild Pokémon while they're asleep. #------------------------------- -[TM01] -Name = TM01 -NamePlural = TM01s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = HONECLAWS -Description = The user sharpens its claws to boost its Attack stat and accuracy. -#------------------------------- -[TM02] -Name = TM02 -NamePlural = TM02s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = DRAGONCLAW -Description = The user slashes the target with huge, sharp claws. -#------------------------------- -[TM03] -Name = TM03 -NamePlural = TM03s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = PSYSHOCK -Description = The user materializes an odd psychic wave to attack the target. This attack does physical damage. -#------------------------------- -[TM04] -Name = TM04 -NamePlural = TM04s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = CALMMIND -Description = The user quietly focuses its mind and calms its spirit to raise its Sp. Atk and Sp. Def stats. -#------------------------------- -[TM05] -Name = TM05 -NamePlural = TM05s -Pocket = 4 -Price = 10000 -BPPrice = 24 -FieldUse = TM -Move = ROAR -Description = The target is scared off and replaced by another Pokémon in its party. In the wild, the battle ends. -#------------------------------- -[TM06] -Name = TM06 -NamePlural = TM06s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = TOXIC -Description = A move that leaves the target badly poisoned. Its poison damage worsens every turn. -#------------------------------- -[TM07] -Name = TM07 -NamePlural = TM07s -Pocket = 4 -Price = 50000 -BPPrice = 16 -FieldUse = TM -Move = HAIL -Description = Summons a hailstorm that lasts for five turns. The hailstorm damages all types except Ice. -#------------------------------- -[TM08] -Name = TM08 -NamePlural = TM08s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = BULKUP -Description = The user tenses its muscles to bulk up its body, boosting both its Attack and Defense stats. -#------------------------------- -[TM09] -Name = TM09 -NamePlural = TM09s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = VENOSHOCK -Description = The user drenches the target in a special poisonous liquid. Its power is doubled if the target is poisoned. -#------------------------------- -[TM10] -Name = TM10 -NamePlural = TM10s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = HIDDENPOWER -Description = A unique attack that varies in type and intensity depending on the Pokémon using it. -#------------------------------- -[TM11] -Name = TM11 -NamePlural = TM11s -Pocket = 4 -Price = 50000 -BPPrice = 16 -FieldUse = TM -Move = SUNNYDAY -Description = The user intensifies the sun for five turns, powering up Fire-type moves. -#------------------------------- -[TM12] -Name = TM12 -NamePlural = TM12s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = TAUNT -Description = The target is taunted into a rage that allows it to use only attack moves for three turns. -#------------------------------- -[TM13] -Name = TM13 -NamePlural = TM13s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = ICEBEAM -Description = The target is struck with an icy-cold beam of energy. It may also freeze the target solid. -#------------------------------- -[TM14] -Name = TM14 -NamePlural = TM14s -Pocket = 4 -Price = 30000 -BPPrice = 16 -FieldUse = TM -Move = BLIZZARD -Description = A howling blizzard is summoned to strike the opposing team. It may also freeze them solid. -#------------------------------- -[TM15] -Name = TM15 -NamePlural = TM15s -Pocket = 4 -Price = 50000 -BPPrice = 16 -FieldUse = TM -Move = HYPERBEAM -Description = The target is attacked with a powerful beam. The user must rest on the next turn to regain its energy. -#------------------------------- -[TM16] -Name = TM16 -NamePlural = TM16s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = LIGHTSCREEN -Description = A wondrous wall of light is put up to suppress damage from special attacks for five turns. -#------------------------------- -[TM17] -Name = TM17 -NamePlural = TM17s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = PROTECT -Description = It enables the user to evade all attacks. Its chance of failing rises if it is used in succession. -#------------------------------- -[TM18] -Name = TM18 -NamePlural = TM18s -Pocket = 4 -Price = 50000 -BPPrice = 16 -FieldUse = TM -Move = RAINDANCE -Description = The user summons a heavy rain that falls for five turns, powering up Water-type moves. -#------------------------------- -[TM19] -Name = TM19 -NamePlural = TM19s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = ROOST -Description = The user lands and rests its body. It restores the user's HP by up to half of its max HP. -#------------------------------- -[TM20] -Name = TM20 -NamePlural = TM20s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = SAFEGUARD -Description = The user creates a protective field that prevents status problems for five turns. -#------------------------------- -[TM21] -Name = TM21 -NamePlural = TM21s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = FRUSTRATION -Description = A full-power attack that grows more powerful the less the user likes its Trainer. -#------------------------------- -[TM22] -Name = TM22 -NamePlural = TM22s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = SOLARBEAM -Description = A two-turn attack. The user gathers light, then blasts a bundled beam on the second turn. -#------------------------------- -[TM23] -Name = TM23 -NamePlural = TM23s -Pocket = 4 -Price = 10000 -BPPrice = 32 -FieldUse = TM -Move = SMACKDOWN -Description = The user throws a stone or similar projectile to attack a foe. A flying Pokémon will fall to the ground if hit. -#------------------------------- -[TM24] -Name = TM24 -NamePlural = TM24s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = THUNDERBOLT -Description = A strong electric blast is loosed at the target. It may also leave the target with paralysis. -#------------------------------- -[TM25] -Name = TM25 -NamePlural = TM25s -Pocket = 4 -Price = 30000 -BPPrice = 16 -FieldUse = TM -Move = THUNDER -Description = A wicked thunderbolt is dropped on the target to inflict damage. It may also leave the target with paralysis. -#------------------------------- -[TM26] -Name = TM26 -NamePlural = TM26s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = EARTHQUAKE -Description = The user sets off an earthquake that strikes every Pokémon around it. -#------------------------------- -[TM27] -Name = TM27 -NamePlural = TM27s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = RETURN -Description = A full-power attack that grows more powerful the more the user likes its Trainer. -#------------------------------- -[TM28] -Name = TM28 -NamePlural = TM28s -Pocket = 4 -Price = 2000 -BPPrice = 16 -FieldUse = TM -Move = DIG -Description = The user burrows, then attacks on the second turn. It can also be used to exit dungeons. -#------------------------------- -[TM29] -Name = TM29 -NamePlural = TM29s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = PSYCHIC -Description = The target is hit by a strong telekinetic force. It may also reduce the target's Sp. Def stat. -#------------------------------- -[TM30] -Name = TM30 -NamePlural = TM30s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = SHADOWBALL -Description = The user hurls a shadowy blob at the target. It may also lower the target's Sp. Def stat. -#------------------------------- -[TM31] -Name = TM31 -NamePlural = TM31s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = BRICKBREAK -Description = The user attacks with tough fists, etc. It can also break any barrier such as Light Screen and Reflect. -#------------------------------- -[TM32] -Name = TM32 -NamePlural = TM32s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = DOUBLETEAM -Description = By moving rapidly, the user makes illusory copies of itself to raise its evasiveness. -#------------------------------- -[TM33] -Name = TM33 -NamePlural = TM33s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = REFLECT -Description = A wondrous wall of light is put up to suppress damage from physical attacks for five turns. -#------------------------------- -[TM34] -Name = TM34 -NamePlural = TM34s -Pocket = 4 -Price = 10000 -BPPrice = 32 -FieldUse = TM -Move = SLUDGEWAVE -Description = It swamps the area around the user with a giant sludge wave. It may also poison those hit. -#------------------------------- -[TM35] -Name = TM35 -NamePlural = TM35s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = FLAMETHROWER -Description = The target is scorched with an intense blast of fire. It may also leave the target with a burn. -#------------------------------- -[TM36] -Name = TM36 -NamePlural = TM36s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = SLUDGEBOMB -Description = Unsanitary sludge is hurled at the target. It may also poison the target. -#------------------------------- -[TM37] -Name = TM37 -NamePlural = TM37s -Pocket = 4 -Price = 50000 -BPPrice = 16 -FieldUse = TM -Move = SANDSTORM -Description = A five-turn sandstorm is summoned to hurt all combatants except the Rock, Ground, and Steel types. -#------------------------------- -[TM38] -Name = TM38 -NamePlural = TM38s -Pocket = 4 -Price = 30000 -BPPrice = 16 -FieldUse = TM -Move = FIREBLAST -Description = The foe is attacked with an intense blast of all-consuming fire. It may also leave the target with a burn. -#------------------------------- -[TM39] -Name = TM39 -NamePlural = TM39s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = ROCKTOMB -Description = Boulders are hurled at the target. It also lowers the target's Speed by preventing its movement. -#------------------------------- -[TM40] -Name = TM40 -NamePlural = TM40s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = AERIALACE -Description = The user confounds the target with speed, then slashes. The attack lands without fail. -#------------------------------- -[TM41] -Name = TM41 -NamePlural = TM41s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = TORMENT -Description = The user torments and enrages the target, making it incapable of using the same move twice in a row. -#------------------------------- -[TM42] -Name = TM42 -NamePlural = TM42s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = FACADE -Description = An attack move that doubles its power if the user is poisoned, paralyzed, or has a burn. -#------------------------------- -[TM43] -Name = TM43 -NamePlural = TM43s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = FLAMECHARGE -Description = The user cloaks itself with flame and attacks. Building up more power, it raises the user's Speed stat. -#------------------------------- -[TM44] -Name = TM44 -NamePlural = TM44s -Pocket = 4 -Price = 1000 -BPPrice = 16 -FieldUse = TM -Move = REST -Description = The user goes to sleep for two turns. It fully restores the user's HP and heals any status problem. -#------------------------------- -[TM45] -Name = TM45 -NamePlural = TM45s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = ATTRACT -Description = If it is the opposite gender of the user, the target becomes infatuated and less likely to attack. -#------------------------------- -[TM46] -Name = TM46 -NamePlural = TM46s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = THIEF -Description = The user attacks and steals the target's held item simultaneously. It can't steal if the user holds an item. -#------------------------------- -[TM47] -Name = TM47 -NamePlural = TM47s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = LOWSWEEP -Description = The user attacks the target's legs swiftly, reducing the target's Speed stat. -#------------------------------- -[TM48] -Name = TM48 -NamePlural = TM48s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = ROUND -Description = The user attacks the target with a song. Others can join in the Round to increase the power of the attack. -#------------------------------- -[TM49] -Name = TM49 -NamePlural = TM49s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = ECHOEDVOICE -Description = The user attacks the target with an echoing voice. If this move is used every turn, it does greater damage. -#------------------------------- -[TM50] -Name = TM50 -NamePlural = TM50s -Pocket = 4 -Price = 80000 -BPPrice = 16 -FieldUse = TM -Move = OVERHEAT -Description = The user attacks the target at full power. The attack's recoil sharply reduces the user's Sp. Atk stat. -#------------------------------- -[TM51] -Name = TM51 -NamePlural = TM51s -Pocket = 4 -Price = 10000 -BPPrice = 32 -FieldUse = TM -Move = STEELWING -Description = The target is hit with wings of steel. This may also raise the user's Defense stat. -#------------------------------- -[TM52] -Name = TM52 -NamePlural = TM52s -Pocket = 4 -Price = 30000 -BPPrice = 16 -FieldUse = TM -Move = FOCUSBLAST -Description = The user heightens its mental focus and unleashes its power. It may also lower the target's Sp. Def. -#------------------------------- -[TM53] -Name = TM53 -NamePlural = TM53s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = ENERGYBALL -Description = The user draws power from nature and fires it at the target. It may also lower the target's Sp. Def. -#------------------------------- -[TM54] -Name = TM54 -NamePlural = TM54s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = FALSESWIPE -Description = A restrained attack that prevents the target from fainting. The target is left with at least 1 HP. -#------------------------------- -[TM55] -Name = TM55 -NamePlural = TM55s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = SCALD -Description = The user shoots boiling hot water at its target. It may also leave the target with a burn. -#------------------------------- -[TM56] -Name = TM56 -NamePlural = TM56s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = FLING -Description = The user flings its held item at the target as an attack. Its power and effects depend on the item. -#------------------------------- -[TM57] -Name = TM57 -NamePlural = TM57s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = CHARGEBEAM -Description = The user fires a concentrated bundle of electricity. It may also raise the user's Sp. Atk stat. -#------------------------------- -[TM58] -Name = TM58 -NamePlural = TM58s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = SKYDROP -Description = The user hurls the foe into the sky, then drops it on the next turn. The foe cannot attack while in the sky. -#------------------------------- -[TM59] -Name = TM59 -NamePlural = TM59s -Pocket = 4 -Price = 1500 -BPPrice = 16 -FieldUse = TM -Move = INCINERATE -Description = The user attacks the target with fire. If the target is holding a Berry, it becomes burnt up and unusable. -#------------------------------- -[TM60] -Name = TM60 -NamePlural = TM60s -Pocket = 4 -Price = 10000 -BPPrice = 24 -FieldUse = TM -Move = QUASH -Description = The user suppresses the target and makes its move go last. -#------------------------------- -[TM61] -Name = TM61 -NamePlural = TM61s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = WILLOWISP -Description = The user shoots a sinister, bluish-white flame at the target to inflict a burn. -#------------------------------- -[TM62] -Name = TM62 -NamePlural = TM62s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = ACROBATICS -Description = The user nimbly strikes the target. If the user is not holding an item, this attack inflicts massive damage. -#------------------------------- -[TM63] -Name = TM63 -NamePlural = TM63s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = EMBARGO -Description = It prevents the target from using its held item. Its Trainer is also prevented from using items on it. -#------------------------------- -[TM64] -Name = TM64 -NamePlural = TM64s -Pocket = 4 -Price = 10000 -BPPrice = 48 -FieldUse = TM -Move = EXPLOSION -Description = The user explodes to inflict damage on those around it. The user faints upon using this move. -#------------------------------- -[TM65] -Name = TM65 -NamePlural = TM65s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = SHADOWCLAW -Description = The user slashes with a sharp claw made from shadows. It has a high critical-hit ratio. -#------------------------------- -[TM66] -Name = TM66 -NamePlural = TM66s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = PAYBACK -Description = The user stores power, then attacks. If the user can use this attack after the foe, its power is doubled. -#------------------------------- -[TM67] -Name = TM67 -NamePlural = TM67s -Pocket = 4 -Price = 1000 -BPPrice = 48 -FieldUse = TM -Move = RETALIATE -Description = The user gets revenge for a fainted ally. If an ally fainted in the last turn, this move's power is increased. -#------------------------------- -[TM68] -Name = TM68 -NamePlural = TM68s -Pocket = 4 -Price = 50000 -BPPrice = 16 -FieldUse = TM -Move = GIGAIMPACT -Description = The user charges at the target using every bit of its power. The user must rest on the next turn. -#------------------------------- -[TM69] -Name = TM69 -NamePlural = TM69s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = ROCKPOLISH -Description = The user polishes its body to reduce drag. It sharply raises the Speed stat. -#------------------------------- -[TM70] -Name = TM70 -NamePlural = TM70s -Pocket = 4 -Price = 1000 -BPPrice = 16 -FieldUse = TM -Move = FLASH -Description = The user flashes a bright light that cuts the target's accuracy. It can also be used to illuminate caves. -#------------------------------- -[TM71] -Name = TM71 -NamePlural = TM71s -Pocket = 4 -Price = 30000 -BPPrice = 16 -FieldUse = TM -Move = STONEEDGE -Description = The user stabs the foe with sharpened stones from below. It has a high critical-hit ratio. -#------------------------------- -[TM72] -Name = TM72 -NamePlural = TM72s -Pocket = 4 -Price = 10000 -BPPrice = 48 -FieldUse = TM -Move = VOLTSWITCH -Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. -#------------------------------- -[TM73] -Name = TM73 -NamePlural = TM73s -Pocket = 4 -Price = 5000 -BPPrice = 16 -FieldUse = TM -Move = THUNDERWAVE -Description = A weak electric charge is launched at the target. It causes paralysis if it hits. -#------------------------------- -[TM74] -Name = TM74 -NamePlural = TM74s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = GYROBALL -Description = The user tackles the target with a high-speed spin. The slower the user, the greater the damage. -#------------------------------- -[TM75] -Name = TM75 -NamePlural = TM75s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = SWORDSDANCE -Description = A frenetic dance to uplift the fighting spirit. It sharply raises the user's Attack stat. -#------------------------------- -[TM76] -Name = TM76 -NamePlural = TM76s -Pocket = 4 -Price = 2000 -BPPrice = 16 -FieldUse = TM -Move = STRUGGLEBUG -Description = Resisting, the user attacks the opposing Pokémon. The targets' Sp. Atk stat is reduced. -#------------------------------- -[TM77] -Name = TM77 -NamePlural = TM77s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = PSYCHUP -Description = The user hypnotizes itself into copying any stat change made by the target. -#------------------------------- -[TM78] -Name = TM78 -NamePlural = TM78s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = BULLDOZE -Description = The user stomps down on the ground and attacks everything in the area. The targets' Speed stat is reduced. -#------------------------------- -[TM79] -Name = TM79 -NamePlural = TM79s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = FROSTBREATH -Description = The user blows a cold breath on the target. This attack always results in a critical hit. -#------------------------------- -[TM80] -Name = TM80 -NamePlural = TM80s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = ROCKSLIDE -Description = Large boulders are hurled at the opposing team to inflict damage. They may also make the targets flinch. -#------------------------------- -[TM81] -Name = TM81 -NamePlural = TM81s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = XSCISSOR -Description = The user slashes at the target by crossing its scythes or claws as if they were a pair of scissors. -#------------------------------- -[TM82] -Name = TM82 -NamePlural = TM82s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = DRAGONTAIL -Description = The user knocks away the target and drags out another Pokémon in its party. In the wild, the battle ends. -#------------------------------- -[TM83] -Name = TM83 -NamePlural = TM83s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = INFESTATION -Description = The target is infested and attacked for four to five turns. The target can't flee during this time. -#------------------------------- -[TM84] -Name = TM84 -NamePlural = TM84s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = POISONJAB -Description = The target is stabbed with a tentacle or arm steeped in poison. It may also poison the target. -#------------------------------- -[TM85] -Name = TM85 -NamePlural = TM85s -Pocket = 4 -Price = 10000 -BPPrice = 48 -FieldUse = TM -Move = DREAMEATER -Description = The user eats the dreams of a sleeping target. It absorbs half the damage caused to heal the user's HP. -#------------------------------- -[TM86] -Name = TM86 -NamePlural = TM86s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = GRASSKNOT -Description = The user snares the target with grass and trips it. The heavier the target, the greater the damage. -#------------------------------- -[TM87] -Name = TM87 -NamePlural = TM87s -Pocket = 4 -Price = 10000 -BPPrice = 24 -FieldUse = TM -Move = SWAGGER -Description = The user enrages and confuses the target. However, it also sharply raises the target's Attack stat. -#------------------------------- -[TM88] -Name = TM88 -NamePlural = TM88s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = SLEEPTALK -Description = While it is asleep, the user randomly uses one of the moves it knows. -#------------------------------- -[TM89] -Name = TM89 -NamePlural = TM89s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = UTURN -Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. -#------------------------------- -[TM90] -Name = TM90 -NamePlural = TM90s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = SUBSTITUTE -Description = The user makes a copy of itself using some of its HP. The copy serves as the user's decoy. -#------------------------------- -[TM91] -Name = TM91 -NamePlural = TM91s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = FLASHCANNON -Description = The user gathers all its light energy and releases it at once. It may also lower the target's Sp. Def stat. -#------------------------------- -[TM92] -Name = TM92 -NamePlural = TM92s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = TRICKROOM -Description = The user creates a bizarre space in which slower Pokémon get to move first for five turns. -#------------------------------- -[TM93] -Name = TM93 -NamePlural = TM93s -Pocket = 4 -Price = 50000 -BPPrice = 16 -FieldUse = TM -Move = WILDCHARGE -Description = The user shrouds itself in electricity and smashes into its target. It also damages the user a little. -#------------------------------- -[TM94] -Name = TM94 -NamePlural = TM94s -Pocket = 4 -Price = 2000 -BPPrice = 16 -FieldUse = TM -Move = SECRETPOWER -Description = The user attacks with a secret power. Its added effects vary depending on the user's environment. -#------------------------------- -[TM95] -Name = TM95 -NamePlural = TM95s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = SNARL -Description = The user yells as if it is ranting about something, making the target's Sp. Atk stat decrease. -#------------------------------- -[TM96] -Name = TM96 -NamePlural = TM96s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = NATUREPOWER -Description = This attack makes use of nature's power. Its effects vary depending on the user's environment. -#------------------------------- -[TM97] -Name = TM97 -NamePlural = TM97s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = DARKPULSE -Description = The user releases a horrible aura imbued with dark thoughts. This may also make the target flinch. -#------------------------------- -[TM98] -Name = TM98 -NamePlural = TM98s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = POWERUPPUNCH -Description = Striking opponents repeatedly makes the user's fists harder. Hitting a target raises the Attack stat. -#------------------------------- -[TM99] -Name = TM99 -NamePlural = TM99s -Pocket = 4 -Price = 10000 -BPPrice = 16 -FieldUse = TM -Move = DAZZLINGGLEAM -Description = The user damages opposing Pokémon by emitting a powerful flash. -#------------------------------- -[TM100] -Name = TM100 -NamePlural = TM100s -Pocket = 4 -Price = 5000 -BPPrice = 16 -FieldUse = TM -Move = CONFIDE -Description = The user tells the target a secret. The target loses concentration and its Sp. Atk stat is lowered. -#------------------------------- -[HM01] -Name = HM01 -NamePlural = HM01s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = CUT -Description = The target is cut with a scythe or claw. It can also be used to cut down thin trees. -#------------------------------- -[HM02] -Name = HM02 -NamePlural = HM02s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = FLY -Description = The user soars, then strikes on the second turn. It can also be used to fly to any familiar town. -#------------------------------- -[HM03] -Name = HM03 -NamePlural = HM03s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = SURF -Description = It swamps the area around the user with a giant wave. It can also be used for crossing water. -#------------------------------- -[HM04] -Name = HM04 -NamePlural = HM04s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = STRENGTH -Description = The target is slugged with a punch thrown at maximum power. This move can also be used to move boulders. -#------------------------------- -[HM05] -Name = HM05 -NamePlural = HM05s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = WATERFALL -Description = The user charges the target at an awesome speed. It can also be used to climb a waterfall. -#------------------------------- -[HM06] -Name = HM06 -NamePlural = HM06s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = DIVE -Description = The user dives on the first turn, and floats up and attacks on the second. It can be used to dive in the ocean. -#------------------------------- [CHERIBERRY] Name = Cheri Berry NamePlural = Cheri Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -4247,7 +1466,7 @@ Description = It may be used or held by a Pokémon to recover from paralysis. [CHESTOBERRY] Name = Chesto Berry NamePlural = Chesto Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -4257,7 +1476,7 @@ Description = It may be used or held by a Pokémon to recover from sleep. [PECHABERRY] Name = Pecha Berry NamePlural = Pecha Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -4267,7 +1486,7 @@ Description = It may be used or held by a Pokémon to recover from poison. [RAWSTBERRY] Name = Rawst Berry NamePlural = Rawst Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -4277,7 +1496,7 @@ Description = It may be used or held by a Pokémon to recover from a burn. [ASPEARBERRY] Name = Aspear Berry NamePlural = Aspear Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -4287,7 +1506,7 @@ Description = It may be used or held by a Pokémon to defrost it. [LEPPABERRY] Name = Leppa Berry NamePlural = Leppa Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnMove @@ -4297,7 +1516,7 @@ Description = It may be used or held by a Pokémon to restore a move's PP by 10. [ORANBERRY] Name = Oran Berry NamePlural = Oran Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -4307,7 +1526,7 @@ Description = It may be used or held by a Pokémon to heal the user by just 10 H [PERSIMBERRY] Name = Persim Berry NamePlural = Persim Berries -Pocket = 5 +Pocket = Berries Price = 20 BattleUse = OnBattler Flags = Berry,Fling_10,NaturalGift_GROUND_80 @@ -4316,7 +1535,7 @@ Description = It may be used or held by a Pokémon to recover from confusion. [LUMBERRY] Name = Lum Berry NamePlural = Lum Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -4326,7 +1545,7 @@ Description = It may be used or held by a Pokémon to recover from any status pr [SITRUSBERRY] Name = Sitrus Berry NamePlural = Sitrus Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -4336,7 +1555,7 @@ Description = It may be used or held by a Pokémon to heal the user's HP a littl [FIGYBERRY] Name = Figy Berry NamePlural = Figy Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -4344,7 +1563,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [WIKIBERRY] Name = Wiki Berry NamePlural = Wiki Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -4352,7 +1571,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [MAGOBERRY] Name = Mago Berry NamePlural = Mago Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -4360,7 +1579,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [AGUAVBERRY] Name = Aguav Berry NamePlural = Aguav Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -4368,7 +1587,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [IAPAPABERRY] Name = Iapapa Berry NamePlural = Iapapa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -4376,7 +1595,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [RAZZBERRY] Name = Razz Berry NamePlural = Razz Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_80 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4384,7 +1603,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [BLUKBERRY] Name = Bluk Berry NamePlural = Bluk Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4392,7 +1611,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [NANABBERRY] Name = Nanab Berry NamePlural = Nanab Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4400,7 +1619,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [WEPEARBERRY] Name = Wepear Berry NamePlural = Wepear Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4408,7 +1627,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [PINAPBERRY] Name = Pinap Berry NamePlural = Pinap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4416,7 +1635,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [POMEGBERRY] Name = Pomeg Berry NamePlural = Pomeg Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_ICE_90 @@ -4425,7 +1644,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [KELPSYBERRY] Name = Kelpsy Berry NamePlural = Kelpsy Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_FIGHTING_90 @@ -4434,7 +1653,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [QUALOTBERRY] Name = Qualot Berry NamePlural = Qualot Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_POISON_90 @@ -4443,7 +1662,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [HONDEWBERRY] Name = Hondew Berry NamePlural = Hondew Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_GROUND_90 @@ -4452,7 +1671,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [GREPABERRY] Name = Grepa Berry NamePlural = Grepa Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_FLYING_90 @@ -4461,7 +1680,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [TAMATOBERRY] Name = Tamato Berry NamePlural = Tamato Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_PSYCHIC_90 @@ -4470,7 +1689,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [CORNNBERRY] Name = Cornn Berry NamePlural = Cornn Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4478,7 +1697,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [MAGOSTBERRY] Name = Magost Berry NamePlural = Magost Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4486,7 +1705,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [RABUTABERRY] Name = Rabuta Berry NamePlural = Rabuta Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4494,7 +1713,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [NOMELBERRY] Name = Nomel Berry NamePlural = Nomel Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4502,7 +1721,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [SPELONBERRY] Name = Spelon Berry NamePlural = Spelon Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4510,7 +1729,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [PAMTREBERRY] Name = Pamtre Berry NamePlural = Pamtre Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4518,7 +1737,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [WATMELBERRY] Name = Watmel Berry NamePlural = Watmel Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4526,7 +1745,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [DURINBERRY] Name = Durin Berry NamePlural = Durin Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4534,7 +1753,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [BELUEBERRY] Name = Belue Berry NamePlural = Belue Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -4542,135 +1761,135 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [OCCABERRY] Name = Occa Berry NamePlural = Occa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_80 -Description = Weakens a supereffective Fire-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fire-type attack. #------------------------------- [PASSHOBERRY] Name = Passho Berry NamePlural = Passho Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_80 -Description = Weakens a supereffective Water-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Water-type attack. #------------------------------- [WACANBERRY] Name = Wacan Berry NamePlural = Wacan Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_80 -Description = Weakens a supereffective Electric-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Electric attack. #------------------------------- [RINDOBERRY] Name = Rindo Berry NamePlural = Rindo Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_80 -Description = Weakens a supereffective Grass-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Grass-type attack. #------------------------------- [YACHEBERRY] Name = Yache Berry NamePlural = Yache Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ICE_80 -Description = Weakens a supereffective Ice-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ice-type attack. #------------------------------- [CHOPLEBERRY] Name = Chople Berry NamePlural = Chople Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIGHTING_80 -Description = Weakens a supereffective Fighting-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fighting attack. #------------------------------- [KEBIABERRY] Name = Kebia Berry NamePlural = Kebia Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_POISON_80 -Description = Weakens a supereffective Poison-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Poison-type attack. #------------------------------- [SHUCABERRY] Name = Shuca Berry NamePlural = Shuca Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GROUND_80 -Description = Weakens a supereffective Ground-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ground-type attack. #------------------------------- [COBABERRY] Name = Coba Berry NamePlural = Coba Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FLYING_80 -Description = Weakens a supereffective Flying-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Flying-type attack. #------------------------------- [PAYAPABERRY] Name = Payapa Berry NamePlural = Payapa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_PSYCHIC_80 -Description = Weakens a supereffective Psychic-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Psychic attack. #------------------------------- [TANGABERRY] Name = Tanga Berry NamePlural = Tanga Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_80 -Description = Weakens a supereffective Bug-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Bug-type attack. #------------------------------- [CHARTIBERRY] Name = Charti Berry NamePlural = Charti Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_80 -Description = Weakens a supereffective Rock-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Rock-type attack. #------------------------------- [KASIBBERRY] Name = Kasib Berry NamePlural = Kasib Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_80 -Description = Weakens a supereffective Ghost-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ghost-type attack. #------------------------------- [HABANBERRY] Name = Haban Berry NamePlural = Haban Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_80 -Description = Weakens a supereffective Dragon-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dragon-type attack. #------------------------------- [COLBURBERRY] Name = Colbur Berry NamePlural = Colbur Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_80 -Description = Weakens a supereffective Dark-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dark-type attack. #------------------------------- [BABIRIBERRY] Name = Babiri Berry NamePlural = Babiri Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_80 -Description = Weakens a supereffective Steel-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Steel-type attack. #------------------------------- [ROSELIBERRY] Name = Roseli Berry NamePlural = Roseli Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FAIRY_80 Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fairy-type attack. @@ -4678,15 +1897,15 @@ Description = If held by a Pokémon, this Berry will lessen the damage taken fro [CHILANBERRY] Name = Chilan Berry NamePlural = Chilan Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_NORMAL_80 -Description = Weakens a Normal-type attack against the Pokémon holding this berry. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one Normal-type attack. #------------------------------- [LIECHIBERRY] Name = Liechi Berry NamePlural = Liechi Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_100 Description = If held by a Pokémon, it raises its Attack stat in a pinch. @@ -4694,7 +1913,7 @@ Description = If held by a Pokémon, it raises its Attack stat in a pinch. [GANLONBERRY] Name = Ganlon Berry NamePlural = Ganlon Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ICE_100 Description = If held by a Pokémon, it raises its Defense stat in a pinch. @@ -4702,7 +1921,7 @@ Description = If held by a Pokémon, it raises its Defense stat in a pinch. [SALACBERRY] Name = Salac Berry NamePlural = Salac Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIGHTING_100 Description = If held by a Pokémon, it raises its Speed stat in a pinch. @@ -4710,7 +1929,7 @@ Description = If held by a Pokémon, it raises its Speed stat in a pinch. [PETAYABERRY] Name = Petaya Berry NamePlural = Petaya Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_POISON_100 Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. @@ -4718,7 +1937,7 @@ Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. [APICOTBERRY] Name = Apicot Berry NamePlural = Apicot Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GROUND_100 Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. @@ -4726,7 +1945,7 @@ Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. [LANSATBERRY] Name = Lansat Berry NamePlural = Lansat Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FLYING_100 Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch. @@ -4734,7 +1953,7 @@ Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch [STARFBERRY] Name = Starf Berry NamePlural = Starf Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_PSYCHIC_100 Description = If held by a Pokémon, it sharply raises one of its stats in a pinch. @@ -4742,7 +1961,7 @@ Description = If held by a Pokémon, it sharply raises one of its stats in a pin [ENIGMABERRY] Name = Enigma Berry NamePlural = Enigma Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_100 Description = If held by a Pokémon, it restores its HP if it is hit by any supereffective attack. @@ -4750,7 +1969,7 @@ Description = If held by a Pokémon, it restores its HP if it is hit by any supe [MICLEBERRY] Name = Micle Berry NamePlural = Micle Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_100 Description = If held by a Pokémon, it raises the accuracy of a move just once in a pinch. @@ -4758,7 +1977,7 @@ Description = If held by a Pokémon, it raises the accuracy of a move just once [CUSTAPBERRY] Name = Custap Berry NamePlural = Custap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_100 Description = If held by a Pokémon, it gets to move first just once in a pinch. @@ -4766,7 +1985,7 @@ Description = If held by a Pokémon, it gets to move first just once in a pinch. [JABOCABERRY] Name = Jaboca Berry NamePlural = Jaboca Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_100 Description = If held by a Pokémon and a physical attack lands, the attacker also takes damage. @@ -4774,7 +1993,7 @@ Description = If held by a Pokémon and a physical attack lands, the attacker al [ROWAPBERRY] Name = Rowap Berry NamePlural = Rowap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_100 Description = If held by a Pokémon and a special attack lands, the attacker also takes damage. @@ -4782,7 +2001,7 @@ Description = If held by a Pokémon and a special attack lands, the attacker als [KEEBERRY] Name = Kee Berry NamePlural = Kee Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FAIRY_100 Description = If held by a Pokémon, this Berry will increase the holder's Defense if it's hit with a physical move. @@ -4790,135 +2009,1822 @@ Description = If held by a Pokémon, this Berry will increase the holder's Defen [MARANGABERRY] Name = Maranga Berry NamePlural = Maranga Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_100 Description = If held by a Pokémon, this Berry will increase the holder's Sp. Def if it's hit with a special move. #------------------------------- -[GRASSMAIL] -Name = Grass Mail -NamePlural = Grass Mail -PortionName = piece of Grass Mail -PortionNamePlural = pieces of Grass Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. +[AIRBALLOON] +Name = Air Balloon +NamePlural = Air Balloons +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. #------------------------------- -[FLAMEMAIL] -Name = Flame Mail -NamePlural = Flame Mail -PortionName = piece of Flame Mail -PortionNamePlural = pieces of Flame Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. +[BRIGHTPOWDER] +Name = Bright Powder +NamePlural = Bright Powders +PortionName = bag of Bright Powder +PortionNamePlural = bags of Bright Powder +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. #------------------------------- -[BUBBLEMAIL] -Name = Bubble Mail -NamePlural = Bubble Mail -PortionName = piece of Bubble Mail -PortionNamePlural = pieces of Bubble Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. +[EVIOLITE] +Name = Eviolite +NamePlural = Eviolites +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_40 +Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. #------------------------------- -[BLOOMMAIL] -Name = Bloom Mail -NamePlural = Bloom Mail -PortionName = piece of Bloom Mail -PortionNamePlural = pieces of Bloom Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. +[FLOATSTONE] +Name = Float Stone +NamePlural = Float Stones +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = A very light stone. It reduces the weight of a Pokémon when held. #------------------------------- -[TUNNELMAIL] -Name = Tunnel Mail -NamePlural = Tunnel Mail -PortionName = piece of Tunnel Mail -PortionNamePlural = pieces of Tunnel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. +[DESTINYKNOT] +Name = Destiny Knot +NamePlural = Destiny Knots +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = A long, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. #------------------------------- -[STEELMAIL] -Name = Steel Mail -NamePlural = Steel Mail -PortionName = piece of Steel Mail -PortionNamePlural = pieces of Steel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. +[ROCKYHELMET] +Name = Rocky Helmet +NamePlural = Rocky Helmets +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_60 +Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. #------------------------------- -[HEARTMAIL] -Name = Heart Mail -NamePlural = Heart Mail -PortionName = piece of Heart Mail -PortionNamePlural = pieces of Heart Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. +[ASSAULTVEST] +Name = Assault Vest +NamePlural = Assault Vests +Pocket = HeldItems +Price = 1000 +BPPrice = 48 +Flags = Fling_80 +Description = An item to be held by a Pokémon. This offensive vest raises Sp. Def but prevents the use of status moves. #------------------------------- -[SNOWMAIL] -Name = Snow Mail -NamePlural = Snow Mail -PortionName = piece of Snow Mail -PortionNamePlural = pieces of Snow Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. +[SAFETYGOGGLES] +Name = Safety Goggles +NamePlural = Safety Goggles +PortionName = pair of Safety Goggles +PortionNamePlural = pairs of Safety Goggles +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_80 +Description = An item to be held by a Pokémon. They protect the holder from weather-related damage and powder. #------------------------------- -[SPACEMAIL] -Name = Space Mail -NamePlural = Space Mail -PortionName = piece of Space Mail -PortionNamePlural = pieces of Space Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print depicting the huge expanse of space. Let a Pokémon hold it for delivery. +[EJECTBUTTON] +Name = Eject Button +NamePlural = Eject Buttons +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_30 +Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. #------------------------------- -[AIRMAIL] -Name = Air Mail -NamePlural = Air Mail -PortionName = piece of Air Mail -PortionNamePlural = pieces of Air Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. +[REDCARD] +Name = Red Card +NamePlural = Red Cards +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_10 +Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. #------------------------------- -[MOSAICMAIL] -Name = Mosaic Mail -NamePlural = Mosaic Mail -PortionName = piece of Mosaic Mail -PortionNamePlural = pieces of Mosaic Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. +[SHEDSHELL] +Name = Shed Shell +NamePlural = Shed Shells +Pocket = HeldItems +Price = 4000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. #------------------------------- -[BRICKMAIL] -Name = Brick Mail -NamePlural = Brick Mail -PortionName = piece of Brick Mail -PortionNamePlural = pieces of Brick Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. +[SMOKEBALL] +Name = Smoke Ball +NamePlural = Smoke Balls +Pocket = HeldItems +Price = 4000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. +#------------------------------- +[LUCKYEGG] +Name = Lucky Egg +NamePlural = Lucky Eggs +Pocket = HeldItems +Price = 10000 +BPPrice = 77 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. +#------------------------------- +[EXPSHARE] +Name = Exp. Share +NamePlural = Exp. Shares +Pocket = HeldItems +Price = 3000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. +#------------------------------- +[AMULETCOIN] +Name = Amulet Coin +NamePlural = Amulet Coins +Pocket = HeldItems +Price = 10000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[SOOTHEBELL] +Name = Soothe Bell +NamePlural = Soothe Bells +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. +#------------------------------- +[CLEANSETAG] +Name = Cleanse Tag +NamePlural = Cleanse Tags +Pocket = HeldItems +Price = 5000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[CHOICEBAND] +Name = Choice Band +NamePlural = Choice Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. +#------------------------------- +[CHOICESPECS] +Name = Choice Specs +NamePlural = Choice Specs +PortionName = pair of Choice Specs +PortionNamePlural = pairs of Choice Specs +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. +#------------------------------- +[CHOICESCARF] +Name = Choice Scarf +NamePlural = Choice Scarves +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. +#------------------------------- +[HEATROCK] +Name = Heat Rock +NamePlural = Heat Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. +#------------------------------- +[DAMPROCK] +Name = Damp Rock +NamePlural = Damp Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. +#------------------------------- +[SMOOTHROCK] +Name = Smooth Rock +NamePlural = Smooth Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. +#------------------------------- +[ICYROCK] +Name = Icy Rock +NamePlural = Icy Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_40 +Description = A Pokémon held item that extends the duration of the move Hail used by the holder. +#------------------------------- +[LIGHTCLAY] +Name = Light Clay +NamePlural = Light Clays +PortionName = lump of Light Clay +PortionNamePlural = lumps of Light Clay +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. +#------------------------------- +[GRIPCLAW] +Name = Grip Claw +NamePlural = Grip Claws +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_90 +Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. +#------------------------------- +[BINDINGBAND] +Name = Binding Band +NamePlural = Binding Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = A band that increases the power of binding moves when held. +#------------------------------- +[BIGROOT] +Name = Big Root +NamePlural = Big Roots +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_10 +Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. +#------------------------------- +[BLACKSLUDGE] +Name = Black Sludge +NamePlural = Black Sludges +PortionName = blob of Black Sludge +PortionNamePlural = blobs of Black Sludge +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. +#------------------------------- +[LEFTOVERS] +Name = Leftovers +NamePlural = Leftovers +PortionName = serving of Leftovers +PortionNamePlural = servings of Leftovers +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. +#------------------------------- +[SHELLBELL] +Name = Shell Bell +NamePlural = Shell Bells +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. +#------------------------------- +[MENTALHERB] +Name = Mental Herb +NamePlural = Mental Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. +#------------------------------- +[WHITEHERB] +Name = White Herb +NamePlural = White Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. +#------------------------------- +[POWERHERB] +Name = Power Herb +NamePlural = Power Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_10 +Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. +#------------------------------- +[ABSORBBULB] +Name = Absorb Bulb +NamePlural = Absorb Bulbs +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_30 +Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. +#------------------------------- +[CELLBATTERY] +Name = Cell Battery +NamePlural = Cell Batteries +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_30 +Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. +#------------------------------- +[LUMINOUSMOSS] +Name = Luminous Moss +NamePlural = Luminous Moss +PortionName = clump of Luminous Moss +PortionNamePlural = clumps of Luminous Moss +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Sp. Def if hit by a Water-type attack. It can only be used once. +#------------------------------- +[SNOWBALL] +Name = Snowball +NamePlural = Snowballs +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Attack if hit by an Ice-type attack. It can only be used once. +#------------------------------- +[WEAKNESSPOLICY] +Name = Weakness Policy +NamePlural = Weakness Policies +Pocket = HeldItems +Price = 1000 +BPPrice = 32 +Flags = Fling_80 +Description = An item to be held by a Pokémon. The holder's Attack and Sp. Atk sharply increase if hit by a move it's weak to. +#------------------------------- +[LIFEORB] +Name = Life Orb +NamePlural = Life Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. +#------------------------------- +[EXPERTBELT] +Name = Expert Belt +NamePlural = Expert Belts +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. +#------------------------------- +[METRONOME] +Name = Metronome +NamePlural = Metronomes +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. +#------------------------------- +[MUSCLEBAND] +Name = Muscle Band +NamePlural = Muscle Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. +#------------------------------- +[WISEGLASSES] +Name = Wise Glasses +NamePlural = Wise Glasses +PortionName = pair of Wise Glasses +PortionNamePlural = pairs of Wise Glasses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. +#------------------------------- +[RAZORCLAW] +Name = Razor Claw +NamePlural = Razor Claws +Pocket = HeldItems +Price = 5000 +BPPrice = 48 +Flags = Fling_80 +Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. +#------------------------------- +[SCOPELENS] +Name = Scope Lens +NamePlural = Scope Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. +#------------------------------- +[WIDELENS] +Name = Wide Lens +NamePlural = Wide Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. +#------------------------------- +[ZOOMLENS] +Name = Zoom Lens +NamePlural = Zoom Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. +#------------------------------- +[KINGSROCK] +Name = King's Rock +NamePlural = King's Rocks +Pocket = HeldItems +Price = 5000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. +#------------------------------- +[RAZORFANG] +Name = Razor Fang +NamePlural = Razor Fangs +Pocket = HeldItems +Price = 5000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. +#------------------------------- +[LAGGINGTAIL] +Name = Lagging Tail +NamePlural = Lagging Tails +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. +#------------------------------- +[QUICKCLAW] +Name = Quick Claw +NamePlural = Quick Claws +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_80 +Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. +#------------------------------- +[FOCUSBAND] +Name = Focus Band +NamePlural = Focus Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. +#------------------------------- +[FOCUSSASH] +Name = Focus Sash +NamePlural = Focus Sashes +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. +#------------------------------- +[FLAMEORB] +Name = Flame Orb +NamePlural = Flame Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. +#------------------------------- +[TOXICORB] +Name = Toxic Orb +NamePlural = Toxic Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. +#------------------------------- +[STICKYBARB] +Name = Sticky Barb +NamePlural = Sticky Barbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_80 +Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. +#------------------------------- +[IRONBALL] +Name = Iron Ball +NamePlural = Iron Balls +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_130 +Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. +#------------------------------- +[RINGTARGET] +Name = Ring Target +NamePlural = Ring Targets +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_10 +Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. +#------------------------------- +[MACHOBRACE] +Name = Macho Brace +NamePlural = Macho Braces +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_60 +Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. +#------------------------------- +[POWERWEIGHT] +Name = Power Weight +NamePlural = Power Weights +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBRACER] +Name = Power Bracer +NamePlural = Power Bracers +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBELT] +Name = Power Belt +NamePlural = Power Belts +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERLENS] +Name = Power Lens +NamePlural = Power Lenses +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBAND] +Name = Power Band +NamePlural = Power Bands +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERANKLET] +Name = Power Anklet +NamePlural = Power Anklets +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. +#------------------------------- +[LAXINCENSE] +Name = Lax Incense +NamePlural = Lax Incenses +PortionName = jar of Lax Incense +PortionNamePlural = jars of Lax Incense +Pocket = HeldItems +Price = 5000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. +#------------------------------- +[FULLINCENSE] +Name = Full Incense +NamePlural = Full Incenses +PortionName = jar of Full Incense +PortionNamePlural = jars of Full Incense +Pocket = HeldItems +Price = 5000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. +#------------------------------- +[LUCKINCENSE] +Name = Luck Incense +NamePlural = Luck Incenses +PortionName = jar of Luck Incense +PortionNamePlural = jars of Luck Incense +Pocket = HeldItems +Price = 11000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[PUREINCENSE] +Name = Pure Incense +NamePlural = Pure Incenses +PortionName = jar of Pure Incense +PortionNamePlural = jars of Pure Incense +Pocket = HeldItems +Price = 6000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[SEAINCENSE] +Name = Sea Incense +NamePlural = Sea Incenses +PortionName = jar of Sea Incense +PortionNamePlural = jars of Sea Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[WAVEINCENSE] +Name = Wave Incense +NamePlural = Wave Incenses +PortionName = jar of Wave Incense +PortionNamePlural = jars of Wave Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[ROSEINCENSE] +Name = Rose Incense +NamePlural = Rose Incenses +PortionName = jar of Rose Incense +PortionNamePlural = jars of Rose Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. +#------------------------------- +[ODDINCENSE] +Name = Odd Incense +NamePlural = Odd Incenses +PortionName = jar of Odd Incense +PortionNamePlural = jars of Odd Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. +#------------------------------- +[ROCKINCENSE] +Name = Rock Incense +NamePlural = Rock Incenses +PortionName = jar of Rock Incense +PortionNamePlural = jars of Rock Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. +#------------------------------- +[CHARCOAL] +Name = Charcoal +NamePlural = Charcoals +PortionName = piece of Charcoal +PortionNamePlural = pieces of Charcoal +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. +#------------------------------- +[MYSTICWATER] +Name = Mystic Water +NamePlural = Mystic Waters +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. +#------------------------------- +[MAGNET] +Name = Magnet +NamePlural = Magnets +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. +#------------------------------- +[MIRACLESEED] +Name = Miracle Seed +NamePlural = Miracle Seeds +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. +#------------------------------- +[NEVERMELTICE] +Name = Never-Melt Ice +NamePlural = Never-Melt Ices +PortionName = piece of Never-Melt Ice +PortionNamePlural = pieces of Never-Melt Ice +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. +#------------------------------- +[BLACKBELT] +Name = Black Belt +NamePlural = Black Belts +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. +#------------------------------- +[POISONBARB] +Name = Poison Barb +NamePlural = Poison Barbs +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. +#------------------------------- +[SOFTSAND] +Name = Soft Sand +NamePlural = Soft Sand +PortionName = bag of Soft Sand +PortionNamePlural = bags of Soft Sand +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. +#------------------------------- +[SHARPBEAK] +Name = Sharp Beak +NamePlural = Sharp Beaks +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. +#------------------------------- +[TWISTEDSPOON] +Name = Twisted Spoon +NamePlural = Twisted Spoons +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. +#------------------------------- +[SILVERPOWDER] +Name = Silver Powder +NamePlural = Silver Powders +PortionName = pile of Silver Powder +PortionNamePlural = piles of Silver Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. +#------------------------------- +[HARDSTONE] +Name = Hard Stone +NamePlural = Hard Stones +Pocket = HeldItems +Price = 1000 +Flags = Fling_100 +Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. +#------------------------------- +[SPELLTAG] +Name = Spell Tag +NamePlural = Spell Tags +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. +#------------------------------- +[DRAGONFANG] +Name = Dragon Fang +NamePlural = Dragon Fangs +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. +#------------------------------- +[BLACKGLASSES] +Name = Black Glasses +NamePlural = Black Glasses +PortionName = pair of Black Glasses +PortionNamePlural = pairs of Black Glasses +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. +#------------------------------- +[METALCOAT] +Name = Metal Coat +NamePlural = Metal Coats +Pocket = HeldItems +Price = 2000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. +#------------------------------- +[SILKSCARF] +Name = Silk Scarf +NamePlural = Silk Scarves +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. +#------------------------------- +[FLAMEPLATE] +Name = Flame Plate +NamePlural = Flame Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. +#------------------------------- +[SPLASHPLATE] +Name = Splash Plate +NamePlural = Splash Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. +#------------------------------- +[ZAPPLATE] +Name = Zap Plate +NamePlural = Zap Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. +#------------------------------- +[MEADOWPLATE] +Name = Meadow Plate +NamePlural = Meadow Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. +#------------------------------- +[ICICLEPLATE] +Name = Icicle Plate +NamePlural = Icicle Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. +#------------------------------- +[FISTPLATE] +Name = Fist Plate +NamePlural = Fist Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. +#------------------------------- +[TOXICPLATE] +Name = Toxic Plate +NamePlural = Toxic Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. +#------------------------------- +[EARTHPLATE] +Name = Earth Plate +NamePlural = Earth Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. +#------------------------------- +[SKYPLATE] +Name = Sky Plate +NamePlural = Sky Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. +#------------------------------- +[MINDPLATE] +Name = Mind Plate +NamePlural = Mind Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. +#------------------------------- +[INSECTPLATE] +Name = Insect Plate +NamePlural = Insect Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. +#------------------------------- +[STONEPLATE] +Name = Stone Plate +NamePlural = Stone Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. +#------------------------------- +[SPOOKYPLATE] +Name = Spooky Plate +NamePlural = Spooky Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. +#------------------------------- +[DRACOPLATE] +Name = Draco Plate +NamePlural = Draco Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. +#------------------------------- +[DREADPLATE] +Name = Dread Plate +NamePlural = Dread Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. +#------------------------------- +[IRONPLATE] +Name = Iron Plate +NamePlural = Iron Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. +#------------------------------- +[PIXIEPLATE] +Name = Pixie Plate +NamePlural = Pixie Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fairy-type moves. +#------------------------------- +[FIREGEM] +Name = Fire Gem +NamePlural = Fire Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. +#------------------------------- +[WATERGEM] +Name = Water Gem +NamePlural = Water Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. +#------------------------------- +[ELECTRICGEM] +Name = Electric Gem +NamePlural = Electric Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. +#------------------------------- +[GRASSGEM] +Name = Grass Gem +NamePlural = Grass Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. +#------------------------------- +[ICEGEM] +Name = Ice Gem +NamePlural = Ice Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. +#------------------------------- +[FIGHTINGGEM] +Name = Fighting Gem +NamePlural = Fighting Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. +#------------------------------- +[POISONGEM] +Name = Poison Gem +NamePlural = Poison Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. +#------------------------------- +[GROUNDGEM] +Name = Ground Gem +NamePlural = Ground Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. +#------------------------------- +[FLYINGGEM] +Name = Flying Gem +NamePlural = Flying Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. +#------------------------------- +[PSYCHICGEM] +Name = Psychic Gem +NamePlural = Psychic Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. +#------------------------------- +[BUGGEM] +Name = Bug Gem +NamePlural = Bug Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. +#------------------------------- +[ROCKGEM] +Name = Rock Gem +NamePlural = Rock Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. +#------------------------------- +[GHOSTGEM] +Name = Ghost Gem +NamePlural = Ghost Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. +#------------------------------- +[DRAGONGEM] +Name = Dragon Gem +NamePlural = Dragon Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. +#------------------------------- +[DARKGEM] +Name = Dark Gem +NamePlural = Dark Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. +#------------------------------- +[STEELGEM] +Name = Steel Gem +NamePlural = Steel Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. +#------------------------------- +[FAIRYGEM] +Name = Fairy Gem +NamePlural = Fairy Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of the fey. When held, it strengthens the power of a Fairy-type move only once. +#------------------------------- +[NORMALGEM] +Name = Normal Gem +NamePlural = Normal Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. +#------------------------------- +[LIGHTBALL] +Name = Light Ball +NamePlural = Light Balls +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. +#------------------------------- +[LUCKYPUNCH] +Name = Lucky Punch +NamePlural = Lucky Punches +Pocket = HeldItems +Price = 1000 +BPPrice = 7 +Flags = Fling_40 +Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. +#------------------------------- +[METALPOWDER] +Name = Metal Powder +NamePlural = Metal Powders +PortionName = bag of Metal Powder +PortionNamePlural = bags of Metal Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. +#------------------------------- +[QUICKPOWDER] +Name = Quick Powder +NamePlural = Quick Powders +PortionName = bag of Quick Powder +PortionNamePlural = bags of Quick Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. +#------------------------------- +[THICKCLUB] +Name = Thick Club +NamePlural = Thick Clubs +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. +#------------------------------- +[STICK] +Name = Stick +NamePlural = Sticks +Pocket = HeldItems +Price = 1000 +Flags = Fling_60 +Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. +#------------------------------- +[SOULDEW] +Name = Soul Dew +NamePlural = Soul Dews +Pocket = HeldItems +Price = 0 +Flags = Fling_30 +Description = A wondrous orb to be held by either Latios or Latias. It raises the power of Psychic- and Dragon-type moves. +#------------------------------- +[DEEPSEATOOTH] +Name = Deep Sea Tooth +NamePlural = Deep Sea Teeth +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_90 +Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. +#------------------------------- +[DEEPSEASCALE] +Name = Deep Sea Scale +NamePlural = Deep Sea Scales +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_30 +Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. +#------------------------------- +[ADAMANTORB] +Name = Adamant Orb +NamePlural = Adamant Orbs +Pocket = HeldItems +Price = 10000 +Flags = Fling_60 +Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. +#------------------------------- +[LUSTROUSORB] +Name = Lustrous Orb +NamePlural = Lustrous Orbs +Pocket = HeldItems +Price = 10000 +Flags = Fling_60 +Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. +#------------------------------- +[GRISEOUSORB] +Name = Griseous Orb +NamePlural = Griseous Orbs +Pocket = HeldItems +Price = 10000 +Flags = Fling_60 +Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. +#------------------------------- +[DOUSEDRIVE] +Name = Douse Drive +NamePlural = Douse Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. +#------------------------------- +[SHOCKDRIVE] +Name = Shock Drive +NamePlural = Shock Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. +#------------------------------- +[BURNDRIVE] +Name = Burn Drive +NamePlural = Burn Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. +#------------------------------- +[CHILLDRIVE] +Name = Chill Drive +NamePlural = Chill Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. +#------------------------------- +[EVERSTONE] +Name = Everstone +NamePlural = Everstones +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. +#------------------------------- +[DRAGONSCALE] +Name = Dragon Scale +NamePlural = Dragon Scales +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_30 +Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. +#------------------------------- +[UPGRADE] +Name = Up-Grade +NamePlural = Up-Grades +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_30 +Description = A transparent device filled with all sorts of data. It was produced by Silph Co. +#------------------------------- +[DUBIOUSDISC] +Name = Dubious Disc +NamePlural = Dubious Discs +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_50 +Description = A transparent device overflowing with dubious data. Its producer is unknown. +#------------------------------- +[PROTECTOR] +Name = Protector +NamePlural = Protectors +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. +#------------------------------- +[ELECTIRIZER] +Name = Electirizer +NamePlural = Electirizers +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. +#------------------------------- +[MAGMARIZER] +Name = Magmarizer +NamePlural = Magmarizers +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. +#------------------------------- +[REAPERCLOTH] +Name = Reaper Cloth +NamePlural = Reaper Cloths +PortionName = scrap of Reaper Cloth +PortionNamePlural = scraps of Reaper Cloth +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_10 +Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. +#------------------------------- +[PRISMSCALE] +Name = Prism Scale +NamePlural = Prism Scales +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_30 +Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. +#------------------------------- +[OVALSTONE] +Name = Oval Stone +NamePlural = Oval Stones +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. +#------------------------------- +[WHIPPEDDREAM] +Name = Whipped Dream +NamePlural = Whipped Dreams +PortionName = dollop of Whipped Dream +PortionNamePlural = dollops of Whipped Dream +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A soft and sweet treat made of fluffy, puffy and whirled cream. It's loved by a certain Pokémon. +#------------------------------- +[SACHET] +Name = Sachet +NamePlural = Sachets +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A sachet filled with slightly overwhelming fragrant perfumes. Yet it's loved by a certain Pokémon. +#------------------------------- +[VENUSAURITE] +Name = Venusaurite +NamePlural = Venusaurites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Venusaur hold it, and it will be able to Mega Evolve. +#------------------------------- +[CHARIZARDITEX] +Name = Charizardite X +NamePlural = Charizardite Xs +Pocket = MegaStones +Price = 0 +BPPrice = 64 +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. +#------------------------------- +[CHARIZARDITEY] +Name = Charizardite Y +NamePlural = Charizardite Ys +Pocket = MegaStones +Price = 0 +BPPrice = 64 +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. +#------------------------------- +[BLASTOISINITE] +Name = Blastoisinite +NamePlural = Blastoisinites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Blastoise hold it, and it will be able to Mega Evolve. +#------------------------------- +[BEEDRILLITE] +Name = Beedrillite +NamePlural = Beedrillites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Beedrill hold it, and it will be able to Mega Evolve. +#------------------------------- +[PIDGEOTITE] +Name = Pidgeotite +NamePlural = Pidgeotites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Pidgeot hold it, and it will be able to Mega Evolve. +#------------------------------- +[ALAKAZITE] +Name = Alakazite +NamePlural = Alakazites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Alakazam hold it, and it will be able to Mega Evolve. +#------------------------------- +[SLOWBRONITE] +Name = Slowbronite +NamePlural = Slowbronites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Slowbro hold it, and it will be able to Mega Evolve. +#------------------------------- +[GENGARITE] +Name = Gengarite +NamePlural = Gengarites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gengar hold it, and it will be able to Mega Evolve. +#------------------------------- +[KANGASKHANITE] +Name = Kangaskhanite +NamePlural = Kangaskhanites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Kangaskhan hold it, and it will be able to Mega Evolve. +#------------------------------- +[PINSIRITE] +Name = Pinsirite +NamePlural = Pinsirites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Pinsir hold it, and it will be able to Mega Evolve. +#------------------------------- +[GYARADOSITE] +Name = Gyaradosite +NamePlural = Gyaradosites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gyarados hold it, and it will be able to Mega Evolve. +#------------------------------- +[AERODACTYLITE] +Name = Aerodactylite +NamePlural = Aerodactylites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Aerodactyl hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEWTWONITEX] +Name = Mewtwonite X +NamePlural = Mewtwonite Xs +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEWTWONITEY] +Name = Mewtwonite Y +NamePlural = Mewtwonite Ys +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. +#------------------------------- +[AMPHAROSITE] +Name = Ampharosite +NamePlural = Ampharosites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Ampharos hold it, and it will be able to Mega Evolve. +#------------------------------- +[STEELIXITE] +Name = Steelixite +NamePlural = Steelixites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Steelix hold it, and it will be able to Mega Evolve. +#------------------------------- +[SCIZORITE] +Name = Scizorite +NamePlural = Scizorites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Scizor hold it, and it will be able to Mega Evolve. +#------------------------------- +[HERACRONITE] +Name = Heracronite +NamePlural = Heracronites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Heracross hold it, and it will be able to Mega Evolve. +#------------------------------- +[HOUNDOOMINITE] +Name = Houndoominite +NamePlural = Houndoominites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Houndoom hold it, and it will be able to Mega Evolve. +#------------------------------- +[TYRANITARITE] +Name = Tyranitarite +NamePlural = Tyranitarites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Tyranitar hold it, and it will be able to Mega Evolve. +#------------------------------- +[SCEPTILITE] +Name = Sceptilite +NamePlural = Sceptilites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sceptile hold it, and it will be able to Mega Evolve. +#------------------------------- +[BLAZIKENITE] +Name = Blazikenite +NamePlural = Blazikenites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Blaziken hold it, and it will be able to Mega Evolve. +#------------------------------- +[SWAMPERTITE] +Name = Swampertite +NamePlural = Swampertites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Swampert hold it, and it will be able to Mega Evolve. +#------------------------------- +[GARDEVOIRITE] +Name = Gardevoirite +NamePlural = Gardevoirites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gardevoir hold it, and it will be able to Mega Evolve. +#------------------------------- +[SABLENITE] +Name = Sablenite +NamePlural = Sablenites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sableye hold it, and it will be able to Mega Evolve. +#------------------------------- +[MAWILITE] +Name = Mawilite +NamePlural = Mawilites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mawile hold it, and it will be able to Mega Evolve. +#------------------------------- +[AGGRONITE] +Name = Aggronite +NamePlural = Aggronites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Aggron hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEDICHAMITE] +Name = Medichamite +NamePlural = Medichamites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Medicham hold it, and it will be able to Mega Evolve. +#------------------------------- +[MANECTITE] +Name = Manectite +NamePlural = Manectites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Manectric hold it, and it will be able to Mega Evolve. +#------------------------------- +[SHARPEDONITE] +Name = Sharpedonite +NamePlural = Sharpedonites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sharpedo hold it, and it will be able to Mega Evolve. +#------------------------------- +[CAMERUPTITE] +Name = Cameruptite +NamePlural = Cameruptites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Camerupt hold it, and it will be able to Mega Evolve. +#------------------------------- +[ALTARIANITE] +Name = Altarianite +NamePlural = Altarianites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Altaria hold it, and it will be able to Mega Evolve. +#------------------------------- +[BANETTITE] +Name = Banettite +NamePlural = Banettites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Banette hold it, and it will be able to Mega Evolve. +#------------------------------- +[ABSOLITE] +Name = Absolite +NamePlural = Absolites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Absol hold it, and it will be able to Mega Evolve. +#------------------------------- +[GLALITITE] +Name = Glalitite +NamePlural = Glalitites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Glalie hold it, and it will be able to Mega Evolve. +#------------------------------- +[SALAMENCITE] +Name = Salamencite +NamePlural = Salamencites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Salamence hold it, and it will be able to Mega Evolve. +#------------------------------- +[METAGROSSITE] +Name = Metagrossite +NamePlural = Metagrossites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Metagross hold it, and it will be able to Mega Evolve. +#------------------------------- +[LATIASITE] +Name = Latiasite +NamePlural = Latiasites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Latias hold it, and it will be able to Mega Evolve. +#------------------------------- +[LATIOSITE] +Name = Latiosite +NamePlural = Latiosites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Latios hold it, and it will be able to Mega Evolve. +#------------------------------- +[LOPUNNITE] +Name = Lopunnite +NamePlural = Lopunnites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Lopunny hold it, and it will be able to Mega Evolve. +#------------------------------- +[GARCHOMPITE] +Name = Garchompite +NamePlural = Garchompites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Garchomp hold it, and it will be able to Mega Evolve. +#------------------------------- +[LUCARIONITE] +Name = Lucarionite +NamePlural = Lucarionites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Lucario hold it, and it will be able to Mega Evolve. +#------------------------------- +[ABOMASITE] +Name = Abomasite +NamePlural = Abomasites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Abomasnow hold it, and it will be able to Mega Evolve. +#------------------------------- +[GALLADITE] +Name = Galladite +NamePlural = Galladites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gallade hold it, and it will be able to Mega Evolve. +#------------------------------- +[AUDINITE] +Name = Audinite +NamePlural = Audinites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Audino hold it, and it will be able to Mega Evolve. +#------------------------------- +[DIANCITE] +Name = Diancite +NamePlural = Diancites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Diancie hold it, and it will be able to Mega Evolve. +#------------------------------- +[REDORB] +Name = Red Orb +NamePlural = Red Orbs +Pocket = HeldItems +Price = 0 +BPPrice = 64 +Description = A shiny red orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. +#------------------------------- +[BLUEORB] +Name = Blue Orb +NamePlural = Blue Orbs +Pocket = HeldItems +Price = 0 +BPPrice = 64 +Description = A shiny blue orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. #------------------------------- [XATTACK] Name = X Attack NamePlural = X Attacks -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -4927,7 +3833,7 @@ Description = An item that sharply boosts the Attack stat of a Pokémon while it [XATTACK2] Name = X Attack 2 NamePlural = X Attack 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4936,7 +3842,7 @@ Description = It sharply raises the Attack stat of a Pokémon in battle. It wear [XATTACK3] Name = X Attack 3 NamePlural = X Attack 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4945,7 +3851,7 @@ Description = It drastically raises the Attack stat of a Pokémon in battle. It [XATTACK6] Name = X Attack 6 NamePlural = X Attack 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4954,7 +3860,7 @@ Description = It raises the Attack stat of a Pokémon in battle immensely. It we [XDEFENSE] Name = X Defense NamePlural = X Defenses -Pocket = 7 +Pocket = BattleItems Price = 2000 BattleUse = OnBattler Flags = Fling_30 @@ -4963,7 +3869,7 @@ Description = An item that sharply boosts the Defense of a Pokémon while it rem [XDEFENSE2] Name = X Defense 2 NamePlural = X Defense 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4972,7 +3878,7 @@ Description = It sharply raises the Defense stat of a Pokémon in battle. It wea [XDEFENSE3] Name = X Defense 3 NamePlural = X Defense 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4981,7 +3887,7 @@ Description = It drastically raises the Defense stat of a Pokémon in battle. It [XDEFENSE6] Name = X Defense 6 NamePlural = X Defense 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -4990,7 +3896,7 @@ Description = It raises the Defense stat of a Pokémon in battle immensely. It w [XSPATK] Name = X Sp. Atk NamePlural = X Sp. Atks -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -4999,7 +3905,7 @@ Description = An item that sharply boosts the Sp. Atk stat of a Pokémon while i [XSPATK2] Name = X Sp. Atk 2 NamePlural = X Sp. Atk 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5008,7 +3914,7 @@ Description = It sharply raises the Sp. Atk stat of a Pokémon in battle. It wea [XSPATK3] Name = X Sp. Atk 3 NamePlural = X Sp. Atk 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5017,7 +3923,7 @@ Description = It drastically raises the Sp. Atk stat of a Pokémon in battle. It [XSPATK6] Name = X Sp. Atk 6 NamePlural = X Sp. Atk 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5026,7 +3932,7 @@ Description = It raises the Sp. Atk stat of a Pokémon in battle immensely. It w [XSPDEF] Name = X Sp. Def NamePlural = X Sp. Defs -Pocket = 7 +Pocket = BattleItems Price = 2000 BattleUse = OnBattler Flags = Fling_30 @@ -5035,7 +3941,7 @@ Description = An item that sharply boosts the Sp. Def stat of a Pokémon while i [XSPDEF2] Name = X Sp. Def 2 NamePlural = X Sp. Def 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5044,7 +3950,7 @@ Description = It sharply raises the Sp. Def stat of a Pokémon in battle. It wea [XSPDEF3] Name = X Sp. Def 3 NamePlural = X Sp. Def 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5053,7 +3959,7 @@ Description = It drastically raises the Sp. Def stat of a Pokémon in battle. It [XSPDEF6] Name = X Sp. Def 6 NamePlural = X Sp. Def 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5062,7 +3968,7 @@ Description = It raises the Sp. Def stat of a Pokémon in battle immensely. It w [XSPEED] Name = X Speed NamePlural = X Speeds -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -5071,7 +3977,7 @@ Description = An item that sharply boosts the Speed stat of a Pokémon while it [XSPEED2] Name = X Speed 2 NamePlural = X Speed 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5080,7 +3986,7 @@ Description = It sharply raises the Speed stat of a Pokémon in battle. It wears [XSPEED3] Name = X Speed 3 NamePlural = X Speed 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5089,7 +3995,7 @@ Description = It drastically raises the Speed stat of a Pokémon in battle. It w [XSPEED6] Name = X Speed 6 NamePlural = X Speed 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5098,7 +4004,7 @@ Description = It raises the Speed stat of a Pokémon in battle immensely. It wea [XACCURACY] Name = X Accuracy NamePlural = X Accuracies -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -5107,7 +4013,7 @@ Description = An item that sharply boosts the accuracy of a Pokémon while it re [XACCURACY2] Name = X Accuracy 2 NamePlural = X Accuracy 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5116,7 +4022,7 @@ Description = It sharply raises the accuracy of a Pokémon in battle. It wears o [XACCURACY3] Name = X Accuracy 3 NamePlural = X Accuracy 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5125,7 +4031,7 @@ Description = It drastically raises the accuracy of a Pokémon in battle. It wea [XACCURACY6] Name = X Accuracy 6 NamePlural = X Accuracy 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5134,7 +4040,7 @@ Description = It raises the accuracy of a Pokémon in battle immensely. It wears [DIREHIT] Name = Dire Hit NamePlural = Dire Hits -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -5143,7 +4049,7 @@ Description = An item that raises the critical-hit ratio greatly. It wears off i [DIREHIT2] Name = Dire Hit 2 NamePlural = Dire Hit 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5152,7 +4058,7 @@ Description = It sharply raises the critical-hit ratio. It wears off if the Pok [DIREHIT3] Name = Dire Hit 3 NamePlural = Dire Hit 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5161,7 +4067,7 @@ Description = It greatly raises the critical-hit ratio. It wears off if the Pok [GUARDSPEC] Name = Guard Spec. NamePlural = Guard Specs. -Pocket = 7 +Pocket = BattleItems Price = 1500 BattleUse = Direct Flags = Fling_30 @@ -5170,7 +4076,7 @@ Description = An item that prevents stat reduction among the Trainer's party Pok [RESETURGE] Name = Reset Urge NamePlural = Reset Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it restores any stat changes of an ally Pokémon. @@ -5178,7 +4084,7 @@ Description = When used, it restores any stat changes of an ally Pokémon. [ABILITYURGE] Name = Ability Urge NamePlural = Ability Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it activates the Ability of an ally Pokémon. @@ -5186,7 +4092,7 @@ Description = When used, it activates the Ability of an ally Pokémon. [ITEMURGE] Name = Item Urge NamePlural = Item Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it causes an ally Pokémon to use its held item. @@ -5194,7 +4100,7 @@ Description = When used, it causes an ally Pokémon to use its held item. [ITEMDROP] Name = Item Drop NamePlural = Item Drops -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it causes an ally Pokémon to drop a held item. @@ -5202,7 +4108,7 @@ Description = When used, it causes an ally Pokémon to drop a held item. [BLUEFLUTE] Name = Blue Flute NamePlural = Blue Flutes -Pocket = 7 +Pocket = BattleItems Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5213,7 +4119,7 @@ Description = A blue flute made from blown glass. Its melody awakens a single Po [YELLOWFLUTE] Name = Yellow Flute NamePlural = Yellow Flutes -Pocket = 7 +Pocket = BattleItems Price = 300 BattleUse = OnBattler Flags = Fling_30 @@ -5223,7 +4129,7 @@ Description = A yellow flute made from blown glass. Its melody snaps a single Po [REDFLUTE] Name = Red Flute NamePlural = Red Flutes -Pocket = 7 +Pocket = BattleItems Price = 200 BattleUse = OnBattler Flags = Fling_30 @@ -5233,7 +4139,7 @@ Description = A red flute made from blown glass. Its melody snaps a single Poké [POKEDOLL] Name = Poké Doll NamePlural = Poké Dolls -Pocket = 7 +Pocket = BattleItems Price = 100 BattleUse = Direct Flags = Fling_30 @@ -5242,7 +4148,7 @@ Description = A doll that attracts Pokémon. Use it to flee from any battle with [FLUFFYTAIL] Name = Fluffy Tail NamePlural = Fluffy Tails -Pocket = 7 +Pocket = BattleItems Price = 100 BattleUse = Direct Flags = Fling_30 @@ -5251,16 +4157,1070 @@ Description = An item that attracts Pokémon. Use it to flee from any battle wit [POKETOY] Name = Poké Toy NamePlural = Poké Toys -Pocket = 7 +Pocket = BattleItems Price = 100 BattleUse = Direct Flags = Fling_30 Description = An item that attracts Pokémon. Use it to flee from any battle with a wild Pokémon. #------------------------------- +[TM01] +Name = TM01 +NamePlural = TM01s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = HONECLAWS +Description = The user sharpens its claws to boost its Attack stat and accuracy. +#------------------------------- +[TM02] +Name = TM02 +NamePlural = TM02s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = DRAGONCLAW +Description = The user slashes the target with huge, sharp claws. +#------------------------------- +[TM03] +Name = TM03 +NamePlural = TM03s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = PSYSHOCK +Description = The user materializes an odd psychic wave to attack the target. This attack does physical damage. +#------------------------------- +[TM04] +Name = TM04 +NamePlural = TM04s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = CALMMIND +Description = The user quietly focuses its mind and calms its spirit to raise its Sp. Atk and Sp. Def stats. +#------------------------------- +[TM05] +Name = TM05 +NamePlural = TM05s +Pocket = Machines +Price = 10000 +BPPrice = 24 +FieldUse = TM +Move = ROAR +Description = The target is scared off and replaced by another Pokémon in its party. In the wild, the battle ends. +#------------------------------- +[TM06] +Name = TM06 +NamePlural = TM06s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = TOXIC +Description = A move that leaves the target badly poisoned. Its poison damage worsens every turn. +#------------------------------- +[TM07] +Name = TM07 +NamePlural = TM07s +Pocket = Machines +Price = 50000 +BPPrice = 16 +FieldUse = TM +Move = HAIL +Description = Summons a hailstorm that lasts for five turns. The hailstorm damages all types except Ice. +#------------------------------- +[TM08] +Name = TM08 +NamePlural = TM08s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = BULKUP +Description = The user tenses its muscles to bulk up its body, boosting both its Attack and Defense stats. +#------------------------------- +[TM09] +Name = TM09 +NamePlural = TM09s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = VENOSHOCK +Description = The user drenches the target in a special poisonous liquid. Its power is doubled if the target is poisoned. +#------------------------------- +[TM10] +Name = TM10 +NamePlural = TM10s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = HIDDENPOWER +Description = A unique attack that varies in type and intensity depending on the Pokémon using it. +#------------------------------- +[TM11] +Name = TM11 +NamePlural = TM11s +Pocket = Machines +Price = 50000 +BPPrice = 16 +FieldUse = TM +Move = SUNNYDAY +Description = The user intensifies the sun for five turns, powering up Fire-type moves. +#------------------------------- +[TM12] +Name = TM12 +NamePlural = TM12s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = TAUNT +Description = The target is taunted into a rage that allows it to use only attack moves for three turns. +#------------------------------- +[TM13] +Name = TM13 +NamePlural = TM13s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = ICEBEAM +Description = The target is struck with an icy-cold beam of energy. It may also freeze the target solid. +#------------------------------- +[TM14] +Name = TM14 +NamePlural = TM14s +Pocket = Machines +Price = 30000 +BPPrice = 16 +FieldUse = TM +Move = BLIZZARD +Description = A howling blizzard is summoned to strike the opposing team. It may also freeze them solid. +#------------------------------- +[TM15] +Name = TM15 +NamePlural = TM15s +Pocket = Machines +Price = 50000 +BPPrice = 16 +FieldUse = TM +Move = HYPERBEAM +Description = The target is attacked with a powerful beam. The user must rest on the next turn to regain its energy. +#------------------------------- +[TM16] +Name = TM16 +NamePlural = TM16s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = LIGHTSCREEN +Description = A wondrous wall of light is put up to suppress damage from special attacks for five turns. +#------------------------------- +[TM17] +Name = TM17 +NamePlural = TM17s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = PROTECT +Description = It enables the user to evade all attacks. Its chance of failing rises if it is used in succession. +#------------------------------- +[TM18] +Name = TM18 +NamePlural = TM18s +Pocket = Machines +Price = 50000 +BPPrice = 16 +FieldUse = TM +Move = RAINDANCE +Description = The user summons a heavy rain that falls for five turns, powering up Water-type moves. +#------------------------------- +[TM19] +Name = TM19 +NamePlural = TM19s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = ROOST +Description = The user lands and rests its body. It restores the user's HP by up to half of its max HP. +#------------------------------- +[TM20] +Name = TM20 +NamePlural = TM20s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = SAFEGUARD +Description = The user creates a protective field that prevents status problems for five turns. +#------------------------------- +[TM21] +Name = TM21 +NamePlural = TM21s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = FRUSTRATION +Description = A full-power attack that grows more powerful the less the user likes its Trainer. +#------------------------------- +[TM22] +Name = TM22 +NamePlural = TM22s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = SOLARBEAM +Description = A two-turn attack. The user gathers light, then blasts a bundled beam on the second turn. +#------------------------------- +[TM23] +Name = TM23 +NamePlural = TM23s +Pocket = Machines +Price = 10000 +BPPrice = 32 +FieldUse = TM +Move = SMACKDOWN +Description = The user throws a stone or similar projectile to attack a foe. A flying Pokémon will fall to the ground if hit. +#------------------------------- +[TM24] +Name = TM24 +NamePlural = TM24s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = THUNDERBOLT +Description = A strong electric blast is loosed at the target. It may also leave the target with paralysis. +#------------------------------- +[TM25] +Name = TM25 +NamePlural = TM25s +Pocket = Machines +Price = 30000 +BPPrice = 16 +FieldUse = TM +Move = THUNDER +Description = A wicked thunderbolt is dropped on the target to inflict damage. It may also leave the target with paralysis. +#------------------------------- +[TM26] +Name = TM26 +NamePlural = TM26s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = EARTHQUAKE +Description = The user sets off an earthquake that strikes every Pokémon around it. +#------------------------------- +[TM27] +Name = TM27 +NamePlural = TM27s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = RETURN +Description = A full-power attack that grows more powerful the more the user likes its Trainer. +#------------------------------- +[TM28] +Name = TM28 +NamePlural = TM28s +Pocket = Machines +Price = 2000 +BPPrice = 16 +FieldUse = TM +Move = DIG +Description = The user burrows, then attacks on the second turn. It can also be used to exit dungeons. +#------------------------------- +[TM29] +Name = TM29 +NamePlural = TM29s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = PSYCHIC +Description = The target is hit by a strong telekinetic force. It may also reduce the target's Sp. Def stat. +#------------------------------- +[TM30] +Name = TM30 +NamePlural = TM30s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = SHADOWBALL +Description = The user hurls a shadowy blob at the target. It may also lower the target's Sp. Def stat. +#------------------------------- +[TM31] +Name = TM31 +NamePlural = TM31s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = BRICKBREAK +Description = The user attacks with tough fists, etc. It can also break any barrier such as Light Screen and Reflect. +#------------------------------- +[TM32] +Name = TM32 +NamePlural = TM32s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = DOUBLETEAM +Description = By moving rapidly, the user makes illusory copies of itself to raise its evasiveness. +#------------------------------- +[TM33] +Name = TM33 +NamePlural = TM33s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = REFLECT +Description = A wondrous wall of light is put up to suppress damage from physical attacks for five turns. +#------------------------------- +[TM34] +Name = TM34 +NamePlural = TM34s +Pocket = Machines +Price = 10000 +BPPrice = 32 +FieldUse = TM +Move = SLUDGEWAVE +Description = It swamps the area around the user with a giant sludge wave. It may also poison those hit. +#------------------------------- +[TM35] +Name = TM35 +NamePlural = TM35s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = FLAMETHROWER +Description = The target is scorched with an intense blast of fire. It may also leave the target with a burn. +#------------------------------- +[TM36] +Name = TM36 +NamePlural = TM36s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = SLUDGEBOMB +Description = Unsanitary sludge is hurled at the target. It may also poison the target. +#------------------------------- +[TM37] +Name = TM37 +NamePlural = TM37s +Pocket = Machines +Price = 50000 +BPPrice = 16 +FieldUse = TM +Move = SANDSTORM +Description = A five-turn sandstorm is summoned to hurt all combatants except the Rock, Ground, and Steel types. +#------------------------------- +[TM38] +Name = TM38 +NamePlural = TM38s +Pocket = Machines +Price = 30000 +BPPrice = 16 +FieldUse = TM +Move = FIREBLAST +Description = The foe is attacked with an intense blast of all-consuming fire. It may also leave the target with a burn. +#------------------------------- +[TM39] +Name = TM39 +NamePlural = TM39s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = ROCKTOMB +Description = Boulders are hurled at the target. It also lowers the target's Speed by preventing its movement. +#------------------------------- +[TM40] +Name = TM40 +NamePlural = TM40s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = AERIALACE +Description = The user confounds the target with speed, then slashes. The attack lands without fail. +#------------------------------- +[TM41] +Name = TM41 +NamePlural = TM41s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = TORMENT +Description = The user torments and enrages the target, making it incapable of using the same move twice in a row. +#------------------------------- +[TM42] +Name = TM42 +NamePlural = TM42s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = FACADE +Description = An attack move that doubles its power if the user is poisoned, paralyzed, or has a burn. +#------------------------------- +[TM43] +Name = TM43 +NamePlural = TM43s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = FLAMECHARGE +Description = The user cloaks itself with flame and attacks. Building up more power, it raises the user's Speed stat. +#------------------------------- +[TM44] +Name = TM44 +NamePlural = TM44s +Pocket = Machines +Price = 1000 +BPPrice = 16 +FieldUse = TM +Move = REST +Description = The user goes to sleep for two turns. It fully restores the user's HP and heals any status problem. +#------------------------------- +[TM45] +Name = TM45 +NamePlural = TM45s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = ATTRACT +Description = If it is the opposite gender of the user, the target becomes infatuated and less likely to attack. +#------------------------------- +[TM46] +Name = TM46 +NamePlural = TM46s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = THIEF +Description = The user attacks and steals the target's held item simultaneously. It can't steal if the user holds an item. +#------------------------------- +[TM47] +Name = TM47 +NamePlural = TM47s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = LOWSWEEP +Description = The user attacks the target's legs swiftly, reducing the target's Speed stat. +#------------------------------- +[TM48] +Name = TM48 +NamePlural = TM48s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = ROUND +Description = The user attacks the target with a song. Others can join in the Round to increase the power of the attack. +#------------------------------- +[TM49] +Name = TM49 +NamePlural = TM49s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = ECHOEDVOICE +Description = The user attacks the target with an echoing voice. If this move is used every turn, it does greater damage. +#------------------------------- +[TM50] +Name = TM50 +NamePlural = TM50s +Pocket = Machines +Price = 80000 +BPPrice = 16 +FieldUse = TM +Move = OVERHEAT +Description = The user attacks the target at full power. The attack's recoil sharply reduces the user's Sp. Atk stat. +#------------------------------- +[TM51] +Name = TM51 +NamePlural = TM51s +Pocket = Machines +Price = 10000 +BPPrice = 32 +FieldUse = TM +Move = STEELWING +Description = The target is hit with wings of steel. This may also raise the user's Defense stat. +#------------------------------- +[TM52] +Name = TM52 +NamePlural = TM52s +Pocket = Machines +Price = 30000 +BPPrice = 16 +FieldUse = TM +Move = FOCUSBLAST +Description = The user heightens its mental focus and unleashes its power. It may also lower the target's Sp. Def. +#------------------------------- +[TM53] +Name = TM53 +NamePlural = TM53s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = ENERGYBALL +Description = The user draws power from nature and fires it at the target. It may also lower the target's Sp. Def. +#------------------------------- +[TM54] +Name = TM54 +NamePlural = TM54s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = FALSESWIPE +Description = A restrained attack that prevents the target from fainting. The target is left with at least 1 HP. +#------------------------------- +[TM55] +Name = TM55 +NamePlural = TM55s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = SCALD +Description = The user shoots boiling hot water at its target. It may also leave the target with a burn. +#------------------------------- +[TM56] +Name = TM56 +NamePlural = TM56s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = FLING +Description = The user flings its held item at the target as an attack. Its power and effects depend on the item. +#------------------------------- +[TM57] +Name = TM57 +NamePlural = TM57s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = CHARGEBEAM +Description = The user attacks with an electric charge. The user may use any remaining charge to raise its Sp. Atk. +#------------------------------- +[TM58] +Name = TM58 +NamePlural = TM58s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = SKYDROP +Description = The user hurls the foe into the sky, then drops it on the next turn. The foe cannot attack while in the sky. +#------------------------------- +[TM59] +Name = TM59 +NamePlural = TM59s +Pocket = Machines +Price = 1500 +BPPrice = 16 +FieldUse = TM +Move = INCINERATE +Description = The user attacks the target with fire. If the target is holding a Berry, it becomes burnt up and unusable. +#------------------------------- +[TM60] +Name = TM60 +NamePlural = TM60s +Pocket = Machines +Price = 10000 +BPPrice = 24 +FieldUse = TM +Move = QUASH +Description = The user suppresses the target and makes its move go last. +#------------------------------- +[TM61] +Name = TM61 +NamePlural = TM61s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = WILLOWISP +Description = The user shoots a sinister, bluish-white flame at the target to inflict a burn. +#------------------------------- +[TM62] +Name = TM62 +NamePlural = TM62s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = ACROBATICS +Description = The user nimbly strikes the target. If the user is not holding an item, this attack inflicts massive damage. +#------------------------------- +[TM63] +Name = TM63 +NamePlural = TM63s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = EMBARGO +Description = It prevents the target from using its held item. Its Trainer is also prevented from using items on it. +#------------------------------- +[TM64] +Name = TM64 +NamePlural = TM64s +Pocket = Machines +Price = 10000 +BPPrice = 48 +FieldUse = TM +Move = EXPLOSION +Description = The user explodes to inflict damage on those around it. The user faints upon using this move. +#------------------------------- +[TM65] +Name = TM65 +NamePlural = TM65s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = SHADOWCLAW +Description = The user slashes with a sharp claw made from shadows. It has a high critical-hit ratio. +#------------------------------- +[TM66] +Name = TM66 +NamePlural = TM66s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = PAYBACK +Description = The user stores power, then attacks. If the user goes after the target, this attack's power doubles. +#------------------------------- +[TM67] +Name = TM67 +NamePlural = TM67s +Pocket = Machines +Price = 1000 +BPPrice = 48 +FieldUse = TM +Move = RETALIATE +Description = The user gets revenge for a fainted ally. If an ally fainted in the last turn, this move's power is increased. +#------------------------------- +[TM68] +Name = TM68 +NamePlural = TM68s +Pocket = Machines +Price = 50000 +BPPrice = 16 +FieldUse = TM +Move = GIGAIMPACT +Description = The user charges at the target using every bit of its power. The user must rest on the next turn. +#------------------------------- +[TM69] +Name = TM69 +NamePlural = TM69s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = ROCKPOLISH +Description = The user polishes its body to reduce drag. It sharply raises the Speed stat. +#------------------------------- +[TM70] +Name = TM70 +NamePlural = TM70s +Pocket = Machines +Price = 1000 +BPPrice = 16 +FieldUse = TM +Move = FLASH +Description = The user flashes a bright light that cuts the target's accuracy. It can also be used to illuminate caves. +#------------------------------- +[TM71] +Name = TM71 +NamePlural = TM71s +Pocket = Machines +Price = 30000 +BPPrice = 16 +FieldUse = TM +Move = STONEEDGE +Description = The user stabs the foe with sharpened stones from below. It has a high critical-hit ratio. +#------------------------------- +[TM72] +Name = TM72 +NamePlural = TM72s +Pocket = Machines +Price = 10000 +BPPrice = 48 +FieldUse = TM +Move = VOLTSWITCH +Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. +#------------------------------- +[TM73] +Name = TM73 +NamePlural = TM73s +Pocket = Machines +Price = 5000 +BPPrice = 16 +FieldUse = TM +Move = THUNDERWAVE +Description = A weak electric charge is launched at the target. It causes paralysis if it hits. +#------------------------------- +[TM74] +Name = TM74 +NamePlural = TM74s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = GYROBALL +Description = The user tackles the target with a high-speed spin. The slower the user, the greater the damage. +#------------------------------- +[TM75] +Name = TM75 +NamePlural = TM75s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = SWORDSDANCE +Description = A frenetic dance to uplift the fighting spirit. It sharply raises the user's Attack stat. +#------------------------------- +[TM76] +Name = TM76 +NamePlural = TM76s +Pocket = Machines +Price = 2000 +BPPrice = 16 +FieldUse = TM +Move = STRUGGLEBUG +Description = Resisting, the user attacks the opposing Pokémon. The targets' Sp. Atk stat is reduced. +#------------------------------- +[TM77] +Name = TM77 +NamePlural = TM77s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = PSYCHUP +Description = The user hypnotizes itself into copying any stat change made by the target. +#------------------------------- +[TM78] +Name = TM78 +NamePlural = TM78s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = BULLDOZE +Description = The user stomps down on the ground and attacks everything in the area. The targets' Speed stat is reduced. +#------------------------------- +[TM79] +Name = TM79 +NamePlural = TM79s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = FROSTBREATH +Description = The user blows a cold breath on the target. This attack always results in a critical hit. +#------------------------------- +[TM80] +Name = TM80 +NamePlural = TM80s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = ROCKSLIDE +Description = Large boulders are hurled at the opposing team to inflict damage. They may also make the targets flinch. +#------------------------------- +[TM81] +Name = TM81 +NamePlural = TM81s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = XSCISSOR +Description = The user slashes at the target by crossing its scythes or claws as if they were a pair of scissors. +#------------------------------- +[TM82] +Name = TM82 +NamePlural = TM82s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = DRAGONTAIL +Description = The user knocks away the target and drags out another Pokémon in its party. In the wild, the battle ends. +#------------------------------- +[TM83] +Name = TM83 +NamePlural = TM83s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = INFESTATION +Description = The target is infested and attacked for four to five turns. The target can't flee during this time. +#------------------------------- +[TM84] +Name = TM84 +NamePlural = TM84s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = POISONJAB +Description = The target is stabbed with a tentacle or arm steeped in poison. It may also poison the target. +#------------------------------- +[TM85] +Name = TM85 +NamePlural = TM85s +Pocket = Machines +Price = 10000 +BPPrice = 48 +FieldUse = TM +Move = DREAMEATER +Description = The user eats the dreams of a sleeping target. It absorbs half the damage caused to heal the user's HP. +#------------------------------- +[TM86] +Name = TM86 +NamePlural = TM86s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = GRASSKNOT +Description = The user snares the target with grass and trips it. The heavier the target, the greater the damage. +#------------------------------- +[TM87] +Name = TM87 +NamePlural = TM87s +Pocket = Machines +Price = 10000 +BPPrice = 24 +FieldUse = TM +Move = SWAGGER +Description = The user enrages and confuses the target. However, it also sharply raises the target's Attack stat. +#------------------------------- +[TM88] +Name = TM88 +NamePlural = TM88s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = SLEEPTALK +Description = While it is asleep, the user randomly uses one of the moves it knows. +#------------------------------- +[TM89] +Name = TM89 +NamePlural = TM89s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = UTURN +Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. +#------------------------------- +[TM90] +Name = TM90 +NamePlural = TM90s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = SUBSTITUTE +Description = The user makes a copy of itself using some of its HP. The copy serves as the user's decoy. +#------------------------------- +[TM91] +Name = TM91 +NamePlural = TM91s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = FLASHCANNON +Description = The user gathers all its light energy and releases it at once. It may also lower the target's Sp. Def stat. +#------------------------------- +[TM92] +Name = TM92 +NamePlural = TM92s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = TRICKROOM +Description = The user creates a bizarre space in which slower Pokémon get to move first for five turns. +#------------------------------- +[TM93] +Name = TM93 +NamePlural = TM93s +Pocket = Machines +Price = 50000 +BPPrice = 16 +FieldUse = TM +Move = WILDCHARGE +Description = The user shrouds itself in electricity and smashes into its target. It also damages the user a little. +#------------------------------- +[TM94] +Name = TM94 +NamePlural = TM94s +Pocket = Machines +Price = 2000 +BPPrice = 16 +FieldUse = TM +Move = SECRETPOWER +Description = The user attacks with a secret power. Its added effects vary depending on the user's environment. +#------------------------------- +[TM95] +Name = TM95 +NamePlural = TM95s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = SNARL +Description = The user yells as if it is ranting about something, making the target's Sp. Atk stat decrease. +#------------------------------- +[TM96] +Name = TM96 +NamePlural = TM96s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = NATUREPOWER +Description = This attack makes use of nature's power. Its effects vary depending on the user's environment. +#------------------------------- +[TM97] +Name = TM97 +NamePlural = TM97s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = DARKPULSE +Description = The user releases a horrible aura imbued with dark thoughts. This may also make the target flinch. +#------------------------------- +[TM98] +Name = TM98 +NamePlural = TM98s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = POWERUPPUNCH +Description = Striking opponents repeatedly makes the user's fists harder. Hitting a target raises the Attack stat. +#------------------------------- +[TM99] +Name = TM99 +NamePlural = TM99s +Pocket = Machines +Price = 10000 +BPPrice = 16 +FieldUse = TM +Move = DAZZLINGGLEAM +Description = The user damages opposing Pokémon by emitting a powerful flash. +#------------------------------- +[TM100] +Name = TM100 +NamePlural = TM100s +Pocket = Machines +Price = 5000 +BPPrice = 16 +FieldUse = TM +Move = CONFIDE +Description = The user tells the target a secret. The target loses concentration and its Sp. Atk stat is lowered. +#------------------------------- +[HM01] +Name = HM01 +NamePlural = HM01s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = CUT +Description = The target is cut with a scythe or claw. It can also be used to cut down thin trees. +#------------------------------- +[HM02] +Name = HM02 +NamePlural = HM02s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = FLY +Description = The user soars, then strikes on the second turn. It can also be used to fly to any familiar town. +#------------------------------- +[HM03] +Name = HM03 +NamePlural = HM03s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = SURF +Description = It swamps the area around the user with a giant wave. It can also be used for crossing water. +#------------------------------- +[HM04] +Name = HM04 +NamePlural = HM04s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = STRENGTH +Description = The target is slugged with a punch thrown at maximum power. This move can also be used to move boulders. +#------------------------------- +[HM05] +Name = HM05 +NamePlural = HM05s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = WATERFALL +Description = The user charges the target at an awesome speed. It can also be used to climb a waterfall. +#------------------------------- +[HM06] +Name = HM06 +NamePlural = HM06s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = DIVE +Description = The user dives on the first turn, and floats up and attacks on the next. It can be used to dive underwater. +#------------------------------- [BICYCLE] Name = Bicycle NamePlural = Bicycles -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5269,7 +5229,7 @@ Description = A folding Bicycle that enables much faster movement than the Runni [OLDROD] Name = Old Rod NamePlural = Old Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5278,7 +5238,7 @@ Description = An old and beat-up fishing rod. Use it by any body of water to fis [GOODROD] Name = Good Rod NamePlural = Good Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5287,7 +5247,7 @@ Description = A new, good-quality fishing rod. Use it by any body of water to fi [SUPERROD] Name = Super Rod NamePlural = Super Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5296,7 +5256,7 @@ Description = An awesome, high-tech fishing rod. Use it by any body of water to [ITEMFINDER] Name = Itemfinder NamePlural = Itemfinders -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5305,7 +5265,7 @@ Description = A device used for finding items. If there is a hidden item nearby [DOWSINGMACHINE] Name = Dowsing Machine NamePlural = Dowsing Machines -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5314,7 +5274,7 @@ Description = It checks for unseen items in the area and makes noise and lights [POKERADAR] Name = Poké Radar NamePlural = Poké Radars -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5323,7 +5283,7 @@ Description = A tool that can search out Pokémon that are hiding in grass. Its [TOWNMAP] Name = Town Map NamePlural = Town Maps -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5332,7 +5292,7 @@ Description = A very convenient map that can be viewed anytime. It even shows yo [POKEFLUTE] Name = Poké Flute NamePlural = Poké Flutes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon BattleUse = Direct @@ -5342,7 +5302,7 @@ Description = A flute that is said to instantly awaken any Pokémon. It has a lo [COINCASE] Name = Coin Case NamePlural = Coin Cases -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5351,7 +5311,7 @@ Description = A case for holding coins obtained at the Game Corner. It holds up [SOOTSACK] Name = Soot Sack NamePlural = Soot Sacks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A sack used to gather and hold volcanic ash. @@ -5359,7 +5319,7 @@ Description = A sack used to gather and hold volcanic ash. [SILPHSCOPE] Name = Silph Scope NamePlural = Silph Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A scope that makes unseeable Pokémon visible. It is made by Silph Co. @@ -5367,7 +5327,7 @@ Description = A scope that makes unseeable Pokémon visible. It is made by Silph [DEVONSCOPE] Name = Devon Scope NamePlural = Devon Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A device by Devon that signals any unseeable Pokémon. @@ -5375,7 +5335,7 @@ Description = A device by Devon that signals any unseeable Pokémon. [SQUIRTBOTTLE] Name = Squirt Bottle NamePlural = Squirt Bottles -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Squirtle. It helps promote healthy growth of Berries planted in soft soil. @@ -5383,7 +5343,7 @@ Description = A watering can shaped like a Squirtle. It helps promote healthy gr [SPRAYDUCK] Name = Sprayduck NamePlural = Sprayducks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Psyduck. It helps promote healthy growth of Berries planted in soft soil. @@ -5391,7 +5351,7 @@ Description = A watering can shaped like a Psyduck. It helps promote healthy gro [WAILMERPAIL] Name = Wailmer Pail NamePlural = Wailmer Pails -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A nifty watering pail. Use it to promote strong growth in Berries planted in soft soil. @@ -5399,7 +5359,7 @@ Description = A nifty watering pail. Use it to promote strong growth in Berries [SPRINKLOTAD] Name = Sprinklotad NamePlural = Sprinklotads -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Lotad. It helps promote the healthy growth of any Berries planted in soft soil. @@ -5407,7 +5367,7 @@ Description = A watering can shaped like a Lotad. It helps promote the healthy g [GRACIDEA] Name = Gracidea NamePlural = Gracideas -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5416,7 +5376,7 @@ Description = A flower sometimes bundled in bouquets to convey gratitude on spec [REVEALGLASS] Name = Reveal Glass NamePlural = Reveal Glasses -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5425,7 +5385,7 @@ Description = A glass that reveals the truth. It is a mysterious glass that retu [PRISONBOTTLE] Name = Prison Bottle NamePlural = Prison Bottles -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5434,7 +5394,7 @@ Description = A bottle believed to have been used to seal away the power of a ce [DNASPLICERS] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5443,7 +5403,7 @@ Description = A splicer that fuses Kyurem and a certain Pokémon. They are said [DNASPLICERSUSED] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5452,7 +5412,7 @@ Description = A splicer that separates Kyurem and a certain Pokémon when they h [OVALCHARM] Name = Oval Charm NamePlural = Oval Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = An oval charm said to increase the chance of Eggs being found at the Day Care. @@ -5460,7 +5420,7 @@ Description = An oval charm said to increase the chance of Eggs being found at t [SHINYCHARM] Name = Shiny Charm NamePlural = Shiny Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A shiny charm said to increase the chance of finding a Shiny Pokémon. @@ -5468,7 +5428,7 @@ Description = A shiny charm said to increase the chance of finding a Shiny Poké [MEGARING] Name = Mega Ring NamePlural = Mega Rings -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = This ring contains an untold power that somehow enables Pokémon carrying Mega Stones to Mega Evolve. @@ -5476,7 +5436,7 @@ Description = This ring contains an untold power that somehow enables Pokémon c [AURORATICKET] Name = Aurora Ticket NamePlural = Aurora Tickets -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A ticket required to board the ship to Berth Island. It glows beautifully. @@ -5484,7 +5444,7 @@ Description = A ticket required to board the ship to Berth Island. It glows beau [OLDSEAMAP] Name = Old Sea Map NamePlural = Old Sea Maps -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A faded sea chart that shows the way to a certain island. diff --git a/PBS/Gen 7 backup/items.txt b/PBS/Gen 7 backup/items.txt index 65fde77f2..cbc9bf17d 100644 --- a/PBS/Gen 7 backup/items.txt +++ b/PBS/Gen 7 backup/items.txt @@ -3,7 +3,7 @@ [REPEL] Name = Repel NamePlural = Repels -Pocket = 1 +Pocket = Items Price = 400 FieldUse = Direct Flags = Repel,Fling_30 @@ -12,7 +12,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 100 st [SUPERREPEL] Name = Super Repel NamePlural = Super Repels -Pocket = 1 +Pocket = Items Price = 700 FieldUse = Direct Flags = Repel,Fling_30 @@ -21,7 +21,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 200 st [MAXREPEL] Name = Max Repel NamePlural = Max Repels -Pocket = 1 +Pocket = Items Price = 900 FieldUse = Direct Flags = Repel,Fling_30 @@ -30,7 +30,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 250 st [BLACKFLUTE] Name = Black Flute NamePlural = Black Flutes -Pocket = 1 +Pocket = Items Price = 400 FieldUse = Direct Flags = Fling_30 @@ -40,7 +40,7 @@ Description = A black flute made from blown glass. Its melody makes wild Pokémo [WHITEFLUTE] Name = White Flute NamePlural = White Flutes -Pocket = 1 +Pocket = Items Price = 500 FieldUse = Direct Flags = Fling_30 @@ -52,7 +52,7 @@ Name = Honey NamePlural = Honey PortionName = jar of Honey PortionNamePlural = jars of Honey -Pocket = 1 +Pocket = Items Price = 300 FieldUse = Direct Flags = Fling_30 @@ -61,7 +61,7 @@ Description = A sweet honey with an aroma that attracts wild Pokémon when used [ESCAPEROPE] Name = Escape Rope NamePlural = Escape Ropes -Pocket = 1 +Pocket = Items Price = 1000 FieldUse = Direct Flags = Fling_30 @@ -70,7 +70,7 @@ Description = A long, durable rope. Use it to escape instantly from a cave or a [REDSHARD] Name = Red Shard NamePlural = Red Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small red shard. It appears to be from some sort of implement made long ago. @@ -78,7 +78,7 @@ Description = A small red shard. It appears to be from some sort of implement ma [YELLOWSHARD] Name = Yellow Shard NamePlural = Yellow Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small yellow shard. It appears to be from some sort of implement made long ago. @@ -86,7 +86,7 @@ Description = A small yellow shard. It appears to be from some sort of implement [BLUESHARD] Name = Blue Shard NamePlural = Blue Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small blue shard. It appears to be from some sort of implement made long ago. @@ -94,7 +94,7 @@ Description = A small blue shard. It appears to be from some sort of implement m [GREENSHARD] Name = Green Shard NamePlural = Green Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small green shard. It appears to be from some sort of implement made long ago. @@ -102,7 +102,7 @@ Description = A small green shard. It appears to be from some sort of implement [FIRESTONE] Name = Fire Stone NamePlural = Fire Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -112,7 +112,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [THUNDERSTONE] Name = Thunder Stone NamePlural = Thunder Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -122,7 +122,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [WATERSTONE] Name = Water Stone NamePlural = Water Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -132,7 +132,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [LEAFSTONE] Name = Leaf Stone NamePlural = Leaf Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -142,7 +142,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [MOONSTONE] Name = Moon Stone NamePlural = Moon Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -152,7 +152,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SUNSTONE] Name = Sun Stone NamePlural = Sun Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -162,7 +162,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DUSKSTONE] Name = Dusk Stone NamePlural = Dusk Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -172,7 +172,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DAWNSTONE] Name = Dawn Stone NamePlural = Dawn Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -182,7 +182,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SHINYSTONE] Name = Shiny Stone NamePlural = Shiny Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -192,7 +192,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [ICESTONE] Name = Ice Stone NamePlural = Ice Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 16 FieldUse = OnPokemon @@ -202,7 +202,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [REDAPRICORN] Name = Red Apricorn NamePlural = Red Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A red Apricorn. It assails your nostrils. @@ -210,7 +210,7 @@ Description = A red Apricorn. It assails your nostrils. [YELLOWAPRICORN] Name = Yellow Apricorn NamePlural = Yellow Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A yellow Apricorn. It has an invigorating scent. @@ -218,7 +218,7 @@ Description = A yellow Apricorn. It has an invigorating scent. [BLUEAPRICORN] Name = Blue Apricorn NamePlural = Blue Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A blue Apricorn. It smells a bit like grass. @@ -226,7 +226,7 @@ Description = A blue Apricorn. It smells a bit like grass. [GREENAPRICORN] Name = Green Apricorn NamePlural = Green Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A green Apricorn. It has a mysterious, aromatic scent. @@ -234,7 +234,7 @@ Description = A green Apricorn. It has a mysterious, aromatic scent. [PINKAPRICORN] Name = Pink Apricorn NamePlural = Pink Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A pink Apricorn. It has a nice, sweet scent. @@ -242,7 +242,7 @@ Description = A pink Apricorn. It has a nice, sweet scent. [WHITEAPRICORN] Name = White Apricorn NamePlural = White Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A white Apricorn. It doesn't smell like anything. @@ -250,7 +250,7 @@ Description = A white Apricorn. It doesn't smell like anything. [BLACKAPRICORN] Name = Black Apricorn NamePlural = Black Apricorns -Pocket = 1 +Pocket = Items Price = 20 Flags = Apricorn Description = A black Apricorn. It has an indescribable scent. @@ -258,7 +258,7 @@ Description = A black Apricorn. It has an indescribable scent. [HELIXFOSSIL] Name = Helix Fossil NamePlural = Helix Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a seashell. @@ -266,7 +266,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [DOMEFOSSIL] Name = Dome Fossil NamePlural = Dome Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a shell. @@ -274,7 +274,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [OLDAMBER] Name = Old Amber NamePlural = Old Ambers -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A piece of amber that contains the genes of an ancient Pokémon. It is clear with a reddish tint. @@ -282,7 +282,7 @@ Description = A piece of amber that contains the genes of an ancient Pokémon. I [ROOTFOSSIL] Name = Root Fossil NamePlural = Root Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a plant root. @@ -290,7 +290,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [CLAWFOSSIL] Name = Claw Fossil NamePlural = Claw Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a claw. @@ -298,7 +298,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [SKULLFOSSIL] Name = Skull Fossil NamePlural = Skull Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a head. @@ -306,7 +306,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [ARMORFOSSIL] Name = Armor Fossil NamePlural = Armor Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a collar. @@ -314,7 +314,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [COVERFOSSIL] Name = Cover Fossil NamePlural = Cover Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea in ancient times. It appears to be part of its back. @@ -322,7 +322,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea in ancient t [PLUMEFOSSIL] Name = Plume Fossil NamePlural = Plume Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that flew in the sky in ancient times. It appears to be part of its wing. @@ -330,7 +330,7 @@ Description = A fossil of an ancient Pokémon that flew in the sky in ancient ti [JAWFOSSIL] Name = Jaw Fossil NamePlural = Jaw Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that once lived on the land. It appears to be part of a large jaw. @@ -338,7 +338,7 @@ Description = A fossil from a prehistoric Pokémon that once lived on the land. [SAILFOSSIL] Name = Sail Fossil NamePlural = Sail Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that once lived on the land. It looks like the impression from a skin sail. @@ -346,7 +346,7 @@ Description = A fossil from a prehistoric Pokémon that once lived on the land. [PRETTYWING] Name = Pretty Wing NamePlural = Pretty Wings -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_20 Description = Though this feather is beautiful, it's just a regular feather and has no effect on Pokémon. @@ -354,7 +354,7 @@ Description = Though this feather is beautiful, it's just a regular feather and [TINYMUSHROOM] Name = Tiny Mushroom NamePlural = Tiny Mushrooms -Pocket = 1 +Pocket = Items Price = 500 Flags = Fling_30 Description = A small and rare mushroom. It is sought after by collectors. @@ -362,7 +362,7 @@ Description = A small and rare mushroom. It is sought after by collectors. [BIGMUSHROOM] Name = Big Mushroom NamePlural = Big Mushrooms -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_30 Description = A large and rare mushroom. It is sought after by collectors. @@ -370,7 +370,7 @@ Description = A large and rare mushroom. It is sought after by collectors. [BALMMUSHROOM] Name = Balm Mushroom NamePlural = Balm Mushrooms -Pocket = 1 +Pocket = Items Price = 15000 Flags = Fling_30 Description = A rare mushroom which gives off a nice fragrance. A maniac will buy it for a high price. @@ -378,7 +378,7 @@ Description = A rare mushroom which gives off a nice fragrance. A maniac will bu [PEARL] Name = Pearl NamePlural = Pearls -Pocket = 1 +Pocket = Items Price = 2000 Flags = Fling_30 Description = A somewhat-small pearl that sparkles in a pretty silver color. It can be sold cheaply to shops. @@ -386,7 +386,7 @@ Description = A somewhat-small pearl that sparkles in a pretty silver color. It [BIGPEARL] Name = Big Pearl NamePlural = Big Pearls -Pocket = 1 +Pocket = Items Price = 8000 Flags = Fling_30 Description = A quite-large pearl that sparkles in a pretty silver color. It can be sold at a high price to shops. @@ -394,7 +394,7 @@ Description = A quite-large pearl that sparkles in a pretty silver color. It can [PEARLSTRING] Name = Pearl String NamePlural = Pearl Strings -Pocket = 1 +Pocket = Items Price = 30000 Flags = Fling_30 Description = Very large pearls that sparkle in a pretty silver color. A maniac will buy them for a high price. @@ -404,7 +404,7 @@ Name = Stardust NamePlural = Stardusts PortionName = bag of Stardust PortionNamePlural = bags of Stardust -Pocket = 1 +Pocket = Items Price = 3000 Flags = Fling_30 Description = Lovely, red-colored sand with a loose, silky feel. It can be sold at a high price to shops. @@ -412,7 +412,7 @@ Description = Lovely, red-colored sand with a loose, silky feel. It can be sold [STARPIECE] Name = Star Piece NamePlural = Star Pieces -Pocket = 1 +Pocket = Items Price = 12000 Flags = Fling_30 Description = A shard of a pretty gem that sparkles in a red color. It can be sold at a high price to shops. @@ -420,7 +420,7 @@ Description = A shard of a pretty gem that sparkles in a red color. It can be so [COMETSHARD] Name = Comet Shard NamePlural = Comet Shards -Pocket = 1 +Pocket = Items Price = 60000 Flags = Fling_30 Description = A shard which fell to the ground when a comet approached. A maniac will buy it for a high price. @@ -428,7 +428,7 @@ Description = A shard which fell to the ground when a comet approached. A maniac [NUGGET] Name = Nugget NamePlural = Nuggets -Pocket = 1 +Pocket = Items Price = 10000 Flags = Fling_30 Description = A nugget of pure gold that gives off a lustrous gleam. It can be sold at a high price to shops. @@ -436,7 +436,7 @@ Description = A nugget of pure gold that gives off a lustrous gleam. It can be s [BIGNUGGET] Name = Big Nugget NamePlural = Big Nuggets -Pocket = 1 +Pocket = Items Price = 40000 Flags = Fling_30 Description = A big nugget of pure gold that gives off a lustrous gleam. A maniac will buy it for a high price. @@ -444,7 +444,7 @@ Description = A big nugget of pure gold that gives off a lustrous gleam. A mania [HEARTSCALE] Name = Heart Scale NamePlural = Heart Scales -Pocket = 1 +Pocket = Items Price = 100 Flags = Fling_30 Description = A pretty, heart-shaped scale that is extremely rare. It glows faintly in the colors of the rainbow. @@ -452,14 +452,14 @@ Description = A pretty, heart-shaped scale that is extremely rare. It glows fain [SLOWPOKETAIL] Name = Slowpoke Tail NamePlural = Slowpoke Tails -Pocket = 1 +Pocket = Items Price = 10000 Description = A very tasty tail of something. It can be sold at a high price to shops. #------------------------------- [RAREBONE] Name = Rare Bone NamePlural = Rare Bones -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = A bone that is extremely valuable for Pokémon archaeology. It can be sold for a high price to shops. @@ -469,7 +469,7 @@ Name = Relic Copper NamePlural = Relic Coppers PortionName = Relic Copper coin PortionNamePlural = Relic Copper coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A copper coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -479,7 +479,7 @@ Name = Relic Silver NamePlural = Relic Silvers PortionName = Relic Silver coin PortionNamePlural = Relic Silver coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A silver coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -489,7 +489,7 @@ Name = Relic Gold NamePlural = Relic Golds PortionName = Relic Gold coin PortionNamePlural = Relic Gold coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A gold coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -497,7 +497,7 @@ Description = A gold coin used in a civilization about 3,000 years ago. A maniac [RELICVASE] Name = Relic Vase NamePlural = Relic Vases -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A vase made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -505,7 +505,7 @@ Description = A vase made in a civilization about 3,000 years ago. A maniac will [RELICBAND] Name = Relic Band NamePlural = Relic Bands -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A bracelet made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -513,7 +513,7 @@ Description = A bracelet made in a civilization about 3,000 years ago. A maniac [RELICSTATUE] Name = Relic Statue NamePlural = Relic Statues -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A stone figure made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -521,7 +521,7 @@ Description = A stone figure made in a civilization about 3,000 years ago. A man [RELICCROWN] Name = Relic Crown NamePlural = Relic Crowns -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A crown made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -531,7 +531,7 @@ Name = Growth Mulch NamePlural = Growth Mulch PortionName = bag of Growth Mulch PortionNamePlural = bags of Growth Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -541,7 +541,7 @@ Name = Damp Mulch NamePlural = Damp Mulch PortionName = bag of Damp Mulch PortionNamePlural = bags of Damp Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -551,7 +551,7 @@ Name = Stable Mulch NamePlural = Stable Mulch PortionName = bag of Stable Mulch PortionNamePlural = bags of Stable Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -561,7 +561,7 @@ Name = Gooey Mulch NamePlural = Gooey Mulch PortionName = bag of Gooey Mulch PortionNamePlural = bags of Gooey Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -571,7 +571,7 @@ Name = Shoal Salt NamePlural = Shoal Salts PortionName = pile of Shoal Salt PortionNamePlural = piles of Shoal Salt -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = Pure salt that can be discovered deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -579,7 +579,7 @@ Description = Pure salt that can be discovered deep inside the Shoal Cave. A man [SHOALSHELL] Name = Shoal Shell NamePlural = Shoal Shells -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = A pretty seashell that can be found deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -587,7 +587,7 @@ Description = A pretty seashell that can be found deep inside the Shoal Cave. A [ODDKEYSTONE] Name = Odd Keystone NamePlural = Odd Keystones -Pocket = 1 +Pocket = Items Price = 2100 Flags = Fling_80 Description = A vital item that is needed to keep a stone tower from collapsing. Voices can be heard from it occasionally. @@ -597,2091 +597,169 @@ Name = Red Nectar NamePlural = Red Nectars PortionName = jar of Red Nectar PortionNamePlural = jars of Red Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Ula'ula Meadow. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a red flower. It changes the form of a certain species of Pokémon. #------------------------------- [YELLOWNECTAR] Name = Yellow Nectar NamePlural = Yellow Nectars PortionName = jar of Yellow Nectar PortionNamePlural = jars of Yellow Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Melemele Meadow. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a yellow flower. It changes the form of a certain species of Pokémon. #------------------------------- [PINKNECTAR] Name = Pink Nectar NamePlural = Pink Nectars PortionName = jar of Pink Nectar PortionNamePlural = jars of Pink Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained from shrubs on Royal Avenue. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a pink flower. It changes the form of a certain species of Pokémon. #------------------------------- [PURPLENECTAR] Name = Purple Nectar NamePlural = Purple Nectars PortionName = jar of Purple Nectar PortionNamePlural = jars of Purple Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Poni Meadow. It changes the form of certain species of Pokémon. -#------------------------------- -[AIRBALLOON] -Name = Air Balloon -NamePlural = Air Balloons -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. -#------------------------------- -[BRIGHTPOWDER] -Name = Bright Powder -NamePlural = Bright Powders -PortionName = bag of Bright Powder -PortionNamePlural = bags of Bright Powder -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. -#------------------------------- -[EVIOLITE] -Name = Eviolite -NamePlural = Eviolites -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_40 -Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. -#------------------------------- -[FLOATSTONE] -Name = Float Stone -NamePlural = Float Stones -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = A very light stone. It reduces the weight of a Pokémon when held. -#------------------------------- -[DESTINYKNOT] -Name = Destiny Knot -NamePlural = Destiny Knots -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = A long, thin, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. -#------------------------------- -[ROCKYHELMET] -Name = Rocky Helmet -NamePlural = Rocky Helmets -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_60 -Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. -#------------------------------- -[ASSAULTVEST] -Name = Assault Vest -NamePlural = Assault Vests -Pocket = 1 -Price = 1000 -BPPrice = 48 -Flags = Fling_80 -Description = An item to be held by a Pokémon. This offensive vest raises Sp. Def but prevents the use of status moves. -#------------------------------- -[SAFETYGOGGLES] -Name = Safety Goggles -NamePlural = Safety Goggles -PortionName = pair of Safety Goggles -PortionNamePlural = pairs of Safety Goggles -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_80 -Description = An item to be held by a Pokémon. They protect the holder from weather-related damage and powder. -#------------------------------- -[PROTECTIVEPADS] -Name = Protective Pads -NamePlural = Protective Pads -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. They protect the holder from effects caused by making contact. -#------------------------------- -[EJECTBUTTON] -Name = Eject Button -NamePlural = Eject Buttons -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_30 -Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. -#------------------------------- -[REDCARD] -Name = Red Card -NamePlural = Red Cards -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_10 -Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. -#------------------------------- -[SHEDSHELL] -Name = Shed Shell -NamePlural = Shed Shells -Pocket = 1 -Price = 4000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. -#------------------------------- -[SMOKEBALL] -Name = Smoke Ball -NamePlural = Smoke Balls -Pocket = 1 -Price = 4000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. -#------------------------------- -[LUCKYEGG] -Name = Lucky Egg -NamePlural = Lucky Eggs -Pocket = 1 -Price = 10000 -BPPrice = 77 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. -#------------------------------- -[EXPSHARE] -Name = Exp. Share -NamePlural = Exp. Shares -Pocket = 1 -Price = 3000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. -#------------------------------- -[AMULETCOIN] -Name = Amulet Coin -NamePlural = Amulet Coins -Pocket = 1 -Price = 10000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[SOOTHEBELL] -Name = Soothe Bell -NamePlural = Soothe Bells -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. -#------------------------------- -[CLEANSETAG] -Name = Cleanse Tag -NamePlural = Cleanse Tags -Pocket = 1 -Price = 5000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[CHOICEBAND] -Name = Choice Band -NamePlural = Choice Bands -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. -#------------------------------- -[CHOICESPECS] -Name = Choice Specs -NamePlural = Choice Specs -PortionName = pair of Choice Specs -PortionNamePlural = pairs of Choice Specs -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. -#------------------------------- -[CHOICESCARF] -Name = Choice Scarf -NamePlural = Choice Scarves -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. -#------------------------------- -[HEATROCK] -Name = Heat Rock -NamePlural = Heat Rocks -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. -#------------------------------- -[DAMPROCK] -Name = Damp Rock -NamePlural = Damp Rocks -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. -#------------------------------- -[SMOOTHROCK] -Name = Smooth Rock -NamePlural = Smooth Rocks -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. -#------------------------------- -[ICYROCK] -Name = Icy Rock -NamePlural = Icy Rocks -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_40 -Description = A Pokémon held item that extends the duration of the move Hail used by the holder. -#------------------------------- -[TERRAINEXTENDER] -Name = Terrain Extender -NamePlural = Terrain Extenders -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_60 -Description = An item to be held by a Pokémon. It extends the duration of the terrain caused by the holder. -#------------------------------- -[LIGHTCLAY] -Name = Light Clay -NamePlural = Light Clays -PortionName = lump of Light Clay -PortionNamePlural = lumps of Light Clay -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. -#------------------------------- -[GRIPCLAW] -Name = Grip Claw -NamePlural = Grip Claws -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_90 -Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. -#------------------------------- -[BINDINGBAND] -Name = Binding Band -NamePlural = Binding Bands -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = A band that increases the power of binding moves when held. -#------------------------------- -[BIGROOT] -Name = Big Root -NamePlural = Big Roots -Pocket = 1 -Price = 4000 -BPPrice = 24 -Flags = Fling_10 -Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. -#------------------------------- -[BLACKSLUDGE] -Name = Black Sludge -NamePlural = Black Sludges -PortionName = blob of Black Sludge -PortionNamePlural = blobs of Black Sludge -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. -#------------------------------- -[LEFTOVERS] -Name = Leftovers -NamePlural = Leftovers -PortionName = serving of Leftovers -PortionNamePlural = servings of Leftovers -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. -#------------------------------- -[SHELLBELL] -Name = Shell Bell -NamePlural = Shell Bells -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. -#------------------------------- -[MENTALHERB] -Name = Mental Herb -NamePlural = Mental Herbs -Pocket = 1 -Price = 4000 -BPPrice = 24 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. -#------------------------------- -[WHITEHERB] -Name = White Herb -NamePlural = White Herbs -Pocket = 1 -Price = 4000 -BPPrice = 24 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. -#------------------------------- -[POWERHERB] -Name = Power Herb -NamePlural = Power Herbs -Pocket = 1 -Price = 4000 -BPPrice = 24 -Flags = Fling_10 -Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. -#------------------------------- -[ABSORBBULB] -Name = Absorb Bulb -NamePlural = Absorb Bulbs -Pocket = 1 -Price = 4000 -BPPrice = 24 -Flags = Fling_30 -Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. -#------------------------------- -[CELLBATTERY] -Name = Cell Battery -NamePlural = Cell Batteries -Pocket = 1 -Price = 4000 -BPPrice = 24 -Flags = Fling_30 -Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. -#------------------------------- -[LUMINOUSMOSS] -Name = Luminous Moss -NamePlural = Luminous Moss -PortionName = clump of Luminous Moss -PortionNamePlural = clumps of Luminous Moss -Pocket = 1 -Price = 4000 -BPPrice = 24 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Sp. Def if hit by a Water-type attack. It can only be used once. -#------------------------------- -[SNOWBALL] -Name = Snowball -NamePlural = Snowballs -Pocket = 1 -Price = 4000 -BPPrice = 24 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Attack if hit by an Ice-type attack. It can only be used once. -#------------------------------- -[WEAKNESSPOLICY] -Name = Weakness Policy -NamePlural = Weakness Policies -Pocket = 1 -Price = 1000 -BPPrice = 32 -Flags = Fling_80 -Description = An item to be held by a Pokémon. The holder's Attack and Sp. Atk sharply increase if hit by a move it's weak to. -#------------------------------- -[ADRENALINEORB] -Name = Adrenaline Orb -NamePlural = Adrenaline Orbs -Pocket = 1 -Price = 300 -BPPrice = 24 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Speed when intimidated. It can be used only once. -#------------------------------- -[ELECTRICSEED] -Name = Electric Seed -NamePlural = Electric Seeds -Pocket = 1 -Price = 4000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Defense on Electric Terrain. It can only be used once. -#------------------------------- -[GRASSYSEED] -Name = Grassy Seed -NamePlural = Grassy Seeds -Pocket = 1 -Price = 4000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Defense on Grassy Terrain. It can only be used once. -#------------------------------- -[MISTYSEED] -Name = Misty Seed -NamePlural = Misty Seeds -Pocket = 1 -Price = 4000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Sp. Def on Misty Terrain. It can only be used once. -#------------------------------- -[PSYCHICSEED] -Name = Psychic Seed -NamePlural = Psychic Seeds -Pocket = 1 -Price = 4000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Sp. Def on Psychic Terrain. It can only be used once. -#------------------------------- -[LIFEORB] -Name = Life Orb -NamePlural = Life Orbs -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. -#------------------------------- -[EXPERTBELT] -Name = Expert Belt -NamePlural = Expert Belts -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. -#------------------------------- -[METRONOME] -Name = Metronome -NamePlural = Metronomes -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. -#------------------------------- -[MUSCLEBAND] -Name = Muscle Band -NamePlural = Muscle Bands -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. -#------------------------------- -[WISEGLASSES] -Name = Wise Glasses -NamePlural = Wise Glasses -PortionName = pair of Wise Glasses -PortionNamePlural = pairs of Wise Glasses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. -#------------------------------- -[RAZORCLAW] -Name = Razor Claw -NamePlural = Razor Claws -Pocket = 1 -Price = 5000 -BPPrice = 32 -Flags = Fling_80 -Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. -#------------------------------- -[SCOPELENS] -Name = Scope Lens -NamePlural = Scope Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. -#------------------------------- -[WIDELENS] -Name = Wide Lens -NamePlural = Wide Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. -#------------------------------- -[ZOOMLENS] -Name = Zoom Lens -NamePlural = Zoom Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. -#------------------------------- -[KINGSROCK] -Name = King's Rock -NamePlural = King's Rocks -Pocket = 1 -Price = 5000 -BPPrice = 32 -Flags = Fling_30 -Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. -#------------------------------- -[RAZORFANG] -Name = Razor Fang -NamePlural = Razor Fangs -Pocket = 1 -Price = 5000 -BPPrice = 32 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. -#------------------------------- -[LAGGINGTAIL] -Name = Lagging Tail -NamePlural = Lagging Tails -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. -#------------------------------- -[QUICKCLAW] -Name = Quick Claw -NamePlural = Quick Claws -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_80 -Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. -#------------------------------- -[FOCUSBAND] -Name = Focus Band -NamePlural = Focus Bands -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. -#------------------------------- -[FOCUSSASH] -Name = Focus Sash -NamePlural = Focus Sashes -Pocket = 1 -Price = 4000 -BPPrice = 32 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. -#------------------------------- -[FLAMEORB] -Name = Flame Orb -NamePlural = Flame Orbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. -#------------------------------- -[TOXICORB] -Name = Toxic Orb -NamePlural = Toxic Orbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. -#------------------------------- -[STICKYBARB] -Name = Sticky Barb -NamePlural = Sticky Barbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_80 -Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. -#------------------------------- -[IRONBALL] -Name = Iron Ball -NamePlural = Iron Balls -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_130 -Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. -#------------------------------- -[RINGTARGET] -Name = Ring Target -NamePlural = Ring Targets -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_10 -Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. -#------------------------------- -[MACHOBRACE] -Name = Macho Brace -NamePlural = Macho Braces -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_60 -Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. -#------------------------------- -[POWERWEIGHT] -Name = Power Weight -NamePlural = Power Weights -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBRACER] -Name = Power Bracer -NamePlural = Power Bracers -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBELT] -Name = Power Belt -NamePlural = Power Belts -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERLENS] -Name = Power Lens -NamePlural = Power Lenses -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBAND] -Name = Power Band -NamePlural = Power Bands -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERANKLET] -Name = Power Anklet -NamePlural = Power Anklets -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_70 -Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. -#------------------------------- -[LAXINCENSE] -Name = Lax Incense -NamePlural = Lax Incenses -PortionName = jar of Lax Incense -PortionNamePlural = jars of Lax Incense -Pocket = 1 -Price = 5000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. -#------------------------------- -[FULLINCENSE] -Name = Full Incense -NamePlural = Full Incenses -PortionName = jar of Full Incense -PortionNamePlural = jars of Full Incense -Pocket = 1 -Price = 5000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. -#------------------------------- -[LUCKINCENSE] -Name = Luck Incense -NamePlural = Luck Incenses -PortionName = jar of Luck Incense -PortionNamePlural = jars of Luck Incense -Pocket = 1 -Price = 11000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[PUREINCENSE] -Name = Pure Incense -NamePlural = Pure Incenses -PortionName = jar of Pure Incense -PortionNamePlural = jars of Pure Incense -Pocket = 1 -Price = 6000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[SEAINCENSE] -Name = Sea Incense -NamePlural = Sea Incenses -PortionName = jar of Sea Incense -PortionNamePlural = jars of Sea Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[WAVEINCENSE] -Name = Wave Incense -NamePlural = Wave Incenses -PortionName = jar of Wave Incense -PortionNamePlural = jars of Wave Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[ROSEINCENSE] -Name = Rose Incense -NamePlural = Rose Incenses -PortionName = jar of Rose Incense -PortionNamePlural = jars of Rose Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. -#------------------------------- -[ODDINCENSE] -Name = Odd Incense -NamePlural = Odd Incenses -PortionName = jar of Odd Incense -PortionNamePlural = jars of Odd Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. -#------------------------------- -[ROCKINCENSE] -Name = Rock Incense -NamePlural = Rock Incenses -PortionName = jar of Rock Incense -PortionNamePlural = jars of Rock Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. -#------------------------------- -[CHARCOAL] -Name = Charcoal -NamePlural = Charcoals -PortionName = piece of Charcoal -PortionNamePlural = pieces of Charcoal -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. -#------------------------------- -[MYSTICWATER] -Name = Mystic Water -NamePlural = Mystic Waters -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. -#------------------------------- -[MAGNET] -Name = Magnet -NamePlural = Magnets -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. -#------------------------------- -[MIRACLESEED] -Name = Miracle Seed -NamePlural = Miracle Seeds -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. -#------------------------------- -[NEVERMELTICE] -Name = Never-Melt Ice -NamePlural = Never-Melt Ices -PortionName = piece of Never-Melt Ice -PortionNamePlural = pieces of Never-Melt Ice -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. -#------------------------------- -[BLACKBELT] -Name = Black Belt -NamePlural = Black Belts -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. -#------------------------------- -[POISONBARB] -Name = Poison Barb -NamePlural = Poison Barbs -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. -#------------------------------- -[SOFTSAND] -Name = Soft Sand -NamePlural = Soft Sand -PortionName = bag of Soft Sand -PortionNamePlural = bags of Soft Sand -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. -#------------------------------- -[SHARPBEAK] -Name = Sharp Beak -NamePlural = Sharp Beaks -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. -#------------------------------- -[TWISTEDSPOON] -Name = Twisted Spoon -NamePlural = Twisted Spoons -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. -#------------------------------- -[SILVERPOWDER] -Name = Silver Powder -NamePlural = Silver Powders -PortionName = pile of Silver Powder -PortionNamePlural = piles of Silver Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. -#------------------------------- -[HARDSTONE] -Name = Hard Stone -NamePlural = Hard Stones -Pocket = 1 -Price = 1000 -Flags = Fling_100 -Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. -#------------------------------- -[SPELLTAG] -Name = Spell Tag -NamePlural = Spell Tags -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. -#------------------------------- -[DRAGONFANG] -Name = Dragon Fang -NamePlural = Dragon Fangs -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. -#------------------------------- -[BLACKGLASSES] -Name = Black Glasses -NamePlural = Black Glasses -PortionName = pair of Black Glasses -PortionNamePlural = pairs of Black Glasses -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. -#------------------------------- -[METALCOAT] -Name = Metal Coat -NamePlural = Metal Coats -Pocket = 1 -Price = 2000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. -#------------------------------- -[SILKSCARF] -Name = Silk Scarf -NamePlural = Silk Scarves -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. -#------------------------------- -[FLAMEPLATE] -Name = Flame Plate -NamePlural = Flame Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. -#------------------------------- -[SPLASHPLATE] -Name = Splash Plate -NamePlural = Splash Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. -#------------------------------- -[ZAPPLATE] -Name = Zap Plate -NamePlural = Zap Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. -#------------------------------- -[MEADOWPLATE] -Name = Meadow Plate -NamePlural = Meadow Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. -#------------------------------- -[ICICLEPLATE] -Name = Icicle Plate -NamePlural = Icicle Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. -#------------------------------- -[FISTPLATE] -Name = Fist Plate -NamePlural = Fist Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. -#------------------------------- -[TOXICPLATE] -Name = Toxic Plate -NamePlural = Toxic Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. -#------------------------------- -[EARTHPLATE] -Name = Earth Plate -NamePlural = Earth Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. -#------------------------------- -[SKYPLATE] -Name = Sky Plate -NamePlural = Sky Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. -#------------------------------- -[MINDPLATE] -Name = Mind Plate -NamePlural = Mind Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. -#------------------------------- -[INSECTPLATE] -Name = Insect Plate -NamePlural = Insect Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. -#------------------------------- -[STONEPLATE] -Name = Stone Plate -NamePlural = Stone Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. -#------------------------------- -[SPOOKYPLATE] -Name = Spooky Plate -NamePlural = Spooky Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. -#------------------------------- -[DRACOPLATE] -Name = Draco Plate -NamePlural = Draco Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. -#------------------------------- -[DREADPLATE] -Name = Dread Plate -NamePlural = Dread Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. -#------------------------------- -[IRONPLATE] -Name = Iron Plate -NamePlural = Iron Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. -#------------------------------- -[PIXIEPLATE] -Name = Pixie Plate -NamePlural = Pixie Plates -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fairy-type moves. -#------------------------------- -[FIREGEM] -Name = Fire Gem -NamePlural = Fire Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. -#------------------------------- -[WATERGEM] -Name = Water Gem -NamePlural = Water Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. -#------------------------------- -[ELECTRICGEM] -Name = Electric Gem -NamePlural = Electric Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. -#------------------------------- -[GRASSGEM] -Name = Grass Gem -NamePlural = Grass Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. -#------------------------------- -[ICEGEM] -Name = Ice Gem -NamePlural = Ice Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. -#------------------------------- -[FIGHTINGGEM] -Name = Fighting Gem -NamePlural = Fighting Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. -#------------------------------- -[POISONGEM] -Name = Poison Gem -NamePlural = Poison Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. -#------------------------------- -[GROUNDGEM] -Name = Ground Gem -NamePlural = Ground Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. -#------------------------------- -[FLYINGGEM] -Name = Flying Gem -NamePlural = Flying Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. -#------------------------------- -[PSYCHICGEM] -Name = Psychic Gem -NamePlural = Psychic Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. -#------------------------------- -[BUGGEM] -Name = Bug Gem -NamePlural = Bug Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. -#------------------------------- -[ROCKGEM] -Name = Rock Gem -NamePlural = Rock Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. -#------------------------------- -[GHOSTGEM] -Name = Ghost Gem -NamePlural = Ghost Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. -#------------------------------- -[DRAGONGEM] -Name = Dragon Gem -NamePlural = Dragon Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. -#------------------------------- -[DARKGEM] -Name = Dark Gem -NamePlural = Dark Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. -#------------------------------- -[STEELGEM] -Name = Steel Gem -NamePlural = Steel Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. -#------------------------------- -[FAIRYGEM] -Name = Fairy Gem -NamePlural = Fairy Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an essence of the fey. When held, it strengthens the power of a Fairy-type move only once. -#------------------------------- -[NORMALGEM] -Name = Normal Gem -NamePlural = Normal Gems -Pocket = 1 -Price = 200 -Flags = TypeGem -Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. -#------------------------------- -[LIGHTBALL] -Name = Light Ball -NamePlural = Light Balls -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. -#------------------------------- -[LUCKYPUNCH] -Name = Lucky Punch -NamePlural = Lucky Punches -Pocket = 1 -Price = 1000 -BPPrice = 7 -Flags = Fling_40 -Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. -#------------------------------- -[METALPOWDER] -Name = Metal Powder -NamePlural = Metal Powders -PortionName = bag of Metal Powder -PortionNamePlural = bags of Metal Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. -#------------------------------- -[QUICKPOWDER] -Name = Quick Powder -NamePlural = Quick Powders -PortionName = bag of Quick Powder -PortionNamePlural = bags of Quick Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. -#------------------------------- -[THICKCLUB] -Name = Thick Club -NamePlural = Thick Clubs -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. -#------------------------------- -[STICK] -Name = Stick -NamePlural = Sticks -Pocket = 1 -Price = 1000 -Flags = Fling_60 -Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. -#------------------------------- -[SOULDEW] -Name = Soul Dew -NamePlural = Soul Dews -Pocket = 1 -Price = 0 -Flags = Fling_30 -Description = A wondrous orb to be held by either Latios or Latias. It raises the power of Psychic- and Dragon-type moves. -#------------------------------- -[DEEPSEATOOTH] -Name = Deep Sea Tooth -NamePlural = Deep Sea Teeth -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_90 -Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. -#------------------------------- -[DEEPSEASCALE] -Name = Deep Sea Scale -NamePlural = Deep Sea Scales -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_30 -Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. -#------------------------------- -[ADAMANTORB] -Name = Adamant Orb -NamePlural = Adamant Orbs -Pocket = 1 -Price = 10000 -Flags = Fling_60 -Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. -#------------------------------- -[LUSTROUSORB] -Name = Lustrous Orb -NamePlural = Lustrous Orbs -Pocket = 1 -Price = 10000 -Flags = Fling_60 -Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. -#------------------------------- -[GRISEOUSORB] -Name = Griseous Orb -NamePlural = Griseous Orbs -Pocket = 1 -Price = 10000 -Flags = Fling_60 -Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. -#------------------------------- -[DOUSEDRIVE] -Name = Douse Drive -NamePlural = Douse Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. -#------------------------------- -[SHOCKDRIVE] -Name = Shock Drive -NamePlural = Shock Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. -#------------------------------- -[BURNDRIVE] -Name = Burn Drive -NamePlural = Burn Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. -#------------------------------- -[CHILLDRIVE] -Name = Chill Drive -NamePlural = Chill Drives -Pocket = 1 -Price = 1000 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. -#------------------------------- -[FIREMEMORY] -Name = Fire Memory -NamePlural = Fire Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fire-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[WATERMEMORY] -Name = Water Memory -NamePlural = Water Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Water-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ELECTRICMEMORY] -Name = Electric Memory -NamePlural = Electric Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Electric-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GRASSMEMORY] -Name = Grass Memory -NamePlural = Grass Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Grass-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ICEMEMORY] -Name = Ice Memory -NamePlural = Ice Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ice-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FIGHTINGMEMORY] -Name = Fighting Memory -NamePlural = Fighting Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fighting-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[POISONMEMORY] -Name = Poison Memory -NamePlural = Poison Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Poison-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GROUNDMEMORY] -Name = Ground Memory -NamePlural = Ground Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ground-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FLYINGMEMORY] -Name = Flying Memory -NamePlural = Flying Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Flying-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[PSYCHICMEMORY] -Name = Psychic Memory -NamePlural = Psychic Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Psychic-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[BUGMEMORY] -Name = Bug Memory -NamePlural = Bug Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Bug-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ROCKMEMORY] -Name = Rock Memory -NamePlural = Rock Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Rock-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GHOSTMEMORY] -Name = Ghost Memory -NamePlural = Ghost Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ghost-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[DRAGONMEMORY] -Name = Dragon Memory -NamePlural = Dragon Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Dragon-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[DARKMEMORY] -Name = Dark Memory -NamePlural = Dark Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Dark-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[STEELMEMORY] -Name = Steel Memory -NamePlural = Steel Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Steel-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FAIRYMEMORY] -Name = Fairy Memory -NamePlural = Fairy Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fairy-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[EVERSTONE] -Name = Everstone -NamePlural = Everstones -Pocket = 1 -Price = 3000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. -#------------------------------- -[DRAGONSCALE] -Name = Dragon Scale -NamePlural = Dragon Scales -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_30 -Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. -#------------------------------- -[UPGRADE] -Name = Upgrade -NamePlural = Upgrades -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_30 -Description = A transparent device filled with all sorts of data. It was produced by Silph Co. -#------------------------------- -[DUBIOUSDISC] -Name = Dubious Disc -NamePlural = Dubious Discs -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_50 -Description = A transparent device overflowing with dubious data. Its producer is unknown. -#------------------------------- -[PROTECTOR] -Name = Protector -NamePlural = Protectors -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. -#------------------------------- -[ELECTIRIZER] -Name = Electirizer -NamePlural = Electirizers -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. -#------------------------------- -[MAGMARIZER] -Name = Magmarizer -NamePlural = Magmarizers -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. -#------------------------------- -[REAPERCLOTH] -Name = Reaper Cloth -NamePlural = Reaper Cloths -PortionName = scrap of Reaper Cloth -PortionNamePlural = scraps of Reaper Cloth -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_10 -Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. -#------------------------------- -[PRISMSCALE] -Name = Prism Scale -NamePlural = Prism Scales -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_30 -Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. -#------------------------------- -[OVALSTONE] -Name = Oval Stone -NamePlural = Oval Stones -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. -#------------------------------- -[WHIPPEDDREAM] -Name = Whipped Dream -NamePlural = Whipped Dreams -PortionName = dollop of Whipped Dream -PortionNamePlural = dollops of Whipped Dream -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A soft and sweet treat made of fluffy, puffy and whirled cream. It's loved by a certain Pokémon. -#------------------------------- -[SACHET] -Name = Sachet -NamePlural = Sachets -Pocket = 1 -Price = 2000 -BPPrice = 32 -Flags = Fling_80 -Description = A sachet filled with slightly overwhelming fragrant perfumes. Yet it's loved by a certain Pokémon. -#------------------------------- -[REDSCARF] -Name = Red Scarf -NamePlural = Red Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Cool aspect of the holder in a Contest. -#------------------------------- -[BLUESCARF] -Name = Blue Scarf -NamePlural = Blue Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Beauty aspect of the holder in a Contest. -#------------------------------- -[PINKSCARF] -Name = Pink Scarf -NamePlural = Pink Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Cute aspect of the holder in a Contest. -#------------------------------- -[GREENSCARF] -Name = Green Scarf -NamePlural = Green Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Smart aspect of the holder in a Contest. -#------------------------------- -[YELLOWSCARF] -Name = Yellow Scarf -NamePlural = Yellow Scarves -Pocket = 1 -Price = 100 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts the Tough aspect of the holder in a Contest. -#------------------------------- -[VENUSAURITE] -Name = Venusaurite -NamePlural = Venusaurites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Venusaur hold it, and it will be able to Mega Evolve. -#------------------------------- -[CHARIZARDITEX] -Name = Charizardite X -NamePlural = Charizardite Xs -Pocket = 1 -Price = 0 -BPPrice = 64 -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. -#------------------------------- -[CHARIZARDITEY] -Name = Charizardite Y -NamePlural = Charizardite Ys -Pocket = 1 -Price = 0 -BPPrice = 64 -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. -#------------------------------- -[BLASTOISINITE] -Name = Blastoisinite -NamePlural = Blastoisinites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Blastoise hold it, and it will be able to Mega Evolve. -#------------------------------- -[BEEDRILLITE] -Name = Beedrillite -NamePlural = Beedrillites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Beedrill hold it, and it will be able to Mega Evolve. -#------------------------------- -[PIDGEOTITE] -Name = Pidgeotite -NamePlural = Pidgeotites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Pidgeot hold it, and it will be able to Mega Evolve. -#------------------------------- -[ALAKAZITE] -Name = Alakazite -NamePlural = Alakazites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Alakazam hold it, and it will be able to Mega Evolve. -#------------------------------- -[SLOWBRONITE] -Name = Slowbronite -NamePlural = Slowbronites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Slowbro hold it, and it will be able to Mega Evolve. -#------------------------------- -[GENGARITE] -Name = Gengarite -NamePlural = Gengarites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gengar hold it, and it will be able to Mega Evolve. -#------------------------------- -[KANGASKHANITE] -Name = Kangaskhanite -NamePlural = Kangaskhanites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Kangaskhan hold it, and it will be able to Mega Evolve. -#------------------------------- -[PINSIRITE] -Name = Pinsirite -NamePlural = Pinsirites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Pinsir hold it, and it will be able to Mega Evolve. -#------------------------------- -[GYARADOSITE] -Name = Gyaradosite -NamePlural = Gyaradosites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gyarados hold it, and it will be able to Mega Evolve. -#------------------------------- -[AERODACTYLITE] -Name = Aerodactylite -NamePlural = Aerodactylites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Aerodactyl hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEWTWONITEX] -Name = Mewtwonite X -NamePlural = Mewtwonite Xs -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEWTWONITEY] -Name = Mewtwonite Y -NamePlural = Mewtwonite Ys -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. -#------------------------------- -[AMPHAROSITE] -Name = Ampharosite -NamePlural = Ampharosites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Ampharos hold it, and it will be able to Mega Evolve. -#------------------------------- -[STEELIXITE] -Name = Steelixite -NamePlural = Steelixites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Steelix hold it, and it will be able to Mega Evolve. -#------------------------------- -[SCIZORITE] -Name = Scizorite -NamePlural = Scizorites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Scizor hold it, and it will be able to Mega Evolve. -#------------------------------- -[HERACRONITE] -Name = Heracronite -NamePlural = Heracronites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Heracross hold it, and it will be able to Mega Evolve. -#------------------------------- -[HOUNDOOMINITE] -Name = Houndoominite -NamePlural = Houndoominites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Houndoom hold it, and it will be able to Mega Evolve. -#------------------------------- -[TYRANITARITE] -Name = Tyranitarite -NamePlural = Tyranitarites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Tyranitar hold it, and it will be able to Mega Evolve. -#------------------------------- -[SCEPTILITE] -Name = Sceptilite -NamePlural = Sceptilites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sceptile hold it, and it will be able to Mega Evolve. -#------------------------------- -[BLAZIKENITE] -Name = Blazikenite -NamePlural = Blazikenites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Blaziken hold it, and it will be able to Mega Evolve. -#------------------------------- -[SWAMPERTITE] -Name = Swampertite -NamePlural = Swampertites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Swampert hold it, and it will be able to Mega Evolve. -#------------------------------- -[GARDEVOIRITE] -Name = Gardevoirite -NamePlural = Gardevoirites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gardevoir hold it, and it will be able to Mega Evolve. -#------------------------------- -[SABLENITE] -Name = Sablenite -NamePlural = Sablenites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sableye hold it, and it will be able to Mega Evolve. -#------------------------------- -[MAWILITE] -Name = Mawilite -NamePlural = Mawilites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mawile hold it, and it will be able to Mega Evolve. -#------------------------------- -[AGGRONITE] -Name = Aggronite -NamePlural = Aggronites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Aggron hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEDICHAMITE] -Name = Medichamite -NamePlural = Medichamites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Medicham hold it, and it will be able to Mega Evolve. -#------------------------------- -[MANECTITE] -Name = Manectite -NamePlural = Manectites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Manectric hold it, and it will be able to Mega Evolve. -#------------------------------- -[SHARPEDONITE] -Name = Sharpedonite -NamePlural = Sharpedonites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sharpedo hold it, and it will be able to Mega Evolve. -#------------------------------- -[CAMERUPTITE] -Name = Cameruptite -NamePlural = Cameruptites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Camerupt hold it, and it will be able to Mega Evolve. -#------------------------------- -[ALTARIANITE] -Name = Altarianite -NamePlural = Altarianites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Altaria hold it, and it will be able to Mega Evolve. -#------------------------------- -[BANETTITE] -Name = Banettite -NamePlural = Banettites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Banette hold it, and it will be able to Mega Evolve. -#------------------------------- -[ABSOLITE] -Name = Absolite -NamePlural = Absolites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Absol hold it, and it will be able to Mega Evolve. -#------------------------------- -[GLALITITE] -Name = Glalitite -NamePlural = Glalitites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Glalie hold it, and it will be able to Mega Evolve. -#------------------------------- -[SALAMENCITE] -Name = Salamencite -NamePlural = Salamencites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Salamence hold it, and it will be able to Mega Evolve. -#------------------------------- -[METAGROSSITE] -Name = Metagrossite -NamePlural = Metagrossites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Metagross hold it, and it will be able to Mega Evolve. -#------------------------------- -[LATIASITE] -Name = Latiasite -NamePlural = Latiasites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Latias hold it, and it will be able to Mega Evolve. -#------------------------------- -[LATIOSITE] -Name = Latiosite -NamePlural = Latiosites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Latios hold it, and it will be able to Mega Evolve. -#------------------------------- -[LOPUNNITE] -Name = Lopunnite -NamePlural = Lopunnites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Lopunny hold it, and it will be able to Mega Evolve. -#------------------------------- -[GARCHOMPITE] -Name = Garchompite -NamePlural = Garchompites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Garchomp hold it, and it will be able to Mega Evolve. -#------------------------------- -[LUCARIONITE] -Name = Lucarionite -NamePlural = Lucarionites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Lucario hold it, and it will be able to Mega Evolve. -#------------------------------- -[ABOMASITE] -Name = Abomasite -NamePlural = Abomasites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Abomasnow hold it, and it will be able to Mega Evolve. -#------------------------------- -[GALLADITE] -Name = Galladite -NamePlural = Galladites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gallade hold it, and it will be able to Mega Evolve. -#------------------------------- -[AUDINITE] -Name = Audinite -NamePlural = Audinites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Audino hold it, and it will be able to Mega Evolve. -#------------------------------- -[DIANCITE] -Name = Diancite -NamePlural = Diancites -Pocket = 1 -Price = 0 -BPPrice = 64 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Diancie hold it, and it will be able to Mega Evolve. -#------------------------------- -[REDORB] -Name = Red Orb -NamePlural = Red Orbs -Pocket = 1 -Price = 0 -BPPrice = 64 -Description = A shiny red orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. -#------------------------------- -[BLUEORB] -Name = Blue Orb -NamePlural = Blue Orbs -Pocket = 1 -Price = 0 -BPPrice = 64 -Description = A shiny blue orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. +Description = Flower nectar obtained from a purple flower. It changes the form of a certain species of Pokémon. +#------------------------------- +[GRASSMAIL] +Name = Grass Mail +NamePlural = Grass Mail +PortionName = piece of Grass Mail +PortionNamePlural = pieces of Grass Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. +#------------------------------- +[FLAMEMAIL] +Name = Flame Mail +NamePlural = Flame Mail +PortionName = piece of Flame Mail +PortionNamePlural = pieces of Flame Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. +#------------------------------- +[BUBBLEMAIL] +Name = Bubble Mail +NamePlural = Bubble Mail +PortionName = piece of Bubble Mail +PortionNamePlural = pieces of Bubble Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. +#------------------------------- +[BLOOMMAIL] +Name = Bloom Mail +NamePlural = Bloom Mail +PortionName = piece of Bloom Mail +PortionNamePlural = pieces of Bloom Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[TUNNELMAIL] +Name = Tunnel Mail +NamePlural = Tunnel Mail +PortionName = piece of Tunnel Mail +PortionNamePlural = pieces of Tunnel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. +#------------------------------- +[STEELMAIL] +Name = Steel Mail +NamePlural = Steel Mail +PortionName = piece of Steel Mail +PortionNamePlural = pieces of Steel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. +#------------------------------- +[HEARTMAIL] +Name = Heart Mail +NamePlural = Heart Mail +PortionName = piece of Heart Mail +PortionNamePlural = pieces of Heart Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[SNOWMAIL] +Name = Snow Mail +NamePlural = Snow Mail +PortionName = piece of Snow Mail +PortionNamePlural = pieces of Snow Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. +#------------------------------- +[SPACEMAIL] +Name = Space Mail +NamePlural = Space Mail +PortionName = piece of Space Mail +PortionNamePlural = pieces of Space Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print showing the huge expanse of space. Let a Pokémon hold it for delivery. +#------------------------------- +[AIRMAIL] +Name = Air Mail +NamePlural = Air Mail +PortionName = piece of Air Mail +PortionNamePlural = pieces of Air Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. +#------------------------------- +[MOSAICMAIL] +Name = Mosaic Mail +NamePlural = Mosaic Mail +PortionName = piece of Mosaic Mail +PortionNamePlural = pieces of Mosaic Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. +#------------------------------- +[BRICKMAIL] +Name = Brick Mail +NamePlural = Brick Mail +PortionName = piece of Brick Mail +PortionNamePlural = pieces of Brick Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. #------------------------------- [POTION] Name = Potion NamePlural = Potions -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2691,7 +769,7 @@ Description = A spray-type medicine for wounds. It restores the HP of one Pokém [SUPERPOTION] Name = Super Potion NamePlural = Super Potions -Pocket = 2 +Pocket = Medicine Price = 700 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2701,7 +779,7 @@ Description = A spray-type medicine for wounds. It restores the HP of one Pokém [HYPERPOTION] Name = Hyper Potion NamePlural = Hyper Potions -Pocket = 2 +Pocket = Medicine Price = 1500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2711,7 +789,7 @@ Description = A spray-type medicine for wounds. It restores the HP of one Pokém [MAXPOTION] Name = Max Potion NamePlural = Max Potions -Pocket = 2 +Pocket = Medicine Price = 2500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2721,7 +799,7 @@ Description = A spray-type medicine for wounds. It completely restores the HP of [FULLRESTORE] Name = Full Restore NamePlural = Full Restores -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2733,7 +811,7 @@ Name = Sacred Ash NamePlural = Sacred Ashes PortionName = bag of Sacred Ash PortionNamePlural = bags of Sacred Ash -Pocket = 2 +Pocket = Medicine Price = 50000 FieldUse = Direct Flags = Fling_30 @@ -2742,7 +820,7 @@ Description = It revives all fainted Pokémon. In doing so, it also fully restor [AWAKENING] Name = Awakening NamePlural = Awakenings -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2752,7 +830,7 @@ Description = A spray-type medicine. It awakens a Pokémon from the clutches of [ANTIDOTE] Name = Antidote NamePlural = Antidotes -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2762,7 +840,7 @@ Description = A spray-type medicine. It lifts the effect of poison from one Pok [BURNHEAL] Name = Burn Heal NamePlural = Burn Heals -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2772,7 +850,7 @@ Description = A spray-type medicine. It heals a single Pokémon that is sufferin [PARALYZEHEAL] Name = Paralyze Heal NamePlural = Paralyze Heals -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2782,7 +860,7 @@ Description = A spray-type medicine. It eliminates paralysis from a single Poké [ICEHEAL] Name = Ice Heal NamePlural = Ice Heals -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2792,7 +870,7 @@ Description = A spray-type medicine. It defrosts a Pokémon that has been frozen [FULLHEAL] Name = Full Heal NamePlural = Full Heals -Pocket = 2 +Pocket = Medicine Price = 400 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2802,7 +880,7 @@ Description = A spray-type medicine. It heals all the status problems of a singl [RAGECANDYBAR] Name = Rage Candy Bar NamePlural = Rage Candy Bars -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2812,7 +890,7 @@ Description = Mahogany Town's famous candy. It can be used once to heal all the [LAVACOOKIE] Name = Lava Cookie NamePlural = Lava Cookies -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2822,7 +900,7 @@ Description = Lavaridge Town's local specialty. It heals all the status problems [OLDGATEAU] Name = Old Gateau NamePlural = Old Gateaux -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2832,7 +910,7 @@ Description = Old Chateau's hidden specialty. It heals all the status problems o [CASTELIACONE] Name = Casteliacone NamePlural = Casteliacones -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2842,37 +920,37 @@ Description = Castelia City's specialty, soft-serve ice cream. It heals all the [LUMIOSEGALETTE] Name = Lumiose Galette NamePlural = Lumiose Galettes -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = A popular treat in Lumiose City. It can be used once to heal all the status conditions of a Pokémon. +Description = A popular treat in Lumiose City. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [SHALOURSABLE] Name = Shalour Sable NamePlural = Shalour Sables -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = Shalour City's famous shortbread. It can be used once to heal all the status conditions of a Pokémon. +Description = Shalour City's famous shortbread. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [BIGMALASADA] Name = Big Malasada NamePlural = Big Malasadas -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = The Alola region's specialty--fried bread. It can be used once to heal all the status conditions of a Pokémon. +Description = The Alola region's specialty--fried bread. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [REVIVE] Name = Revive NamePlural = Revives -Pocket = 2 +Pocket = Medicine Price = 2000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2882,7 +960,7 @@ Description = A medicine that revives a fainted Pokémon. It restores half the P [MAXREVIVE] Name = Max Revive NamePlural = Max Revives -Pocket = 2 +Pocket = Medicine Price = 4000 BPPrice = 24 FieldUse = OnPokemon @@ -2895,7 +973,7 @@ Name = Berry Juice NamePlural = Berry Juices PortionName = cup of Berry Juice PortionNamePlural = cups of Berry Juice -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2905,7 +983,7 @@ Description = A 100% pure juice made of Berries. It restores the HP of one Poké [SWEETHEART] Name = Sweet Heart NamePlural = Sweet Hearts -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2917,7 +995,7 @@ Name = Fresh Water NamePlural = Fresh Waters PortionName = bottle of Fresh Water PortionNamePlural = bottles of Fresh Water -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2929,7 +1007,7 @@ Name = Soda Pop NamePlural = Soda Pops PortionName = bottle of Soda Pop PortionNamePlural = bottles of Soda Pop -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2941,7 +1019,7 @@ Name = Lemonade NamePlural = Lemonades PortionName = can of Lemonade PortionNamePlural = cans of Lemonade -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2953,7 +1031,7 @@ Name = Moomoo Milk NamePlural = Moomoo Milks PortionName = bottle of Moomoo Milk PortionNamePlural = bottles of Moomoo Milk -Pocket = 2 +Pocket = Medicine Price = 600 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2965,7 +1043,7 @@ Name = Energy Powder NamePlural = Energy Powders PortionName = dose of Energy Powder PortionNamePlural = doses of Energy Powder -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2975,7 +1053,7 @@ Description = A very bitter medicine powder. It restores the HP of one Pokémon [ENERGYROOT] Name = Energy Root NamePlural = Energy Roots -Pocket = 2 +Pocket = Medicine Price = 1200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2987,7 +1065,7 @@ Name = Heal Powder NamePlural = Heal Powders PortionName = dose of Heal Powder PortionNamePlural = doses of Heal Powder -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -2997,7 +1075,7 @@ Description = A very bitter medicine powder. It heals all the status problems of [REVIVALHERB] Name = Revival Herb NamePlural = Revival Herbs -Pocket = 2 +Pocket = Medicine Price = 2800 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3007,7 +1085,7 @@ Description = A very bitter medicinal herb. It revives a fainted Pokémon, fully [ETHER] Name = Ether NamePlural = Ethers -Pocket = 2 +Pocket = Medicine Price = 1200 BPPrice = 4 FieldUse = OnPokemon @@ -3018,7 +1096,7 @@ Description = It restores the PP of a Pokémon's selected move by a maximum of 1 [MAXETHER] Name = Max Ether NamePlural = Max Ethers -Pocket = 2 +Pocket = Medicine Price = 2000 FieldUse = OnPokemon BattleUse = OnMove @@ -3028,7 +1106,7 @@ Description = It fully restores the PP of a single selected move that has been l [ELIXIR] Name = Elixir NamePlural = Elixirs -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3038,7 +1116,7 @@ Description = It restores the PP of all the moves learned by the targeted Pokém [MAXELIXIR] Name = Max Elixir NamePlural = Max Elixirs -Pocket = 2 +Pocket = Medicine Price = 4500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3050,7 +1128,7 @@ Name = PP Up NamePlural = PP Ups PortionName = bottle of PP Up PortionNamePlural = bottles of PP Up -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 48 FieldUse = OnPokemon @@ -3062,7 +1140,7 @@ Name = PP Max NamePlural = PP Maxes PortionName = bottle of PP Max PortionNamePlural = bottles of PP Max -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3073,7 +1151,7 @@ Name = HP Up NamePlural = HP Ups PortionName = bottle of HP Up PortionNamePlural = bottles of HP Up -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -3085,7 +1163,7 @@ Name = Protein NamePlural = Proteins PortionName = bottle of Protein PortionNamePlural = bottles of Protein -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -3097,7 +1175,7 @@ Name = Iron NamePlural = Irons PortionName = bottle of Iron PortionNamePlural = bottles of Iron -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -3109,7 +1187,7 @@ Name = Calcium NamePlural = Calciums PortionName = bottle of Calcium PortionNamePlural = bottles of Calcium -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -3121,7 +1199,7 @@ Name = Zinc NamePlural = Zincs PortionName = bottle of Zinc PortionNamePlural = bottles of Zinc -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -3133,7 +1211,7 @@ Name = Carbos NamePlural = Carbos PortionName = bottle of Carbos PortionNamePlural = bottles of Carbos -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 2 FieldUse = OnPokemon @@ -3143,7 +1221,7 @@ Description = A nutritious drink for Pokémon. It raises the base Speed stat of [HEALTHWING] Name = Health Wing NamePlural = Health Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3152,7 +1230,7 @@ Description = An item for use on a Pokémon. It slightly increases the base HP o [MUSCLEWING] Name = Muscle Wing NamePlural = Muscle Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3161,7 +1239,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Atta [RESISTWING] Name = Resist Wing NamePlural = Resist Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3170,7 +1248,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Defe [GENIUSWING] Name = Genius Wing NamePlural = Genius Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3179,7 +1257,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [CLEVERWING] Name = Clever Wing NamePlural = Clever Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3188,7 +1266,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [SWIFTWING] Name = Swift Wing NamePlural = Swift Wings -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3197,7 +1275,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Spee [ABILITYCAPSULE] Name = Ability Capsule NamePlural = Ability Capsule -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 100 FieldUse = OnPokemon @@ -3206,7 +1284,7 @@ Description = A capsule that allows a Pokémon with two Abilities to switch betw [RARECANDY] Name = Rare Candy NamePlural = Rare Candies -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 48 FieldUse = OnPokemon @@ -3216,7 +1294,7 @@ Description = A candy that is packed with energy. It raises the level of a singl [MASTERBALL] Name = Master Ball NamePlural = Master Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -3225,7 +1303,7 @@ Description = The best Ball with the ultimate level of performance. It will catc [ULTRABALL] Name = Ultra Ball NamePlural = Ultra Balls -Pocket = 3 +Pocket = PokeBalls Price = 800 BattleUse = OnFoe Flags = PokeBall @@ -3234,7 +1312,7 @@ Description = An ultra-performance Ball that provides a higher Pokémon catch ra [GREATBALL] Name = Great Ball NamePlural = Great Balls -Pocket = 3 +Pocket = PokeBalls Price = 600 BattleUse = OnFoe Flags = PokeBall @@ -3243,7 +1321,7 @@ Description = A good, high-performance Ball that provides a higher Pokémon catc [POKEBALL] Name = Poké Ball NamePlural = Poké Balls -Pocket = 3 +Pocket = PokeBalls Price = 200 BattleUse = OnFoe Flags = PokeBall @@ -3252,7 +1330,7 @@ Description = A device for catching wild Pokémon. It is thrown like a ball at t [SAFARIBALL] Name = Safari Ball NamePlural = Safari Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -3261,7 +1339,7 @@ Description = A special Poké Ball that is used only in the Safari Zone. It is d [SPORTBALL] Name = Sport Ball NamePlural = Sport Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3270,7 +1348,7 @@ Description = A special Poké Ball for the Bug-Catching Contest. [NETBALL] Name = Net Ball NamePlural = Net Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3279,7 +1357,7 @@ Description = A somewhat different Poké Ball that works especially well on Wate [DIVEBALL] Name = Dive Ball NamePlural = Dive Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3288,7 +1366,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [NESTBALL] Name = Nest Ball NamePlural = Nest Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3297,7 +1375,7 @@ Description = A somewhat different Poké Ball that works especially well on weak [REPEATBALL] Name = Repeat Ball NamePlural = Repeat Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3306,7 +1384,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [TIMERBALL] Name = Timer Ball NamePlural = Timer Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3315,7 +1393,7 @@ Description = A somewhat different Ball that becomes progressively better the mo [LUXURYBALL] Name = Luxury Ball NamePlural = Luxury Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3324,7 +1402,7 @@ Description = A comfortable Poké Ball that makes a caught wild Pokémon quickly [PREMIERBALL] Name = Premier Ball NamePlural = Premier Balls -Pocket = 3 +Pocket = PokeBalls Price = 20 BattleUse = OnFoe Flags = PokeBall @@ -3333,7 +1411,7 @@ Description = A somewhat rare Poké Ball that has been specially made to commemo [DUSKBALL] Name = Dusk Ball NamePlural = Dusk Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3342,7 +1420,7 @@ Description = A somewhat different Poké Ball that makes it easier to catch wild [HEALBALL] Name = Heal Ball NamePlural = Heal Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3351,7 +1429,7 @@ Description = A remedial Poké Ball that restores the caught Pokémon's HP and e [QUICKBALL] Name = Quick Ball NamePlural = Quick Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3360,7 +1438,7 @@ Description = A somewhat different Poké Ball that provides a better catch rate [CHERISHBALL] Name = Cherish Ball NamePlural = Cherish Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -3369,7 +1447,7 @@ Description = A quite rare Poké Ball that has been specially crafted to commemo [FASTBALL] Name = Fast Ball NamePlural = Fast Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3378,7 +1456,7 @@ Description = A Poké Ball that makes it easier to catch fast Pokémon. [LEVELBALL] Name = Level Ball NamePlural = Level Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3387,7 +1465,7 @@ Description = A Poké Ball for catching Pokémon that are a lower level than you [LUREBALL] Name = Lure Ball NamePlural = Lure Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3396,7 +1474,7 @@ Description = A Poké Ball for catching Pokémon hooked by a Rod when fishing. [HEAVYBALL] Name = Heavy Ball NamePlural = Heavy Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3405,7 +1483,7 @@ Description = A Poké Ball for catching very heavy Pokémon. [LOVEBALL] Name = Love Ball NamePlural = Love Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3414,7 +1492,7 @@ Description = A Poké Ball for catching Pokémon that are the opposite gender of [FRIENDBALL] Name = Friend Ball NamePlural = Friend Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3423,7 +1501,7 @@ Description = A Poké Ball that makes caught Pokémon more friendly. [MOONBALL] Name = Moon Ball NamePlural = Moon Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3432,7 +1510,7 @@ Description = A Poké Ball for catching Pokémon that evolve using the Moon Ston [DREAMBALL] Name = Dream Ball NamePlural = Dream Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -3441,12 +1519,2917 @@ Description = A somewhat different Poké Ball that makes it easier to catch wild [BEASTBALL] Name = Beast Ball NamePlural = Beast Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall Description = A special Poké Ball designed to catch Ultra Beasts. It has a low success rate for catching others. #------------------------------- +[CHERIBERRY] +Name = Cheri Berry +NamePlural = Cheri Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +BattleUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_FIRE_80 +Description = It may be used or held by a Pokémon to recover from paralysis. +#------------------------------- +[CHESTOBERRY] +Name = Chesto Berry +NamePlural = Chesto Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +BattleUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_WATER_80 +Description = It may be used or held by a Pokémon to recover from sleep. +#------------------------------- +[PECHABERRY] +Name = Pecha Berry +NamePlural = Pecha Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +BattleUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_ELECTRIC_80 +Description = It may be used or held by a Pokémon to recover from poison. +#------------------------------- +[RAWSTBERRY] +Name = Rawst Berry +NamePlural = Rawst Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +BattleUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_GRASS_80 +Description = It may be used or held by a Pokémon to recover from a burn. +#------------------------------- +[ASPEARBERRY] +Name = Aspear Berry +NamePlural = Aspear Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +BattleUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_ICE_80 +Description = It may be used or held by a Pokémon to defrost it. +#------------------------------- +[LEPPABERRY] +Name = Leppa Berry +NamePlural = Leppa Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +BattleUse = OnMove +Flags = Berry,Fling_10,NaturalGift_FIGHTING_80 +Description = It may be used or held by a Pokémon to restore a move's PP by 10. +#------------------------------- +[ORANBERRY] +Name = Oran Berry +NamePlural = Oran Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +BattleUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_POISON_80 +Description = It may be used or held by a Pokémon to heal the user by just 10 HP. +#------------------------------- +[PERSIMBERRY] +Name = Persim Berry +NamePlural = Persim Berries +Pocket = Berries +Price = 20 +BattleUse = OnBattler +Flags = Berry,Fling_10,NaturalGift_GROUND_80 +Description = It may be used or held by a Pokémon to recover from confusion. +#------------------------------- +[LUMBERRY] +Name = Lum Berry +NamePlural = Lum Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +BattleUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_FLYING_80 +Description = It may be used or held by a Pokémon to recover from any status problem. +#------------------------------- +[SITRUSBERRY] +Name = Sitrus Berry +NamePlural = Sitrus Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +BattleUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_PSYCHIC_80 +Description = It may be used or held by a Pokémon to heal the user's HP a little. +#------------------------------- +[FIGYBERRY] +Name = Figy Berry +NamePlural = Figy Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_BUG_80 +Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. +#------------------------------- +[WIKIBERRY] +Name = Wiki Berry +NamePlural = Wiki Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_ROCK_80 +Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. +#------------------------------- +[MAGOBERRY] +Name = Mago Berry +NamePlural = Mago Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_GHOST_80 +Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. +#------------------------------- +[AGUAVBERRY] +Name = Aguav Berry +NamePlural = Aguav Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_DRAGON_80 +Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. +#------------------------------- +[IAPAPABERRY] +Name = Iapapa Berry +NamePlural = Iapapa Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_DARK_80 +Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. +#------------------------------- +[RAZZBERRY] +Name = Razz Berry +NamePlural = Razz Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_STEEL_80 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[BLUKBERRY] +Name = Bluk Berry +NamePlural = Bluk Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_FIRE_90 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[NANABBERRY] +Name = Nanab Berry +NamePlural = Nanab Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_WATER_90 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[WEPEARBERRY] +Name = Wepear Berry +NamePlural = Wepear Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_ELECTRIC_90 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[PINAPBERRY] +Name = Pinap Berry +NamePlural = Pinap Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_GRASS_90 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[POMEGBERRY] +Name = Pomeg Berry +NamePlural = Pomeg Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_ICE_90 +Description = Using it on a Pokémon makes it more friendly, but it also lowers its base HP. +#------------------------------- +[KELPSYBERRY] +Name = Kelpsy Berry +NamePlural = Kelpsy Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_FIGHTING_90 +Description = Using it on a Pokémon makes it more friendly, but it also lowers its base Attack stat. +#------------------------------- +[QUALOTBERRY] +Name = Qualot Berry +NamePlural = Qualot Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_POISON_90 +Description = Using it on a Pokémon makes it more friendly, but it also lowers its base Defense stat. +#------------------------------- +[HONDEWBERRY] +Name = Hondew Berry +NamePlural = Hondew Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_GROUND_90 +Description = Using it on a Pokémon makes it more friendly, but it also lowers its base Sp. Atk stat. +#------------------------------- +[GREPABERRY] +Name = Grepa Berry +NamePlural = Grepa Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_FLYING_90 +Description = Using it on a Pokémon makes it more friendly, but it also lowers its base Sp. Def stat. +#------------------------------- +[TAMATOBERRY] +Name = Tamato Berry +NamePlural = Tamato Berries +Pocket = Berries +Price = 20 +FieldUse = OnPokemon +Flags = Berry,Fling_10,NaturalGift_PSYCHIC_90 +Description = Using it on a Pokémon makes it more friendly, but it also lowers its base Speed stat. +#------------------------------- +[CORNNBERRY] +Name = Cornn Berry +NamePlural = Cornn Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_BUG_90 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[MAGOSTBERRY] +Name = Magost Berry +NamePlural = Magost Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_ROCK_90 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[RABUTABERRY] +Name = Rabuta Berry +NamePlural = Rabuta Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_GHOST_90 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[NOMELBERRY] +Name = Nomel Berry +NamePlural = Nomel Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_DRAGON_90 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[SPELONBERRY] +Name = Spelon Berry +NamePlural = Spelon Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_DARK_90 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[PAMTREBERRY] +Name = Pamtre Berry +NamePlural = Pamtre Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_STEEL_90 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[WATMELBERRY] +Name = Watmel Berry +NamePlural = Watmel Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_FIRE_100 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[DURINBERRY] +Name = Durin Berry +NamePlural = Durin Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_WATER_100 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[BELUEBERRY] +Name = Belue Berry +NamePlural = Belue Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_ELECTRIC_100 +Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. +#------------------------------- +[OCCABERRY] +Name = Occa Berry +NamePlural = Occa Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_FIRE_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fire-type attack. +#------------------------------- +[PASSHOBERRY] +Name = Passho Berry +NamePlural = Passho Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_WATER_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Water-type attack. +#------------------------------- +[WACANBERRY] +Name = Wacan Berry +NamePlural = Wacan Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_ELECTRIC_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Electric attack. +#------------------------------- +[RINDOBERRY] +Name = Rindo Berry +NamePlural = Rindo Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_GRASS_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Grass-type attack. +#------------------------------- +[YACHEBERRY] +Name = Yache Berry +NamePlural = Yache Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_ICE_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ice-type attack. +#------------------------------- +[CHOPLEBERRY] +Name = Chople Berry +NamePlural = Chople Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_FIGHTING_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fighting attack. +#------------------------------- +[KEBIABERRY] +Name = Kebia Berry +NamePlural = Kebia Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_POISON_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Poison-type attack. +#------------------------------- +[SHUCABERRY] +Name = Shuca Berry +NamePlural = Shuca Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_GROUND_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ground-type attack. +#------------------------------- +[COBABERRY] +Name = Coba Berry +NamePlural = Coba Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_FLYING_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Flying-type attack. +#------------------------------- +[PAYAPABERRY] +Name = Payapa Berry +NamePlural = Payapa Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_PSYCHIC_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Psychic attack. +#------------------------------- +[TANGABERRY] +Name = Tanga Berry +NamePlural = Tanga Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_BUG_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Bug-type attack. +#------------------------------- +[CHARTIBERRY] +Name = Charti Berry +NamePlural = Charti Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_ROCK_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Rock-type attack. +#------------------------------- +[KASIBBERRY] +Name = Kasib Berry +NamePlural = Kasib Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_GHOST_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ghost-type attack. +#------------------------------- +[HABANBERRY] +Name = Haban Berry +NamePlural = Haban Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_DRAGON_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dragon-type attack. +#------------------------------- +[COLBURBERRY] +Name = Colbur Berry +NamePlural = Colbur Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_DARK_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dark-type attack. +#------------------------------- +[BABIRIBERRY] +Name = Babiri Berry +NamePlural = Babiri Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_STEEL_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Steel-type attack. +#------------------------------- +[ROSELIBERRY] +Name = Roseli Berry +NamePlural = Roseli Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_FAIRY_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fairy-type attack. +#------------------------------- +[CHILANBERRY] +Name = Chilan Berry +NamePlural = Chilan Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_NORMAL_80 +Description = If held by a Pokémon, this Berry will lessen the damage taken from one Normal-type attack. +#------------------------------- +[LIECHIBERRY] +Name = Liechi Berry +NamePlural = Liechi Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_GRASS_100 +Description = If held by a Pokémon, it raises its Attack stat in a pinch. +#------------------------------- +[GANLONBERRY] +Name = Ganlon Berry +NamePlural = Ganlon Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_ICE_100 +Description = If held by a Pokémon, it raises its Defense stat in a pinch. +#------------------------------- +[SALACBERRY] +Name = Salac Berry +NamePlural = Salac Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_FIGHTING_100 +Description = If held by a Pokémon, it raises its Speed stat in a pinch. +#------------------------------- +[PETAYABERRY] +Name = Petaya Berry +NamePlural = Petaya Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_POISON_100 +Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. +#------------------------------- +[APICOTBERRY] +Name = Apicot Berry +NamePlural = Apicot Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_GROUND_100 +Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. +#------------------------------- +[LANSATBERRY] +Name = Lansat Berry +NamePlural = Lansat Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_FLYING_100 +Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch. +#------------------------------- +[STARFBERRY] +Name = Starf Berry +NamePlural = Starf Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_PSYCHIC_100 +Description = If held by a Pokémon, it sharply raises one of its stats in a pinch. +#------------------------------- +[ENIGMABERRY] +Name = Enigma Berry +NamePlural = Enigma Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_BUG_100 +Description = If held by a Pokémon, it restores its HP if it is hit by any supereffective attack. +#------------------------------- +[MICLEBERRY] +Name = Micle Berry +NamePlural = Micle Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_ROCK_100 +Description = If held by a Pokémon, it raises the accuracy of a move just once in a pinch. +#------------------------------- +[CUSTAPBERRY] +Name = Custap Berry +NamePlural = Custap Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_GHOST_100 +Description = If held by a Pokémon, it gets to move first just once in a pinch. +#------------------------------- +[JABOCABERRY] +Name = Jaboca Berry +NamePlural = Jaboca Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_DRAGON_100 +Description = If held by a Pokémon and a physical attack lands, the attacker also takes damage. +#------------------------------- +[ROWAPBERRY] +Name = Rowap Berry +NamePlural = Rowap Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_DARK_100 +Description = If held by a Pokémon and a special attack lands, the attacker also takes damage. +#------------------------------- +[KEEBERRY] +Name = Kee Berry +NamePlural = Kee Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_FAIRY_100 +Description = If held by a Pokémon, this Berry will increase the holder's Defense if it's hit with a physical move. +#------------------------------- +[MARANGABERRY] +Name = Maranga Berry +NamePlural = Maranga Berries +Pocket = Berries +Price = 20 +Flags = Berry,Fling_10,NaturalGift_DARK_100 +Description = If held by a Pokémon, this Berry will increase the holder's Sp. Def if it's hit with a special move. +#------------------------------- +[AIRBALLOON] +Name = Air Balloon +NamePlural = Air Balloons +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. +#------------------------------- +[BRIGHTPOWDER] +Name = Bright Powder +NamePlural = Bright Powders +PortionName = bag of Bright Powder +PortionNamePlural = bags of Bright Powder +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. +#------------------------------- +[EVIOLITE] +Name = Eviolite +NamePlural = Eviolites +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_40 +Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. +#------------------------------- +[FLOATSTONE] +Name = Float Stone +NamePlural = Float Stones +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = A very light stone. It reduces the weight of a Pokémon when held. +#------------------------------- +[DESTINYKNOT] +Name = Destiny Knot +NamePlural = Destiny Knots +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = A long, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. +#------------------------------- +[ROCKYHELMET] +Name = Rocky Helmet +NamePlural = Rocky Helmets +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_60 +Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. +#------------------------------- +[ASSAULTVEST] +Name = Assault Vest +NamePlural = Assault Vests +Pocket = HeldItems +Price = 1000 +BPPrice = 48 +Flags = Fling_80 +Description = An item to be held by a Pokémon. This offensive vest raises Sp. Def but prevents the use of status moves. +#------------------------------- +[SAFETYGOGGLES] +Name = Safety Goggles +NamePlural = Safety Goggles +PortionName = pair of Safety Goggles +PortionNamePlural = pairs of Safety Goggles +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_80 +Description = An item to be held by a Pokémon. They protect the holder from weather-related damage and powder. +#------------------------------- +[PROTECTIVEPADS] +Name = Protective Pads +NamePlural = Protective Pads +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. They protect the holder from effects caused by making contact. +#------------------------------- +[EJECTBUTTON] +Name = Eject Button +NamePlural = Eject Buttons +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_30 +Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. +#------------------------------- +[REDCARD] +Name = Red Card +NamePlural = Red Cards +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_10 +Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. +#------------------------------- +[SHEDSHELL] +Name = Shed Shell +NamePlural = Shed Shells +Pocket = HeldItems +Price = 4000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. +#------------------------------- +[SMOKEBALL] +Name = Smoke Ball +NamePlural = Smoke Balls +Pocket = HeldItems +Price = 4000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. +#------------------------------- +[LUCKYEGG] +Name = Lucky Egg +NamePlural = Lucky Eggs +Pocket = HeldItems +Price = 10000 +BPPrice = 77 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. +#------------------------------- +[EXPSHARE] +Name = Exp. Share +NamePlural = Exp. Shares +Pocket = HeldItems +Price = 3000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. +#------------------------------- +[AMULETCOIN] +Name = Amulet Coin +NamePlural = Amulet Coins +Pocket = HeldItems +Price = 10000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[SOOTHEBELL] +Name = Soothe Bell +NamePlural = Soothe Bells +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. +#------------------------------- +[CLEANSETAG] +Name = Cleanse Tag +NamePlural = Cleanse Tags +Pocket = HeldItems +Price = 5000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[CHOICEBAND] +Name = Choice Band +NamePlural = Choice Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. +#------------------------------- +[CHOICESPECS] +Name = Choice Specs +NamePlural = Choice Specs +PortionName = pair of Choice Specs +PortionNamePlural = pairs of Choice Specs +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. +#------------------------------- +[CHOICESCARF] +Name = Choice Scarf +NamePlural = Choice Scarves +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. +#------------------------------- +[HEATROCK] +Name = Heat Rock +NamePlural = Heat Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. +#------------------------------- +[DAMPROCK] +Name = Damp Rock +NamePlural = Damp Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. +#------------------------------- +[SMOOTHROCK] +Name = Smooth Rock +NamePlural = Smooth Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. +#------------------------------- +[ICYROCK] +Name = Icy Rock +NamePlural = Icy Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_40 +Description = A Pokémon held item that extends the duration of the move Hail used by the holder. +#------------------------------- +[TERRAINEXTENDER] +Name = Terrain Extender +NamePlural = Terrain Extenders +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_60 +Description = An item to be held by a Pokémon. It extends the duration of the terrain caused by the holder. +#------------------------------- +[LIGHTCLAY] +Name = Light Clay +NamePlural = Light Clays +PortionName = lump of Light Clay +PortionNamePlural = lumps of Light Clay +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. +#------------------------------- +[GRIPCLAW] +Name = Grip Claw +NamePlural = Grip Claws +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_90 +Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. +#------------------------------- +[BINDINGBAND] +Name = Binding Band +NamePlural = Binding Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = A band that increases the power of binding moves when held. +#------------------------------- +[BIGROOT] +Name = Big Root +NamePlural = Big Roots +Pocket = HeldItems +Price = 4000 +BPPrice = 24 +Flags = Fling_10 +Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. +#------------------------------- +[BLACKSLUDGE] +Name = Black Sludge +NamePlural = Black Sludges +PortionName = blob of Black Sludge +PortionNamePlural = blobs of Black Sludge +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. +#------------------------------- +[LEFTOVERS] +Name = Leftovers +NamePlural = Leftovers +PortionName = serving of Leftovers +PortionNamePlural = servings of Leftovers +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. +#------------------------------- +[SHELLBELL] +Name = Shell Bell +NamePlural = Shell Bells +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. +#------------------------------- +[MENTALHERB] +Name = Mental Herb +NamePlural = Mental Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 24 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. +#------------------------------- +[WHITEHERB] +Name = White Herb +NamePlural = White Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 24 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. +#------------------------------- +[POWERHERB] +Name = Power Herb +NamePlural = Power Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 24 +Flags = Fling_10 +Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. +#------------------------------- +[ABSORBBULB] +Name = Absorb Bulb +NamePlural = Absorb Bulbs +Pocket = HeldItems +Price = 4000 +BPPrice = 24 +Flags = Fling_30 +Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. +#------------------------------- +[CELLBATTERY] +Name = Cell Battery +NamePlural = Cell Batteries +Pocket = HeldItems +Price = 4000 +BPPrice = 24 +Flags = Fling_30 +Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. +#------------------------------- +[LUMINOUSMOSS] +Name = Luminous Moss +NamePlural = Luminous Moss +PortionName = clump of Luminous Moss +PortionNamePlural = clumps of Luminous Moss +Pocket = HeldItems +Price = 4000 +BPPrice = 24 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Sp. Def if hit by a Water-type attack. It can only be used once. +#------------------------------- +[SNOWBALL] +Name = Snowball +NamePlural = Snowballs +Pocket = HeldItems +Price = 4000 +BPPrice = 24 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Attack if hit by an Ice-type attack. It can only be used once. +#------------------------------- +[WEAKNESSPOLICY] +Name = Weakness Policy +NamePlural = Weakness Policies +Pocket = HeldItems +Price = 1000 +BPPrice = 32 +Flags = Fling_80 +Description = An item to be held by a Pokémon. The holder's Attack and Sp. Atk sharply increase if hit by a move it's weak to. +#------------------------------- +[ADRENALINEORB] +Name = Adrenaline Orb +NamePlural = Adrenaline Orbs +Pocket = HeldItems +Price = 300 +BPPrice = 24 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Speed when intimidated. It can be used only once. +#------------------------------- +[ELECTRICSEED] +Name = Electric Seed +NamePlural = Electric Seeds +Pocket = HeldItems +Price = 4000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Defense on Electric Terrain. It can only be used once. +#------------------------------- +[GRASSYSEED] +Name = Grassy Seed +NamePlural = Grassy Seeds +Pocket = HeldItems +Price = 4000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Defense on Grassy Terrain. It can only be used once. +#------------------------------- +[MISTYSEED] +Name = Misty Seed +NamePlural = Misty Seeds +Pocket = HeldItems +Price = 4000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Sp. Def on Misty Terrain. It can only be used once. +#------------------------------- +[PSYCHICSEED] +Name = Psychic Seed +NamePlural = Psychic Seeds +Pocket = HeldItems +Price = 4000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Sp. Def on Psychic Terrain. It can only be used once. +#------------------------------- +[LIFEORB] +Name = Life Orb +NamePlural = Life Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. +#------------------------------- +[EXPERTBELT] +Name = Expert Belt +NamePlural = Expert Belts +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. +#------------------------------- +[METRONOME] +Name = Metronome +NamePlural = Metronomes +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. +#------------------------------- +[MUSCLEBAND] +Name = Muscle Band +NamePlural = Muscle Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. +#------------------------------- +[WISEGLASSES] +Name = Wise Glasses +NamePlural = Wise Glasses +PortionName = pair of Wise Glasses +PortionNamePlural = pairs of Wise Glasses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. +#------------------------------- +[RAZORCLAW] +Name = Razor Claw +NamePlural = Razor Claws +Pocket = HeldItems +Price = 5000 +BPPrice = 32 +Flags = Fling_80 +Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. +#------------------------------- +[SCOPELENS] +Name = Scope Lens +NamePlural = Scope Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. +#------------------------------- +[WIDELENS] +Name = Wide Lens +NamePlural = Wide Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. +#------------------------------- +[ZOOMLENS] +Name = Zoom Lens +NamePlural = Zoom Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. +#------------------------------- +[KINGSROCK] +Name = King's Rock +NamePlural = King's Rocks +Pocket = HeldItems +Price = 5000 +BPPrice = 32 +Flags = Fling_30 +Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. +#------------------------------- +[RAZORFANG] +Name = Razor Fang +NamePlural = Razor Fangs +Pocket = HeldItems +Price = 5000 +BPPrice = 32 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. +#------------------------------- +[LAGGINGTAIL] +Name = Lagging Tail +NamePlural = Lagging Tails +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. +#------------------------------- +[QUICKCLAW] +Name = Quick Claw +NamePlural = Quick Claws +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_80 +Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. +#------------------------------- +[FOCUSBAND] +Name = Focus Band +NamePlural = Focus Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. +#------------------------------- +[FOCUSSASH] +Name = Focus Sash +NamePlural = Focus Sashes +Pocket = HeldItems +Price = 4000 +BPPrice = 32 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. +#------------------------------- +[FLAMEORB] +Name = Flame Orb +NamePlural = Flame Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. +#------------------------------- +[TOXICORB] +Name = Toxic Orb +NamePlural = Toxic Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. +#------------------------------- +[STICKYBARB] +Name = Sticky Barb +NamePlural = Sticky Barbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_80 +Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. +#------------------------------- +[IRONBALL] +Name = Iron Ball +NamePlural = Iron Balls +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_130 +Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. +#------------------------------- +[RINGTARGET] +Name = Ring Target +NamePlural = Ring Targets +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_10 +Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. +#------------------------------- +[MACHOBRACE] +Name = Macho Brace +NamePlural = Macho Braces +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_60 +Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. +#------------------------------- +[POWERWEIGHT] +Name = Power Weight +NamePlural = Power Weights +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBRACER] +Name = Power Bracer +NamePlural = Power Bracers +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBELT] +Name = Power Belt +NamePlural = Power Belts +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERLENS] +Name = Power Lens +NamePlural = Power Lenses +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBAND] +Name = Power Band +NamePlural = Power Bands +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERANKLET] +Name = Power Anklet +NamePlural = Power Anklets +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_70 +Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. +#------------------------------- +[LAXINCENSE] +Name = Lax Incense +NamePlural = Lax Incenses +PortionName = jar of Lax Incense +PortionNamePlural = jars of Lax Incense +Pocket = HeldItems +Price = 5000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. +#------------------------------- +[FULLINCENSE] +Name = Full Incense +NamePlural = Full Incenses +PortionName = jar of Full Incense +PortionNamePlural = jars of Full Incense +Pocket = HeldItems +Price = 5000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. +#------------------------------- +[LUCKINCENSE] +Name = Luck Incense +NamePlural = Luck Incenses +PortionName = jar of Luck Incense +PortionNamePlural = jars of Luck Incense +Pocket = HeldItems +Price = 11000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[PUREINCENSE] +Name = Pure Incense +NamePlural = Pure Incenses +PortionName = jar of Pure Incense +PortionNamePlural = jars of Pure Incense +Pocket = HeldItems +Price = 6000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[SEAINCENSE] +Name = Sea Incense +NamePlural = Sea Incenses +PortionName = jar of Sea Incense +PortionNamePlural = jars of Sea Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[WAVEINCENSE] +Name = Wave Incense +NamePlural = Wave Incenses +PortionName = jar of Wave Incense +PortionNamePlural = jars of Wave Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[ROSEINCENSE] +Name = Rose Incense +NamePlural = Rose Incenses +PortionName = jar of Rose Incense +PortionNamePlural = jars of Rose Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. +#------------------------------- +[ODDINCENSE] +Name = Odd Incense +NamePlural = Odd Incenses +PortionName = jar of Odd Incense +PortionNamePlural = jars of Odd Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. +#------------------------------- +[ROCKINCENSE] +Name = Rock Incense +NamePlural = Rock Incenses +PortionName = jar of Rock Incense +PortionNamePlural = jars of Rock Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. +#------------------------------- +[CHARCOAL] +Name = Charcoal +NamePlural = Charcoals +PortionName = piece of Charcoal +PortionNamePlural = pieces of Charcoal +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. +#------------------------------- +[MYSTICWATER] +Name = Mystic Water +NamePlural = Mystic Waters +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. +#------------------------------- +[MAGNET] +Name = Magnet +NamePlural = Magnets +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. +#------------------------------- +[MIRACLESEED] +Name = Miracle Seed +NamePlural = Miracle Seeds +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. +#------------------------------- +[NEVERMELTICE] +Name = Never-Melt Ice +NamePlural = Never-Melt Ices +PortionName = piece of Never-Melt Ice +PortionNamePlural = pieces of Never-Melt Ice +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. +#------------------------------- +[BLACKBELT] +Name = Black Belt +NamePlural = Black Belts +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. +#------------------------------- +[POISONBARB] +Name = Poison Barb +NamePlural = Poison Barbs +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. +#------------------------------- +[SOFTSAND] +Name = Soft Sand +NamePlural = Soft Sand +PortionName = bag of Soft Sand +PortionNamePlural = bags of Soft Sand +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. +#------------------------------- +[SHARPBEAK] +Name = Sharp Beak +NamePlural = Sharp Beaks +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. +#------------------------------- +[TWISTEDSPOON] +Name = Twisted Spoon +NamePlural = Twisted Spoons +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. +#------------------------------- +[SILVERPOWDER] +Name = Silver Powder +NamePlural = Silver Powders +PortionName = pile of Silver Powder +PortionNamePlural = piles of Silver Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. +#------------------------------- +[HARDSTONE] +Name = Hard Stone +NamePlural = Hard Stones +Pocket = HeldItems +Price = 1000 +Flags = Fling_100 +Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. +#------------------------------- +[SPELLTAG] +Name = Spell Tag +NamePlural = Spell Tags +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. +#------------------------------- +[DRAGONFANG] +Name = Dragon Fang +NamePlural = Dragon Fangs +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. +#------------------------------- +[BLACKGLASSES] +Name = Black Glasses +NamePlural = Black Glasses +PortionName = pair of Black Glasses +PortionNamePlural = pairs of Black Glasses +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. +#------------------------------- +[METALCOAT] +Name = Metal Coat +NamePlural = Metal Coats +Pocket = HeldItems +Price = 2000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. +#------------------------------- +[SILKSCARF] +Name = Silk Scarf +NamePlural = Silk Scarves +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. +#------------------------------- +[FLAMEPLATE] +Name = Flame Plate +NamePlural = Flame Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. +#------------------------------- +[SPLASHPLATE] +Name = Splash Plate +NamePlural = Splash Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. +#------------------------------- +[ZAPPLATE] +Name = Zap Plate +NamePlural = Zap Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. +#------------------------------- +[MEADOWPLATE] +Name = Meadow Plate +NamePlural = Meadow Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. +#------------------------------- +[ICICLEPLATE] +Name = Icicle Plate +NamePlural = Icicle Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. +#------------------------------- +[FISTPLATE] +Name = Fist Plate +NamePlural = Fist Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. +#------------------------------- +[TOXICPLATE] +Name = Toxic Plate +NamePlural = Toxic Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. +#------------------------------- +[EARTHPLATE] +Name = Earth Plate +NamePlural = Earth Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. +#------------------------------- +[SKYPLATE] +Name = Sky Plate +NamePlural = Sky Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. +#------------------------------- +[MINDPLATE] +Name = Mind Plate +NamePlural = Mind Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. +#------------------------------- +[INSECTPLATE] +Name = Insect Plate +NamePlural = Insect Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. +#------------------------------- +[STONEPLATE] +Name = Stone Plate +NamePlural = Stone Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. +#------------------------------- +[SPOOKYPLATE] +Name = Spooky Plate +NamePlural = Spooky Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. +#------------------------------- +[DRACOPLATE] +Name = Draco Plate +NamePlural = Draco Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. +#------------------------------- +[DREADPLATE] +Name = Dread Plate +NamePlural = Dread Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. +#------------------------------- +[IRONPLATE] +Name = Iron Plate +NamePlural = Iron Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. +#------------------------------- +[PIXIEPLATE] +Name = Pixie Plate +NamePlural = Pixie Plates +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fairy-type moves. +#------------------------------- +[FIREGEM] +Name = Fire Gem +NamePlural = Fire Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. +#------------------------------- +[WATERGEM] +Name = Water Gem +NamePlural = Water Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. +#------------------------------- +[ELECTRICGEM] +Name = Electric Gem +NamePlural = Electric Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. +#------------------------------- +[GRASSGEM] +Name = Grass Gem +NamePlural = Grass Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. +#------------------------------- +[ICEGEM] +Name = Ice Gem +NamePlural = Ice Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. +#------------------------------- +[FIGHTINGGEM] +Name = Fighting Gem +NamePlural = Fighting Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. +#------------------------------- +[POISONGEM] +Name = Poison Gem +NamePlural = Poison Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. +#------------------------------- +[GROUNDGEM] +Name = Ground Gem +NamePlural = Ground Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. +#------------------------------- +[FLYINGGEM] +Name = Flying Gem +NamePlural = Flying Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. +#------------------------------- +[PSYCHICGEM] +Name = Psychic Gem +NamePlural = Psychic Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. +#------------------------------- +[BUGGEM] +Name = Bug Gem +NamePlural = Bug Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. +#------------------------------- +[ROCKGEM] +Name = Rock Gem +NamePlural = Rock Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. +#------------------------------- +[GHOSTGEM] +Name = Ghost Gem +NamePlural = Ghost Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. +#------------------------------- +[DRAGONGEM] +Name = Dragon Gem +NamePlural = Dragon Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. +#------------------------------- +[DARKGEM] +Name = Dark Gem +NamePlural = Dark Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. +#------------------------------- +[STEELGEM] +Name = Steel Gem +NamePlural = Steel Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. +#------------------------------- +[FAIRYGEM] +Name = Fairy Gem +NamePlural = Fairy Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an essence of the fey. When held, it strengthens the power of a Fairy-type move only once. +#------------------------------- +[NORMALGEM] +Name = Normal Gem +NamePlural = Normal Gems +Pocket = HeldItems +Price = 200 +Flags = TypeGem +Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. +#------------------------------- +[LIGHTBALL] +Name = Light Ball +NamePlural = Light Balls +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. +#------------------------------- +[LUCKYPUNCH] +Name = Lucky Punch +NamePlural = Lucky Punches +Pocket = HeldItems +Price = 1000 +BPPrice = 7 +Flags = Fling_40 +Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. +#------------------------------- +[METALPOWDER] +Name = Metal Powder +NamePlural = Metal Powders +PortionName = bag of Metal Powder +PortionNamePlural = bags of Metal Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. +#------------------------------- +[QUICKPOWDER] +Name = Quick Powder +NamePlural = Quick Powders +PortionName = bag of Quick Powder +PortionNamePlural = bags of Quick Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. +#------------------------------- +[THICKCLUB] +Name = Thick Club +NamePlural = Thick Clubs +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. +#------------------------------- +[STICK] +Name = Stick +NamePlural = Sticks +Pocket = HeldItems +Price = 1000 +Flags = Fling_60 +Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. +#------------------------------- +[SOULDEW] +Name = Soul Dew +NamePlural = Soul Dews +Pocket = HeldItems +Price = 0 +Flags = Fling_30 +Description = A wondrous orb to be held by either Latios or Latias. It raises the power of Psychic- and Dragon-type moves. +#------------------------------- +[DEEPSEATOOTH] +Name = Deep Sea Tooth +NamePlural = Deep Sea Teeth +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_90 +Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. +#------------------------------- +[DEEPSEASCALE] +Name = Deep Sea Scale +NamePlural = Deep Sea Scales +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_30 +Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. +#------------------------------- +[ADAMANTORB] +Name = Adamant Orb +NamePlural = Adamant Orbs +Pocket = HeldItems +Price = 10000 +Flags = Fling_60 +Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. +#------------------------------- +[LUSTROUSORB] +Name = Lustrous Orb +NamePlural = Lustrous Orbs +Pocket = HeldItems +Price = 10000 +Flags = Fling_60 +Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. +#------------------------------- +[GRISEOUSORB] +Name = Griseous Orb +NamePlural = Griseous Orbs +Pocket = HeldItems +Price = 10000 +Flags = Fling_60 +Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. +#------------------------------- +[DOUSEDRIVE] +Name = Douse Drive +NamePlural = Douse Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. +#------------------------------- +[SHOCKDRIVE] +Name = Shock Drive +NamePlural = Shock Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. +#------------------------------- +[BURNDRIVE] +Name = Burn Drive +NamePlural = Burn Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. +#------------------------------- +[CHILLDRIVE] +Name = Chill Drive +NamePlural = Chill Drives +Pocket = HeldItems +Price = 1000 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. +#------------------------------- +[FIREMEMORY] +Name = Fire Memory +NamePlural = Fire Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fire-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[WATERMEMORY] +Name = Water Memory +NamePlural = Water Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Water-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ELECTRICMEMORY] +Name = Electric Memory +NamePlural = Electric Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Electric-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GRASSMEMORY] +Name = Grass Memory +NamePlural = Grass Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Grass-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ICEMEMORY] +Name = Ice Memory +NamePlural = Ice Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ice-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FIGHTINGMEMORY] +Name = Fighting Memory +NamePlural = Fighting Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fighting-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[POISONMEMORY] +Name = Poison Memory +NamePlural = Poison Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Poison-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GROUNDMEMORY] +Name = Ground Memory +NamePlural = Ground Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ground-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FLYINGMEMORY] +Name = Flying Memory +NamePlural = Flying Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Flying-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[PSYCHICMEMORY] +Name = Psychic Memory +NamePlural = Psychic Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Psychic-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[BUGMEMORY] +Name = Bug Memory +NamePlural = Bug Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Bug-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ROCKMEMORY] +Name = Rock Memory +NamePlural = Rock Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Rock-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GHOSTMEMORY] +Name = Ghost Memory +NamePlural = Ghost Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ghost-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[DRAGONMEMORY] +Name = Dragon Memory +NamePlural = Dragon Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Dragon-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[DARKMEMORY] +Name = Dark Memory +NamePlural = Dark Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Dark-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[STEELMEMORY] +Name = Steel Memory +NamePlural = Steel Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Steel-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FAIRYMEMORY] +Name = Fairy Memory +NamePlural = Fairy Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fairy-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[EVERSTONE] +Name = Everstone +NamePlural = Everstones +Pocket = HeldItems +Price = 3000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. +#------------------------------- +[DRAGONSCALE] +Name = Dragon Scale +NamePlural = Dragon Scales +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_30 +Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. +#------------------------------- +[UPGRADE] +Name = Upgrade +NamePlural = Upgrades +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_30 +Description = A transparent device filled with all sorts of data. It was produced by Silph Co. +#------------------------------- +[DUBIOUSDISC] +Name = Dubious Disc +NamePlural = Dubious Discs +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_50 +Description = A transparent device overflowing with dubious data. Its producer is unknown. +#------------------------------- +[PROTECTOR] +Name = Protector +NamePlural = Protectors +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. +#------------------------------- +[ELECTIRIZER] +Name = Electirizer +NamePlural = Electirizers +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. +#------------------------------- +[MAGMARIZER] +Name = Magmarizer +NamePlural = Magmarizers +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. +#------------------------------- +[REAPERCLOTH] +Name = Reaper Cloth +NamePlural = Reaper Cloths +PortionName = scrap of Reaper Cloth +PortionNamePlural = scraps of Reaper Cloth +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_10 +Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. +#------------------------------- +[PRISMSCALE] +Name = Prism Scale +NamePlural = Prism Scales +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_30 +Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. +#------------------------------- +[OVALSTONE] +Name = Oval Stone +NamePlural = Oval Stones +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. +#------------------------------- +[WHIPPEDDREAM] +Name = Whipped Dream +NamePlural = Whipped Dreams +PortionName = dollop of Whipped Dream +PortionNamePlural = dollops of Whipped Dream +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A soft and sweet treat made of fluffy, puffy and whirled cream. It's loved by a certain Pokémon. +#------------------------------- +[SACHET] +Name = Sachet +NamePlural = Sachets +Pocket = HeldItems +Price = 2000 +BPPrice = 32 +Flags = Fling_80 +Description = A sachet filled with slightly overwhelming fragrant perfumes. Yet it's loved by a certain Pokémon. +#------------------------------- +[VENUSAURITE] +Name = Venusaurite +NamePlural = Venusaurites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Venusaur hold it, and it will be able to Mega Evolve. +#------------------------------- +[CHARIZARDITEX] +Name = Charizardite X +NamePlural = Charizardite Xs +Pocket = MegaStones +Price = 0 +BPPrice = 64 +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. +#------------------------------- +[CHARIZARDITEY] +Name = Charizardite Y +NamePlural = Charizardite Ys +Pocket = MegaStones +Price = 0 +BPPrice = 64 +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. +#------------------------------- +[BLASTOISINITE] +Name = Blastoisinite +NamePlural = Blastoisinites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Blastoise hold it, and it will be able to Mega Evolve. +#------------------------------- +[BEEDRILLITE] +Name = Beedrillite +NamePlural = Beedrillites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Beedrill hold it, and it will be able to Mega Evolve. +#------------------------------- +[PIDGEOTITE] +Name = Pidgeotite +NamePlural = Pidgeotites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Pidgeot hold it, and it will be able to Mega Evolve. +#------------------------------- +[ALAKAZITE] +Name = Alakazite +NamePlural = Alakazites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Alakazam hold it, and it will be able to Mega Evolve. +#------------------------------- +[SLOWBRONITE] +Name = Slowbronite +NamePlural = Slowbronites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Slowbro hold it, and it will be able to Mega Evolve. +#------------------------------- +[GENGARITE] +Name = Gengarite +NamePlural = Gengarites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gengar hold it, and it will be able to Mega Evolve. +#------------------------------- +[KANGASKHANITE] +Name = Kangaskhanite +NamePlural = Kangaskhanites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Kangaskhan hold it, and it will be able to Mega Evolve. +#------------------------------- +[PINSIRITE] +Name = Pinsirite +NamePlural = Pinsirites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Pinsir hold it, and it will be able to Mega Evolve. +#------------------------------- +[GYARADOSITE] +Name = Gyaradosite +NamePlural = Gyaradosites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gyarados hold it, and it will be able to Mega Evolve. +#------------------------------- +[AERODACTYLITE] +Name = Aerodactylite +NamePlural = Aerodactylites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Aerodactyl hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEWTWONITEX] +Name = Mewtwonite X +NamePlural = Mewtwonite Xs +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEWTWONITEY] +Name = Mewtwonite Y +NamePlural = Mewtwonite Ys +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. +#------------------------------- +[AMPHAROSITE] +Name = Ampharosite +NamePlural = Ampharosites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Ampharos hold it, and it will be able to Mega Evolve. +#------------------------------- +[STEELIXITE] +Name = Steelixite +NamePlural = Steelixites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Steelix hold it, and it will be able to Mega Evolve. +#------------------------------- +[SCIZORITE] +Name = Scizorite +NamePlural = Scizorites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Scizor hold it, and it will be able to Mega Evolve. +#------------------------------- +[HERACRONITE] +Name = Heracronite +NamePlural = Heracronites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Heracross hold it, and it will be able to Mega Evolve. +#------------------------------- +[HOUNDOOMINITE] +Name = Houndoominite +NamePlural = Houndoominites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Houndoom hold it, and it will be able to Mega Evolve. +#------------------------------- +[TYRANITARITE] +Name = Tyranitarite +NamePlural = Tyranitarites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Tyranitar hold it, and it will be able to Mega Evolve. +#------------------------------- +[SCEPTILITE] +Name = Sceptilite +NamePlural = Sceptilites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sceptile hold it, and it will be able to Mega Evolve. +#------------------------------- +[BLAZIKENITE] +Name = Blazikenite +NamePlural = Blazikenites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Blaziken hold it, and it will be able to Mega Evolve. +#------------------------------- +[SWAMPERTITE] +Name = Swampertite +NamePlural = Swampertites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Swampert hold it, and it will be able to Mega Evolve. +#------------------------------- +[GARDEVOIRITE] +Name = Gardevoirite +NamePlural = Gardevoirites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gardevoir hold it, and it will be able to Mega Evolve. +#------------------------------- +[SABLENITE] +Name = Sablenite +NamePlural = Sablenites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sableye hold it, and it will be able to Mega Evolve. +#------------------------------- +[MAWILITE] +Name = Mawilite +NamePlural = Mawilites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mawile hold it, and it will be able to Mega Evolve. +#------------------------------- +[AGGRONITE] +Name = Aggronite +NamePlural = Aggronites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Aggron hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEDICHAMITE] +Name = Medichamite +NamePlural = Medichamites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Medicham hold it, and it will be able to Mega Evolve. +#------------------------------- +[MANECTITE] +Name = Manectite +NamePlural = Manectites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Manectric hold it, and it will be able to Mega Evolve. +#------------------------------- +[SHARPEDONITE] +Name = Sharpedonite +NamePlural = Sharpedonites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sharpedo hold it, and it will be able to Mega Evolve. +#------------------------------- +[CAMERUPTITE] +Name = Cameruptite +NamePlural = Cameruptites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Camerupt hold it, and it will be able to Mega Evolve. +#------------------------------- +[ALTARIANITE] +Name = Altarianite +NamePlural = Altarianites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Altaria hold it, and it will be able to Mega Evolve. +#------------------------------- +[BANETTITE] +Name = Banettite +NamePlural = Banettites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Banette hold it, and it will be able to Mega Evolve. +#------------------------------- +[ABSOLITE] +Name = Absolite +NamePlural = Absolites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Absol hold it, and it will be able to Mega Evolve. +#------------------------------- +[GLALITITE] +Name = Glalitite +NamePlural = Glalitites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Glalie hold it, and it will be able to Mega Evolve. +#------------------------------- +[SALAMENCITE] +Name = Salamencite +NamePlural = Salamencites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Salamence hold it, and it will be able to Mega Evolve. +#------------------------------- +[METAGROSSITE] +Name = Metagrossite +NamePlural = Metagrossites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Metagross hold it, and it will be able to Mega Evolve. +#------------------------------- +[LATIASITE] +Name = Latiasite +NamePlural = Latiasites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Latias hold it, and it will be able to Mega Evolve. +#------------------------------- +[LATIOSITE] +Name = Latiosite +NamePlural = Latiosites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Latios hold it, and it will be able to Mega Evolve. +#------------------------------- +[LOPUNNITE] +Name = Lopunnite +NamePlural = Lopunnites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Lopunny hold it, and it will be able to Mega Evolve. +#------------------------------- +[GARCHOMPITE] +Name = Garchompite +NamePlural = Garchompites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Garchomp hold it, and it will be able to Mega Evolve. +#------------------------------- +[LUCARIONITE] +Name = Lucarionite +NamePlural = Lucarionites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Lucario hold it, and it will be able to Mega Evolve. +#------------------------------- +[ABOMASITE] +Name = Abomasite +NamePlural = Abomasites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Abomasnow hold it, and it will be able to Mega Evolve. +#------------------------------- +[GALLADITE] +Name = Galladite +NamePlural = Galladites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gallade hold it, and it will be able to Mega Evolve. +#------------------------------- +[AUDINITE] +Name = Audinite +NamePlural = Audinites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Audino hold it, and it will be able to Mega Evolve. +#------------------------------- +[DIANCITE] +Name = Diancite +NamePlural = Diancites +Pocket = MegaStones +Price = 0 +BPPrice = 64 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Diancie hold it, and it will be able to Mega Evolve. +#------------------------------- +[REDORB] +Name = Red Orb +NamePlural = Red Orbs +Pocket = HeldItems +Price = 0 +BPPrice = 64 +Description = A shiny red orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. +#------------------------------- +[BLUEORB] +Name = Blue Orb +NamePlural = Blue Orbs +Pocket = HeldItems +Price = 0 +BPPrice = 64 +Description = A shiny blue orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. +#------------------------------- +[XATTACK] +Name = X Attack +NamePlural = X Attacks +Pocket = BattleItems +Price = 1000 +BattleUse = OnBattler +Flags = Fling_30 +Description = An item that sharply boosts the Attack stat of a Pokémon while it remains in battle. +#------------------------------- +[XATTACK2] +Name = X Attack 2 +NamePlural = X Attack 2s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It sharply raises the Attack stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XATTACK3] +Name = X Attack 3 +NamePlural = X Attack 3s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It drastically raises the Attack stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XATTACK6] +Name = X Attack 6 +NamePlural = X Attack 6s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It raises the Attack stat of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XDEFENSE] +Name = X Defense +NamePlural = X Defenses +Pocket = BattleItems +Price = 2000 +BattleUse = OnBattler +Flags = Fling_30 +Description = An item that sharply boosts the Defense of a Pokémon while it remains in battle. +#------------------------------- +[XDEFENSE2] +Name = X Defense 2 +NamePlural = X Defense 2s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It sharply raises the Defense stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XDEFENSE3] +Name = X Defense 3 +NamePlural = X Defense 3s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It drastically raises the Defense stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XDEFENSE6] +Name = X Defense 6 +NamePlural = X Defense 6s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It raises the Defense stat of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XSPATK] +Name = X Sp. Atk +NamePlural = X Sp. Atks +Pocket = BattleItems +Price = 1000 +BattleUse = OnBattler +Flags = Fling_30 +Description = An item that sharply boosts the Sp. Atk stat of a Pokémon while it remains in battle. +#------------------------------- +[XSPATK2] +Name = X Sp. Atk 2 +NamePlural = X Sp. Atk 2s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It sharply raises the Sp. Atk stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XSPATK3] +Name = X Sp. Atk 3 +NamePlural = X Sp. Atk 3s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It drastically raises the Sp. Atk stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XSPATK6] +Name = X Sp. Atk 6 +NamePlural = X Sp. Atk 6s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It raises the Sp. Atk stat of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XSPDEF] +Name = X Sp. Def +NamePlural = X Sp. Defs +Pocket = BattleItems +Price = 2000 +BattleUse = OnBattler +Flags = Fling_30 +Description = An item that sharply boosts the Sp. Def stat of a Pokémon while it remains in battle. +#------------------------------- +[XSPDEF2] +Name = X Sp. Def 2 +NamePlural = X Sp. Def 2s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It sharply raises the Sp. Def stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XSPDEF3] +Name = X Sp. Def 3 +NamePlural = X Sp. Def 3s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It drastically raises the Sp. Def stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XSPDEF6] +Name = X Sp. Def 6 +NamePlural = X Sp. Def 6s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It raises the Sp. Def stat of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XSPEED] +Name = X Speed +NamePlural = X Speeds +Pocket = BattleItems +Price = 1000 +BattleUse = OnBattler +Flags = Fling_30 +Description = An item that sharply boosts the Speed stat of a Pokémon while it remains in battle. +#------------------------------- +[XSPEED2] +Name = X Speed 2 +NamePlural = X Speed 2s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It sharply raises the Speed stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XSPEED3] +Name = X Speed 3 +NamePlural = X Speed 3s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It drastically raises the Speed stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XSPEED6] +Name = X Speed 6 +NamePlural = X Speed 6s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It raises the Speed stat of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XACCURACY] +Name = X Accuracy +NamePlural = X Accuracies +Pocket = BattleItems +Price = 1000 +BattleUse = OnBattler +Flags = Fling_30 +Description = An item that sharply boosts the accuracy of a Pokémon while it remains in battle. +#------------------------------- +[XACCURACY2] +Name = X Accuracy 2 +NamePlural = X Accuracy 2s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It sharply raises the accuracy of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XACCURACY3] +Name = X Accuracy 3 +NamePlural = X Accuracy 3s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It drastically raises the accuracy of a Pokémon in battle. It wears off if the Pokémon is withdrawn. +#------------------------------- +[XACCURACY6] +Name = X Accuracy 6 +NamePlural = X Accuracy 6s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It raises the accuracy of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. +#------------------------------- +[DIREHIT] +Name = Dire Hit +NamePlural = Dire Hits +Pocket = BattleItems +Price = 1000 +BattleUse = OnBattler +Flags = Fling_30 +Description = An item that raises the critical-hit ratio greatly. It wears off if the Pokémon is withdrawn. +#------------------------------- +[DIREHIT2] +Name = Dire Hit 2 +NamePlural = Dire Hit 2s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It sharply raises the critical-hit ratio. It wears off if the Pokémon is withdrawn. +#------------------------------- +[DIREHIT3] +Name = Dire Hit 3 +NamePlural = Dire Hit 3s +Pocket = BattleItems +Price = 0 +BattleUse = OnBattler +Flags = Fling_30 +Description = It greatly raises the critical-hit ratio. It wears off if the Pokémon is withdrawn. +#------------------------------- +[GUARDSPEC] +Name = Guard Spec. +NamePlural = Guard Specs. +Pocket = BattleItems +Price = 1500 +BattleUse = Direct +Flags = Fling_30 +Description = An item that prevents stat reduction among the Trainer's party Pokémon for five turns after use. +#------------------------------- +[RESETURGE] +Name = Reset Urge +NamePlural = Reset Urges +Pocket = BattleItems +Price = 0 +Flags = Fling_30 +Description = When used, it restores any stat changes of an ally Pokémon. +#------------------------------- +[ABILITYURGE] +Name = Ability Urge +NamePlural = Ability Urges +Pocket = BattleItems +Price = 0 +Flags = Fling_30 +Description = When used, it activates the Ability of an ally Pokémon. +#------------------------------- +[ITEMURGE] +Name = Item Urge +NamePlural = Item Urges +Pocket = BattleItems +Price = 0 +Flags = Fling_30 +Description = When used, it causes an ally Pokémon to use its held item. +#------------------------------- +[ITEMDROP] +Name = Item Drop +NamePlural = Item Drops +Pocket = BattleItems +Price = 0 +Flags = Fling_30 +Description = When used, it causes an ally Pokémon to drop a held item. +#------------------------------- +[BLUEFLUTE] +Name = Blue Flute +NamePlural = Blue Flutes +Pocket = BattleItems +Price = 100 +FieldUse = OnPokemon +BattleUse = OnPokemon +Flags = Fling_30 +Consumable = false +Description = A blue flute made from blown glass. Its melody awakens a single Pokémon from sleep. +#------------------------------- +[YELLOWFLUTE] +Name = Yellow Flute +NamePlural = Yellow Flutes +Pocket = BattleItems +Price = 300 +BattleUse = OnBattler +Flags = Fling_30 +Consumable = false +Description = A yellow flute made from blown glass. Its melody snaps a single Pokémon out of confusion. +#------------------------------- +[REDFLUTE] +Name = Red Flute +NamePlural = Red Flutes +Pocket = BattleItems +Price = 200 +BattleUse = OnBattler +Flags = Fling_30 +Consumable = false +Description = A red flute made from blown glass. Its melody snaps a single Pokémon out of infatuation. +#------------------------------- +[POKEDOLL] +Name = Poké Doll +NamePlural = Poké Dolls +Pocket = BattleItems +Price = 100 +BattleUse = Direct +Flags = Fling_30 +Description = A doll that attracts Pokémon. Use it to flee from any battle with a wild Pokémon. +#------------------------------- +[FLUFFYTAIL] +Name = Fluffy Tail +NamePlural = Fluffy Tails +Pocket = BattleItems +Price = 100 +BattleUse = Direct +Flags = Fling_30 +Description = An item that attracts Pokémon. Use it to flee from any battle with a wild Pokémon. +#------------------------------- +[POKETOY] +Name = Poké Toy +NamePlural = Poké Toys +Pocket = BattleItems +Price = 100 +BattleUse = Direct +Flags = Fling_30 +Description = An item that attracts Pokémon. Use it to flee from any battle with a wild Pokémon. +#------------------------------- [TM01] Name = TM01 NamePlural = TM01s @@ -3958,7 +4941,7 @@ Pocket = 4 Price = 10000 FieldUse = TM Move = CHARGEBEAM -Description = The user fires a concentrated bundle of electricity. It may also raise the user's Sp. Atk stat. +Description = The user attacks with an electric charge. The user may use any remaining charge to raise its Sp. Atk. #------------------------------- [TM58] Name = TM58 @@ -4039,7 +5022,7 @@ Pocket = 4 Price = 10000 FieldUse = TM Move = PAYBACK -Description = The user stores power, then attacks. If the user can use this attack after the foe, its power is doubled. +Description = The user stores power, then attacks. If the user goes after the target, this attack's power doubles. #------------------------------- [TM67] Name = TM67 @@ -4399,1035 +5382,12 @@ Pocket = 4 Price = 0 FieldUse = HM Move = DIVE -Description = The user dives on the first turn, and floats up and attacks on the second. It can be used to dive in the ocean. -#------------------------------- -[CHERIBERRY] -Name = Cheri Berry -NamePlural = Cheri Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -BattleUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_FIRE_80 -Description = It may be used or held by a Pokémon to recover from paralysis. -#------------------------------- -[CHESTOBERRY] -Name = Chesto Berry -NamePlural = Chesto Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -BattleUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_WATER_80 -Description = It may be used or held by a Pokémon to recover from sleep. -#------------------------------- -[PECHABERRY] -Name = Pecha Berry -NamePlural = Pecha Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -BattleUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_ELECTRIC_80 -Description = It may be used or held by a Pokémon to recover from poison. -#------------------------------- -[RAWSTBERRY] -Name = Rawst Berry -NamePlural = Rawst Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -BattleUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_GRASS_80 -Description = It may be used or held by a Pokémon to recover from a burn. -#------------------------------- -[ASPEARBERRY] -Name = Aspear Berry -NamePlural = Aspear Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -BattleUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_ICE_80 -Description = It may be used or held by a Pokémon to defrost it. -#------------------------------- -[LEPPABERRY] -Name = Leppa Berry -NamePlural = Leppa Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -BattleUse = OnMove -Flags = Berry,Fling_10,NaturalGift_FIGHTING_80 -Description = It may be used or held by a Pokémon to restore a move's PP by 10. -#------------------------------- -[ORANBERRY] -Name = Oran Berry -NamePlural = Oran Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -BattleUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_POISON_80 -Description = It may be used or held by a Pokémon to heal the user by just 10 HP. -#------------------------------- -[PERSIMBERRY] -Name = Persim Berry -NamePlural = Persim Berries -Pocket = 5 -Price = 20 -BattleUse = OnBattler -Flags = Berry,Fling_10,NaturalGift_GROUND_80 -Description = It may be used or held by a Pokémon to recover from confusion. -#------------------------------- -[LUMBERRY] -Name = Lum Berry -NamePlural = Lum Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -BattleUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_FLYING_80 -Description = It may be used or held by a Pokémon to recover from any status problem. -#------------------------------- -[SITRUSBERRY] -Name = Sitrus Berry -NamePlural = Sitrus Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -BattleUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_PSYCHIC_80 -Description = It may be used or held by a Pokémon to heal the user's HP a little. -#------------------------------- -[FIGYBERRY] -Name = Figy Berry -NamePlural = Figy Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_BUG_80 -Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. -#------------------------------- -[WIKIBERRY] -Name = Wiki Berry -NamePlural = Wiki Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_ROCK_80 -Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. -#------------------------------- -[MAGOBERRY] -Name = Mago Berry -NamePlural = Mago Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_GHOST_80 -Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. -#------------------------------- -[AGUAVBERRY] -Name = Aguav Berry -NamePlural = Aguav Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_DRAGON_80 -Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. -#------------------------------- -[IAPAPABERRY] -Name = Iapapa Berry -NamePlural = Iapapa Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_DARK_80 -Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. -#------------------------------- -[RAZZBERRY] -Name = Razz Berry -NamePlural = Razz Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_STEEL_80 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[BLUKBERRY] -Name = Bluk Berry -NamePlural = Bluk Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_FIRE_90 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[NANABBERRY] -Name = Nanab Berry -NamePlural = Nanab Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_WATER_90 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[WEPEARBERRY] -Name = Wepear Berry -NamePlural = Wepear Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_ELECTRIC_90 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[PINAPBERRY] -Name = Pinap Berry -NamePlural = Pinap Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_GRASS_90 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[POMEGBERRY] -Name = Pomeg Berry -NamePlural = Pomeg Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_ICE_90 -Description = Using it on a Pokémon makes it more friendly, but it also lowers its base HP. -#------------------------------- -[KELPSYBERRY] -Name = Kelpsy Berry -NamePlural = Kelpsy Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_FIGHTING_90 -Description = Using it on a Pokémon makes it more friendly, but it also lowers its base Attack stat. -#------------------------------- -[QUALOTBERRY] -Name = Qualot Berry -NamePlural = Qualot Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_POISON_90 -Description = Using it on a Pokémon makes it more friendly, but it also lowers its base Defense stat. -#------------------------------- -[HONDEWBERRY] -Name = Hondew Berry -NamePlural = Hondew Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_GROUND_90 -Description = Using it on a Pokémon makes it more friendly, but it also lowers its base Sp. Atk stat. -#------------------------------- -[GREPABERRY] -Name = Grepa Berry -NamePlural = Grepa Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_FLYING_90 -Description = Using it on a Pokémon makes it more friendly, but it also lowers its base Sp. Def stat. -#------------------------------- -[TAMATOBERRY] -Name = Tamato Berry -NamePlural = Tamato Berries -Pocket = 5 -Price = 20 -FieldUse = OnPokemon -Flags = Berry,Fling_10,NaturalGift_PSYCHIC_90 -Description = Using it on a Pokémon makes it more friendly, but it also lowers its base Speed stat. -#------------------------------- -[CORNNBERRY] -Name = Cornn Berry -NamePlural = Cornn Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_BUG_90 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[MAGOSTBERRY] -Name = Magost Berry -NamePlural = Magost Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_ROCK_90 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[RABUTABERRY] -Name = Rabuta Berry -NamePlural = Rabuta Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_GHOST_90 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[NOMELBERRY] -Name = Nomel Berry -NamePlural = Nomel Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_DRAGON_90 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[SPELONBERRY] -Name = Spelon Berry -NamePlural = Spelon Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_DARK_90 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[PAMTREBERRY] -Name = Pamtre Berry -NamePlural = Pamtre Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_STEEL_90 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[WATMELBERRY] -Name = Watmel Berry -NamePlural = Watmel Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_FIRE_100 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[DURINBERRY] -Name = Durin Berry -NamePlural = Durin Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_WATER_100 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[BELUEBERRY] -Name = Belue Berry -NamePlural = Belue Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_ELECTRIC_100 -Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. -#------------------------------- -[OCCABERRY] -Name = Occa Berry -NamePlural = Occa Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_FIRE_80 -Description = Weakens a supereffective Fire-type attack against the holding Pokémon. -#------------------------------- -[PASSHOBERRY] -Name = Passho Berry -NamePlural = Passho Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_WATER_80 -Description = Weakens a supereffective Water-type attack against the holding Pokémon. -#------------------------------- -[WACANBERRY] -Name = Wacan Berry -NamePlural = Wacan Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_ELECTRIC_80 -Description = Weakens a supereffective Electric-type attack against the holding Pokémon. -#------------------------------- -[RINDOBERRY] -Name = Rindo Berry -NamePlural = Rindo Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_GRASS_80 -Description = Weakens a supereffective Grass-type attack against the holding Pokémon. -#------------------------------- -[YACHEBERRY] -Name = Yache Berry -NamePlural = Yache Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_ICE_80 -Description = Weakens a supereffective Ice-type attack against the holding Pokémon. -#------------------------------- -[CHOPLEBERRY] -Name = Chople Berry -NamePlural = Chople Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_FIGHTING_80 -Description = Weakens a supereffective Fighting-type attack against the holding Pokémon. -#------------------------------- -[KEBIABERRY] -Name = Kebia Berry -NamePlural = Kebia Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_POISON_80 -Description = Weakens a supereffective Poison-type attack against the holding Pokémon. -#------------------------------- -[SHUCABERRY] -Name = Shuca Berry -NamePlural = Shuca Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_GROUND_80 -Description = Weakens a supereffective Ground-type attack against the holding Pokémon. -#------------------------------- -[COBABERRY] -Name = Coba Berry -NamePlural = Coba Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_FLYING_80 -Description = Weakens a supereffective Flying-type attack against the holding Pokémon. -#------------------------------- -[PAYAPABERRY] -Name = Payapa Berry -NamePlural = Payapa Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_PSYCHIC_80 -Description = Weakens a supereffective Psychic-type attack against the holding Pokémon. -#------------------------------- -[TANGABERRY] -Name = Tanga Berry -NamePlural = Tanga Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_BUG_80 -Description = Weakens a supereffective Bug-type attack against the holding Pokémon. -#------------------------------- -[CHARTIBERRY] -Name = Charti Berry -NamePlural = Charti Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_ROCK_80 -Description = Weakens a supereffective Rock-type attack against the holding Pokémon. -#------------------------------- -[KASIBBERRY] -Name = Kasib Berry -NamePlural = Kasib Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_GHOST_80 -Description = Weakens a supereffective Ghost-type attack against the holding Pokémon. -#------------------------------- -[HABANBERRY] -Name = Haban Berry -NamePlural = Haban Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_DRAGON_80 -Description = Weakens a supereffective Dragon-type attack against the holding Pokémon. -#------------------------------- -[COLBURBERRY] -Name = Colbur Berry -NamePlural = Colbur Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_DARK_80 -Description = Weakens a supereffective Dark-type attack against the holding Pokémon. -#------------------------------- -[BABIRIBERRY] -Name = Babiri Berry -NamePlural = Babiri Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_STEEL_80 -Description = Weakens a supereffective Steel-type attack against the holding Pokémon. -#------------------------------- -[ROSELIBERRY] -Name = Roseli Berry -NamePlural = Roseli Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_FAIRY_80 -Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fairy-type attack. -#------------------------------- -[CHILANBERRY] -Name = Chilan Berry -NamePlural = Chilan Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_NORMAL_80 -Description = Weakens a Normal-type attack against the Pokémon holding this berry. -#------------------------------- -[LIECHIBERRY] -Name = Liechi Berry -NamePlural = Liechi Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_GRASS_100 -Description = If held by a Pokémon, it raises its Attack stat in a pinch. -#------------------------------- -[GANLONBERRY] -Name = Ganlon Berry -NamePlural = Ganlon Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_ICE_100 -Description = If held by a Pokémon, it raises its Defense stat in a pinch. -#------------------------------- -[SALACBERRY] -Name = Salac Berry -NamePlural = Salac Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_FIGHTING_100 -Description = If held by a Pokémon, it raises its Speed stat in a pinch. -#------------------------------- -[PETAYABERRY] -Name = Petaya Berry -NamePlural = Petaya Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_POISON_100 -Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. -#------------------------------- -[APICOTBERRY] -Name = Apicot Berry -NamePlural = Apicot Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_GROUND_100 -Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. -#------------------------------- -[LANSATBERRY] -Name = Lansat Berry -NamePlural = Lansat Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_FLYING_100 -Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch. -#------------------------------- -[STARFBERRY] -Name = Starf Berry -NamePlural = Starf Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_PSYCHIC_100 -Description = If held by a Pokémon, it sharply raises one of its stats in a pinch. -#------------------------------- -[ENIGMABERRY] -Name = Enigma Berry -NamePlural = Enigma Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_BUG_100 -Description = If held by a Pokémon, it restores its HP if it is hit by any supereffective attack. -#------------------------------- -[MICLEBERRY] -Name = Micle Berry -NamePlural = Micle Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_ROCK_100 -Description = If held by a Pokémon, it raises the accuracy of a move just once in a pinch. -#------------------------------- -[CUSTAPBERRY] -Name = Custap Berry -NamePlural = Custap Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_GHOST_100 -Description = If held by a Pokémon, it gets to move first just once in a pinch. -#------------------------------- -[JABOCABERRY] -Name = Jaboca Berry -NamePlural = Jaboca Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_DRAGON_100 -Description = If held by a Pokémon and a physical attack lands, the attacker also takes damage. -#------------------------------- -[ROWAPBERRY] -Name = Rowap Berry -NamePlural = Rowap Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_DARK_100 -Description = If held by a Pokémon and a special attack lands, the attacker also takes damage. -#------------------------------- -[KEEBERRY] -Name = Kee Berry -NamePlural = Kee Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_FAIRY_100 -Description = If held by a Pokémon, this Berry will increase the holder's Defense if it's hit with a physical move. -#------------------------------- -[MARANGABERRY] -Name = Maranga Berry -NamePlural = Maranga Berries -Pocket = 5 -Price = 20 -Flags = Berry,Fling_10,NaturalGift_DARK_100 -Description = If held by a Pokémon, this Berry will increase the holder's Sp. Def if it's hit with a special move. -#------------------------------- -[GRASSMAIL] -Name = Grass Mail -NamePlural = Grass Mail -PortionName = piece of Grass Mail -PortionNamePlural = pieces of Grass Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. -#------------------------------- -[FLAMEMAIL] -Name = Flame Mail -NamePlural = Flame Mail -PortionName = piece of Flame Mail -PortionNamePlural = pieces of Flame Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. -#------------------------------- -[BUBBLEMAIL] -Name = Bubble Mail -NamePlural = Bubble Mail -PortionName = piece of Bubble Mail -PortionNamePlural = pieces of Bubble Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. -#------------------------------- -[BLOOMMAIL] -Name = Bloom Mail -NamePlural = Bloom Mail -PortionName = piece of Bloom Mail -PortionNamePlural = pieces of Bloom Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. -#------------------------------- -[TUNNELMAIL] -Name = Tunnel Mail -NamePlural = Tunnel Mail -PortionName = piece of Tunnel Mail -PortionNamePlural = pieces of Tunnel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. -#------------------------------- -[STEELMAIL] -Name = Steel Mail -NamePlural = Steel Mail -PortionName = piece of Steel Mail -PortionNamePlural = pieces of Steel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. -#------------------------------- -[HEARTMAIL] -Name = Heart Mail -NamePlural = Heart Mail -PortionName = piece of Heart Mail -PortionNamePlural = pieces of Heart Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. -#------------------------------- -[SNOWMAIL] -Name = Snow Mail -NamePlural = Snow Mail -PortionName = piece of Snow Mail -PortionNamePlural = pieces of Snow Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. -#------------------------------- -[SPACEMAIL] -Name = Space Mail -NamePlural = Space Mail -PortionName = piece of Space Mail -PortionNamePlural = pieces of Space Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print depicting the huge expanse of space. Let a Pokémon hold it for delivery. -#------------------------------- -[AIRMAIL] -Name = Air Mail -NamePlural = Air Mail -PortionName = piece of Air Mail -PortionNamePlural = pieces of Air Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. -#------------------------------- -[MOSAICMAIL] -Name = Mosaic Mail -NamePlural = Mosaic Mail -PortionName = piece of Mosaic Mail -PortionNamePlural = pieces of Mosaic Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. -#------------------------------- -[BRICKMAIL] -Name = Brick Mail -NamePlural = Brick Mail -PortionName = piece of Brick Mail -PortionNamePlural = pieces of Brick Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. -#------------------------------- -[XATTACK] -Name = X Attack -NamePlural = X Attacks -Pocket = 7 -Price = 1000 -BattleUse = OnBattler -Flags = Fling_30 -Description = An item that sharply boosts the Attack stat of a Pokémon while it remains in battle. -#------------------------------- -[XATTACK2] -Name = X Attack 2 -NamePlural = X Attack 2s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It sharply raises the Attack stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XATTACK3] -Name = X Attack 3 -NamePlural = X Attack 3s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It drastically raises the Attack stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XATTACK6] -Name = X Attack 6 -NamePlural = X Attack 6s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It raises the Attack stat of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XDEFENSE] -Name = X Defense -NamePlural = X Defenses -Pocket = 7 -Price = 2000 -BattleUse = OnBattler -Flags = Fling_30 -Description = An item that sharply boosts the Defense of a Pokémon while it remains in battle. -#------------------------------- -[XDEFENSE2] -Name = X Defense 2 -NamePlural = X Defense 2s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It sharply raises the Defense stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XDEFENSE3] -Name = X Defense 3 -NamePlural = X Defense 3s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It drastically raises the Defense stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XDEFENSE6] -Name = X Defense 6 -NamePlural = X Defense 6s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It raises the Defense stat of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XSPATK] -Name = X Sp. Atk -NamePlural = X Sp. Atks -Pocket = 7 -Price = 1000 -BattleUse = OnBattler -Flags = Fling_30 -Description = An item that sharply boosts the Sp. Atk stat of a Pokémon while it remains in battle. -#------------------------------- -[XSPATK2] -Name = X Sp. Atk 2 -NamePlural = X Sp. Atk 2s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It sharply raises the Sp. Atk stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XSPATK3] -Name = X Sp. Atk 3 -NamePlural = X Sp. Atk 3s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It drastically raises the Sp. Atk stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XSPATK6] -Name = X Sp. Atk 6 -NamePlural = X Sp. Atk 6s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It raises the Sp. Atk stat of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XSPDEF] -Name = X Sp. Def -NamePlural = X Sp. Defs -Pocket = 7 -Price = 2000 -BattleUse = OnBattler -Flags = Fling_30 -Description = An item that sharply boosts the Sp. Def stat of a Pokémon while it remains in battle. -#------------------------------- -[XSPDEF2] -Name = X Sp. Def 2 -NamePlural = X Sp. Def 2s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It sharply raises the Sp. Def stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XSPDEF3] -Name = X Sp. Def 3 -NamePlural = X Sp. Def 3s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It drastically raises the Sp. Def stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XSPDEF6] -Name = X Sp. Def 6 -NamePlural = X Sp. Def 6s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It raises the Sp. Def stat of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XSPEED] -Name = X Speed -NamePlural = X Speeds -Pocket = 7 -Price = 1000 -BattleUse = OnBattler -Flags = Fling_30 -Description = An item that sharply boosts the Speed stat of a Pokémon while it remains in battle. -#------------------------------- -[XSPEED2] -Name = X Speed 2 -NamePlural = X Speed 2s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It sharply raises the Speed stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XSPEED3] -Name = X Speed 3 -NamePlural = X Speed 3s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It drastically raises the Speed stat of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XSPEED6] -Name = X Speed 6 -NamePlural = X Speed 6s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It raises the Speed stat of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XACCURACY] -Name = X Accuracy -NamePlural = X Accuracies -Pocket = 7 -Price = 1000 -BattleUse = OnBattler -Flags = Fling_30 -Description = An item that sharply boosts the accuracy of a Pokémon while it remains in battle. -#------------------------------- -[XACCURACY2] -Name = X Accuracy 2 -NamePlural = X Accuracy 2s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It sharply raises the accuracy of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XACCURACY3] -Name = X Accuracy 3 -NamePlural = X Accuracy 3s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It drastically raises the accuracy of a Pokémon in battle. It wears off if the Pokémon is withdrawn. -#------------------------------- -[XACCURACY6] -Name = X Accuracy 6 -NamePlural = X Accuracy 6s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It raises the accuracy of a Pokémon in battle immensely. It wears off if the Pokémon is withdrawn. -#------------------------------- -[DIREHIT] -Name = Dire Hit -NamePlural = Dire Hits -Pocket = 7 -Price = 1000 -BattleUse = OnBattler -Flags = Fling_30 -Description = An item that raises the critical-hit ratio greatly. It wears off if the Pokémon is withdrawn. -#------------------------------- -[DIREHIT2] -Name = Dire Hit 2 -NamePlural = Dire Hit 2s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It sharply raises the critical-hit ratio. It wears off if the Pokémon is withdrawn. -#------------------------------- -[DIREHIT3] -Name = Dire Hit 3 -NamePlural = Dire Hit 3s -Pocket = 7 -Price = 0 -BattleUse = OnBattler -Flags = Fling_30 -Description = It greatly raises the critical-hit ratio. It wears off if the Pokémon is withdrawn. -#------------------------------- -[GUARDSPEC] -Name = Guard Spec. -NamePlural = Guard Specs. -Pocket = 7 -Price = 1500 -BattleUse = Direct -Flags = Fling_30 -Description = An item that prevents stat reduction among the Trainer's party Pokémon for five turns after use. -#------------------------------- -[RESETURGE] -Name = Reset Urge -NamePlural = Reset Urges -Pocket = 7 -Price = 0 -Flags = Fling_30 -Description = When used, it restores any stat changes of an ally Pokémon. -#------------------------------- -[ABILITYURGE] -Name = Ability Urge -NamePlural = Ability Urges -Pocket = 7 -Price = 0 -Flags = Fling_30 -Description = When used, it activates the Ability of an ally Pokémon. -#------------------------------- -[ITEMURGE] -Name = Item Urge -NamePlural = Item Urges -Pocket = 7 -Price = 0 -Flags = Fling_30 -Description = When used, it causes an ally Pokémon to use its held item. -#------------------------------- -[ITEMDROP] -Name = Item Drop -NamePlural = Item Drops -Pocket = 7 -Price = 0 -Flags = Fling_30 -Description = When used, it causes an ally Pokémon to drop a held item. -#------------------------------- -[BLUEFLUTE] -Name = Blue Flute -NamePlural = Blue Flutes -Pocket = 7 -Price = 100 -FieldUse = OnPokemon -BattleUse = OnPokemon -Flags = Fling_30 -Consumable = false -Description = A blue flute made from blown glass. Its melody awakens a single Pokémon from sleep. -#------------------------------- -[YELLOWFLUTE] -Name = Yellow Flute -NamePlural = Yellow Flutes -Pocket = 7 -Price = 300 -BattleUse = OnBattler -Flags = Fling_30 -Consumable = false -Description = A yellow flute made from blown glass. Its melody snaps a single Pokémon out of confusion. -#------------------------------- -[REDFLUTE] -Name = Red Flute -NamePlural = Red Flutes -Pocket = 7 -Price = 200 -BattleUse = OnBattler -Flags = Fling_30 -Consumable = false -Description = A red flute made from blown glass. Its melody snaps a single Pokémon out of infatuation. -#------------------------------- -[POKEDOLL] -Name = Poké Doll -NamePlural = Poké Dolls -Pocket = 7 -Price = 100 -BattleUse = Direct -Flags = Fling_30 -Description = A doll that attracts Pokémon. Use it to flee from any battle with a wild Pokémon. -#------------------------------- -[FLUFFYTAIL] -Name = Fluffy Tail -NamePlural = Fluffy Tails -Pocket = 7 -Price = 100 -BattleUse = Direct -Flags = Fling_30 -Description = An item that attracts Pokémon. Use it to flee from any battle with a wild Pokémon. -#------------------------------- -[POKETOY] -Name = Poké Toy -NamePlural = Poké Toys -Pocket = 7 -Price = 100 -BattleUse = Direct -Flags = Fling_30 -Description = An item that attracts Pokémon. Use it to flee from any battle with a wild Pokémon. +Description = The user dives on the first turn, and floats up and attacks on the next. It can be used to dive underwater. #------------------------------- [BICYCLE] Name = Bicycle NamePlural = Bicycles -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5436,7 +5396,7 @@ Description = A folding Bicycle that enables much faster movement than the Runni [OLDROD] Name = Old Rod NamePlural = Old Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5445,7 +5405,7 @@ Description = An old and beat-up fishing rod. Use it by any body of water to fis [GOODROD] Name = Good Rod NamePlural = Good Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5454,7 +5414,7 @@ Description = A new, good-quality fishing rod. Use it by any body of water to fi [SUPERROD] Name = Super Rod NamePlural = Super Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5463,7 +5423,7 @@ Description = An awesome, high-tech fishing rod. Use it by any body of water to [ITEMFINDER] Name = Itemfinder NamePlural = Itemfinders -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5472,7 +5432,7 @@ Description = A device used for finding items. If there is a hidden item nearby [DOWSINGMACHINE] Name = Dowsing Machine NamePlural = Dowsing Machines -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5481,7 +5441,7 @@ Description = It checks for unseen items in the area and makes noise and lights [POKERADAR] Name = Poké Radar NamePlural = Poké Radars -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5490,7 +5450,7 @@ Description = A tool that can search out Pokémon that are hiding in grass. Its [TOWNMAP] Name = Town Map NamePlural = Town Maps -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5499,7 +5459,7 @@ Description = A very convenient map that can be viewed anytime. It even shows yo [POKEFLUTE] Name = Poké Flute NamePlural = Poké Flutes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon BattleUse = Direct @@ -5509,7 +5469,7 @@ Description = A flute that is said to instantly awaken any Pokémon. It has a lo [COINCASE] Name = Coin Case NamePlural = Coin Cases -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -5518,7 +5478,7 @@ Description = A case for holding coins obtained at the Game Corner. It holds up [SOOTSACK] Name = Soot Sack NamePlural = Soot Sacks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A sack used to gather and hold volcanic ash. @@ -5526,7 +5486,7 @@ Description = A sack used to gather and hold volcanic ash. [SILPHSCOPE] Name = Silph Scope NamePlural = Silph Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A scope that makes unseeable Pokémon visible. It is made by Silph Co. @@ -5534,7 +5494,7 @@ Description = A scope that makes unseeable Pokémon visible. It is made by Silph [DEVONSCOPE] Name = Devon Scope NamePlural = Devon Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A device by Devon that signals any unseeable Pokémon. @@ -5542,7 +5502,7 @@ Description = A device by Devon that signals any unseeable Pokémon. [SQUIRTBOTTLE] Name = Squirt Bottle NamePlural = Squirt Bottles -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Squirtle. It helps promote healthy growth of Berries planted in soft soil. @@ -5550,7 +5510,7 @@ Description = A watering can shaped like a Squirtle. It helps promote healthy gr [SPRAYDUCK] Name = Sprayduck NamePlural = Sprayducks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Psyduck. It helps promote healthy growth of Berries planted in soft soil. @@ -5558,7 +5518,7 @@ Description = A watering can shaped like a Psyduck. It helps promote healthy gro [WAILMERPAIL] Name = Wailmer Pail NamePlural = Wailmer Pails -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A nifty watering pail. Use it to promote strong growth in Berries planted in soft soil. @@ -5566,7 +5526,7 @@ Description = A nifty watering pail. Use it to promote strong growth in Berries [SPRINKLOTAD] Name = Sprinklotad NamePlural = Sprinklotads -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Lotad. It helps promote the healthy growth of any Berries planted in soft soil. @@ -5574,7 +5534,7 @@ Description = A watering can shaped like a Lotad. It helps promote the healthy g [GRACIDEA] Name = Gracidea NamePlural = Gracideas -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5583,7 +5543,7 @@ Description = A flower sometimes bundled in bouquets to convey gratitude on spec [REVEALGLASS] Name = Reveal Glass NamePlural = Reveal Glasses -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5592,7 +5552,7 @@ Description = A glass that reveals the truth. It is a mysterious glass that retu [PRISONBOTTLE] Name = Prison Bottle NamePlural = Prison Bottles -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5601,7 +5561,7 @@ Description = A bottle believed to have been used to seal away the power of a ce [ZYGARDECUBE] Name = Zygarde Cube NamePlural = Zygarde Cubes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5610,7 +5570,7 @@ Description = An item in which Zygarde Cores and Cells are gathered. You can als [DNASPLICERS] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5619,7 +5579,7 @@ Description = A splicer that fuses Kyurem and a certain Pokémon. They are said [DNASPLICERSUSED] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5628,7 +5588,7 @@ Description = A splicer that separates Kyurem and a certain Pokémon when they h [NSOLARIZER] Name = N-Solarizer NamePlural = N-Solarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5637,7 +5597,7 @@ Description = A machine to fuse Necrozma, which needs light, and Solgaleo. [NSOLARIZERUSED] Name = N-Solarizer NamePlural = N-Solarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5646,7 +5606,7 @@ Description = A machine to separate Necrozma, which needed light, from Solgaleo. [NLUNARIZER] Name = N-Lunarizer NamePlural = N-Lunarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5655,7 +5615,7 @@ Description = A machine to fuse Necrozma, which needs light, and Lunala. [NLUNARIZERUSED] Name = N-Lunarizer NamePlural = N-Lunarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -5664,7 +5624,7 @@ Description = A machine to separate Necrozma, which needed light, from Lunala. [OVALCHARM] Name = Oval Charm NamePlural = Oval Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = An oval charm said to increase the chance of Eggs being found at the Day Care. @@ -5672,7 +5632,7 @@ Description = An oval charm said to increase the chance of Eggs being found at t [SHINYCHARM] Name = Shiny Charm NamePlural = Shiny Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A shiny charm said to increase the chance of finding a Shiny Pokémon. @@ -5680,7 +5640,7 @@ Description = A shiny charm said to increase the chance of finding a Shiny Poké [MEGARING] Name = Mega Ring NamePlural = Mega Rings -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = This ring contains an untold power that somehow enables Pokémon carrying Mega Stones to Mega Evolve. @@ -5688,7 +5648,7 @@ Description = This ring contains an untold power that somehow enables Pokémon c [AURORATICKET] Name = Aurora Ticket NamePlural = Aurora Tickets -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A ticket required to board the ship to Berth Island. It glows beautifully. @@ -5696,7 +5656,7 @@ Description = A ticket required to board the ship to Berth Island. It glows beau [OLDSEAMAP] Name = Old Sea Map NamePlural = Old Sea Maps -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A faded sea chart that shows the way to a certain island. diff --git a/PBS/Gen 8 backup/items.txt b/PBS/Gen 8 backup/items.txt index d82b7bd39..f396a51e6 100644 --- a/PBS/Gen 8 backup/items.txt +++ b/PBS/Gen 8 backup/items.txt @@ -3,7 +3,7 @@ [REPEL] Name = Repel NamePlural = Repels -Pocket = 1 +Pocket = Items Price = 400 FieldUse = Direct Flags = Repel,Fling_30 @@ -12,7 +12,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 100 st [SUPERREPEL] Name = Super Repel NamePlural = Super Repels -Pocket = 1 +Pocket = Items Price = 700 FieldUse = Direct Flags = Repel,Fling_30 @@ -21,7 +21,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 200 st [MAXREPEL] Name = Max Repel NamePlural = Max Repels -Pocket = 1 +Pocket = Items Price = 900 FieldUse = Direct Flags = Repel,Fling_30 @@ -30,7 +30,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 250 st [BLACKFLUTE] Name = Black Flute NamePlural = Black Flutes -Pocket = 1 +Pocket = Items Price = 20 FieldUse = Direct Flags = Fling_30 @@ -40,7 +40,7 @@ Description = A black flute made from blown glass. Its melody makes wild Pokémo [WHITEFLUTE] Name = White Flute NamePlural = White Flutes -Pocket = 1 +Pocket = Items Price = 20 FieldUse = Direct Flags = Fling_30 @@ -52,7 +52,7 @@ Name = Honey NamePlural = Honey PortionName = jar of Honey PortionNamePlural = jars of Honey -Pocket = 1 +Pocket = Items Price = 900 FieldUse = Direct Flags = Fling_30 @@ -61,7 +61,7 @@ Description = A sweet honey with a lush aroma that attracts wild Pokémon when u [REDSHARD] Name = Red Shard NamePlural = Red Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small red shard. It appears to be from some sort of implement made long ago. @@ -69,7 +69,7 @@ Description = A small red shard. It appears to be from some sort of implement ma [YELLOWSHARD] Name = Yellow Shard NamePlural = Yellow Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small yellow shard. It appears to be from some sort of implement made long ago. @@ -77,7 +77,7 @@ Description = A small yellow shard. It appears to be from some sort of implement [BLUESHARD] Name = Blue Shard NamePlural = Blue Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small blue shard. It appears to be from some sort of implement made long ago. @@ -85,7 +85,7 @@ Description = A small blue shard. It appears to be from some sort of implement m [GREENSHARD] Name = Green Shard NamePlural = Green Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small green shard. It appears to be from some sort of implement made long ago. @@ -93,7 +93,7 @@ Description = A small green shard. It appears to be from some sort of implement [FIRESTONE] Name = Fire Stone NamePlural = Fire Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -103,7 +103,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [THUNDERSTONE] Name = Thunder Stone NamePlural = Thunder Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -113,7 +113,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [WATERSTONE] Name = Water Stone NamePlural = Water Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -123,7 +123,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [LEAFSTONE] Name = Leaf Stone NamePlural = Leaf Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -133,7 +133,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [MOONSTONE] Name = Moon Stone NamePlural = Moon Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -143,7 +143,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SUNSTONE] Name = Sun Stone NamePlural = Sun Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -153,7 +153,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DUSKSTONE] Name = Dusk Stone NamePlural = Dusk Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -163,7 +163,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DAWNSTONE] Name = Dawn Stone NamePlural = Dawn Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -173,7 +173,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SHINYSTONE] Name = Shiny Stone NamePlural = Shiny Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -183,7 +183,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [ICESTONE] Name = Ice Stone NamePlural = Ice Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -193,7 +193,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SWEETAPPLE] Name = Sweet Apple NamePlural = Sweet Apples -Pocket = 1 +Pocket = Items Price = 2200 BPPrice = 5 FieldUse = OnPokemon @@ -203,7 +203,7 @@ Description = A peculiar apple that can make a certain species of Pokémon evolv [TARTAPPLE] Name = Tart Apple NamePlural = Tart Apples -Pocket = 1 +Pocket = Items Price = 2200 BPPrice = 5 FieldUse = OnPokemon @@ -213,7 +213,7 @@ Description = A peculiar apple that can make a certain species of Pokémon evolv [CRACKEDPOT] Name = Cracked Pot NamePlural = Cracked Pots -Pocket = 1 +Pocket = Items Price = 3000 SellPrice = 800 BPPrice = 5 @@ -224,7 +224,7 @@ Description = A peculiar cracked teapot that can make a certain species of Poké [CHIPPEDPOT] Name = Chipped Pot NamePlural = Chipped Pots -Pocket = 1 +Pocket = Items Price = 3000 SellPrice = 19000 BPPrice = 5 @@ -235,7 +235,7 @@ Description = A peculiar chipped teapot that can make a certain species of Poké [GALARICACUFF] Name = Galarica Cuff NamePlural = Galarica Cuffs -Pocket = 1 +Pocket = Items Price = 6000 BPPrice = 5 FieldUse = OnPokemon @@ -245,7 +245,7 @@ Description = A cuff made from woven-together Galarica Twigs. Giving it to a Gal [GALARICAWREATH] Name = Galarica Wreath NamePlural = Galarica Wreaths -Pocket = 1 +Pocket = Items Price = 6000 BPPrice = 5 FieldUse = OnPokemon @@ -257,7 +257,7 @@ Name = Black Augurite NamePlural = Black Augurites PortionName = piece of Black Augurite PortionNamePlural = pieces of Black Augurite -Pocket = 1 +Pocket = Items Price = 8000 SellPrice = 500 BPPrice = 5 @@ -268,7 +268,7 @@ Description = A glassy black stone that produces a sharp cutting edge when split [PEATBLOCK] Name = Peat Block NamePlural = Peat Blocks -Pocket = 1 +Pocket = Items Price = 10000 SellPrice = 500 BPPrice = 5 @@ -279,7 +279,7 @@ Description = A block of muddy material that can be used as fuel when it is drie [REDAPRICORN] Name = Red Apricorn NamePlural = Red Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A red Apricorn. It assails your nostrils. @@ -287,7 +287,7 @@ Description = A red Apricorn. It assails your nostrils. [YELLOWAPRICORN] Name = Yellow Apricorn NamePlural = Yellow Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A yellow Apricorn. It has an invigorating scent. @@ -295,7 +295,7 @@ Description = A yellow Apricorn. It has an invigorating scent. [BLUEAPRICORN] Name = Blue Apricorn NamePlural = Blue Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A blue Apricorn. It smells a bit like grass. @@ -303,7 +303,7 @@ Description = A blue Apricorn. It smells a bit like grass. [GREENAPRICORN] Name = Green Apricorn NamePlural = Green Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A green Apricorn. It has a mysterious, aromatic scent. @@ -311,7 +311,7 @@ Description = A green Apricorn. It has a mysterious, aromatic scent. [PINKAPRICORN] Name = Pink Apricorn NamePlural = Pink Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A pink Apricorn. It has a nice, sweet scent. @@ -319,7 +319,7 @@ Description = A pink Apricorn. It has a nice, sweet scent. [WHITEAPRICORN] Name = White Apricorn NamePlural = White Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A white Apricorn. It doesn't smell like anything. @@ -327,7 +327,7 @@ Description = A white Apricorn. It doesn't smell like anything. [BLACKAPRICORN] Name = Black Apricorn NamePlural = Black Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A black Apricorn. It has an indescribable scent. @@ -335,7 +335,7 @@ Description = A black Apricorn. It has an indescribable scent. [HELIXFOSSIL] Name = Helix Fossil NamePlural = Helix Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a seashell. @@ -343,7 +343,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [DOMEFOSSIL] Name = Dome Fossil NamePlural = Dome Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a shell. @@ -351,7 +351,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [OLDAMBER] Name = Old Amber NamePlural = Old Ambers -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A piece of amber that contains the genes of an ancient Pokémon. It is clear with a reddish tint. @@ -359,7 +359,7 @@ Description = A piece of amber that contains the genes of an ancient Pokémon. I [ROOTFOSSIL] Name = Root Fossil NamePlural = Root Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a plant root. @@ -367,7 +367,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [CLAWFOSSIL] Name = Claw Fossil NamePlural = Claw Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a claw. @@ -375,7 +375,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [SKULLFOSSIL] Name = Skull Fossil NamePlural = Skull Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a head. @@ -383,7 +383,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [ARMORFOSSIL] Name = Armor Fossil NamePlural = Armor Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a collar. @@ -391,7 +391,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [COVERFOSSIL] Name = Cover Fossil NamePlural = Cover Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea in ancient times. It appears to be part of its back. @@ -399,7 +399,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea in ancient t [PLUMEFOSSIL] Name = Plume Fossil NamePlural = Plume Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that flew in the sky in ancient times. It appears to be part of its wing. @@ -407,7 +407,7 @@ Description = A fossil of an ancient Pokémon that flew in the sky in ancient ti [JAWFOSSIL] Name = Jaw Fossil NamePlural = Jaw Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that once lived on the land. It appears to be part of a large jaw. @@ -415,7 +415,7 @@ Description = A fossil from a prehistoric Pokémon that once lived on the land. [SAILFOSSIL] Name = Sail Fossil NamePlural = Sail Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that once lived on the land. It looks like the impression from a skin sail. @@ -423,7 +423,7 @@ Description = A fossil from a prehistoric Pokémon that once lived on the land. [FOSSILIZEDBIRD] Name = Fossilized Bird NamePlural = Fossilized Birds -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once soared through the sky. What it looked like is a mystery. @@ -431,7 +431,7 @@ Description = The fossil of an ancient Pokémon that once soared through the sky [FOSSILIZEDFISH] Name = Fossilized Fish NamePlural = Fossilized Fish -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once lived in the sea. What it looked like is a mystery. @@ -439,7 +439,7 @@ Description = The fossil of an ancient Pokémon that once lived in the sea. What [FOSSILIZEDDRAKE] Name = Fossilized Drake NamePlural = Fossilized Drakes -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once roamed the land. What it looked like is a mystery. @@ -447,7 +447,7 @@ Description = The fossil of an ancient Pokémon that once roamed the land. What [FOSSILIZEDDINO] Name = Fossilized Dino NamePlural = Fossilized Dinos -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once lived in the sea. What it looked like is a mystery. @@ -455,7 +455,7 @@ Description = The fossil of an ancient Pokémon that once lived in the sea. What [PRETTYFEATHER] Name = Pretty Feather NamePlural = Pretty Feathers -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_20 Description = Though this feather is beautiful, it's just a regular feather and has no effect on Pokémon. @@ -463,7 +463,7 @@ Description = Though this feather is beautiful, it's just a regular feather and [TINYMUSHROOM] Name = Tiny Mushroom NamePlural = Tiny Mushrooms -Pocket = 1 +Pocket = Items Price = 500 Flags = Fling_30 Description = A small and rare mushroom. It is sought after by collectors. @@ -471,7 +471,7 @@ Description = A small and rare mushroom. It is sought after by collectors. [BIGMUSHROOM] Name = Big Mushroom NamePlural = Big Mushrooms -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_30 Description = A large and rare mushroom. It is sought after by collectors. @@ -479,7 +479,7 @@ Description = A large and rare mushroom. It is sought after by collectors. [BALMMUSHROOM] Name = Balm Mushroom NamePlural = Balm Mushrooms -Pocket = 1 +Pocket = Items Price = 15000 Flags = Fling_30 Description = A rare mushroom which gives off a nice fragrance. A maniac will buy it for a high price. @@ -487,7 +487,7 @@ Description = A rare mushroom which gives off a nice fragrance. A maniac will bu [PEARL] Name = Pearl NamePlural = Pearls -Pocket = 1 +Pocket = Items Price = 2000 Flags = Fling_30 Description = A somewhat-small pearl that sparkles in a pretty silver color. It can be sold cheaply to shops. @@ -495,7 +495,7 @@ Description = A somewhat-small pearl that sparkles in a pretty silver color. It [BIGPEARL] Name = Big Pearl NamePlural = Big Pearls -Pocket = 1 +Pocket = Items Price = 8000 Flags = Fling_30 Description = A quite-large pearl that sparkles in a pretty silver color. It can be sold at a high price to shops. @@ -503,7 +503,7 @@ Description = A quite-large pearl that sparkles in a pretty silver color. It can [PEARLSTRING] Name = Pearl String NamePlural = Pearl Strings -Pocket = 1 +Pocket = Items Price = 20000 Flags = Fling_30 Description = Very large pearls that sparkle in a pretty silver color. A maniac will buy them for a high price. @@ -513,7 +513,7 @@ Name = Stardust NamePlural = Stardusts PortionName = bag of Stardust PortionNamePlural = bags of Stardust -Pocket = 1 +Pocket = Items Price = 3000 Flags = Fling_30 Description = Lovely, red-colored sand with a loose, silky feel. It can be sold at a high price to shops. @@ -521,7 +521,7 @@ Description = Lovely, red-colored sand with a loose, silky feel. It can be sold [STARPIECE] Name = Star Piece NamePlural = Star Pieces -Pocket = 1 +Pocket = Items Price = 12000 Flags = Fling_30 Description = A shard of a pretty gem that sparkles in a red color. It can be sold at a high price to shops. @@ -529,7 +529,7 @@ Description = A shard of a pretty gem that sparkles in a red color. It can be so [COMETSHARD] Name = Comet Shard NamePlural = Comet Shards -Pocket = 1 +Pocket = Items Price = 25000 Flags = Fling_30 Description = A shard which fell to the ground when a comet approached. A maniac will buy it for a high price. @@ -537,7 +537,7 @@ Description = A shard which fell to the ground when a comet approached. A maniac [NUGGET] Name = Nugget NamePlural = Nuggets -Pocket = 1 +Pocket = Items Price = 10000 Flags = Fling_30 Description = A nugget of pure gold that gives off a lustrous gleam. It can be sold at a high price to shops. @@ -545,7 +545,7 @@ Description = A nugget of pure gold that gives off a lustrous gleam. It can be s [BIGNUGGET] Name = Big Nugget NamePlural = Big Nuggets -Pocket = 1 +Pocket = Items Price = 40000 Flags = Fling_130 Description = A big nugget of pure gold that gives off a lustrous gleam. A maniac will buy it for a high price. @@ -553,7 +553,7 @@ Description = A big nugget of pure gold that gives off a lustrous gleam. A mania [HEARTSCALE] Name = Heart Scale NamePlural = Heart Scales -Pocket = 1 +Pocket = Items Price = 100 Flags = Fling_30 Description = A pretty, heart-shaped scale that is extremely rare. It glows faintly in the colors of the rainbow. @@ -561,14 +561,14 @@ Description = A pretty, heart-shaped scale that is extremely rare. It glows fain [SLOWPOKETAIL] Name = Slowpoke Tail NamePlural = Slowpoke Tails -Pocket = 1 +Pocket = Items Price = 10000 Description = A very tasty tail of something. It can be sold at a high price to shops. #------------------------------- [RAREBONE] Name = Rare Bone NamePlural = Rare Bones -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = A bone that is extremely valuable for Pokémon archaeology. It can be sold for a high price to shops. @@ -578,7 +578,7 @@ Name = Relic Copper NamePlural = Relic Coppers PortionName = Relic Copper coin PortionNamePlural = Relic Copper coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A copper coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -588,7 +588,7 @@ Name = Relic Silver NamePlural = Relic Silvers PortionName = Relic Silver coin PortionNamePlural = Relic Silver coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A silver coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -598,7 +598,7 @@ Name = Relic Gold NamePlural = Relic Golds PortionName = Relic Gold coin PortionNamePlural = Relic Gold coins -Pocket = 1 +Pocket = Items Price = 60000 Flags = Fling_30 Description = A gold coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -606,7 +606,7 @@ Description = A gold coin used in a civilization about 3,000 years ago. A maniac [RELICVASE] Name = Relic Vase NamePlural = Relic Vases -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A vase made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -614,7 +614,7 @@ Description = A vase made in a civilization about 3,000 years ago. A maniac will [RELICBAND] Name = Relic Band NamePlural = Relic Bands -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A bracelet made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -622,7 +622,7 @@ Description = A bracelet made in a civilization about 3,000 years ago. A maniac [RELICSTATUE] Name = Relic Statue NamePlural = Relic Statues -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A stone figure made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -630,7 +630,7 @@ Description = A stone figure made in a civilization about 3,000 years ago. A man [RELICCROWN] Name = Relic Crown NamePlural = Relic Crowns -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A crown made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -640,7 +640,7 @@ Name = Growth Mulch NamePlural = Growth Mulch PortionName = bag of Growth Mulch PortionNamePlural = bags of Growth Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -650,7 +650,7 @@ Name = Damp Mulch NamePlural = Damp Mulch PortionName = bag of Damp Mulch PortionNamePlural = bags of Damp Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -660,7 +660,7 @@ Name = Stable Mulch NamePlural = Stable Mulch PortionName = bag of Stable Mulch PortionNamePlural = bags of Stable Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -670,7 +670,7 @@ Name = Gooey Mulch NamePlural = Gooey Mulch PortionName = bag of Gooey Mulch PortionNamePlural = bags of Gooey Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -680,7 +680,7 @@ Name = Shoal Salt NamePlural = Shoal Salts PortionName = pile of Shoal Salt PortionNamePlural = piles of Shoal Salt -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = Pure salt that can be discovered deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -688,7 +688,7 @@ Description = Pure salt that can be discovered deep inside the Shoal Cave. A man [SHOALSHELL] Name = Shoal Shell NamePlural = Shoal Shells -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = A pretty seashell that can be found deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -696,7 +696,7 @@ Description = A pretty seashell that can be found deep inside the Shoal Cave. A [ODDKEYSTONE] Name = Odd Keystone NamePlural = Odd Keystones -Pocket = 1 +Pocket = Items Price = 2100 Flags = Fling_80 Description = A vital item that is needed to keep a stone tower from collapsing. Voices can be heard from it occasionally. @@ -706,2294 +706,169 @@ Name = Red Nectar NamePlural = Red Nectars PortionName = jar of Red Nectar PortionNamePlural = jars of Red Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Ula'ula Meadow. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a red flower. It changes the form of a certain species of Pokémon. #------------------------------- [YELLOWNECTAR] Name = Yellow Nectar NamePlural = Yellow Nectars PortionName = jar of Yellow Nectar PortionNamePlural = jars of Yellow Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Melemele Meadow. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a yellow flower. It changes the form of a certain species of Pokémon. #------------------------------- [PINKNECTAR] Name = Pink Nectar NamePlural = Pink Nectars PortionName = jar of Pink Nectar PortionNamePlural = jars of Pink Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained from shrubs on Royal Avenue. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a pink flower. It changes the form of a certain species of Pokémon. #------------------------------- [PURPLENECTAR] Name = Purple Nectar NamePlural = Purple Nectars PortionName = jar of Purple Nectar PortionNamePlural = jars of Purple Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Poni Meadow. It changes the form of certain species of Pokémon. -#------------------------------- -[AIRBALLOON] -Name = Air Balloon -NamePlural = Air Balloons -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. -#------------------------------- -[BRIGHTPOWDER] -Name = Bright Powder -NamePlural = Bright Powders -PortionName = bag of Bright Powder -PortionNamePlural = bags of Bright Powder -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. -#------------------------------- -[EVIOLITE] -Name = Eviolite -NamePlural = Eviolites -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_40 -Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. -#------------------------------- -[FLOATSTONE] -Name = Float Stone -NamePlural = Float Stones -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 10 -Flags = Fling_30 -Description = A very light stone. It reduces the weight of a Pokémon when held. -#------------------------------- -[DESTINYKNOT] -Name = Destiny Knot -NamePlural = Destiny Knots -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 10 -Flags = Fling_10 -Description = A long, thin, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. -#------------------------------- -[ROCKYHELMET] -Name = Rocky Helmet -NamePlural = Rocky Helmets -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_60 -Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. -#------------------------------- -[ASSAULTVEST] -Name = Assault Vest -NamePlural = Assault Vests -Pocket = 1 -Price = 1000 -BPPrice = 25 -Flags = Fling_80 -Description = An item to be held by a Pokémon. This offensive vest raises Sp. Def but prevents the use of status moves. -#------------------------------- -[SAFETYGOGGLES] -Name = Safety Goggles -NamePlural = Safety Goggles -PortionName = pair of Safety Goggles -PortionNamePlural = pairs of Safety Goggles -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_80 -Description = An item to be held by a Pokémon. They protect the holder from weather-related damage and powder. -#------------------------------- -[PROTECTIVEPADS] -Name = Protective Pads -NamePlural = Protective Pads -PortionName = set of Protective Pads -PortionNamePlural = sets of Protective Pads -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_30 -Description = An item to be held by a Pokémon. They protect the holder from effects caused by making contact. -#------------------------------- -[HEAVYDUTYBOOTS] -Name = Heavy-Duty Boots -NamePlural = Heavy-Duty Boots -PortionName = pair of Heavy-Duty Boots -PortionNamePlural = pairs of Heavy-Duty Boots -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_80 -Description = These boots prevent the effects of traps set on the battlefield. -#------------------------------- -[UTILITYUMBRELLA] -Name = Utility Umbrella -NamePlural = Utility Umbrellas -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_60 -Description = An item to be held by a Pokémon. This sturdy umbrella protects the holder from the effects of rain and sun. -#------------------------------- -[EJECTBUTTON] -Name = Eject Button -NamePlural = Eject Buttons -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 20 -Flags = Fling_30 -Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. -#------------------------------- -[EJECTPACK] -Name = Eject Pack -NamePlural = Eject Packs -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 20 -Flags = Fling_50 -Description = An item to be held by a Pokémon. When the holder's stats are lowered, it will be switched out of battle. -#------------------------------- -[REDCARD] -Name = Red Card -NamePlural = Red Cards -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 20 -Flags = Fling_10 -Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. -#------------------------------- -[SHEDSHELL] -Name = Shed Shell -NamePlural = Shed Shells -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. -#------------------------------- -[SMOKEBALL] -Name = Smoke Ball -NamePlural = Smoke Balls -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. -#------------------------------- -[LUCKYEGG] -Name = Lucky Egg -NamePlural = Lucky Eggs -Pocket = 1 -Price = 10000 -BPPrice = 77 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. -#------------------------------- -[EXPSHARE] -Name = Exp. Share -NamePlural = Exp. Shares -Pocket = 1 -Price = 3000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. -#------------------------------- -[AMULETCOIN] -Name = Amulet Coin -NamePlural = Amulet Coins -Pocket = 1 -Price = 10000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[SOOTHEBELL] -Name = Soothe Bell -NamePlural = Soothe Bells -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. -#------------------------------- -[CLEANSETAG] -Name = Cleanse Tag -NamePlural = Cleanse Tags -Pocket = 1 -Price = 5000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[CHOICEBAND] -Name = Choice Band -NamePlural = Choice Bands -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. -#------------------------------- -[CHOICESPECS] -Name = Choice Specs -NamePlural = Choice Specs -PortionName = pair of Choice Specs -PortionNamePlural = pairs of Choice Specs -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. -#------------------------------- -[CHOICESCARF] -Name = Choice Scarf -NamePlural = Choice Scarves -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. -#------------------------------- -[HEATROCK] -Name = Heat Rock -NamePlural = Heat Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. -#------------------------------- -[DAMPROCK] -Name = Damp Rock -NamePlural = Damp Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. -#------------------------------- -[SMOOTHROCK] -Name = Smooth Rock -NamePlural = Smooth Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. -#------------------------------- -[ICYROCK] -Name = Icy Rock -NamePlural = Icy Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_40 -Description = A Pokémon held item that extends the duration of the move Hail used by the holder. -#------------------------------- -[TERRAINEXTENDER] -Name = Terrain Extender -NamePlural = Terrain Extenders -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_60 -Description = An item to be held by a Pokémon. It extends the duration of the terrain caused by the holder. -#------------------------------- -[LIGHTCLAY] -Name = Light Clay -NamePlural = Light Clays -PortionName = lump of Light Clay -PortionNamePlural = lumps of Light Clay -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_30 -Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. -#------------------------------- -[GRIPCLAW] -Name = Grip Claw -NamePlural = Grip Claws -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_90 -Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. -#------------------------------- -[BINDINGBAND] -Name = Binding Band -NamePlural = Binding Bands -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 15 -Flags = Fling_30 -Description = A band that increases the power of binding moves when held. -#------------------------------- -[BIGROOT] -Name = Big Root -NamePlural = Big Roots -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. -#------------------------------- -[BLACKSLUDGE] -Name = Black Sludge -NamePlural = Black Sludges -PortionName = blob of Black Sludge -PortionNamePlural = blobs of Black Sludge -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_30 -Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. -#------------------------------- -[LEFTOVERS] -Name = Leftovers -NamePlural = Leftovers -PortionName = serving of Leftovers -PortionNamePlural = servings of Leftovers -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. -#------------------------------- -[SHELLBELL] -Name = Shell Bell -NamePlural = Shell Bells -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. -#------------------------------- -[MENTALHERB] -Name = Mental Herb -NamePlural = Mental Herbs -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. -#------------------------------- -[WHITEHERB] -Name = White Herb -NamePlural = White Herbs -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. -#------------------------------- -[POWERHERB] -Name = Power Herb -NamePlural = Power Herbs -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. -#------------------------------- -[ABSORBBULB] -Name = Absorb Bulb -NamePlural = Absorb Bulbs -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. -#------------------------------- -[CELLBATTERY] -Name = Cell Battery -NamePlural = Cell Batteries -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. -#------------------------------- -[LUMINOUSMOSS] -Name = Luminous Moss -NamePlural = Luminous Moss -PortionName = clump of Luminous Moss -PortionNamePlural = clumps of Luminous Moss -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Sp. Def if hit by a Water-type attack. It can only be used once. -#------------------------------- -[SNOWBALL] -Name = Snowball -NamePlural = Snowballs -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Attack if hit by an Ice-type attack. It can only be used once. -#------------------------------- -[WEAKNESSPOLICY] -Name = Weakness Policy -NamePlural = Weakness Policies -Pocket = 1 -Price = 1000 -BPPrice = 20 -Flags = Fling_80 -Description = An item to be held by a Pokémon. The holder's Attack and Sp. Atk sharply increase if hit by a move it's weak to. -#------------------------------- -[BLUNDERPOLICY] -Name = Blunder Policy -NamePlural = Blunder Policies -Pocket = 1 -Price = 4000 -BPPrice = 20 -Flags = Fling_80 -Description = Raises Speed sharply when a Pokémon misses with a move because of accuracy. -#------------------------------- -[THROATSPRAY] -Name = Throat Spray -NamePlural = Throat Sprays -PortionName = bottle of Throat Spray -PortionNamePlural = bottles of Throat Spray -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = Raises Sp. Atk when a Pokémon uses a sound-based move. -#------------------------------- -[ADRENALINEORB] -Name = Adrenaline Orb -NamePlural = Adrenaline Orbs -Pocket = 1 -Price = 300 -BPPrice = 10 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Speed when intimidated. It can be used only once. -#------------------------------- -[ROOMSERVICE] -Name = Room Service -NamePlural = Room Services -PortionName = voucher for Room Service -PortionNamePlural = vouchers for Room Service -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_100 -Description = An item to be held by a Pokémon. Lowers Speed when Trick Room takes effect. -#------------------------------- -[ELECTRICSEED] -Name = Electric Seed -NamePlural = Electric Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Defense on Electric Terrain. It can only be used once. -#------------------------------- -[GRASSYSEED] -Name = Grassy Seed -NamePlural = Grassy Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Defense on Grassy Terrain. It can only be used once. -#------------------------------- -[MISTYSEED] -Name = Misty Seed -NamePlural = Misty Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Sp. Def on Misty Terrain. It can only be used once. -#------------------------------- -[PSYCHICSEED] -Name = Psychic Seed -NamePlural = Psychic Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Sp. Def on Psychic Terrain. It can only be used once. -#------------------------------- -[LIFEORB] -Name = Life Orb -NamePlural = Life Orbs -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. -#------------------------------- -[EXPERTBELT] -Name = Expert Belt -NamePlural = Expert Belts -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. -#------------------------------- -[METRONOME] -Name = Metronome -NamePlural = Metronomes -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_30 -Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. -#------------------------------- -[MUSCLEBAND] -Name = Muscle Band -NamePlural = Muscle Bands -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. -#------------------------------- -[WISEGLASSES] -Name = Wise Glasses -NamePlural = Wise Glasses -PortionName = pair of Wise Glasses -PortionNamePlural = pairs of Wise Glasses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. -#------------------------------- -[RAZORCLAW] -Name = Razor Claw -NamePlural = Razor Claws -Pocket = 1 -Price = 3000 -SellPrice = 2500 -BPPrice = 5 -Flags = Fling_80 -Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. -#------------------------------- -[SCOPELENS] -Name = Scope Lens -NamePlural = Scope Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. -#------------------------------- -[WIDELENS] -Name = Wide Lens -NamePlural = Wide Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. -#------------------------------- -[ZOOMLENS] -Name = Zoom Lens -NamePlural = Zoom Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. -#------------------------------- -[KINGSROCK] -Name = King's Rock -NamePlural = King's Rocks -Pocket = 1 -Price = 5000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. -#------------------------------- -[RAZORFANG] -Name = Razor Fang -NamePlural = Razor Fangs -Pocket = 1 -Price = 5000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. -#------------------------------- -[LAGGINGTAIL] -Name = Lagging Tail -NamePlural = Lagging Tails -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. -#------------------------------- -[QUICKCLAW] -Name = Quick Claw -NamePlural = Quick Claws -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_80 -Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. -#------------------------------- -[FOCUSBAND] -Name = Focus Band -NamePlural = Focus Bands -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. -#------------------------------- -[FOCUSSASH] -Name = Focus Sash -NamePlural = Focus Sashes -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. -#------------------------------- -[FLAMEORB] -Name = Flame Orb -NamePlural = Flame Orbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. -#------------------------------- -[TOXICORB] -Name = Toxic Orb -NamePlural = Toxic Orbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. -#------------------------------- -[STICKYBARB] -Name = Sticky Barb -NamePlural = Sticky Barbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_80 -Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. -#------------------------------- -[IRONBALL] -Name = Iron Ball -NamePlural = Iron Balls -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_130 -Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. -#------------------------------- -[RINGTARGET] -Name = Ring Target -NamePlural = Ring Targets -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 10 -Flags = Fling_10 -Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. -#------------------------------- -[MACHOBRACE] -Name = Macho Brace -NamePlural = Macho Braces -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_60 -Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. -#------------------------------- -[POWERWEIGHT] -Name = Power Weight -NamePlural = Power Weights -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBRACER] -Name = Power Bracer -NamePlural = Power Bracers -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBELT] -Name = Power Belt -NamePlural = Power Belts -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERLENS] -Name = Power Lens -NamePlural = Power Lenses -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBAND] -Name = Power Band -NamePlural = Power Bands -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERANKLET] -Name = Power Anklet -NamePlural = Power Anklets -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. -#------------------------------- -[LAXINCENSE] -Name = Lax Incense -NamePlural = Lax Incenses -PortionName = jar of Lax Incense -PortionNamePlural = jars of Lax Incense -Pocket = 1 -Price = 5000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. -#------------------------------- -[FULLINCENSE] -Name = Full Incense -NamePlural = Full Incenses -PortionName = jar of Full Incense -PortionNamePlural = jars of Full Incense -Pocket = 1 -Price = 5000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. -#------------------------------- -[LUCKINCENSE] -Name = Luck Incense -NamePlural = Luck Incenses -PortionName = jar of Luck Incense -PortionNamePlural = jars of Luck Incense -Pocket = 1 -Price = 11000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[PUREINCENSE] -Name = Pure Incense -NamePlural = Pure Incenses -PortionName = jar of Pure Incense -PortionNamePlural = jars of Pure Incense -Pocket = 1 -Price = 6000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[SEAINCENSE] -Name = Sea Incense -NamePlural = Sea Incenses -PortionName = jar of Sea Incense -PortionNamePlural = jars of Sea Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[WAVEINCENSE] -Name = Wave Incense -NamePlural = Wave Incenses -PortionName = jar of Wave Incense -PortionNamePlural = jars of Wave Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[ROSEINCENSE] -Name = Rose Incense -NamePlural = Rose Incenses -PortionName = jar of Rose Incense -PortionNamePlural = jars of Rose Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. -#------------------------------- -[ODDINCENSE] -Name = Odd Incense -NamePlural = Odd Incenses -PortionName = jar of Odd Incense -PortionNamePlural = jars of Odd Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. -#------------------------------- -[ROCKINCENSE] -Name = Rock Incense -NamePlural = Rock Incenses -PortionName = jar of Rock Incense -PortionNamePlural = jars of Rock Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. -#------------------------------- -[CHARCOAL] -Name = Charcoal -NamePlural = Charcoals -PortionName = piece of Charcoal -PortionNamePlural = pieces of Charcoal -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. -#------------------------------- -[MYSTICWATER] -Name = Mystic Water -NamePlural = Mystic Waters -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. -#------------------------------- -[MAGNET] -Name = Magnet -NamePlural = Magnets -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. -#------------------------------- -[MIRACLESEED] -Name = Miracle Seed -NamePlural = Miracle Seeds -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. -#------------------------------- -[NEVERMELTICE] -Name = Never-Melt Ice -NamePlural = Never-Melt Ices -PortionName = piece of Never-Melt Ice -PortionNamePlural = pieces of Never-Melt Ice -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. -#------------------------------- -[BLACKBELT] -Name = Black Belt -NamePlural = Black Belts -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. -#------------------------------- -[POISONBARB] -Name = Poison Barb -NamePlural = Poison Barbs -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. -#------------------------------- -[SOFTSAND] -Name = Soft Sand -NamePlural = Soft Sand -PortionName = bag of Soft Sand -PortionNamePlural = bags of Soft Sand -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. -#------------------------------- -[SHARPBEAK] -Name = Sharp Beak -NamePlural = Sharp Beaks -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_50 -Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. -#------------------------------- -[TWISTEDSPOON] -Name = Twisted Spoon -NamePlural = Twisted Spoons -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. -#------------------------------- -[SILVERPOWDER] -Name = Silver Powder -NamePlural = Silver Powders -PortionName = pile of Silver Powder -PortionNamePlural = piles of Silver Powder -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. -#------------------------------- -[HARDSTONE] -Name = Hard Stone -NamePlural = Hard Stones -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_100 -Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. -#------------------------------- -[SPELLTAG] -Name = Spell Tag -NamePlural = Spell Tags -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. -#------------------------------- -[DRAGONFANG] -Name = Dragon Fang -NamePlural = Dragon Fangs -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. -#------------------------------- -[BLACKGLASSES] -Name = Black Glasses -NamePlural = Black Glasses -PortionName = pair of Black Glasses -PortionNamePlural = pairs of Black Glasses -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. -#------------------------------- -[METALCOAT] -Name = Metal Coat -NamePlural = Metal Coats -Pocket = 1 -Price = 3000 -SellPrice = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. -#------------------------------- -[SILKSCARF] -Name = Silk Scarf -NamePlural = Silk Scarves -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. -#------------------------------- -[FLAMEPLATE] -Name = Flame Plate -NamePlural = Flame Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. -#------------------------------- -[SPLASHPLATE] -Name = Splash Plate -NamePlural = Splash Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. -#------------------------------- -[ZAPPLATE] -Name = Zap Plate -NamePlural = Zap Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. -#------------------------------- -[MEADOWPLATE] -Name = Meadow Plate -NamePlural = Meadow Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. -#------------------------------- -[ICICLEPLATE] -Name = Icicle Plate -NamePlural = Icicle Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. -#------------------------------- -[FISTPLATE] -Name = Fist Plate -NamePlural = Fist Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. -#------------------------------- -[TOXICPLATE] -Name = Toxic Plate -NamePlural = Toxic Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. -#------------------------------- -[EARTHPLATE] -Name = Earth Plate -NamePlural = Earth Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. -#------------------------------- -[SKYPLATE] -Name = Sky Plate -NamePlural = Sky Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. -#------------------------------- -[MINDPLATE] -Name = Mind Plate -NamePlural = Mind Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. -#------------------------------- -[INSECTPLATE] -Name = Insect Plate -NamePlural = Insect Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. -#------------------------------- -[STONEPLATE] -Name = Stone Plate -NamePlural = Stone Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. -#------------------------------- -[SPOOKYPLATE] -Name = Spooky Plate -NamePlural = Spooky Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. -#------------------------------- -[DRACOPLATE] -Name = Draco Plate -NamePlural = Draco Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. -#------------------------------- -[DREADPLATE] -Name = Dread Plate -NamePlural = Dread Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. -#------------------------------- -[IRONPLATE] -Name = Iron Plate -NamePlural = Iron Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. -#------------------------------- -[PIXIEPLATE] -Name = Pixie Plate -NamePlural = Pixie Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fairy-type moves. -#------------------------------- -[FIREGEM] -Name = Fire Gem -NamePlural = Fire Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. -#------------------------------- -[WATERGEM] -Name = Water Gem -NamePlural = Water Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. -#------------------------------- -[ELECTRICGEM] -Name = Electric Gem -NamePlural = Electric Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. -#------------------------------- -[GRASSGEM] -Name = Grass Gem -NamePlural = Grass Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. -#------------------------------- -[ICEGEM] -Name = Ice Gem -NamePlural = Ice Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. -#------------------------------- -[FIGHTINGGEM] -Name = Fighting Gem -NamePlural = Fighting Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. -#------------------------------- -[POISONGEM] -Name = Poison Gem -NamePlural = Poison Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. -#------------------------------- -[GROUNDGEM] -Name = Ground Gem -NamePlural = Ground Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. -#------------------------------- -[FLYINGGEM] -Name = Flying Gem -NamePlural = Flying Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. -#------------------------------- -[PSYCHICGEM] -Name = Psychic Gem -NamePlural = Psychic Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. -#------------------------------- -[BUGGEM] -Name = Bug Gem -NamePlural = Bug Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. -#------------------------------- -[ROCKGEM] -Name = Rock Gem -NamePlural = Rock Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. -#------------------------------- -[GHOSTGEM] -Name = Ghost Gem -NamePlural = Ghost Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. -#------------------------------- -[DRAGONGEM] -Name = Dragon Gem -NamePlural = Dragon Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. -#------------------------------- -[DARKGEM] -Name = Dark Gem -NamePlural = Dark Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. -#------------------------------- -[STEELGEM] -Name = Steel Gem -NamePlural = Steel Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. -#------------------------------- -[FAIRYGEM] -Name = Fairy Gem -NamePlural = Fairy Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of the fey. When held, it strengthens the power of a Fairy-type move only once. -#------------------------------- -[NORMALGEM] -Name = Normal Gem -NamePlural = Normal Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. -#------------------------------- -[LIGHTBALL] -Name = Light Ball -NamePlural = Light Balls -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. -#------------------------------- -[LUCKYPUNCH] -Name = Lucky Punch -NamePlural = Lucky Punches -Pocket = 1 -Price = 1000 -BPPrice = 7 -Flags = Fling_40 -Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. -#------------------------------- -[METALPOWDER] -Name = Metal Powder -NamePlural = Metal Powders -PortionName = bag of Metal Powder -PortionNamePlural = bags of Metal Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. -#------------------------------- -[QUICKPOWDER] -Name = Quick Powder -NamePlural = Quick Powders -PortionName = bag of Quick Powder -PortionNamePlural = bags of Quick Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. -#------------------------------- -[THICKCLUB] -Name = Thick Club -NamePlural = Thick Clubs -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. -#------------------------------- -[LEEK] -Name = Leek -NamePlural = Leeks -Pocket = 1 -Price = 1000 -Flags = Fling_60 -Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. -#------------------------------- -[SOULDEW] -Name = Soul Dew -NamePlural = Soul Dews -Pocket = 1 -Price = 0 -Flags = Fling_30 -Description = A wondrous orb to be held by either Latios or Latias. It raises the power of Psychic- and Dragon-type moves. -#------------------------------- -[DEEPSEATOOTH] -Name = Deep Sea Tooth -NamePlural = Deep Sea Teeth -Pocket = 1 -Price = 2000 -BPPrice = 5 -Flags = Fling_90 -Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. -#------------------------------- -[DEEPSEASCALE] -Name = Deep Sea Scale -NamePlural = Deep Sea Scales -Pocket = 1 -Price = 2000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. -#------------------------------- -[ADAMANTORB] -Name = Adamant Orb -NamePlural = Adamant Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -Flags = Fling_60 -Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. -#------------------------------- -[LUSTROUSORB] -Name = Lustrous Orb -NamePlural = Lustrous Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -Flags = Fling_60 -Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. -#------------------------------- -[GRISEOUSORB] -Name = Griseous Orb -NamePlural = Griseous Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -Flags = Fling_60 -Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. -#------------------------------- -[ADAMANTCRYSTAL] -Name = Adamant Crystal -NamePlural = Adamant Crystals -Pocket = 1 -Price = 4000 -SellPrice = 0 -Flags = Fling_60 -Description = An item to be held by Dialga. This large, glowing gem wells with power and allows the Pokémon to change form. -#------------------------------- -[LUSTROUSGLOBE] -Name = Lustrous Globe -NamePlural = Lustrous Globes -Pocket = 1 -Price = 4000 -SellPrice = 0 -Flags = Fling_60 -Description = An item to be held by Palkia. This large, glowing orb wells with power and allows the Pokémon to change form. -#------------------------------- -[GRISEOUSCORE] -Name = Griseous Core -NamePlural = Griseous Cores -Pocket = 1 -Price = 4000 -SellPrice = 0 -Flags = Fling_60 -Description = An item to be held by Giratina. This large, glowing gem wells with power and allows the Pokémon to change form. -#------------------------------- -[RUSTEDSWORD] -Name = Rusted Sword -NamePlural = Rusted Swords -Pocket = 1 -Price = 0 -Description = It is said that a hero used this sword to halt a disaster in ancient times. But it's grown rusty and worn. -#------------------------------- -[RUSTEDSHIELD] -Name = Rusted Shield -NamePlural = Rusted Shields -Pocket = 1 -Price = 0 -Description = It is said that a hero used this shield to halt a disaster in ancient times. But it's grown rusty and worn. -#------------------------------- -[DOUSEDRIVE] -Name = Douse Drive -NamePlural = Douse Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. -#------------------------------- -[SHOCKDRIVE] -Name = Shock Drive -NamePlural = Shock Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. -#------------------------------- -[BURNDRIVE] -Name = Burn Drive -NamePlural = Burn Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. -#------------------------------- -[CHILLDRIVE] -Name = Chill Drive -NamePlural = Chill Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. -#------------------------------- -[FIREMEMORY] -Name = Fire Memory -NamePlural = Fire Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fire-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[WATERMEMORY] -Name = Water Memory -NamePlural = Water Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Water-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ELECTRICMEMORY] -Name = Electric Memory -NamePlural = Electric Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Electric-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GRASSMEMORY] -Name = Grass Memory -NamePlural = Grass Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Grass-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ICEMEMORY] -Name = Ice Memory -NamePlural = Ice Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ice-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FIGHTINGMEMORY] -Name = Fighting Memory -NamePlural = Fighting Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fighting-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[POISONMEMORY] -Name = Poison Memory -NamePlural = Poison Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Poison-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GROUNDMEMORY] -Name = Ground Memory -NamePlural = Ground Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ground-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FLYINGMEMORY] -Name = Flying Memory -NamePlural = Flying Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Flying-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[PSYCHICMEMORY] -Name = Psychic Memory -NamePlural = Psychic Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Psychic-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[BUGMEMORY] -Name = Bug Memory -NamePlural = Bug Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Bug-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ROCKMEMORY] -Name = Rock Memory -NamePlural = Rock Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Rock-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GHOSTMEMORY] -Name = Ghost Memory -NamePlural = Ghost Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ghost-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[DRAGONMEMORY] -Name = Dragon Memory -NamePlural = Dragon Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Dragon-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[DARKMEMORY] -Name = Dark Memory -NamePlural = Dark Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Dark-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[STEELMEMORY] -Name = Steel Memory -NamePlural = Steel Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Steel-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FAIRYMEMORY] -Name = Fairy Memory -NamePlural = Fairy Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fairy-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[EVERSTONE] -Name = Everstone -NamePlural = Everstones -Pocket = 1 -Price = 3000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. -#------------------------------- -[DRAGONSCALE] -Name = Dragon Scale -NamePlural = Dragon Scales -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_30 -Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. -#------------------------------- -[UPGRADE] -Name = Upgrade -NamePlural = Upgrades -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_30 -Description = A transparent device filled with all sorts of data. It was produced by Silph Co. -#------------------------------- -[DUBIOUSDISC] -Name = Dubious Disc -NamePlural = Dubious Discs -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_50 -Description = A transparent device overflowing with dubious data. Its producer is unknown. -#------------------------------- -[PROTECTOR] -Name = Protector -NamePlural = Protectors -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. -#------------------------------- -[ELECTIRIZER] -Name = Electirizer -NamePlural = Electirizers -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. -#------------------------------- -[MAGMARIZER] -Name = Magmarizer -NamePlural = Magmarizers -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. -#------------------------------- -[REAPERCLOTH] -Name = Reaper Cloth -NamePlural = Reaper Cloths -PortionName = scrap of Reaper Cloth -PortionNamePlural = scraps of Reaper Cloth -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_10 -Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. -#------------------------------- -[PRISMSCALE] -Name = Prism Scale -NamePlural = Prism Scales -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 10 -Flags = Fling_30 -Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. -#------------------------------- -[OVALSTONE] -Name = Oval Stone -NamePlural = Oval Stones -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. -#------------------------------- -[WHIPPEDDREAM] -Name = Whipped Dream -NamePlural = Whipped Dreams -PortionName = dollop of Whipped Dream -PortionNamePlural = dollops of Whipped Dream -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A soft and sweet treat made of fluffy, puffy and whirled cream. It's loved by a certain Pokémon. -#------------------------------- -[SACHET] -Name = Sachet -NamePlural = Sachets -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A sachet filled with slightly overwhelming fragrant perfumes. Yet it's loved by a certain Pokémon. -#------------------------------- -[STRAWBERRYSWEET] -Name = Strawberry Sweet -NamePlural = Strawberry Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A strawberry-shaped sweet. When a Milcery holds this, it will spin around happily. -#------------------------------- -[LOVESWEET] -Name = Love Sweet -NamePlural = Love Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A heart-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[BERRYSWEET] -Name = Berry Sweet -NamePlural = Berry Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A berry-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[CLOVERSWEET] -Name = Clover Sweet -NamePlural = Clover Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A clover-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[FLOWERSWEET] -Name = Flower Sweet -NamePlural = Flower Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A flower-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[STARSWEET] -Name = Star Sweet -NamePlural = Star Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A star-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[RIBBONSWEET] -Name = Ribbon Sweet -NamePlural = Ribbon Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A ribbon-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[VENUSAURITE] -Name = Venusaurite -NamePlural = Venusaurites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Venusaur hold it, and it will be able to Mega Evolve. -#------------------------------- -[CHARIZARDITEX] -Name = Charizardite X -NamePlural = Charizardite Xs -Pocket = 1 -Price = 0 -BPPrice = 50 -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. -#------------------------------- -[CHARIZARDITEY] -Name = Charizardite Y -NamePlural = Charizardite Ys -Pocket = 1 -Price = 0 -BPPrice = 50 -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. -#------------------------------- -[BLASTOISINITE] -Name = Blastoisinite -NamePlural = Blastoisinites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Blastoise hold it, and it will be able to Mega Evolve. -#------------------------------- -[BEEDRILLITE] -Name = Beedrillite -NamePlural = Beedrillites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Beedrill hold it, and it will be able to Mega Evolve. -#------------------------------- -[PIDGEOTITE] -Name = Pidgeotite -NamePlural = Pidgeotites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Pidgeot hold it, and it will be able to Mega Evolve. -#------------------------------- -[ALAKAZITE] -Name = Alakazite -NamePlural = Alakazites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Alakazam hold it, and it will be able to Mega Evolve. -#------------------------------- -[SLOWBRONITE] -Name = Slowbronite -NamePlural = Slowbronites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Slowbro hold it, and it will be able to Mega Evolve. -#------------------------------- -[GENGARITE] -Name = Gengarite -NamePlural = Gengarites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gengar hold it, and it will be able to Mega Evolve. -#------------------------------- -[KANGASKHANITE] -Name = Kangaskhanite -NamePlural = Kangaskhanites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Kangaskhan hold it, and it will be able to Mega Evolve. -#------------------------------- -[PINSIRITE] -Name = Pinsirite -NamePlural = Pinsirites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Pinsir hold it, and it will be able to Mega Evolve. -#------------------------------- -[GYARADOSITE] -Name = Gyaradosite -NamePlural = Gyaradosites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gyarados hold it, and it will be able to Mega Evolve. -#------------------------------- -[AERODACTYLITE] -Name = Aerodactylite -NamePlural = Aerodactylites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Aerodactyl hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEWTWONITEX] -Name = Mewtwonite X -NamePlural = Mewtwonite Xs -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEWTWONITEY] -Name = Mewtwonite Y -NamePlural = Mewtwonite Ys -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. -#------------------------------- -[AMPHAROSITE] -Name = Ampharosite -NamePlural = Ampharosites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Ampharos hold it, and it will be able to Mega Evolve. -#------------------------------- -[STEELIXITE] -Name = Steelixite -NamePlural = Steelixites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Steelix hold it, and it will be able to Mega Evolve. -#------------------------------- -[SCIZORITE] -Name = Scizorite -NamePlural = Scizorites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Scizor hold it, and it will be able to Mega Evolve. -#------------------------------- -[HERACRONITE] -Name = Heracronite -NamePlural = Heracronites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Heracross hold it, and it will be able to Mega Evolve. -#------------------------------- -[HOUNDOOMINITE] -Name = Houndoominite -NamePlural = Houndoominites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Houndoom hold it, and it will be able to Mega Evolve. -#------------------------------- -[TYRANITARITE] -Name = Tyranitarite -NamePlural = Tyranitarites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Tyranitar hold it, and it will be able to Mega Evolve. -#------------------------------- -[SCEPTILITE] -Name = Sceptilite -NamePlural = Sceptilites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sceptile hold it, and it will be able to Mega Evolve. -#------------------------------- -[BLAZIKENITE] -Name = Blazikenite -NamePlural = Blazikenites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Blaziken hold it, and it will be able to Mega Evolve. -#------------------------------- -[SWAMPERTITE] -Name = Swampertite -NamePlural = Swampertites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Swampert hold it, and it will be able to Mega Evolve. -#------------------------------- -[GARDEVOIRITE] -Name = Gardevoirite -NamePlural = Gardevoirites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gardevoir hold it, and it will be able to Mega Evolve. -#------------------------------- -[SABLENITE] -Name = Sablenite -NamePlural = Sablenites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sableye hold it, and it will be able to Mega Evolve. -#------------------------------- -[MAWILITE] -Name = Mawilite -NamePlural = Mawilites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mawile hold it, and it will be able to Mega Evolve. -#------------------------------- -[AGGRONITE] -Name = Aggronite -NamePlural = Aggronites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Aggron hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEDICHAMITE] -Name = Medichamite -NamePlural = Medichamites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Medicham hold it, and it will be able to Mega Evolve. -#------------------------------- -[MANECTITE] -Name = Manectite -NamePlural = Manectites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Manectric hold it, and it will be able to Mega Evolve. -#------------------------------- -[SHARPEDONITE] -Name = Sharpedonite -NamePlural = Sharpedonites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sharpedo hold it, and it will be able to Mega Evolve. -#------------------------------- -[CAMERUPTITE] -Name = Cameruptite -NamePlural = Cameruptites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Camerupt hold it, and it will be able to Mega Evolve. -#------------------------------- -[ALTARIANITE] -Name = Altarianite -NamePlural = Altarianites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Altaria hold it, and it will be able to Mega Evolve. -#------------------------------- -[BANETTITE] -Name = Banettite -NamePlural = Banettites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Banette hold it, and it will be able to Mega Evolve. -#------------------------------- -[ABSOLITE] -Name = Absolite -NamePlural = Absolites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Absol hold it, and it will be able to Mega Evolve. -#------------------------------- -[GLALITITE] -Name = Glalitite -NamePlural = Glalitites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Glalie hold it, and it will be able to Mega Evolve. -#------------------------------- -[SALAMENCITE] -Name = Salamencite -NamePlural = Salamencites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Salamence hold it, and it will be able to Mega Evolve. -#------------------------------- -[METAGROSSITE] -Name = Metagrossite -NamePlural = Metagrossites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Metagross hold it, and it will be able to Mega Evolve. -#------------------------------- -[LATIASITE] -Name = Latiasite -NamePlural = Latiasites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Latias hold it, and it will be able to Mega Evolve. -#------------------------------- -[LATIOSITE] -Name = Latiosite -NamePlural = Latiosites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Latios hold it, and it will be able to Mega Evolve. -#------------------------------- -[LOPUNNITE] -Name = Lopunnite -NamePlural = Lopunnites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Lopunny hold it, and it will be able to Mega Evolve. -#------------------------------- -[GARCHOMPITE] -Name = Garchompite -NamePlural = Garchompites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Garchomp hold it, and it will be able to Mega Evolve. -#------------------------------- -[LUCARIONITE] -Name = Lucarionite -NamePlural = Lucarionites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Lucario hold it, and it will be able to Mega Evolve. -#------------------------------- -[ABOMASITE] -Name = Abomasite -NamePlural = Abomasites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Abomasnow hold it, and it will be able to Mega Evolve. -#------------------------------- -[GALLADITE] -Name = Galladite -NamePlural = Galladites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gallade hold it, and it will be able to Mega Evolve. -#------------------------------- -[AUDINITE] -Name = Audinite -NamePlural = Audinites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Audino hold it, and it will be able to Mega Evolve. -#------------------------------- -[DIANCITE] -Name = Diancite -NamePlural = Diancites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Diancie hold it, and it will be able to Mega Evolve. -#------------------------------- -[REDORB] -Name = Red Orb -NamePlural = Red Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -BPPrice = 50 -Description = A shiny red orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. -#------------------------------- -[BLUEORB] -Name = Blue Orb -NamePlural = Blue Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -BPPrice = 50 -Description = A shiny blue orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. +Description = Flower nectar obtained from a purple flower. It changes the form of a certain species of Pokémon. +#------------------------------- +[GRASSMAIL] +Name = Grass Mail +NamePlural = Grass Mail +PortionName = piece of Grass Mail +PortionNamePlural = pieces of Grass Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. +#------------------------------- +[FLAMEMAIL] +Name = Flame Mail +NamePlural = Flame Mail +PortionName = piece of Flame Mail +PortionNamePlural = pieces of Flame Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. +#------------------------------- +[BUBBLEMAIL] +Name = Bubble Mail +NamePlural = Bubble Mail +PortionName = piece of Bubble Mail +PortionNamePlural = pieces of Bubble Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. +#------------------------------- +[BLOOMMAIL] +Name = Bloom Mail +NamePlural = Bloom Mail +PortionName = piece of Bloom Mail +PortionNamePlural = pieces of Bloom Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[TUNNELMAIL] +Name = Tunnel Mail +NamePlural = Tunnel Mail +PortionName = piece of Tunnel Mail +PortionNamePlural = pieces of Tunnel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. +#------------------------------- +[STEELMAIL] +Name = Steel Mail +NamePlural = Steel Mail +PortionName = piece of Steel Mail +PortionNamePlural = pieces of Steel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. +#------------------------------- +[HEARTMAIL] +Name = Heart Mail +NamePlural = Heart Mail +PortionName = piece of Heart Mail +PortionNamePlural = pieces of Heart Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[SNOWMAIL] +Name = Snow Mail +NamePlural = Snow Mail +PortionName = piece of Snow Mail +PortionNamePlural = pieces of Snow Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. +#------------------------------- +[SPACEMAIL] +Name = Space Mail +NamePlural = Space Mail +PortionName = piece of Space Mail +PortionNamePlural = pieces of Space Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print showing the huge expanse of space. Let a Pokémon hold it for delivery. +#------------------------------- +[AIRMAIL] +Name = Air Mail +NamePlural = Air Mail +PortionName = piece of Air Mail +PortionNamePlural = pieces of Air Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. +#------------------------------- +[MOSAICMAIL] +Name = Mosaic Mail +NamePlural = Mosaic Mail +PortionName = piece of Mosaic Mail +PortionNamePlural = pieces of Mosaic Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. +#------------------------------- +[BRICKMAIL] +Name = Brick Mail +NamePlural = Brick Mail +PortionName = piece of Brick Mail +PortionNamePlural = pieces of Brick Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. #------------------------------- [POTION] Name = Potion NamePlural = Potions -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3003,7 +878,7 @@ Description = A spray-type medicine for treating wounds. It can be used to resto [SUPERPOTION] Name = Super Potion NamePlural = Super Potions -Pocket = 2 +Pocket = Medicine Price = 700 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3013,7 +888,7 @@ Description = A spray-type medicine for treating wounds. It can be used to resto [HYPERPOTION] Name = Hyper Potion NamePlural = Hyper Potions -Pocket = 2 +Pocket = Medicine Price = 1500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3023,7 +898,7 @@ Description = A spray-type medicine for treating wounds. It can be used to resto [MAXPOTION] Name = Max Potion NamePlural = Max Potions -Pocket = 2 +Pocket = Medicine Price = 2500 BPPrice = 2 FieldUse = OnPokemon @@ -3034,7 +909,7 @@ Description = A spray-type medicine for treating wounds. It can completely resto [FULLRESTORE] Name = Full Restore NamePlural = Full Restores -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3046,7 +921,7 @@ Name = Sacred Ash NamePlural = Sacred Ashes PortionName = bag of Sacred Ash PortionNamePlural = bags of Sacred Ash -Pocket = 2 +Pocket = Medicine Price = 50000 FieldUse = Direct Flags = Fling_30 @@ -3055,7 +930,7 @@ Description = It revives all fainted Pokémon. In doing so, it also fully restor [AWAKENING] Name = Awakening NamePlural = Awakenings -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3065,7 +940,7 @@ Description = A spray-type medicine. It awakens a Pokémon from the clutches of [ANTIDOTE] Name = Antidote NamePlural = Antidotes -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3075,7 +950,7 @@ Description = A spray-type medicine. It lifts the effect of poison from one Pok [BURNHEAL] Name = Burn Heal NamePlural = Burn Heals -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3085,7 +960,7 @@ Description = A spray-type medicine. It heals a single Pokémon that is sufferin [PARALYZEHEAL] Name = Paralyze Heal NamePlural = Paralyze Heals -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3095,7 +970,7 @@ Description = A spray-type medicine. It eliminates paralysis from a single Poké [ICEHEAL] Name = Ice Heal NamePlural = Ice Heals -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3105,7 +980,7 @@ Description = A spray-type medicine. It defrosts a Pokémon that has been frozen [FULLHEAL] Name = Full Heal NamePlural = Full Heals -Pocket = 2 +Pocket = Medicine Price = 400 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3117,7 +992,7 @@ Name = Pewter Crunchies NamePlural = Pewter Crunchies PortionName = bag of Pewter Crunchies PortionNamePlural = bags of Pewter Crunchies -Pocket = 2 +Pocket = Medicine Price = 250 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3127,7 +1002,7 @@ Description = Pewter City's famous crunchy snack. They can be used to heal all s [RAGECANDYBAR] Name = Rage Candy Bar NamePlural = Rage Candy Bars -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3137,7 +1012,7 @@ Description = Mahogany Town's famous candy. It can be used once to heal all the [LAVACOOKIE] Name = Lava Cookie NamePlural = Lava Cookies -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3147,7 +1022,7 @@ Description = Lavaridge Town's local specialty. It heals all the status problems [OLDGATEAU] Name = Old Gateau NamePlural = Old Gateaux -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3157,7 +1032,7 @@ Description = Old Chateau's hidden specialty. It heals all the status problems o [CASTELIACONE] Name = Casteliacone NamePlural = Casteliacones -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3167,37 +1042,37 @@ Description = Castelia City's specialty, soft-serve ice cream. It heals all the [LUMIOSEGALETTE] Name = Lumiose Galette NamePlural = Lumiose Galettes -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = A popular treat in Lumiose City. It can be used once to heal all the status conditions of a Pokémon. +Description = A popular treat in Lumiose City. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [SHALOURSABLE] Name = Shalour Sable NamePlural = Shalour Sables -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = Shalour City's famous shortbread. It can be used once to heal all the status conditions of a Pokémon. +Description = Shalour City's famous shortbread. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [BIGMALASADA] Name = Big Malasada NamePlural = Big Malasadas -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = The Alola region's specialty--fried bread. It can be used once to heal all the status conditions of a Pokémon. +Description = The Alola region's specialty--fried bread. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [REVIVE] Name = Revive NamePlural = Revives -Pocket = 2 +Pocket = Medicine Price = 2000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3207,7 +1082,7 @@ Description = A medicine that revives a fainted Pokémon. It restores half the P [MAXREVIVE] Name = Max Revive NamePlural = Max Revives -Pocket = 2 +Pocket = Medicine Price = 4000 BPPrice = 20 FieldUse = OnPokemon @@ -3220,7 +1095,7 @@ Name = Berry Juice NamePlural = Berry Juices PortionName = cup of Berry Juice PortionNamePlural = cups of Berry Juice -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3230,7 +1105,7 @@ Description = A 100% pure juice made of Berries. It restores the HP of one Poké [SWEETHEART] Name = Sweet Heart NamePlural = Sweet Hearts -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3242,7 +1117,7 @@ Name = Fresh Water NamePlural = Fresh Waters PortionName = bottle of Fresh Water PortionNamePlural = bottles of Fresh Water -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3254,7 +1129,7 @@ Name = Soda Pop NamePlural = Soda Pops PortionName = bottle of Soda Pop PortionNamePlural = bottles of Soda Pop -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3266,7 +1141,7 @@ Name = Lemonade NamePlural = Lemonades PortionName = can of Lemonade PortionNamePlural = cans of Lemonade -Pocket = 2 +Pocket = Medicine Price = 350 SellPrice = 200 FieldUse = OnPokemon @@ -3279,7 +1154,7 @@ Name = Moomoo Milk NamePlural = Moomoo Milks PortionName = bottle of Moomoo Milk PortionNamePlural = bottles of Moomoo Milk -Pocket = 2 +Pocket = Medicine Price = 600 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3291,7 +1166,7 @@ Name = Energy Powder NamePlural = Energy Powders PortionName = dose of Energy Powder PortionNamePlural = doses of Energy Powder -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3301,7 +1176,7 @@ Description = A very bitter medicinal powder. It can be used to restore 60 HP to [ENERGYROOT] Name = Energy Root NamePlural = Energy Roots -Pocket = 2 +Pocket = Medicine Price = 1200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3313,7 +1188,7 @@ Name = Heal Powder NamePlural = Heal Powders PortionName = dose of Heal Powder PortionNamePlural = doses of Heal Powder -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3323,7 +1198,7 @@ Description = A very bitter medicine powder. It heals all the status problems of [REVIVALHERB] Name = Revival Herb NamePlural = Revival Herbs -Pocket = 2 +Pocket = Medicine Price = 2800 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3335,7 +1210,7 @@ Name = Max Honey NamePlural = Max Honeys PortionName = comb of Max Honey PortionNamePlural = combs of Max Honey -Pocket = 2 +Pocket = Medicine Price = 8000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3345,7 +1220,7 @@ Description = Honey that Dynamax Vespiquen produces. It has the same effect as a [ETHER] Name = Ether NamePlural = Ethers -Pocket = 2 +Pocket = Medicine Price = 1200 BPPrice = 4 FieldUse = OnPokemon @@ -3356,7 +1231,7 @@ Description = It restores the PP of a Pokémon's selected move by a maximum of 1 [MAXETHER] Name = Max Ether NamePlural = Max Ethers -Pocket = 2 +Pocket = Medicine Price = 2000 FieldUse = OnPokemon BattleUse = OnMove @@ -3366,7 +1241,7 @@ Description = It fully restores the PP of a single selected move that has been l [ELIXIR] Name = Elixir NamePlural = Elixirs -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3376,7 +1251,7 @@ Description = It restores the PP of all the moves learned by the targeted Pokém [MAXELIXIR] Name = Max Elixir NamePlural = Max Elixirs -Pocket = 2 +Pocket = Medicine Price = 4500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3388,7 +1263,7 @@ Name = PP Up NamePlural = PP Ups PortionName = bottle of PP Up PortionNamePlural = bottles of PP Up -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 10 FieldUse = OnPokemon @@ -3400,7 +1275,7 @@ Name = PP Max NamePlural = PP Maxes PortionName = bottle of PP Max PortionNamePlural = bottles of PP Max -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3411,7 +1286,7 @@ Name = HP Up NamePlural = HP Ups PortionName = bottle of HP Up PortionNamePlural = bottles of HP Up -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3422,7 +1297,7 @@ Name = Protein NamePlural = Proteins PortionName = bottle of Protein PortionNamePlural = bottles of Protein -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3433,7 +1308,7 @@ Name = Iron NamePlural = Irons PortionName = bottle of Iron PortionNamePlural = bottles of Iron -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3444,7 +1319,7 @@ Name = Calcium NamePlural = Calciums PortionName = bottle of Calcium PortionNamePlural = bottles of Calcium -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3455,7 +1330,7 @@ Name = Zinc NamePlural = Zincs PortionName = bottle of Zinc PortionNamePlural = bottles of Zinc -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3466,7 +1341,7 @@ Name = Carbos NamePlural = Carbos PortionName = bottle of Carbos PortionNamePlural = bottles of Carbos -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3475,7 +1350,7 @@ Description = A nutritious drink for Pokémon. It raises the base Speed stat of [HEALTHFEATHER] Name = Health Feather NamePlural = Health Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3484,7 +1359,7 @@ Description = An item for use on a Pokémon. It slightly increases the base HP o [MUSCLEFEATHER] Name = Muscle Feather NamePlural = Muscle Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3493,7 +1368,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Atta [RESISTFEATHER] Name = Resist Feather NamePlural = Resist Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3502,7 +1377,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Defe [GENIUSFEATHER] Name = Genius Feather NamePlural = Genius Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3511,7 +1386,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [CLEVERFEATHER] Name = Clever Feather NamePlural = Clever Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3520,7 +1395,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [SWIFTFEATHER] Name = Swift Feather NamePlural = Swift Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3531,7 +1406,7 @@ Name = Lonely Mint NamePlural = Lonely Mints PortionName = sprig of Lonely Mint PortionNamePlural = sprigs of Lonely Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3543,7 +1418,7 @@ Name = Adamant Mint NamePlural = Adamant Mints PortionName = sprig of Adamant Mint PortionNamePlural = sprigs of Adamant Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3555,7 +1430,7 @@ Name = Naughty Mint NamePlural = Naughty Mints PortionName = sprig of Naughty Mint PortionNamePlural = sprigs of Naughty Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3567,7 +1442,7 @@ Name = Brave Mint NamePlural = Brave Mints PortionName = sprig of Brave Mint PortionNamePlural = sprigs of Brave Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3579,7 +1454,7 @@ Name = Bold Mint NamePlural = Bold Mints PortionName = sprig of Bold Mint PortionNamePlural = sprigs of Bold Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3591,7 +1466,7 @@ Name = Impish Mint NamePlural = Impish Mints PortionName = sprig of Impish Mint PortionNamePlural = sprigs of Impish Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3603,7 +1478,7 @@ Name = Lax Mint NamePlural = Lax Mints PortionName = sprig of Lax Mint PortionNamePlural = sprigs of Lax Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3615,7 +1490,7 @@ Name = Relaxed Mint NamePlural = Relaxed Mints PortionName = sprig of Relaxed Mint PortionNamePlural = sprigs of Relaxed Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3627,7 +1502,7 @@ Name = Modest Mint NamePlural = Modest Mints PortionName = sprig of Modest Mint PortionNamePlural = sprigs of Modest Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3639,7 +1514,7 @@ Name = Mild Mint NamePlural = Mild Mints PortionName = sprig of Mild Mint PortionNamePlural = sprigs of Mild Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3651,7 +1526,7 @@ Name = Rash Mint NamePlural = Rash Mints PortionName = sprig of Rash Mint PortionNamePlural = sprigs of Rash Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3663,7 +1538,7 @@ Name = Quiet Mint NamePlural = Quiet Mints PortionName = sprig of Quiet Mint PortionNamePlural = sprigs of Quiet Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3675,7 +1550,7 @@ Name = Calm Mint NamePlural = Calm Mints PortionName = sprig of Calm Mint PortionNamePlural = sprigs of Calm Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3687,7 +1562,7 @@ Name = Gentle Mint NamePlural = Gentle Mints PortionName = sprig of Gentle Mint PortionNamePlural = sprigs of Gentle Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3699,7 +1574,7 @@ Name = Careful Mint NamePlural = Careful Mints PortionName = sprig of Careful Mint PortionNamePlural = sprigs of Careful Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3711,7 +1586,7 @@ Name = Sassy Mint NamePlural = Sassy Mints PortionName = sprig of Sassy Mint PortionNamePlural = sprigs of Sassy Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3723,7 +1598,7 @@ Name = Timid Mint NamePlural = Timid Mints PortionName = sprig of Timid Mint PortionNamePlural = sprigs of Timid Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3735,7 +1610,7 @@ Name = Hasty Mint NamePlural = Hasty Mints PortionName = sprig of Hasty Mint PortionNamePlural = sprigs of Hasty Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3747,7 +1622,7 @@ Name = Jolly Mint NamePlural = Jolly Mints PortionName = sprig of Jolly Mint PortionNamePlural = sprigs of Jolly Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3759,7 +1634,7 @@ Name = Naive Mint NamePlural = Naive Mints PortionName = sprig of Naive Mint PortionNamePlural = sprigs of Naive Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3771,7 +1646,7 @@ Name = Serious Mint NamePlural = Serious Mints PortionName = sprig of Serious Mint PortionNamePlural = sprigs of Serious Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3781,7 +1656,7 @@ Description = When a Pokémon smells this mint, all of its stats will grow at an [ABILITYCAPSULE] Name = Ability Capsule NamePlural = Ability Capsule -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 50 FieldUse = OnPokemon @@ -3790,7 +1665,7 @@ Description = A capsule that allows a Pokémon with two Abilities to switch betw [ABILITYPATCH] Name = Ability Patch NamePlural = Ability Patches -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 200 FieldUse = OnPokemon @@ -3799,7 +1674,7 @@ Description = A patch that allows a Pokémon with a regular Ability to have a ra [EXPCANDYXS] Name = Exp. Candy XS NamePlural = Exp. Candy XSs -Pocket = 2 +Pocket = Medicine Price = 20 FieldUse = OnPokemon Flags = Fling_30 @@ -3808,7 +1683,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYS] Name = Exp. Candy S NamePlural = Exp. Candy Ss -Pocket = 2 +Pocket = Medicine Price = 240 FieldUse = OnPokemon Flags = Fling_30 @@ -3817,7 +1692,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYM] Name = Exp. Candy M NamePlural = Exp. Candy Ms -Pocket = 2 +Pocket = Medicine Price = 1000 FieldUse = OnPokemon Flags = Fling_30 @@ -3826,7 +1701,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYL] Name = Exp. Candy L NamePlural = Exp. Candy Ls -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon Flags = Fling_30 @@ -3835,7 +1710,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYXL] Name = Exp. Candy XL NamePlural = Exp. Candy XLs -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3844,7 +1719,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [RARECANDY] Name = Rare Candy NamePlural = Rare Candies -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 20 FieldUse = OnPokemon @@ -3854,7 +1729,7 @@ Description = A candy that is packed with energy. It raises the level of a singl [MASTERBALL] Name = Master Ball NamePlural = Master Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -3863,7 +1738,7 @@ Description = The best Ball with the ultimate level of performance. It will catc [ULTRABALL] Name = Ultra Ball NamePlural = Ultra Balls -Pocket = 3 +Pocket = PokeBalls Price = 800 BattleUse = OnFoe Flags = PokeBall @@ -3872,7 +1747,7 @@ Description = An ultra-performance Ball that provides a higher Pokémon catch ra [GREATBALL] Name = Great Ball NamePlural = Great Balls -Pocket = 3 +Pocket = PokeBalls Price = 600 BattleUse = OnFoe Flags = PokeBall @@ -3881,7 +1756,7 @@ Description = A good, high-performance Ball that provides a higher Pokémon catc [POKEBALL] Name = Poké Ball NamePlural = Poké Balls -Pocket = 3 +Pocket = PokeBalls Price = 200 BattleUse = OnFoe Flags = PokeBall @@ -3890,7 +1765,7 @@ Description = A device for catching wild Pokémon. It is thrown like a ball at t [SAFARIBALL] Name = Safari Ball NamePlural = Safari Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -3899,7 +1774,7 @@ Description = A special Poké Ball that is used only in the Safari Zone. It is d [SPORTBALL] Name = Sport Ball NamePlural = Sport Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3908,7 +1783,7 @@ Description = A special Poké Ball for the Bug-Catching Contest. [NETBALL] Name = Net Ball NamePlural = Net Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3917,7 +1792,7 @@ Description = A somewhat different Poké Ball that works especially well on Wate [DIVEBALL] Name = Dive Ball NamePlural = Dive Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3926,7 +1801,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [NESTBALL] Name = Nest Ball NamePlural = Nest Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3935,7 +1810,7 @@ Description = A somewhat different Poké Ball that works especially well on weak [REPEATBALL] Name = Repeat Ball NamePlural = Repeat Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3944,7 +1819,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [TIMERBALL] Name = Timer Ball NamePlural = Timer Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3953,7 +1828,7 @@ Description = A somewhat different Ball that becomes progressively better the mo [LUXURYBALL] Name = Luxury Ball NamePlural = Luxury Balls -Pocket = 3 +Pocket = PokeBalls Price = 3000 BattleUse = OnFoe Flags = PokeBall @@ -3962,7 +1837,7 @@ Description = A comfortable Poké Ball that makes a caught wild Pokémon quickly [PREMIERBALL] Name = Premier Ball NamePlural = Premier Balls -Pocket = 3 +Pocket = PokeBalls Price = 200 SellPrice = 10 BattleUse = OnFoe @@ -3972,7 +1847,7 @@ Description = A somewhat rare Poké Ball that has been specially made to commemo [DUSKBALL] Name = Dusk Ball NamePlural = Dusk Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3981,7 +1856,7 @@ Description = A somewhat different Poké Ball that makes it easier to catch wild [HEALBALL] Name = Heal Ball NamePlural = Heal Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -3990,7 +1865,7 @@ Description = A remedial Poké Ball that restores the caught Pokémon's HP and e [QUICKBALL] Name = Quick Ball NamePlural = Quick Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -3999,7 +1874,7 @@ Description = A somewhat different Poké Ball that provides a better catch rate [CHERISHBALL] Name = Cherish Ball NamePlural = Cherish Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -4008,7 +1883,7 @@ Description = A quite rare Poké Ball that has been specially crafted to commemo [FASTBALL] Name = Fast Ball NamePlural = Fast Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4017,7 +1892,7 @@ Description = A Poké Ball that makes it easier to catch fast Pokémon. [LEVELBALL] Name = Level Ball NamePlural = Level Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4026,7 +1901,7 @@ Description = A Poké Ball for catching Pokémon that are a lower level than you [LUREBALL] Name = Lure Ball NamePlural = Lure Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4035,7 +1910,7 @@ Description = A Poké Ball for catching Pokémon hooked by a Rod when fishing. [HEAVYBALL] Name = Heavy Ball NamePlural = Heavy Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4044,7 +1919,7 @@ Description = A Poké Ball for catching very heavy Pokémon. [LOVEBALL] Name = Love Ball NamePlural = Love Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4053,7 +1928,7 @@ Description = A Poké Ball for catching Pokémon that are the opposite gender of [FRIENDBALL] Name = Friend Ball NamePlural = Friend Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4062,7 +1937,7 @@ Description = A Poké Ball that makes caught Pokémon more friendly. [MOONBALL] Name = Moon Ball NamePlural = Moon Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4071,7 +1946,7 @@ Description = A Poké Ball for catching Pokémon that evolve using the Moon Ston [DREAMBALL] Name = Dream Ball NamePlural = Dream Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4080,1170 +1955,16 @@ Description = A somewhat different Poké Ball that makes it easier to catch wild [BEASTBALL] Name = Beast Ball NamePlural = Beast Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall Description = A special Poké Ball designed to catch Ultra Beasts. It has a low success rate for catching others. #------------------------------- -[TM01] -Name = TM01 -NamePlural = TM01s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_150 -Move = FOCUSPUNCH -Description = The user focuses its mind before launching a punch. This move fails if the user is hit before it is used. -#------------------------------- -[TM02] -Name = TM02 -NamePlural = TM02s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DRAGONCLAW -Description = The user slashes the target with huge sharp claws. -#------------------------------- -[TM03] -Name = TM03 -NamePlural = TM03s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = WATERPULSE -Description = The user attacks the target with a pulsing blast of water. This may also confuse the target. -#------------------------------- -[TM04] -Name = TM04 -NamePlural = TM04s -Pocket = 4 -Price = 1500 -BPPrice = 48 -FieldUse = TR -Flags = Fling_10 -Move = CALMMIND -Description = The user quietly focuses its mind and calms its spirit to raise its Sp. Atk and Sp. Def stats. -#------------------------------- -[TM05] -Name = TM05 -NamePlural = TM05s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ROAR -Description = The target is scared off, and a different Pokémon is dragged out. In the wild, this ends the battle. -#------------------------------- -[TM06] -Name = TM06 -NamePlural = TM06s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TOXIC -Description = A move that leaves the target badly poisoned. Its poison damage worsens every turn. -#------------------------------- -[TM07] -Name = TM07 -NamePlural = TM07s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = HAIL -Description = The user summons a hailstorm lasting five turns. It damages all Pokémon except Ice types. -#------------------------------- -[TM08] -Name = TM08 -NamePlural = TM08s -Pocket = 4 -Price = 1500 -BPPrice = 48 -FieldUse = TR -Flags = Fling_10 -Move = BULKUP -Description = The user tenses its muscles to bulk up its body, raising both its Attack and Defense stats. -#------------------------------- -[TM09] -Name = TM09 -NamePlural = TM09s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_25 -Move = BULLETSEED -Description = The user forcefully shoots seeds at the target two to five times in a row. -#------------------------------- -[TM10] -Name = TM10 -NamePlural = TM10s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = WORKUP -Description = The user is roused, and its Attack and Sp. Atk stats increase. -#------------------------------- -[TM11] -Name = TM11 -NamePlural = TM11s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SUNNYDAY -Description = The user intensifies the sun for five turns, powering up Fire-type moves and weakening Water-type moves. -#------------------------------- -[TM12] -Name = TM12 -NamePlural = TM12s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TAUNT -Description = The target is taunted into a rage that allows it to use only attack moves for three turns. -#------------------------------- -[TM13] -Name = TM13 -NamePlural = TM13s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = ICEBEAM -Description = The target is struck with an icy-cold beam of energy. This may also leave the target frozen. -#------------------------------- -[TM14] -Name = TM14 -NamePlural = TM14s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_110 -Move = BLIZZARD -Description = A howling blizzard is summoned to strike opposing Pokémon. This may also leave them frozen. -#------------------------------- -[TM15] -Name = TM15 -NamePlural = TM15s -Pocket = 4 -Price = 7500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_150 -Move = HYPERBEAM -Description = The target is attacked with a powerful beam. The user can't move on the next turn. -#------------------------------- -[TM16] -Name = TM16 -NamePlural = TM16s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = LIGHTSCREEN -Description = A wondrous wall of light is put up to reduce damage from special attacks for five turns. -#------------------------------- -[TM17] -Name = TM17 -NamePlural = TM17s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = PROTECT -Description = The user protects itself from all attacks. Its chance of failing rises if it is used in succession. -#------------------------------- -[TM18] -Name = TM18 -NamePlural = TM18s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = RAINDANCE -Description = The user summons a heavy rain for five turns, powering up Water-type moves and weakening Fire-type ones. -#------------------------------- -[TM19] -Name = TM19 -NamePlural = TM19s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_75 -Move = GIGADRAIN -Description = A nutrient-draining attack. The user's HP is restored by half the damage taken by the target. -#------------------------------- -[TM20] -Name = TM20 -NamePlural = TM20s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SAFEGUARD -Description = The user creates a protective field that prevents status conditions for five turns. -#------------------------------- -[TM21] -Name = TM21 -NamePlural = TM21s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DAZZLINGGLEAM -Description = The user damages opposing Pokémon by emitting a powerful flash. -#------------------------------- -[TM22] -Name = TM22 -NamePlural = TM22s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_120 -Move = SOLARBEAM -Description = In this two-turn attack, the user gathers light, then blasts a bundled beam on the next turn. -#------------------------------- -[TM23] -Name = TM23 -NamePlural = TM23s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_100 -Move = IRONTAIL -Description = The target is slammed with a steel-hard tail. This may also lower the target's Defense stat. -#------------------------------- -[TM24] -Name = TM24 -NamePlural = TM24s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = THUNDERBOLT -Description = A strong electric blast crashes down on the target. This may also leave the target with paralysis. -#------------------------------- -[TM25] -Name = TM25 -NamePlural = TM25s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_110 -Move = THUNDER -Description = A wicked thunderbolt is dropped on the target to inflict damage. This may also leave them with paralysis. -#------------------------------- -[TM26] -Name = TM26 -NamePlural = TM26s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_100 -Move = EARTHQUAKE -Description = The user sets off an earthquake that strikes every Pokémon around it. -#------------------------------- -[TM27] -Name = TM27 -NamePlural = TM27s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_65 -Move = LOWSWEEP -Description = The user makes a swift attack on the target's legs, which lowers the target's Speed stat. -#------------------------------- -[TM28] -Name = TM28 -NamePlural = TM28s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DIG -Description = The user burrows into the ground, then attacks on the next turn. It can also be used to exit dungeons. -#------------------------------- -[TM29] -Name = TM29 -NamePlural = TM29s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = PSYCHIC -Description = The target is hit by a strong telekinetic force. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM30] -Name = TM30 -NamePlural = TM30s -Pocket = 4 -Price = 3000 -BPPrice = 64 -FieldUse = TR -Flags = Fling_80 -Move = SHADOWBALL -Description = The user hurls a shadowy blob at the target. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM31] -Name = TM31 -NamePlural = TM31s -Pocket = 4 -Price = 3000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_75 -Move = BRICKBREAK -Description = The user attacks with a swift chop. It can also break barriers, such as Light Screen and Reflect. -#------------------------------- -[TM32] -Name = TM32 -NamePlural = TM32s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = DOUBLETEAM -Description = By moving rapidly, the user makes illusory copies of itself to raise its evasiveness. -#------------------------------- -[TM33] -Name = TM33 -NamePlural = TM33s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = REFLECT -Description = A wondrous wall of light is put up to reduce damage from physical attacks for five turns. -#------------------------------- -[TM34] -Name = TM34 -NamePlural = TM34s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = SHOCKWAVE -Description = The user strikes the target with a quick jolt of electricity. This attack never misses. -#------------------------------- -[TM35] -Name = TM35 -NamePlural = TM35s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = FLAMETHROWER -Description = The target is scorched with an intense blast of fire. This may also leave the target with a burn. -#------------------------------- -[TM36] -Name = TM36 -NamePlural = TM36s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_90 -Move = SLUDGEBOMB -Description = Unsanitary sludge is hurled at the target. This may also poison the target. -#------------------------------- -[TM37] -Name = TM37 -NamePlural = TM37s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SANDSTORM -Description = A five-turn sandstorm is summoned to hurt all combatants except Rock, Ground, and Steel types. -#------------------------------- -[TM38] -Name = TM38 -NamePlural = TM38s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_110 -Move = FIREBLAST -Description = The target is attacked with an intense blast of all-consuming fire. This may also leave them with a burn. -#------------------------------- -[TM39] -Name = TM39 -NamePlural = TM39s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = ROCKTOMB -Description = Boulders are hurled at the target. This also lowers the target's Speed stat by preventing its movement. -#------------------------------- -[TM40] -Name = TM40 -NamePlural = TM40s -Pocket = 4 -Price = 3000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_60 -Move = AERIALACE -Description = The user confounds the target with speed, then slashes. This attack never misses. -#------------------------------- -[TM41] -Name = TM41 -NamePlural = TM41s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TORMENT -Description = The user torments and enrages the target, making it incapable of using the same move twice in a row. -#------------------------------- -[TM42] -Name = TM42 -NamePlural = TM42s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = FACADE -Description = This attack move doubles its power if the user is poisoned, burned, or paralyzed. -#------------------------------- -[TM43] -Name = TM43 -NamePlural = TM43s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = VOLTSWITCH -Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. -#------------------------------- -[TM44] -Name = TM44 -NamePlural = TM44s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = REST -Description = The user goes to sleep for two turns. This fully restores the user's HP and heals any status conditions. -#------------------------------- -[TM45] -Name = TM45 -NamePlural = TM45s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ATTRACT -Description = If it is the opposite gender of the user, the target becomes infatuated and less likely to attack. -#------------------------------- -[TM46] -Name = TM46 -NamePlural = TM46s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = THIEF -Description = The user attacks and steals the target's held item simultaneously. -#------------------------------- -[TM47] -Name = TM47 -NamePlural = TM47s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = STEELWING -Description = The target is hit with wings of steel. This may also raise the user's Defense stat. -#------------------------------- -[TM48] -Name = TM48 -NamePlural = TM48s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SKILLSWAP -Description = The user employs its psychic power to exchange Abilities with the target. -#------------------------------- -[TM49] -Name = TM49 -NamePlural = TM49s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = SCALD -Description = The user shoots boiling hot water at its target. This may also leave the target with a burn. -#------------------------------- -[TM50] -Name = TM50 -NamePlural = TM50s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_130 -Move = OVERHEAT -Description = The user attacks the target at full power. The attack's recoil harshly lowers the user's Sp. Atk stat. -#------------------------------- -[TM51] -Name = TM51 -NamePlural = TM51s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ROOST -Description = The user lands and rests its body. This move restores the user's HP by up to half of its max HP. -#------------------------------- -[TM52] -Name = TM52 -NamePlural = TM52s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_120 -Move = FOCUSBLAST -Description = The user heightens its mental focus and unleashes its power. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM53] -Name = TM53 -NamePlural = TM53s -Pocket = 4 -Price = 3000 -BPPrice = 64 -FieldUse = TR -Flags = Fling_90 -Move = ENERGYBALL -Description = The user draws power from nature and fires it at the target. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM54] -Name = TM54 -NamePlural = TM54s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_40 -Move = FALSESWIPE -Description = A restrained attack that prevents the target from fainting. The target is left with at least 1 HP. -#------------------------------- -[TM55] -Name = TM55 -NamePlural = TM55s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_65 -Move = BRINE -Description = If the target's HP is half or less, this attack will hit with double the power. -#------------------------------- -[TM56] -Name = TM56 -NamePlural = TM56s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = FLING -Description = The user flings its held item at the target to attack. This move's power and effects depend on the item. -#------------------------------- -[TM57] -Name = TM57 -NamePlural = TM57s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_50 -Move = CHARGEBEAM -Description = The user attacks the target with an electric charge. The user may use any remaining charge to raise its Sp. Atk. -#------------------------------- -[TM58] -Name = TM58 -NamePlural = TM58s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ENDURE -Description = The user endures any attack with at least 1 HP. Its chance of failing rises if it is used in succession. -#------------------------------- -[TM59] -Name = TM59 -NamePlural = TM59s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_85 -Move = DRAGONPULSE -Description = The target is attacked with a shock wave generated by the user's gaping mouth. -#------------------------------- -[TM60] -Name = TM60 -NamePlural = TM60s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_75 -Move = DRAINPUNCH -Description = An energy-draining punch. The user's HP is restored by half the damage taken by the target. -#------------------------------- -[TM61] -Name = TM61 -NamePlural = TM61s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = WILLOWISP -Description = The user shoots a sinister flame at the target to inflict a burn. -#------------------------------- -[TM62] -Name = TM62 -NamePlural = TM62s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = BUGBUZZ -Description = The user generates a damaging sound wave by vibration. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM63] -Name = TM63 -NamePlural = TM63s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = NASTYPLOT -Description = The user stimulates its brain by thinking bad thoughts. This sharply raises the user's Sp. Atk stat. -#------------------------------- -[TM64] -Name = TM64 -NamePlural = TM64s -Pocket = 4 -Price = 7500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_250 -Move = EXPLOSION -Description = The user attacks everything around it by causing a tremendous explosion. The user faints upon using this move. -#------------------------------- -[TM65] -Name = TM65 -NamePlural = TM65s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = SHADOWCLAW -Description = The user slashes with a sharp claw made from shadows. Critical hits land more easily. -#------------------------------- -[TM66] -Name = TM66 -NamePlural = TM66s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_50 -Move = PAYBACK -Description = The user stores power, then attacks. If the user moves after the target, this attack's power will be doubled. -#------------------------------- -[TM67] -Name = TM67 -NamePlural = TM67s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = RECYCLE -Description = The user recycles a held item that has been used in battle so it can be used again. -#------------------------------- -[TM68] -Name = TM68 -NamePlural = TM68s -Pocket = 4 -Price = 7500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_150 -Move = GIGAIMPACT -Description = The user charges at the target using every bit of its power. The user can't move on the next turn. -#------------------------------- -[TM69] -Name = TM69 -NamePlural = TM69s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ROCKPOLISH -Description = The user polishes its body to reduce drag. This sharply raises the Speed stat. -#------------------------------- -[TM70] -Name = TM70 -NamePlural = TM70s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = FLASH -Description = The user flashes a light that lowers the target's accuracy. It can also be used to illuminate caves. -#------------------------------- -[TM71] -Name = TM71 -NamePlural = TM71s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_100 -Move = STONEEDGE -Description = The user stabs the target from below with sharpened stones. Critical hits land more easily. -#------------------------------- -[TM72] -Name = TM72 -NamePlural = TM72s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = AVALANCHE -Description = The power of this attack move is doubled if the user has been hurt by the target in the same turn. -#------------------------------- -[TM73] -Name = TM73 -NamePlural = TM73s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = THUNDERWAVE -Description = The user launches a weak jolt of electricity that paralyzes the target. -#------------------------------- -[TM74] -Name = TM74 -NamePlural = TM74s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = GYROBALL -Description = The user tackles with a high-speed spin. This move is stronger the slower the user is than the target. -#------------------------------- -[TM75] -Name = TM75 -NamePlural = TM75s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SWORDSDANCE -Description = A frenetic dance to uplift the fighting spirit. This sharply raises the user's Attack stat. -#------------------------------- -[TM76] -Name = TM76 -NamePlural = TM76s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = STEALTHROCK -Description = The user lays a trap of levitating stones around the opposing team that hurt Pokémon that switch in. -#------------------------------- -[TM77] -Name = TM77 -NamePlural = TM77s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = PSYCHUP -Description = The user hypnotizes itself into copying any stat change made by the target. -#------------------------------- -[TM78] -Name = TM78 -NamePlural = TM78s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_55 -Move = SNARL -Description = The user yells as if it's ranting about something, which lowers the Sp. Atk stats of opposing Pokémon. -#------------------------------- -[TM79] -Name = TM79 -NamePlural = TM79s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DARKPULSE -Description = The user releases a horrible aura imbued with dark thoughts. This may also make the target flinch. -#------------------------------- -[TM80] -Name = TM80 -NamePlural = TM80s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_75 -Move = ROCKSLIDE -Description = Large boulders are hurled at opposing Pokémon to inflict damage. This may also make them flinch. -#------------------------------- -[TM81] -Name = TM81 -NamePlural = TM81s -Pocket = 4 -Price = 3000 -BPPrice = 64 -FieldUse = TR -Flags = Fling_80 -Move = XSCISSOR -Description = The user slashes at the target by crossing its scythes or claws as if they were a pair of scissors. -#------------------------------- -[TM82] -Name = TM82 -NamePlural = TM82s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SLEEPTALK -Description = While it is asleep, the user randomly uses one of the moves it knows. -#------------------------------- -[TM83] -Name = TM83 -NamePlural = TM83s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = BULLDOZE -Description = The user strikes everything around it by stomping down on the ground. This lowers the Speed of those hit. -#------------------------------- -[TM84] -Name = TM84 -NamePlural = TM84s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = POISONJAB -Description = The target is stabbed with a tentacle, arm, or the like steeped in poison. This may also poison them. -#------------------------------- -[TM85] -Name = TM85 -NamePlural = TM85s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_100 -Move = DREAMEATER -Description = The user eats the dreams of a sleeping target. The user's HP is restored by half the damage dealt. -#------------------------------- -[TM86] -Name = TM86 -NamePlural = TM86s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = GRASSKNOT -Description = The user snares the target with grass and trips it. The heavier the target, the strong the move is. -#------------------------------- -[TM87] -Name = TM87 -NamePlural = TM87s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SWAGGER -Description = The user enrages and confuses the target. However, this also sharply raises the target's Attack stat. -#------------------------------- -[TM88] -Name = TM88 -NamePlural = TM88s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = PLUCK -Description = The user pecks the target. If the target is holding a Berry, the user eats it and gains its effect. -#------------------------------- -[TM89] -Name = TM89 -NamePlural = TM89s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = UTURN -Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. -#------------------------------- -[TM90] -Name = TM90 -NamePlural = TM90s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SUBSTITUTE -Description = The user creates a substitute for itself using some of its HP. The substitute serves as a decoy. -#------------------------------- -[TM91] -Name = TM91 -NamePlural = TM91s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = FLASHCANNON -Description = The user gathers all its light energy and releases it all at once. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM92] -Name = TM92 -NamePlural = TM92s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TRICKROOM -Description = The user creates a bizarre area in which slower Pokémon get to move first for five turns. -#------------------------------- -[TM93] -Name = TM93 -NamePlural = TM93s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_50 -Move = CUT -Description = The target is cut with a scythe or claw. -#------------------------------- -[TM94] -Name = TM94 -NamePlural = TM94s -Pocket = 4 -Price = 2000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_90 -Move = FLY -Description = The user flies up into the sky and then strikes its target on the next turn. -#------------------------------- -[TM95] -Name = TM95 -NamePlural = TM95s -Pocket = 4 -Price = 2500 -BPPrice = 64 -FieldUse = TR -Flags = Fling_90 -Move = SURF -Description = The user attacks everything around it by swamping its surroundings with a giant wave. -#------------------------------- -[TM96] -Name = TM96 -NamePlural = TM96s -Pocket = 4 -Price = 2000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_80 -Move = STRENGTH -Description = The target is slugged with a punch thrown at maximum power. -#------------------------------- -[TM97] -Name = TM97 -NamePlural = TM97s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = DEFOG -Description = A strong wind blows away the target's barriers, such as Reflect, and lowers their evasiveness. -#------------------------------- -[TM98] -Name = TM98 -NamePlural = TM98s -Pocket = 4 -Price = 2000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_40 -Move = ROCKSMASH -Description = The user attacks with a punch that may lower the target's Defense stat. -#------------------------------- -[TM99] -Name = TM99 -NamePlural = TM99s -Pocket = 4 -Price = 2500 -BPPrice = 64 -FieldUse = TR -Flags = Fling_80 -Move = WATERFALL -Description = The user charges at the target and may make it flinch. -#------------------------------- -[TM100] -Name = TM100 -NamePlural = TM100s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = ROCKCLIMB -Description = A charging attack that may also leave the foe confused. -#------------------------------- -[HM01] -Name = HM01 -NamePlural = HM01s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = CUT -Description = The target is cut with a scythe or claw. This can also be used to cut down thin trees. -#------------------------------- -[HM02] -Name = HM02 -NamePlural = HM02s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = FLY -Description = The user soars and then strikes on the next turn. This can also be used to fly to any familiar town. -#------------------------------- -[HM03] -Name = HM03 -NamePlural = HM03s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = SURF -Description = Attacks everything by swamping the surroundings with a giant wave. This can also be used to cross water. -#------------------------------- -[HM04] -Name = HM04 -NamePlural = HM04s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = STRENGTH -Description = The target is slugged with a punch thrown at maximum power. This can also be used to move heavy boulders. -#------------------------------- -[HM05] -Name = HM05 -NamePlural = HM05s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = WATERFALL -Description = The user charges at the target and may make it flinch. It can also be used to climb a waterfall. -#------------------------------- -[HM06] -Name = HM06 -NamePlural = HM06s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = DIVE -Description = Diving on the first turn, the user floats up and attacks on the second. It can be used to dive underwater. -#------------------------------- [CHERIBERRY] Name = Cheri Berry NamePlural = Cheri Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5253,7 +1974,7 @@ Description = It may be used or held by a Pokémon to recover from paralysis. [CHESTOBERRY] Name = Chesto Berry NamePlural = Chesto Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5263,7 +1984,7 @@ Description = It may be used or held by a Pokémon to recover from sleep. [PECHABERRY] Name = Pecha Berry NamePlural = Pecha Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5273,7 +1994,7 @@ Description = It may be used or held by a Pokémon to recover from poison. [RAWSTBERRY] Name = Rawst Berry NamePlural = Rawst Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5283,7 +2004,7 @@ Description = It may be used or held by a Pokémon to recover from a burn. [ASPEARBERRY] Name = Aspear Berry NamePlural = Aspear Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5293,7 +2014,7 @@ Description = It may be used or held by a Pokémon to defrost it. [LEPPABERRY] Name = Leppa Berry NamePlural = Leppa Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnMove @@ -5303,7 +2024,7 @@ Description = It may be used or held by a Pokémon to restore a move's PP by 10. [ORANBERRY] Name = Oran Berry NamePlural = Oran Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5313,7 +2034,7 @@ Description = It may be used or held by a Pokémon to heal the user by just 10 H [PERSIMBERRY] Name = Persim Berry NamePlural = Persim Berries -Pocket = 5 +Pocket = Berries Price = 20 BattleUse = OnBattler Flags = Berry,Fling_10,NaturalGift_GROUND_80 @@ -5322,7 +2043,7 @@ Description = It may be used or held by a Pokémon to recover from confusion. [LUMBERRY] Name = Lum Berry NamePlural = Lum Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5332,7 +2053,7 @@ Description = It may be used or held by a Pokémon to recover from any status pr [SITRUSBERRY] Name = Sitrus Berry NamePlural = Sitrus Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5342,7 +2063,7 @@ Description = It may be used or held by a Pokémon to heal the user's HP a littl [FIGYBERRY] Name = Figy Berry NamePlural = Figy Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5350,7 +2071,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [WIKIBERRY] Name = Wiki Berry NamePlural = Wiki Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5358,7 +2079,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [MAGOBERRY] Name = Mago Berry NamePlural = Mago Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5366,7 +2087,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [AGUAVBERRY] Name = Aguav Berry NamePlural = Aguav Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5374,7 +2095,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [IAPAPABERRY] Name = Iapapa Berry NamePlural = Iapapa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5382,7 +2103,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [RAZZBERRY] Name = Razz Berry NamePlural = Razz Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_80 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5390,7 +2111,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [BLUKBERRY] Name = Bluk Berry NamePlural = Bluk Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5398,7 +2119,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [NANABBERRY] Name = Nanab Berry NamePlural = Nanab Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5406,7 +2127,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [WEPEARBERRY] Name = Wepear Berry NamePlural = Wepear Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5414,7 +2135,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [PINAPBERRY] Name = Pinap Berry NamePlural = Pinap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5422,7 +2143,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [POMEGBERRY] Name = Pomeg Berry NamePlural = Pomeg Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_ICE_90 @@ -5431,7 +2152,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [KELPSYBERRY] Name = Kelpsy Berry NamePlural = Kelpsy Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_FIGHTING_90 @@ -5440,7 +2161,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [QUALOTBERRY] Name = Qualot Berry NamePlural = Qualot Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_POISON_90 @@ -5449,7 +2170,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [HONDEWBERRY] Name = Hondew Berry NamePlural = Hondew Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_GROUND_90 @@ -5458,7 +2179,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [GREPABERRY] Name = Grepa Berry NamePlural = Grepa Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_FLYING_90 @@ -5467,7 +2188,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [TAMATOBERRY] Name = Tamato Berry NamePlural = Tamato Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_PSYCHIC_90 @@ -5476,7 +2197,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [CORNNBERRY] Name = Cornn Berry NamePlural = Cornn Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5484,7 +2205,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [MAGOSTBERRY] Name = Magost Berry NamePlural = Magost Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5492,7 +2213,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [RABUTABERRY] Name = Rabuta Berry NamePlural = Rabuta Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5500,7 +2221,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [NOMELBERRY] Name = Nomel Berry NamePlural = Nomel Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5508,7 +2229,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [SPELONBERRY] Name = Spelon Berry NamePlural = Spelon Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5516,7 +2237,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [PAMTREBERRY] Name = Pamtre Berry NamePlural = Pamtre Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5524,7 +2245,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [WATMELBERRY] Name = Watmel Berry NamePlural = Watmel Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5532,7 +2253,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [DURINBERRY] Name = Durin Berry NamePlural = Durin Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5540,7 +2261,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [BELUEBERRY] Name = Belue Berry NamePlural = Belue Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5548,135 +2269,135 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [OCCABERRY] Name = Occa Berry NamePlural = Occa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_80 -Description = Weakens a supereffective Fire-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fire-type attack. #------------------------------- [PASSHOBERRY] Name = Passho Berry NamePlural = Passho Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_80 -Description = Weakens a supereffective Water-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Water-type attack. #------------------------------- [WACANBERRY] Name = Wacan Berry NamePlural = Wacan Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_80 -Description = Weakens a supereffective Electric-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Electric attack. #------------------------------- [RINDOBERRY] Name = Rindo Berry NamePlural = Rindo Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_80 -Description = Weakens a supereffective Grass-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Grass-type attack. #------------------------------- [YACHEBERRY] Name = Yache Berry NamePlural = Yache Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ICE_80 -Description = Weakens a supereffective Ice-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ice-type attack. #------------------------------- [CHOPLEBERRY] Name = Chople Berry NamePlural = Chople Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIGHTING_80 -Description = Weakens a supereffective Fighting-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fighting attack. #------------------------------- [KEBIABERRY] Name = Kebia Berry NamePlural = Kebia Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_POISON_80 -Description = Weakens a supereffective Poison-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Poison-type attack. #------------------------------- [SHUCABERRY] Name = Shuca Berry NamePlural = Shuca Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GROUND_80 -Description = Weakens a supereffective Ground-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ground-type attack. #------------------------------- [COBABERRY] Name = Coba Berry NamePlural = Coba Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FLYING_80 -Description = Weakens a supereffective Flying-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Flying-type attack. #------------------------------- [PAYAPABERRY] Name = Payapa Berry NamePlural = Payapa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_PSYCHIC_80 -Description = Weakens a supereffective Psychic-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Psychic attack. #------------------------------- [TANGABERRY] Name = Tanga Berry NamePlural = Tanga Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_80 -Description = Weakens a supereffective Bug-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Bug-type attack. #------------------------------- [CHARTIBERRY] Name = Charti Berry NamePlural = Charti Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_80 -Description = Weakens a supereffective Rock-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Rock-type attack. #------------------------------- [KASIBBERRY] Name = Kasib Berry NamePlural = Kasib Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_80 -Description = Weakens a supereffective Ghost-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ghost-type attack. #------------------------------- [HABANBERRY] Name = Haban Berry NamePlural = Haban Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_80 -Description = Weakens a supereffective Dragon-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dragon-type attack. #------------------------------- [COLBURBERRY] Name = Colbur Berry NamePlural = Colbur Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_80 -Description = Weakens a supereffective Dark-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dark-type attack. #------------------------------- [BABIRIBERRY] Name = Babiri Berry NamePlural = Babiri Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_80 -Description = Weakens a supereffective Steel-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Steel-type attack. #------------------------------- [ROSELIBERRY] Name = Roseli Berry NamePlural = Roseli Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FAIRY_80 Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fairy-type attack. @@ -5684,15 +2405,15 @@ Description = If held by a Pokémon, this Berry will lessen the damage taken fro [CHILANBERRY] Name = Chilan Berry NamePlural = Chilan Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_NORMAL_80 -Description = Weakens a Normal-type attack against the Pokémon holding this berry. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one Normal-type attack. #------------------------------- [LIECHIBERRY] Name = Liechi Berry NamePlural = Liechi Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_100 Description = If held by a Pokémon, it raises its Attack stat in a pinch. @@ -5700,7 +2421,7 @@ Description = If held by a Pokémon, it raises its Attack stat in a pinch. [GANLONBERRY] Name = Ganlon Berry NamePlural = Ganlon Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ICE_100 Description = If held by a Pokémon, it raises its Defense stat in a pinch. @@ -5708,7 +2429,7 @@ Description = If held by a Pokémon, it raises its Defense stat in a pinch. [SALACBERRY] Name = Salac Berry NamePlural = Salac Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIGHTING_100 Description = If held by a Pokémon, it raises its Speed stat in a pinch. @@ -5716,7 +2437,7 @@ Description = If held by a Pokémon, it raises its Speed stat in a pinch. [PETAYABERRY] Name = Petaya Berry NamePlural = Petaya Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_POISON_100 Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. @@ -5724,7 +2445,7 @@ Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. [APICOTBERRY] Name = Apicot Berry NamePlural = Apicot Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GROUND_100 Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. @@ -5732,7 +2453,7 @@ Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. [LANSATBERRY] Name = Lansat Berry NamePlural = Lansat Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FLYING_100 Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch. @@ -5740,7 +2461,7 @@ Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch [STARFBERRY] Name = Starf Berry NamePlural = Starf Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_PSYCHIC_100 Description = If held by a Pokémon, it sharply raises one of its stats in a pinch. @@ -5748,7 +2469,7 @@ Description = If held by a Pokémon, it sharply raises one of its stats in a pin [ENIGMABERRY] Name = Enigma Berry NamePlural = Enigma Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_100 Description = If held by a Pokémon, it restores its HP if it is hit by any supereffective attack. @@ -5756,7 +2477,7 @@ Description = If held by a Pokémon, it restores its HP if it is hit by any supe [MICLEBERRY] Name = Micle Berry NamePlural = Micle Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_100 Description = If held by a Pokémon, it raises the accuracy of a move just once in a pinch. @@ -5764,7 +2485,7 @@ Description = If held by a Pokémon, it raises the accuracy of a move just once [CUSTAPBERRY] Name = Custap Berry NamePlural = Custap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_100 Description = If held by a Pokémon, it gets to move first just once in a pinch. @@ -5772,7 +2493,7 @@ Description = If held by a Pokémon, it gets to move first just once in a pinch. [JABOCABERRY] Name = Jaboca Berry NamePlural = Jaboca Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_100 Description = If held by a Pokémon and a physical attack lands, the attacker also takes damage. @@ -5780,7 +2501,7 @@ Description = If held by a Pokémon and a physical attack lands, the attacker al [ROWAPBERRY] Name = Rowap Berry NamePlural = Rowap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_100 Description = If held by a Pokémon and a special attack lands, the attacker also takes damage. @@ -5788,7 +2509,7 @@ Description = If held by a Pokémon and a special attack lands, the attacker als [KEEBERRY] Name = Kee Berry NamePlural = Kee Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FAIRY_100 Description = If held by a Pokémon, this Berry will increase the holder's Defense if it's hit with a physical move. @@ -5796,135 +2517,2260 @@ Description = If held by a Pokémon, this Berry will increase the holder's Defen [MARANGABERRY] Name = Maranga Berry NamePlural = Maranga Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_100 Description = If held by a Pokémon, this Berry will increase the holder's Sp. Def if it's hit with a special move. #------------------------------- -[GRASSMAIL] -Name = Grass Mail -NamePlural = Grass Mail -PortionName = piece of Grass Mail -PortionNamePlural = pieces of Grass Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. +[AIRBALLOON] +Name = Air Balloon +NamePlural = Air Balloons +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. #------------------------------- -[FLAMEMAIL] -Name = Flame Mail -NamePlural = Flame Mail -PortionName = piece of Flame Mail -PortionNamePlural = pieces of Flame Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. +[BRIGHTPOWDER] +Name = Bright Powder +NamePlural = Bright Powders +PortionName = bag of Bright Powder +PortionNamePlural = bags of Bright Powder +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. #------------------------------- -[BUBBLEMAIL] -Name = Bubble Mail -NamePlural = Bubble Mail -PortionName = piece of Bubble Mail -PortionNamePlural = pieces of Bubble Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. +[EVIOLITE] +Name = Eviolite +NamePlural = Eviolites +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_40 +Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. #------------------------------- -[BLOOMMAIL] -Name = Bloom Mail -NamePlural = Bloom Mail -PortionName = piece of Bloom Mail -PortionNamePlural = pieces of Bloom Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. +[FLOATSTONE] +Name = Float Stone +NamePlural = Float Stones +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 10 +Flags = Fling_30 +Description = A very light stone. It reduces the weight of a Pokémon when held. #------------------------------- -[TUNNELMAIL] -Name = Tunnel Mail -NamePlural = Tunnel Mail -PortionName = piece of Tunnel Mail -PortionNamePlural = pieces of Tunnel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. +[DESTINYKNOT] +Name = Destiny Knot +NamePlural = Destiny Knots +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 10 +Flags = Fling_10 +Description = A long, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. #------------------------------- -[STEELMAIL] -Name = Steel Mail -NamePlural = Steel Mail -PortionName = piece of Steel Mail -PortionNamePlural = pieces of Steel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. +[ROCKYHELMET] +Name = Rocky Helmet +NamePlural = Rocky Helmets +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_60 +Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. #------------------------------- -[HEARTMAIL] -Name = Heart Mail -NamePlural = Heart Mail -PortionName = piece of Heart Mail -PortionNamePlural = pieces of Heart Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. +[ASSAULTVEST] +Name = Assault Vest +NamePlural = Assault Vests +Pocket = HeldItems +Price = 1000 +BPPrice = 25 +Flags = Fling_80 +Description = An item to be held by a Pokémon. This offensive vest raises Sp. Def but prevents the use of status moves. #------------------------------- -[SNOWMAIL] -Name = Snow Mail -NamePlural = Snow Mail -PortionName = piece of Snow Mail -PortionNamePlural = pieces of Snow Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. +[SAFETYGOGGLES] +Name = Safety Goggles +NamePlural = Safety Goggles +PortionName = pair of Safety Goggles +PortionNamePlural = pairs of Safety Goggles +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_80 +Description = An item to be held by a Pokémon. They protect the holder from weather-related damage and powder. #------------------------------- -[SPACEMAIL] -Name = Space Mail -NamePlural = Space Mail -PortionName = piece of Space Mail -PortionNamePlural = pieces of Space Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print depicting the huge expanse of space. Let a Pokémon hold it for delivery. +[PROTECTIVEPADS] +Name = Protective Pads +NamePlural = Protective Pads +PortionName = set of Protective Pads +PortionNamePlural = sets of Protective Pads +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_30 +Description = An item to be held by a Pokémon. They protect the holder from effects caused by making contact. #------------------------------- -[AIRMAIL] -Name = Air Mail -NamePlural = Air Mail -PortionName = piece of Air Mail -PortionNamePlural = pieces of Air Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. +[HEAVYDUTYBOOTS] +Name = Heavy-Duty Boots +NamePlural = Heavy-Duty Boots +PortionName = pair of Heavy-Duty Boots +PortionNamePlural = pairs of Heavy-Duty Boots +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_80 +Description = These boots prevent the effects of traps set on the battlefield. #------------------------------- -[MOSAICMAIL] -Name = Mosaic Mail -NamePlural = Mosaic Mail -PortionName = piece of Mosaic Mail -PortionNamePlural = pieces of Mosaic Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. +[UTILITYUMBRELLA] +Name = Utility Umbrella +NamePlural = Utility Umbrellas +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_60 +Description = An item to be held by a Pokémon. This sturdy umbrella protects the holder from the effects of rain and sun. #------------------------------- -[BRICKMAIL] -Name = Brick Mail -NamePlural = Brick Mail -PortionName = piece of Brick Mail -PortionNamePlural = pieces of Brick Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. +[EJECTBUTTON] +Name = Eject Button +NamePlural = Eject Buttons +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 20 +Flags = Fling_30 +Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. +#------------------------------- +[EJECTPACK] +Name = Eject Pack +NamePlural = Eject Packs +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 20 +Flags = Fling_50 +Description = An item to be held by a Pokémon. When the holder's stats are lowered, it will be switched out of battle. +#------------------------------- +[REDCARD] +Name = Red Card +NamePlural = Red Cards +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 20 +Flags = Fling_10 +Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. +#------------------------------- +[SHEDSHELL] +Name = Shed Shell +NamePlural = Shed Shells +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. +#------------------------------- +[SMOKEBALL] +Name = Smoke Ball +NamePlural = Smoke Balls +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. +#------------------------------- +[LUCKYEGG] +Name = Lucky Egg +NamePlural = Lucky Eggs +Pocket = HeldItems +Price = 10000 +BPPrice = 77 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. +#------------------------------- +[EXPSHARE] +Name = Exp. Share +NamePlural = Exp. Shares +Pocket = HeldItems +Price = 3000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. +#------------------------------- +[AMULETCOIN] +Name = Amulet Coin +NamePlural = Amulet Coins +Pocket = HeldItems +Price = 10000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[SOOTHEBELL] +Name = Soothe Bell +NamePlural = Soothe Bells +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. +#------------------------------- +[CLEANSETAG] +Name = Cleanse Tag +NamePlural = Cleanse Tags +Pocket = HeldItems +Price = 5000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[CHOICEBAND] +Name = Choice Band +NamePlural = Choice Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. +#------------------------------- +[CHOICESPECS] +Name = Choice Specs +NamePlural = Choice Specs +PortionName = pair of Choice Specs +PortionNamePlural = pairs of Choice Specs +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. +#------------------------------- +[CHOICESCARF] +Name = Choice Scarf +NamePlural = Choice Scarves +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. +#------------------------------- +[HEATROCK] +Name = Heat Rock +NamePlural = Heat Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. +#------------------------------- +[DAMPROCK] +Name = Damp Rock +NamePlural = Damp Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. +#------------------------------- +[SMOOTHROCK] +Name = Smooth Rock +NamePlural = Smooth Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. +#------------------------------- +[ICYROCK] +Name = Icy Rock +NamePlural = Icy Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_40 +Description = A Pokémon held item that extends the duration of the move Hail used by the holder. +#------------------------------- +[TERRAINEXTENDER] +Name = Terrain Extender +NamePlural = Terrain Extenders +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_60 +Description = An item to be held by a Pokémon. It extends the duration of the terrain caused by the holder. +#------------------------------- +[LIGHTCLAY] +Name = Light Clay +NamePlural = Light Clays +PortionName = lump of Light Clay +PortionNamePlural = lumps of Light Clay +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_30 +Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. +#------------------------------- +[GRIPCLAW] +Name = Grip Claw +NamePlural = Grip Claws +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_90 +Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. +#------------------------------- +[BINDINGBAND] +Name = Binding Band +NamePlural = Binding Bands +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 15 +Flags = Fling_30 +Description = A band that increases the power of binding moves when held. +#------------------------------- +[BIGROOT] +Name = Big Root +NamePlural = Big Roots +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. +#------------------------------- +[BLACKSLUDGE] +Name = Black Sludge +NamePlural = Black Sludges +PortionName = blob of Black Sludge +PortionNamePlural = blobs of Black Sludge +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_30 +Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. +#------------------------------- +[LEFTOVERS] +Name = Leftovers +NamePlural = Leftovers +PortionName = serving of Leftovers +PortionNamePlural = servings of Leftovers +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. +#------------------------------- +[SHELLBELL] +Name = Shell Bell +NamePlural = Shell Bells +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. +#------------------------------- +[MENTALHERB] +Name = Mental Herb +NamePlural = Mental Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. +#------------------------------- +[WHITEHERB] +Name = White Herb +NamePlural = White Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. +#------------------------------- +[POWERHERB] +Name = Power Herb +NamePlural = Power Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. +#------------------------------- +[ABSORBBULB] +Name = Absorb Bulb +NamePlural = Absorb Bulbs +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. +#------------------------------- +[CELLBATTERY] +Name = Cell Battery +NamePlural = Cell Batteries +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. +#------------------------------- +[LUMINOUSMOSS] +Name = Luminous Moss +NamePlural = Luminous Moss +PortionName = clump of Luminous Moss +PortionNamePlural = clumps of Luminous Moss +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Sp. Def if hit by a Water-type attack. It can only be used once. +#------------------------------- +[SNOWBALL] +Name = Snowball +NamePlural = Snowballs +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Attack if hit by an Ice-type attack. It can only be used once. +#------------------------------- +[WEAKNESSPOLICY] +Name = Weakness Policy +NamePlural = Weakness Policies +Pocket = HeldItems +Price = 1000 +BPPrice = 20 +Flags = Fling_80 +Description = An item to be held by a Pokémon. The holder's Attack and Sp. Atk sharply increase if hit by a move it's weak to. +#------------------------------- +[BLUNDERPOLICY] +Name = Blunder Policy +NamePlural = Blunder Policies +Pocket = HeldItems +Price = 4000 +BPPrice = 20 +Flags = Fling_80 +Description = Raises Speed sharply when a Pokémon misses with a move because of accuracy. +#------------------------------- +[THROATSPRAY] +Name = Throat Spray +NamePlural = Throat Sprays +PortionName = bottle of Throat Spray +PortionNamePlural = bottles of Throat Spray +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = Raises Sp. Atk when a Pokémon uses a sound-based move. +#------------------------------- +[ADRENALINEORB] +Name = Adrenaline Orb +NamePlural = Adrenaline Orbs +Pocket = HeldItems +Price = 300 +BPPrice = 10 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Speed when intimidated. It can be used only once. +#------------------------------- +[ROOMSERVICE] +Name = Room Service +NamePlural = Room Services +PortionName = voucher for Room Service +PortionNamePlural = vouchers for Room Service +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_100 +Description = An item to be held by a Pokémon. Lowers Speed when Trick Room takes effect. +#------------------------------- +[ELECTRICSEED] +Name = Electric Seed +NamePlural = Electric Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Defense on Electric Terrain. It can only be used once. +#------------------------------- +[GRASSYSEED] +Name = Grassy Seed +NamePlural = Grassy Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Defense on Grassy Terrain. It can only be used once. +#------------------------------- +[MISTYSEED] +Name = Misty Seed +NamePlural = Misty Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Sp. Def on Misty Terrain. It can only be used once. +#------------------------------- +[PSYCHICSEED] +Name = Psychic Seed +NamePlural = Psychic Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Sp. Def on Psychic Terrain. It can only be used once. +#------------------------------- +[LIFEORB] +Name = Life Orb +NamePlural = Life Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. +#------------------------------- +[EXPERTBELT] +Name = Expert Belt +NamePlural = Expert Belts +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. +#------------------------------- +[METRONOME] +Name = Metronome +NamePlural = Metronomes +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_30 +Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. +#------------------------------- +[MUSCLEBAND] +Name = Muscle Band +NamePlural = Muscle Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. +#------------------------------- +[WISEGLASSES] +Name = Wise Glasses +NamePlural = Wise Glasses +PortionName = pair of Wise Glasses +PortionNamePlural = pairs of Wise Glasses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. +#------------------------------- +[RAZORCLAW] +Name = Razor Claw +NamePlural = Razor Claws +Pocket = HeldItems +Price = 3000 +SellPrice = 2500 +BPPrice = 5 +Flags = Fling_80 +Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. +#------------------------------- +[SCOPELENS] +Name = Scope Lens +NamePlural = Scope Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. +#------------------------------- +[WIDELENS] +Name = Wide Lens +NamePlural = Wide Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. +#------------------------------- +[ZOOMLENS] +Name = Zoom Lens +NamePlural = Zoom Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. +#------------------------------- +[KINGSROCK] +Name = King's Rock +NamePlural = King's Rocks +Pocket = HeldItems +Price = 5000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. +#------------------------------- +[RAZORFANG] +Name = Razor Fang +NamePlural = Razor Fangs +Pocket = HeldItems +Price = 5000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. +#------------------------------- +[LAGGINGTAIL] +Name = Lagging Tail +NamePlural = Lagging Tails +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. +#------------------------------- +[QUICKCLAW] +Name = Quick Claw +NamePlural = Quick Claws +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_80 +Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. +#------------------------------- +[FOCUSBAND] +Name = Focus Band +NamePlural = Focus Bands +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. +#------------------------------- +[FOCUSSASH] +Name = Focus Sash +NamePlural = Focus Sashes +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. +#------------------------------- +[FLAMEORB] +Name = Flame Orb +NamePlural = Flame Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. +#------------------------------- +[TOXICORB] +Name = Toxic Orb +NamePlural = Toxic Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. +#------------------------------- +[STICKYBARB] +Name = Sticky Barb +NamePlural = Sticky Barbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_80 +Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. +#------------------------------- +[IRONBALL] +Name = Iron Ball +NamePlural = Iron Balls +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_130 +Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. +#------------------------------- +[RINGTARGET] +Name = Ring Target +NamePlural = Ring Targets +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 10 +Flags = Fling_10 +Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. +#------------------------------- +[MACHOBRACE] +Name = Macho Brace +NamePlural = Macho Braces +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_60 +Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. +#------------------------------- +[POWERWEIGHT] +Name = Power Weight +NamePlural = Power Weights +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBRACER] +Name = Power Bracer +NamePlural = Power Bracers +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBELT] +Name = Power Belt +NamePlural = Power Belts +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERLENS] +Name = Power Lens +NamePlural = Power Lenses +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBAND] +Name = Power Band +NamePlural = Power Bands +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERANKLET] +Name = Power Anklet +NamePlural = Power Anklets +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. +#------------------------------- +[LAXINCENSE] +Name = Lax Incense +NamePlural = Lax Incenses +PortionName = jar of Lax Incense +PortionNamePlural = jars of Lax Incense +Pocket = HeldItems +Price = 5000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. +#------------------------------- +[FULLINCENSE] +Name = Full Incense +NamePlural = Full Incenses +PortionName = jar of Full Incense +PortionNamePlural = jars of Full Incense +Pocket = HeldItems +Price = 5000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. +#------------------------------- +[LUCKINCENSE] +Name = Luck Incense +NamePlural = Luck Incenses +PortionName = jar of Luck Incense +PortionNamePlural = jars of Luck Incense +Pocket = HeldItems +Price = 11000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[PUREINCENSE] +Name = Pure Incense +NamePlural = Pure Incenses +PortionName = jar of Pure Incense +PortionNamePlural = jars of Pure Incense +Pocket = HeldItems +Price = 6000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[SEAINCENSE] +Name = Sea Incense +NamePlural = Sea Incenses +PortionName = jar of Sea Incense +PortionNamePlural = jars of Sea Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[WAVEINCENSE] +Name = Wave Incense +NamePlural = Wave Incenses +PortionName = jar of Wave Incense +PortionNamePlural = jars of Wave Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[ROSEINCENSE] +Name = Rose Incense +NamePlural = Rose Incenses +PortionName = jar of Rose Incense +PortionNamePlural = jars of Rose Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. +#------------------------------- +[ODDINCENSE] +Name = Odd Incense +NamePlural = Odd Incenses +PortionName = jar of Odd Incense +PortionNamePlural = jars of Odd Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. +#------------------------------- +[ROCKINCENSE] +Name = Rock Incense +NamePlural = Rock Incenses +PortionName = jar of Rock Incense +PortionNamePlural = jars of Rock Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. +#------------------------------- +[CHARCOAL] +Name = Charcoal +NamePlural = Charcoals +PortionName = piece of Charcoal +PortionNamePlural = pieces of Charcoal +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. +#------------------------------- +[MYSTICWATER] +Name = Mystic Water +NamePlural = Mystic Waters +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. +#------------------------------- +[MAGNET] +Name = Magnet +NamePlural = Magnets +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. +#------------------------------- +[MIRACLESEED] +Name = Miracle Seed +NamePlural = Miracle Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. +#------------------------------- +[NEVERMELTICE] +Name = Never-Melt Ice +NamePlural = Never-Melt Ices +PortionName = piece of Never-Melt Ice +PortionNamePlural = pieces of Never-Melt Ice +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. +#------------------------------- +[BLACKBELT] +Name = Black Belt +NamePlural = Black Belts +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. +#------------------------------- +[POISONBARB] +Name = Poison Barb +NamePlural = Poison Barbs +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. +#------------------------------- +[SOFTSAND] +Name = Soft Sand +NamePlural = Soft Sand +PortionName = bag of Soft Sand +PortionNamePlural = bags of Soft Sand +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. +#------------------------------- +[SHARPBEAK] +Name = Sharp Beak +NamePlural = Sharp Beaks +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_50 +Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. +#------------------------------- +[TWISTEDSPOON] +Name = Twisted Spoon +NamePlural = Twisted Spoons +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. +#------------------------------- +[SILVERPOWDER] +Name = Silver Powder +NamePlural = Silver Powders +PortionName = pile of Silver Powder +PortionNamePlural = piles of Silver Powder +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. +#------------------------------- +[HARDSTONE] +Name = Hard Stone +NamePlural = Hard Stones +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_100 +Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. +#------------------------------- +[SPELLTAG] +Name = Spell Tag +NamePlural = Spell Tags +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. +#------------------------------- +[DRAGONFANG] +Name = Dragon Fang +NamePlural = Dragon Fangs +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. +#------------------------------- +[BLACKGLASSES] +Name = Black Glasses +NamePlural = Black Glasses +PortionName = pair of Black Glasses +PortionNamePlural = pairs of Black Glasses +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. +#------------------------------- +[METALCOAT] +Name = Metal Coat +NamePlural = Metal Coats +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. +#------------------------------- +[SILKSCARF] +Name = Silk Scarf +NamePlural = Silk Scarves +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. +#------------------------------- +[FLAMEPLATE] +Name = Flame Plate +NamePlural = Flame Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. +#------------------------------- +[SPLASHPLATE] +Name = Splash Plate +NamePlural = Splash Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. +#------------------------------- +[ZAPPLATE] +Name = Zap Plate +NamePlural = Zap Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. +#------------------------------- +[MEADOWPLATE] +Name = Meadow Plate +NamePlural = Meadow Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. +#------------------------------- +[ICICLEPLATE] +Name = Icicle Plate +NamePlural = Icicle Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. +#------------------------------- +[FISTPLATE] +Name = Fist Plate +NamePlural = Fist Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. +#------------------------------- +[TOXICPLATE] +Name = Toxic Plate +NamePlural = Toxic Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. +#------------------------------- +[EARTHPLATE] +Name = Earth Plate +NamePlural = Earth Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. +#------------------------------- +[SKYPLATE] +Name = Sky Plate +NamePlural = Sky Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. +#------------------------------- +[MINDPLATE] +Name = Mind Plate +NamePlural = Mind Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. +#------------------------------- +[INSECTPLATE] +Name = Insect Plate +NamePlural = Insect Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. +#------------------------------- +[STONEPLATE] +Name = Stone Plate +NamePlural = Stone Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. +#------------------------------- +[SPOOKYPLATE] +Name = Spooky Plate +NamePlural = Spooky Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. +#------------------------------- +[DRACOPLATE] +Name = Draco Plate +NamePlural = Draco Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. +#------------------------------- +[DREADPLATE] +Name = Dread Plate +NamePlural = Dread Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. +#------------------------------- +[IRONPLATE] +Name = Iron Plate +NamePlural = Iron Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. +#------------------------------- +[PIXIEPLATE] +Name = Pixie Plate +NamePlural = Pixie Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fairy-type moves. +#------------------------------- +[FIREGEM] +Name = Fire Gem +NamePlural = Fire Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. +#------------------------------- +[WATERGEM] +Name = Water Gem +NamePlural = Water Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. +#------------------------------- +[ELECTRICGEM] +Name = Electric Gem +NamePlural = Electric Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. +#------------------------------- +[GRASSGEM] +Name = Grass Gem +NamePlural = Grass Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. +#------------------------------- +[ICEGEM] +Name = Ice Gem +NamePlural = Ice Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. +#------------------------------- +[FIGHTINGGEM] +Name = Fighting Gem +NamePlural = Fighting Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. +#------------------------------- +[POISONGEM] +Name = Poison Gem +NamePlural = Poison Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. +#------------------------------- +[GROUNDGEM] +Name = Ground Gem +NamePlural = Ground Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. +#------------------------------- +[FLYINGGEM] +Name = Flying Gem +NamePlural = Flying Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. +#------------------------------- +[PSYCHICGEM] +Name = Psychic Gem +NamePlural = Psychic Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. +#------------------------------- +[BUGGEM] +Name = Bug Gem +NamePlural = Bug Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. +#------------------------------- +[ROCKGEM] +Name = Rock Gem +NamePlural = Rock Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. +#------------------------------- +[GHOSTGEM] +Name = Ghost Gem +NamePlural = Ghost Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. +#------------------------------- +[DRAGONGEM] +Name = Dragon Gem +NamePlural = Dragon Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. +#------------------------------- +[DARKGEM] +Name = Dark Gem +NamePlural = Dark Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. +#------------------------------- +[STEELGEM] +Name = Steel Gem +NamePlural = Steel Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. +#------------------------------- +[FAIRYGEM] +Name = Fairy Gem +NamePlural = Fairy Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of the fey. When held, it strengthens the power of a Fairy-type move only once. +#------------------------------- +[NORMALGEM] +Name = Normal Gem +NamePlural = Normal Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. +#------------------------------- +[LIGHTBALL] +Name = Light Ball +NamePlural = Light Balls +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. +#------------------------------- +[LUCKYPUNCH] +Name = Lucky Punch +NamePlural = Lucky Punches +Pocket = HeldItems +Price = 1000 +BPPrice = 7 +Flags = Fling_40 +Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. +#------------------------------- +[METALPOWDER] +Name = Metal Powder +NamePlural = Metal Powders +PortionName = bag of Metal Powder +PortionNamePlural = bags of Metal Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. +#------------------------------- +[QUICKPOWDER] +Name = Quick Powder +NamePlural = Quick Powders +PortionName = bag of Quick Powder +PortionNamePlural = bags of Quick Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. +#------------------------------- +[THICKCLUB] +Name = Thick Club +NamePlural = Thick Clubs +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. +#------------------------------- +[LEEK] +Name = Leek +NamePlural = Leeks +Pocket = HeldItems +Price = 1000 +Flags = Fling_60 +Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. +#------------------------------- +[SOULDEW] +Name = Soul Dew +NamePlural = Soul Dews +Pocket = HeldItems +Price = 0 +Flags = Fling_30 +Description = A wondrous orb to be held by either Latios or Latias. It raises the power of Psychic- and Dragon-type moves. +#------------------------------- +[DEEPSEATOOTH] +Name = Deep Sea Tooth +NamePlural = Deep Sea Teeth +Pocket = HeldItems +Price = 2000 +BPPrice = 5 +Flags = Fling_90 +Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. +#------------------------------- +[DEEPSEASCALE] +Name = Deep Sea Scale +NamePlural = Deep Sea Scales +Pocket = HeldItems +Price = 2000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. +#------------------------------- +[ADAMANTORB] +Name = Adamant Orb +NamePlural = Adamant Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +Flags = Fling_60 +Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. +#------------------------------- +[LUSTROUSORB] +Name = Lustrous Orb +NamePlural = Lustrous Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +Flags = Fling_60 +Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. +#------------------------------- +[GRISEOUSORB] +Name = Griseous Orb +NamePlural = Griseous Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +Flags = Fling_60 +Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. +#------------------------------- +[ADAMANTCRYSTAL] +Name = Adamant Crystal +NamePlural = Adamant Crystals +Pocket = HeldItems +Price = 4000 +SellPrice = 0 +Flags = Fling_60 +Description = An item to be held by Dialga. This large, glowing gem wells with power and allows the Pokémon to change form. +#------------------------------- +[LUSTROUSGLOBE] +Name = Lustrous Globe +NamePlural = Lustrous Globes +Pocket = HeldItems +Price = 4000 +SellPrice = 0 +Flags = Fling_60 +Description = An item to be held by Palkia. This large, glowing orb wells with power and allows the Pokémon to change form. +#------------------------------- +[GRISEOUSCORE] +Name = Griseous Core +NamePlural = Griseous Cores +Pocket = HeldItems +Price = 4000 +SellPrice = 0 +Flags = Fling_60 +Description = An item to be held by Giratina. This large, glowing gem wells with power and allows the Pokémon to change form. +#------------------------------- +[RUSTEDSWORD] +Name = Rusted Sword +NamePlural = Rusted Swords +Pocket = HeldItems +Price = 0 +Description = It is said that a hero used this sword to halt a disaster in ancient times. But it's grown rusty and worn. +#------------------------------- +[RUSTEDSHIELD] +Name = Rusted Shield +NamePlural = Rusted Shields +Pocket = HeldItems +Price = 0 +Description = It is said that a hero used this shield to halt a disaster in ancient times. But it's grown rusty and worn. +#------------------------------- +[DOUSEDRIVE] +Name = Douse Drive +NamePlural = Douse Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. +#------------------------------- +[SHOCKDRIVE] +Name = Shock Drive +NamePlural = Shock Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. +#------------------------------- +[BURNDRIVE] +Name = Burn Drive +NamePlural = Burn Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. +#------------------------------- +[CHILLDRIVE] +Name = Chill Drive +NamePlural = Chill Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. +#------------------------------- +[FIREMEMORY] +Name = Fire Memory +NamePlural = Fire Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fire-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[WATERMEMORY] +Name = Water Memory +NamePlural = Water Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Water-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ELECTRICMEMORY] +Name = Electric Memory +NamePlural = Electric Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Electric-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GRASSMEMORY] +Name = Grass Memory +NamePlural = Grass Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Grass-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ICEMEMORY] +Name = Ice Memory +NamePlural = Ice Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ice-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FIGHTINGMEMORY] +Name = Fighting Memory +NamePlural = Fighting Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fighting-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[POISONMEMORY] +Name = Poison Memory +NamePlural = Poison Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Poison-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GROUNDMEMORY] +Name = Ground Memory +NamePlural = Ground Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ground-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FLYINGMEMORY] +Name = Flying Memory +NamePlural = Flying Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Flying-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[PSYCHICMEMORY] +Name = Psychic Memory +NamePlural = Psychic Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Psychic-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[BUGMEMORY] +Name = Bug Memory +NamePlural = Bug Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Bug-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ROCKMEMORY] +Name = Rock Memory +NamePlural = Rock Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Rock-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GHOSTMEMORY] +Name = Ghost Memory +NamePlural = Ghost Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ghost-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[DRAGONMEMORY] +Name = Dragon Memory +NamePlural = Dragon Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Dragon-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[DARKMEMORY] +Name = Dark Memory +NamePlural = Dark Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Dark-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[STEELMEMORY] +Name = Steel Memory +NamePlural = Steel Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Steel-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FAIRYMEMORY] +Name = Fairy Memory +NamePlural = Fairy Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fairy-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[EVERSTONE] +Name = Everstone +NamePlural = Everstones +Pocket = HeldItems +Price = 3000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. +#------------------------------- +[DRAGONSCALE] +Name = Dragon Scale +NamePlural = Dragon Scales +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_30 +Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. +#------------------------------- +[UPGRADE] +Name = Upgrade +NamePlural = Upgrades +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_30 +Description = A transparent device filled with all sorts of data. It was produced by Silph Co. +#------------------------------- +[DUBIOUSDISC] +Name = Dubious Disc +NamePlural = Dubious Discs +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_50 +Description = A transparent device overflowing with dubious data. Its producer is unknown. +#------------------------------- +[PROTECTOR] +Name = Protector +NamePlural = Protectors +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. +#------------------------------- +[ELECTIRIZER] +Name = Electirizer +NamePlural = Electirizers +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. +#------------------------------- +[MAGMARIZER] +Name = Magmarizer +NamePlural = Magmarizers +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. +#------------------------------- +[REAPERCLOTH] +Name = Reaper Cloth +NamePlural = Reaper Cloths +PortionName = scrap of Reaper Cloth +PortionNamePlural = scraps of Reaper Cloth +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_10 +Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. +#------------------------------- +[PRISMSCALE] +Name = Prism Scale +NamePlural = Prism Scales +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 10 +Flags = Fling_30 +Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. +#------------------------------- +[OVALSTONE] +Name = Oval Stone +NamePlural = Oval Stones +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. +#------------------------------- +[WHIPPEDDREAM] +Name = Whipped Dream +NamePlural = Whipped Dreams +PortionName = dollop of Whipped Dream +PortionNamePlural = dollops of Whipped Dream +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A soft and sweet treat made of fluffy, puffy and whirled cream. It's loved by a certain Pokémon. +#------------------------------- +[SACHET] +Name = Sachet +NamePlural = Sachets +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A sachet filled with slightly overwhelming fragrant perfumes. Yet it's loved by a certain Pokémon. +#------------------------------- +[STRAWBERRYSWEET] +Name = Strawberry Sweet +NamePlural = Strawberry Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A strawberry-shaped sweet. When a Milcery holds this, it will spin around happily. +#------------------------------- +[LOVESWEET] +Name = Love Sweet +NamePlural = Love Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A heart-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[BERRYSWEET] +Name = Berry Sweet +NamePlural = Berry Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A berry-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[CLOVERSWEET] +Name = Clover Sweet +NamePlural = Clover Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A clover-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[FLOWERSWEET] +Name = Flower Sweet +NamePlural = Flower Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A flower-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[STARSWEET] +Name = Star Sweet +NamePlural = Star Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A star-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[RIBBONSWEET] +Name = Ribbon Sweet +NamePlural = Ribbon Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A ribbon-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[VENUSAURITE] +Name = Venusaurite +NamePlural = Venusaurites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Venusaur hold it, and it will be able to Mega Evolve. +#------------------------------- +[CHARIZARDITEX] +Name = Charizardite X +NamePlural = Charizardite Xs +Pocket = MegaStones +Price = 0 +BPPrice = 50 +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. +#------------------------------- +[CHARIZARDITEY] +Name = Charizardite Y +NamePlural = Charizardite Ys +Pocket = MegaStones +Price = 0 +BPPrice = 50 +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. +#------------------------------- +[BLASTOISINITE] +Name = Blastoisinite +NamePlural = Blastoisinites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Blastoise hold it, and it will be able to Mega Evolve. +#------------------------------- +[BEEDRILLITE] +Name = Beedrillite +NamePlural = Beedrillites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Beedrill hold it, and it will be able to Mega Evolve. +#------------------------------- +[PIDGEOTITE] +Name = Pidgeotite +NamePlural = Pidgeotites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Pidgeot hold it, and it will be able to Mega Evolve. +#------------------------------- +[ALAKAZITE] +Name = Alakazite +NamePlural = Alakazites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Alakazam hold it, and it will be able to Mega Evolve. +#------------------------------- +[SLOWBRONITE] +Name = Slowbronite +NamePlural = Slowbronites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Slowbro hold it, and it will be able to Mega Evolve. +#------------------------------- +[GENGARITE] +Name = Gengarite +NamePlural = Gengarites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gengar hold it, and it will be able to Mega Evolve. +#------------------------------- +[KANGASKHANITE] +Name = Kangaskhanite +NamePlural = Kangaskhanites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Kangaskhan hold it, and it will be able to Mega Evolve. +#------------------------------- +[PINSIRITE] +Name = Pinsirite +NamePlural = Pinsirites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Pinsir hold it, and it will be able to Mega Evolve. +#------------------------------- +[GYARADOSITE] +Name = Gyaradosite +NamePlural = Gyaradosites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gyarados hold it, and it will be able to Mega Evolve. +#------------------------------- +[AERODACTYLITE] +Name = Aerodactylite +NamePlural = Aerodactylites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Aerodactyl hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEWTWONITEX] +Name = Mewtwonite X +NamePlural = Mewtwonite Xs +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEWTWONITEY] +Name = Mewtwonite Y +NamePlural = Mewtwonite Ys +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. +#------------------------------- +[AMPHAROSITE] +Name = Ampharosite +NamePlural = Ampharosites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Ampharos hold it, and it will be able to Mega Evolve. +#------------------------------- +[STEELIXITE] +Name = Steelixite +NamePlural = Steelixites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Steelix hold it, and it will be able to Mega Evolve. +#------------------------------- +[SCIZORITE] +Name = Scizorite +NamePlural = Scizorites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Scizor hold it, and it will be able to Mega Evolve. +#------------------------------- +[HERACRONITE] +Name = Heracronite +NamePlural = Heracronites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Heracross hold it, and it will be able to Mega Evolve. +#------------------------------- +[HOUNDOOMINITE] +Name = Houndoominite +NamePlural = Houndoominites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Houndoom hold it, and it will be able to Mega Evolve. +#------------------------------- +[TYRANITARITE] +Name = Tyranitarite +NamePlural = Tyranitarites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Tyranitar hold it, and it will be able to Mega Evolve. +#------------------------------- +[SCEPTILITE] +Name = Sceptilite +NamePlural = Sceptilites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sceptile hold it, and it will be able to Mega Evolve. +#------------------------------- +[BLAZIKENITE] +Name = Blazikenite +NamePlural = Blazikenites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Blaziken hold it, and it will be able to Mega Evolve. +#------------------------------- +[SWAMPERTITE] +Name = Swampertite +NamePlural = Swampertites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Swampert hold it, and it will be able to Mega Evolve. +#------------------------------- +[GARDEVOIRITE] +Name = Gardevoirite +NamePlural = Gardevoirites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gardevoir hold it, and it will be able to Mega Evolve. +#------------------------------- +[SABLENITE] +Name = Sablenite +NamePlural = Sablenites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sableye hold it, and it will be able to Mega Evolve. +#------------------------------- +[MAWILITE] +Name = Mawilite +NamePlural = Mawilites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mawile hold it, and it will be able to Mega Evolve. +#------------------------------- +[AGGRONITE] +Name = Aggronite +NamePlural = Aggronites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Aggron hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEDICHAMITE] +Name = Medichamite +NamePlural = Medichamites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Medicham hold it, and it will be able to Mega Evolve. +#------------------------------- +[MANECTITE] +Name = Manectite +NamePlural = Manectites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Manectric hold it, and it will be able to Mega Evolve. +#------------------------------- +[SHARPEDONITE] +Name = Sharpedonite +NamePlural = Sharpedonites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sharpedo hold it, and it will be able to Mega Evolve. +#------------------------------- +[CAMERUPTITE] +Name = Cameruptite +NamePlural = Cameruptites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Camerupt hold it, and it will be able to Mega Evolve. +#------------------------------- +[ALTARIANITE] +Name = Altarianite +NamePlural = Altarianites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Altaria hold it, and it will be able to Mega Evolve. +#------------------------------- +[BANETTITE] +Name = Banettite +NamePlural = Banettites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Banette hold it, and it will be able to Mega Evolve. +#------------------------------- +[ABSOLITE] +Name = Absolite +NamePlural = Absolites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Absol hold it, and it will be able to Mega Evolve. +#------------------------------- +[GLALITITE] +Name = Glalitite +NamePlural = Glalitites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Glalie hold it, and it will be able to Mega Evolve. +#------------------------------- +[SALAMENCITE] +Name = Salamencite +NamePlural = Salamencites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Salamence hold it, and it will be able to Mega Evolve. +#------------------------------- +[METAGROSSITE] +Name = Metagrossite +NamePlural = Metagrossites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Metagross hold it, and it will be able to Mega Evolve. +#------------------------------- +[LATIASITE] +Name = Latiasite +NamePlural = Latiasites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Latias hold it, and it will be able to Mega Evolve. +#------------------------------- +[LATIOSITE] +Name = Latiosite +NamePlural = Latiosites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Latios hold it, and it will be able to Mega Evolve. +#------------------------------- +[LOPUNNITE] +Name = Lopunnite +NamePlural = Lopunnites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Lopunny hold it, and it will be able to Mega Evolve. +#------------------------------- +[GARCHOMPITE] +Name = Garchompite +NamePlural = Garchompites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Garchomp hold it, and it will be able to Mega Evolve. +#------------------------------- +[LUCARIONITE] +Name = Lucarionite +NamePlural = Lucarionites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Lucario hold it, and it will be able to Mega Evolve. +#------------------------------- +[ABOMASITE] +Name = Abomasite +NamePlural = Abomasites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Abomasnow hold it, and it will be able to Mega Evolve. +#------------------------------- +[GALLADITE] +Name = Galladite +NamePlural = Galladites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gallade hold it, and it will be able to Mega Evolve. +#------------------------------- +[AUDINITE] +Name = Audinite +NamePlural = Audinites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Audino hold it, and it will be able to Mega Evolve. +#------------------------------- +[DIANCITE] +Name = Diancite +NamePlural = Diancites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Diancie hold it, and it will be able to Mega Evolve. +#------------------------------- +[REDORB] +Name = Red Orb +NamePlural = Red Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +BPPrice = 50 +Description = A shiny red orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. +#------------------------------- +[BLUEORB] +Name = Blue Orb +NamePlural = Blue Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +BPPrice = 50 +Description = A shiny blue orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. #------------------------------- [XATTACK] Name = X Attack NamePlural = X Attacks -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -5933,7 +4779,7 @@ Description = An item that sharply boosts the Attack stat of a Pokémon while it [XATTACK2] Name = X Attack 2 NamePlural = X Attack 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5942,7 +4788,7 @@ Description = It sharply raises the Attack stat of a Pokémon in battle. It wear [XATTACK3] Name = X Attack 3 NamePlural = X Attack 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5951,7 +4797,7 @@ Description = It drastically raises the Attack stat of a Pokémon in battle. It [XATTACK6] Name = X Attack 6 NamePlural = X Attack 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5960,7 +4806,7 @@ Description = It raises the Attack stat of a Pokémon in battle immensely. It we [XDEFENSE] Name = X Defense NamePlural = X Defenses -Pocket = 7 +Pocket = BattleItems Price = 2000 BattleUse = OnBattler Flags = Fling_30 @@ -5969,7 +4815,7 @@ Description = An item that sharply boosts the Defense of a Pokémon while it rem [XDEFENSE2] Name = X Defense 2 NamePlural = X Defense 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5978,7 +4824,7 @@ Description = It sharply raises the Defense stat of a Pokémon in battle. It wea [XDEFENSE3] Name = X Defense 3 NamePlural = X Defense 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5987,7 +4833,7 @@ Description = It drastically raises the Defense stat of a Pokémon in battle. It [XDEFENSE6] Name = X Defense 6 NamePlural = X Defense 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -5996,7 +4842,7 @@ Description = It raises the Defense stat of a Pokémon in battle immensely. It w [XSPATK] Name = X Sp. Atk NamePlural = X Sp. Atks -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6005,7 +4851,7 @@ Description = An item that sharply boosts the Sp. Atk stat of a Pokémon while i [XSPATK2] Name = X Sp. Atk 2 NamePlural = X Sp. Atk 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6014,7 +4860,7 @@ Description = It sharply raises the Sp. Atk stat of a Pokémon in battle. It wea [XSPATK3] Name = X Sp. Atk 3 NamePlural = X Sp. Atk 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6023,7 +4869,7 @@ Description = It drastically raises the Sp. Atk stat of a Pokémon in battle. It [XSPATK6] Name = X Sp. Atk 6 NamePlural = X Sp. Atk 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6032,7 +4878,7 @@ Description = It raises the Sp. Atk stat of a Pokémon in battle immensely. It w [XSPDEF] Name = X Sp. Def NamePlural = X Sp. Defs -Pocket = 7 +Pocket = BattleItems Price = 2000 BattleUse = OnBattler Flags = Fling_30 @@ -6041,7 +4887,7 @@ Description = An item that sharply boosts the Sp. Def stat of a Pokémon while i [XSPDEF2] Name = X Sp. Def 2 NamePlural = X Sp. Def 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6050,7 +4896,7 @@ Description = It sharply raises the Sp. Def stat of a Pokémon in battle. It wea [XSPDEF3] Name = X Sp. Def 3 NamePlural = X Sp. Def 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6059,7 +4905,7 @@ Description = It drastically raises the Sp. Def stat of a Pokémon in battle. It [XSPDEF6] Name = X Sp. Def 6 NamePlural = X Sp. Def 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6068,7 +4914,7 @@ Description = It raises the Sp. Def stat of a Pokémon in battle immensely. It w [XSPEED] Name = X Speed NamePlural = X Speeds -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6077,7 +4923,7 @@ Description = An item that sharply boosts the Speed stat of a Pokémon while it [XSPEED2] Name = X Speed 2 NamePlural = X Speed 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6086,7 +4932,7 @@ Description = It sharply raises the Speed stat of a Pokémon in battle. It wears [XSPEED3] Name = X Speed 3 NamePlural = X Speed 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6095,7 +4941,7 @@ Description = It drastically raises the Speed stat of a Pokémon in battle. It w [XSPEED6] Name = X Speed 6 NamePlural = X Speed 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6104,7 +4950,7 @@ Description = It raises the Speed stat of a Pokémon in battle immensely. It wea [XACCURACY] Name = X Accuracy NamePlural = X Accuracies -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6113,7 +4959,7 @@ Description = An item that sharply boosts the accuracy of a Pokémon while it re [XACCURACY2] Name = X Accuracy 2 NamePlural = X Accuracy 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6122,7 +4968,7 @@ Description = It sharply raises the accuracy of a Pokémon in battle. It wears o [XACCURACY3] Name = X Accuracy 3 NamePlural = X Accuracy 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6131,7 +4977,7 @@ Description = It drastically raises the accuracy of a Pokémon in battle. It wea [XACCURACY6] Name = X Accuracy 6 NamePlural = X Accuracy 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6142,7 +4988,7 @@ Name = Max Mushrooms NamePlural = Max Mushrooms PortionName = cluster of Max Mushrooms PortionNamePlural = clusters of Max Mushrooms -Pocket = 7 +Pocket = BattleItems Price = 8000 BattleUse = OnBattler Flags = Fling_30 @@ -6151,7 +4997,7 @@ Description = Mushrooms that boost all stats of a Pokémon during battle. [DIREHIT] Name = Dire Hit NamePlural = Dire Hits -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6160,7 +5006,7 @@ Description = An item that raises the critical-hit ratio greatly. It wears off i [DIREHIT2] Name = Dire Hit 2 NamePlural = Dire Hit 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6169,7 +5015,7 @@ Description = It sharply raises the critical-hit ratio. It wears off if the Pok [DIREHIT3] Name = Dire Hit 3 NamePlural = Dire Hit 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6178,7 +5024,7 @@ Description = It greatly raises the critical-hit ratio. It wears off if the Pok [GUARDSPEC] Name = Guard Spec. NamePlural = Guard Specs. -Pocket = 7 +Pocket = BattleItems Price = 1500 BattleUse = Direct Flags = Fling_30 @@ -6187,7 +5033,7 @@ Description = An item that prevents stat reduction among the Trainer's party Pok [RESETURGE] Name = Reset Urge NamePlural = Reset Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it restores any stat changes of an ally Pokémon. @@ -6195,7 +5041,7 @@ Description = When used, it restores any stat changes of an ally Pokémon. [ABILITYURGE] Name = Ability Urge NamePlural = Ability Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it activates the Ability of an ally Pokémon. @@ -6203,7 +5049,7 @@ Description = When used, it activates the Ability of an ally Pokémon. [ITEMURGE] Name = Item Urge NamePlural = Item Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it causes an ally Pokémon to use its held item. @@ -6211,7 +5057,7 @@ Description = When used, it causes an ally Pokémon to use its held item. [ITEMDROP] Name = Item Drop NamePlural = Item Drops -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it causes an ally Pokémon to drop a held item. @@ -6219,7 +5065,7 @@ Description = When used, it causes an ally Pokémon to drop a held item. [BLUEFLUTE] Name = Blue Flute NamePlural = Blue Flutes -Pocket = 7 +Pocket = BattleItems Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -6230,7 +5076,7 @@ Description = A blue flute made from blown glass. Its melody awakens a single Po [YELLOWFLUTE] Name = Yellow Flute NamePlural = Yellow Flutes -Pocket = 7 +Pocket = BattleItems Price = 20 BattleUse = OnBattler Flags = Fling_30 @@ -6240,7 +5086,7 @@ Description = A yellow flute made from blown glass. Its melody snaps a single Po [REDFLUTE] Name = Red Flute NamePlural = Red Flutes -Pocket = 7 +Pocket = BattleItems Price = 20 BattleUse = OnBattler Flags = Fling_30 @@ -6250,7 +5096,7 @@ Description = A red flute made from blown glass. Its melody snaps a single Poké [POKEDOLL] Name = Poké Doll NamePlural = Poké Dolls -Pocket = 7 +Pocket = BattleItems Price = 300 BattleUse = Direct Flags = Fling_30 @@ -6259,7 +5105,7 @@ Description = A doll that attracts Pokémon. Use it to flee from any battle with [FLUFFYTAIL] Name = Fluffy Tail NamePlural = Fluffy Tails -Pocket = 7 +Pocket = BattleItems Price = 300 BattleUse = Direct Flags = Fling_30 @@ -6268,16 +5114,1170 @@ Description = An item that attracts Pokémon. Use it to flee from any battle wit [POKETOY] Name = Poké Toy NamePlural = Poké Toys -Pocket = 7 +Pocket = BattleItems Price = 300 BattleUse = Direct Flags = Fling_30 Description = An item that attracts Pokémon. Use it to flee from any battle with a wild Pokémon. #------------------------------- +[TM01] +Name = TM01 +NamePlural = TM01s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_150 +Move = FOCUSPUNCH +Description = The user focuses its mind before launching a punch. This move fails if the user is hit before it is used. +#------------------------------- +[TM02] +Name = TM02 +NamePlural = TM02s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DRAGONCLAW +Description = The user slashes the target with huge sharp claws. +#------------------------------- +[TM03] +Name = TM03 +NamePlural = TM03s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = WATERPULSE +Description = The user attacks the target with a pulsing blast of water. This may also confuse the target. +#------------------------------- +[TM04] +Name = TM04 +NamePlural = TM04s +Pocket = Machines +Price = 1500 +BPPrice = 48 +FieldUse = TR +Flags = Fling_10 +Move = CALMMIND +Description = The user quietly focuses its mind and calms its spirit to raise its Sp. Atk and Sp. Def stats. +#------------------------------- +[TM05] +Name = TM05 +NamePlural = TM05s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ROAR +Description = The target is scared off, and a different Pokémon is dragged out. In the wild, this ends the battle. +#------------------------------- +[TM06] +Name = TM06 +NamePlural = TM06s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TOXIC +Description = A move that leaves the target badly poisoned. Its poison damage worsens every turn. +#------------------------------- +[TM07] +Name = TM07 +NamePlural = TM07s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = HAIL +Description = The user summons a hailstorm lasting five turns. It damages all Pokémon except Ice types. +#------------------------------- +[TM08] +Name = TM08 +NamePlural = TM08s +Pocket = Machines +Price = 1500 +BPPrice = 48 +FieldUse = TR +Flags = Fling_10 +Move = BULKUP +Description = The user tenses its muscles to bulk up its body, raising both its Attack and Defense stats. +#------------------------------- +[TM09] +Name = TM09 +NamePlural = TM09s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_25 +Move = BULLETSEED +Description = The user forcefully shoots seeds at the target two to five times in a row. +#------------------------------- +[TM10] +Name = TM10 +NamePlural = TM10s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = WORKUP +Description = The user is roused, and its Attack and Sp. Atk stats increase. +#------------------------------- +[TM11] +Name = TM11 +NamePlural = TM11s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SUNNYDAY +Description = The user intensifies the sun for five turns, powering up Fire-type moves and weakening Water-type moves. +#------------------------------- +[TM12] +Name = TM12 +NamePlural = TM12s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TAUNT +Description = The target is taunted into a rage that allows it to use only attack moves for three turns. +#------------------------------- +[TM13] +Name = TM13 +NamePlural = TM13s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = ICEBEAM +Description = The target is struck with an icy-cold beam of energy. This may also leave the target frozen. +#------------------------------- +[TM14] +Name = TM14 +NamePlural = TM14s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_110 +Move = BLIZZARD +Description = A howling blizzard is summoned to strike opposing Pokémon. This may also leave them frozen. +#------------------------------- +[TM15] +Name = TM15 +NamePlural = TM15s +Pocket = Machines +Price = 7500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_150 +Move = HYPERBEAM +Description = The target is attacked with a powerful beam. The user can't move on the next turn. +#------------------------------- +[TM16] +Name = TM16 +NamePlural = TM16s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = LIGHTSCREEN +Description = A wondrous wall of light is put up to reduce damage from special attacks for five turns. +#------------------------------- +[TM17] +Name = TM17 +NamePlural = TM17s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = PROTECT +Description = The user protects itself from all attacks. Its chance of failing rises if it is used in succession. +#------------------------------- +[TM18] +Name = TM18 +NamePlural = TM18s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = RAINDANCE +Description = The user summons a heavy rain for five turns, powering up Water-type moves and weakening Fire-type ones. +#------------------------------- +[TM19] +Name = TM19 +NamePlural = TM19s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_75 +Move = GIGADRAIN +Description = A nutrient-draining attack. The user's HP is restored by half the damage taken by the target. +#------------------------------- +[TM20] +Name = TM20 +NamePlural = TM20s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SAFEGUARD +Description = The user creates a protective field that prevents status conditions for five turns. +#------------------------------- +[TM21] +Name = TM21 +NamePlural = TM21s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DAZZLINGGLEAM +Description = The user damages opposing Pokémon by emitting a powerful flash. +#------------------------------- +[TM22] +Name = TM22 +NamePlural = TM22s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_120 +Move = SOLARBEAM +Description = In this two-turn attack, the user gathers light, then blasts a bundled beam on the next turn. +#------------------------------- +[TM23] +Name = TM23 +NamePlural = TM23s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_100 +Move = IRONTAIL +Description = The target is slammed with a steel-hard tail. This may also lower the target's Defense stat. +#------------------------------- +[TM24] +Name = TM24 +NamePlural = TM24s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = THUNDERBOLT +Description = A strong electric blast crashes down on the target. This may also leave the target with paralysis. +#------------------------------- +[TM25] +Name = TM25 +NamePlural = TM25s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_110 +Move = THUNDER +Description = A wicked thunderbolt is dropped on the target to inflict damage. This may also leave them with paralysis. +#------------------------------- +[TM26] +Name = TM26 +NamePlural = TM26s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_100 +Move = EARTHQUAKE +Description = The user sets off an earthquake that strikes every Pokémon around it. +#------------------------------- +[TM27] +Name = TM27 +NamePlural = TM27s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_65 +Move = LOWSWEEP +Description = The user makes a swift attack on the target's legs, which lowers the target's Speed stat. +#------------------------------- +[TM28] +Name = TM28 +NamePlural = TM28s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DIG +Description = The user burrows into the ground, then attacks on the next turn. It can also be used to exit dungeons. +#------------------------------- +[TM29] +Name = TM29 +NamePlural = TM29s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = PSYCHIC +Description = The target is hit by a strong telekinetic force. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM30] +Name = TM30 +NamePlural = TM30s +Pocket = Machines +Price = 3000 +BPPrice = 64 +FieldUse = TR +Flags = Fling_80 +Move = SHADOWBALL +Description = The user hurls a shadowy blob at the target. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM31] +Name = TM31 +NamePlural = TM31s +Pocket = Machines +Price = 3000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_75 +Move = BRICKBREAK +Description = The user attacks with a swift chop. It can also break barriers, such as Light Screen and Reflect. +#------------------------------- +[TM32] +Name = TM32 +NamePlural = TM32s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = DOUBLETEAM +Description = By moving rapidly, the user makes illusory copies of itself to raise its evasiveness. +#------------------------------- +[TM33] +Name = TM33 +NamePlural = TM33s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = REFLECT +Description = A wondrous wall of light is put up to reduce damage from physical attacks for five turns. +#------------------------------- +[TM34] +Name = TM34 +NamePlural = TM34s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = SHOCKWAVE +Description = The user strikes the target with a quick jolt of electricity. This attack never misses. +#------------------------------- +[TM35] +Name = TM35 +NamePlural = TM35s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = FLAMETHROWER +Description = The target is scorched with an intense blast of fire. This may also leave the target with a burn. +#------------------------------- +[TM36] +Name = TM36 +NamePlural = TM36s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_90 +Move = SLUDGEBOMB +Description = Unsanitary sludge is hurled at the target. This may also poison the target. +#------------------------------- +[TM37] +Name = TM37 +NamePlural = TM37s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SANDSTORM +Description = A five-turn sandstorm is summoned to hurt all combatants except Rock, Ground, and Steel types. +#------------------------------- +[TM38] +Name = TM38 +NamePlural = TM38s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_110 +Move = FIREBLAST +Description = The target is attacked with an intense blast of all-consuming fire. This may also leave them with a burn. +#------------------------------- +[TM39] +Name = TM39 +NamePlural = TM39s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = ROCKTOMB +Description = Boulders are hurled at the target. This also lowers the target's Speed stat by preventing its movement. +#------------------------------- +[TM40] +Name = TM40 +NamePlural = TM40s +Pocket = Machines +Price = 3000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_60 +Move = AERIALACE +Description = The user confounds the target with speed, then slashes. This attack never misses. +#------------------------------- +[TM41] +Name = TM41 +NamePlural = TM41s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TORMENT +Description = The user torments and enrages the target, making it incapable of using the same move twice in a row. +#------------------------------- +[TM42] +Name = TM42 +NamePlural = TM42s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = FACADE +Description = This attack move doubles its power if the user is poisoned, burned, or paralyzed. +#------------------------------- +[TM43] +Name = TM43 +NamePlural = TM43s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = VOLTSWITCH +Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. +#------------------------------- +[TM44] +Name = TM44 +NamePlural = TM44s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = REST +Description = The user goes to sleep for two turns. This fully restores the user's HP and heals any status conditions. +#------------------------------- +[TM45] +Name = TM45 +NamePlural = TM45s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ATTRACT +Description = If it is the opposite gender of the user, the target becomes infatuated and less likely to attack. +#------------------------------- +[TM46] +Name = TM46 +NamePlural = TM46s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = THIEF +Description = The user attacks and steals the target's held item simultaneously. +#------------------------------- +[TM47] +Name = TM47 +NamePlural = TM47s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = STEELWING +Description = The target is hit with wings of steel. This may also raise the user's Defense stat. +#------------------------------- +[TM48] +Name = TM48 +NamePlural = TM48s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SKILLSWAP +Description = The user employs its psychic power to exchange Abilities with the target. +#------------------------------- +[TM49] +Name = TM49 +NamePlural = TM49s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = SCALD +Description = The user shoots boiling hot water at its target. This may also leave the target with a burn. +#------------------------------- +[TM50] +Name = TM50 +NamePlural = TM50s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_130 +Move = OVERHEAT +Description = The user attacks the target at full power. The attack's recoil harshly lowers the user's Sp. Atk stat. +#------------------------------- +[TM51] +Name = TM51 +NamePlural = TM51s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ROOST +Description = The user lands and rests its body. This move restores the user's HP by up to half of its max HP. +#------------------------------- +[TM52] +Name = TM52 +NamePlural = TM52s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_120 +Move = FOCUSBLAST +Description = The user heightens its mental focus and unleashes its power. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM53] +Name = TM53 +NamePlural = TM53s +Pocket = Machines +Price = 3000 +BPPrice = 64 +FieldUse = TR +Flags = Fling_90 +Move = ENERGYBALL +Description = The user draws power from nature and fires it at the target. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM54] +Name = TM54 +NamePlural = TM54s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_40 +Move = FALSESWIPE +Description = A restrained attack that prevents the target from fainting. The target is left with at least 1 HP. +#------------------------------- +[TM55] +Name = TM55 +NamePlural = TM55s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_65 +Move = BRINE +Description = If the target's HP is half or less, this attack will hit with double the power. +#------------------------------- +[TM56] +Name = TM56 +NamePlural = TM56s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = FLING +Description = The user flings its held item at the target to attack. This move's power and effects depend on the item. +#------------------------------- +[TM57] +Name = TM57 +NamePlural = TM57s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_50 +Move = CHARGEBEAM +Description = The user attacks with an electric charge. The user may use any remaining charge to raise its Sp. Atk. +#------------------------------- +[TM58] +Name = TM58 +NamePlural = TM58s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ENDURE +Description = The user endures any attack with at least 1 HP. Its chance of failing rises if it is used in succession. +#------------------------------- +[TM59] +Name = TM59 +NamePlural = TM59s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_85 +Move = DRAGONPULSE +Description = The target is attacked with a shock wave generated by the user's gaping mouth. +#------------------------------- +[TM60] +Name = TM60 +NamePlural = TM60s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_75 +Move = DRAINPUNCH +Description = An energy-draining punch. The user's HP is restored by half the damage taken by the target. +#------------------------------- +[TM61] +Name = TM61 +NamePlural = TM61s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = WILLOWISP +Description = The user shoots a sinister flame at the target to inflict a burn. +#------------------------------- +[TM62] +Name = TM62 +NamePlural = TM62s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = BUGBUZZ +Description = The user generates a damaging sound wave by vibration. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM63] +Name = TM63 +NamePlural = TM63s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = NASTYPLOT +Description = The user stimulates its brain by thinking bad thoughts. This sharply raises the user's Sp. Atk stat. +#------------------------------- +[TM64] +Name = TM64 +NamePlural = TM64s +Pocket = Machines +Price = 7500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_250 +Move = EXPLOSION +Description = The user attacks everything around it by causing a tremendous explosion. The user faints upon using this move. +#------------------------------- +[TM65] +Name = TM65 +NamePlural = TM65s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = SHADOWCLAW +Description = The user slashes with a sharp claw made from shadows. Critical hits land more easily. +#------------------------------- +[TM66] +Name = TM66 +NamePlural = TM66s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_50 +Move = PAYBACK +Description = The user stores power, then attacks. If the user goes after the target, this attack's power doubles. +#------------------------------- +[TM67] +Name = TM67 +NamePlural = TM67s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = RECYCLE +Description = The user recycles a held item that has been used in battle so it can be used again. +#------------------------------- +[TM68] +Name = TM68 +NamePlural = TM68s +Pocket = Machines +Price = 7500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_150 +Move = GIGAIMPACT +Description = The user charges at the target using every bit of its power. The user can't move on the next turn. +#------------------------------- +[TM69] +Name = TM69 +NamePlural = TM69s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ROCKPOLISH +Description = The user polishes its body to reduce drag. This sharply raises the Speed stat. +#------------------------------- +[TM70] +Name = TM70 +NamePlural = TM70s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = FLASH +Description = The user flashes a light that lowers the target's accuracy. It can also be used to illuminate caves. +#------------------------------- +[TM71] +Name = TM71 +NamePlural = TM71s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_100 +Move = STONEEDGE +Description = The user stabs the target from below with sharpened stones. Critical hits land more easily. +#------------------------------- +[TM72] +Name = TM72 +NamePlural = TM72s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = AVALANCHE +Description = The power of this attack move is doubled if the user has been hurt by the target in the same turn. +#------------------------------- +[TM73] +Name = TM73 +NamePlural = TM73s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = THUNDERWAVE +Description = The user launches a weak jolt of electricity that paralyzes the target. +#------------------------------- +[TM74] +Name = TM74 +NamePlural = TM74s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = GYROBALL +Description = The user tackles with a high-speed spin. This move is stronger the slower the user is than the target. +#------------------------------- +[TM75] +Name = TM75 +NamePlural = TM75s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SWORDSDANCE +Description = A frenetic dance to uplift the fighting spirit. This sharply raises the user's Attack stat. +#------------------------------- +[TM76] +Name = TM76 +NamePlural = TM76s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = STEALTHROCK +Description = The user lays a trap of levitating stones around the opposing team that hurt Pokémon that switch in. +#------------------------------- +[TM77] +Name = TM77 +NamePlural = TM77s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = PSYCHUP +Description = The user hypnotizes itself into copying any stat change made by the target. +#------------------------------- +[TM78] +Name = TM78 +NamePlural = TM78s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_55 +Move = SNARL +Description = The user yells as if it's ranting about something, which lowers the Sp. Atk stats of opposing Pokémon. +#------------------------------- +[TM79] +Name = TM79 +NamePlural = TM79s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DARKPULSE +Description = The user releases a horrible aura imbued with dark thoughts. This may also make the target flinch. +#------------------------------- +[TM80] +Name = TM80 +NamePlural = TM80s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_75 +Move = ROCKSLIDE +Description = Large boulders are hurled at opposing Pokémon to inflict damage. This may also make them flinch. +#------------------------------- +[TM81] +Name = TM81 +NamePlural = TM81s +Pocket = Machines +Price = 3000 +BPPrice = 64 +FieldUse = TR +Flags = Fling_80 +Move = XSCISSOR +Description = The user slashes at the target by crossing its scythes or claws as if they were a pair of scissors. +#------------------------------- +[TM82] +Name = TM82 +NamePlural = TM82s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SLEEPTALK +Description = While it is asleep, the user randomly uses one of the moves it knows. +#------------------------------- +[TM83] +Name = TM83 +NamePlural = TM83s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = BULLDOZE +Description = The user strikes everything around it by stomping down on the ground. This lowers the Speed of those hit. +#------------------------------- +[TM84] +Name = TM84 +NamePlural = TM84s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = POISONJAB +Description = The target is stabbed with a tentacle, arm, or the like steeped in poison. This may also poison them. +#------------------------------- +[TM85] +Name = TM85 +NamePlural = TM85s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_100 +Move = DREAMEATER +Description = The user eats the dreams of a sleeping target. The user's HP is restored by half the damage dealt. +#------------------------------- +[TM86] +Name = TM86 +NamePlural = TM86s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = GRASSKNOT +Description = The user snares the target with grass and trips it. The heavier the target, the strong the move is. +#------------------------------- +[TM87] +Name = TM87 +NamePlural = TM87s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SWAGGER +Description = The user enrages and confuses the target. However, this also sharply raises the target's Attack stat. +#------------------------------- +[TM88] +Name = TM88 +NamePlural = TM88s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = PLUCK +Description = The user pecks the target. If the target is holding a Berry, the user eats it and gains its effect. +#------------------------------- +[TM89] +Name = TM89 +NamePlural = TM89s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = UTURN +Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. +#------------------------------- +[TM90] +Name = TM90 +NamePlural = TM90s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SUBSTITUTE +Description = The user creates a substitute for itself using some of its HP. The substitute serves as a decoy. +#------------------------------- +[TM91] +Name = TM91 +NamePlural = TM91s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = FLASHCANNON +Description = The user gathers all its light energy and releases it all at once. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM92] +Name = TM92 +NamePlural = TM92s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TRICKROOM +Description = The user creates a bizarre area in which slower Pokémon get to move first for five turns. +#------------------------------- +[TM93] +Name = TM93 +NamePlural = TM93s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_50 +Move = CUT +Description = The target is cut with a scythe or claw. +#------------------------------- +[TM94] +Name = TM94 +NamePlural = TM94s +Pocket = Machines +Price = 2000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_90 +Move = FLY +Description = The user flies up into the sky and then strikes its target on the next turn. +#------------------------------- +[TM95] +Name = TM95 +NamePlural = TM95s +Pocket = Machines +Price = 2500 +BPPrice = 64 +FieldUse = TR +Flags = Fling_90 +Move = SURF +Description = The user attacks everything around it by swamping its surroundings with a giant wave. +#------------------------------- +[TM96] +Name = TM96 +NamePlural = TM96s +Pocket = Machines +Price = 2000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_80 +Move = STRENGTH +Description = The target is slugged with a punch thrown at maximum power. +#------------------------------- +[TM97] +Name = TM97 +NamePlural = TM97s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = DEFOG +Description = A strong wind blows away the target's barriers, such as Reflect, and lowers their evasiveness. +#------------------------------- +[TM98] +Name = TM98 +NamePlural = TM98s +Pocket = Machines +Price = 2000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_40 +Move = ROCKSMASH +Description = The user attacks with a punch that may lower the target's Defense stat. +#------------------------------- +[TM99] +Name = TM99 +NamePlural = TM99s +Pocket = Machines +Price = 2500 +BPPrice = 64 +FieldUse = TR +Flags = Fling_80 +Move = WATERFALL +Description = The user charges at the target and may make it flinch. +#------------------------------- +[TM100] +Name = TM100 +NamePlural = TM100s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = ROCKCLIMB +Description = A charging attack that may also leave the foe confused. +#------------------------------- +[HM01] +Name = HM01 +NamePlural = HM01s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = CUT +Description = The target is cut with a scythe or claw. This can also be used to cut down thin trees. +#------------------------------- +[HM02] +Name = HM02 +NamePlural = HM02s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = FLY +Description = The user soars and then strikes on the next turn. This can also be used to fly to any familiar town. +#------------------------------- +[HM03] +Name = HM03 +NamePlural = HM03s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = SURF +Description = Attacks everything by swamping the surroundings with a giant wave. This can also be used to cross water. +#------------------------------- +[HM04] +Name = HM04 +NamePlural = HM04s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = STRENGTH +Description = The target is slugged with a punch thrown at maximum power. This can also be used to move heavy boulders. +#------------------------------- +[HM05] +Name = HM05 +NamePlural = HM05s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = WATERFALL +Description = The user charges at the target and may make it flinch. It can also be used to climb a waterfall. +#------------------------------- +[HM06] +Name = HM06 +NamePlural = HM06s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = DIVE +Description = The user dives on the first turn, and floats up and attacks on the next. It can be used to dive underwater. +#------------------------------- [BICYCLE] Name = Bicycle NamePlural = Bicycles -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6286,7 +6286,7 @@ Description = A folding Bicycle that enables much faster movement than the Runni [OLDROD] Name = Old Rod NamePlural = Old Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6295,7 +6295,7 @@ Description = An old and beat-up fishing rod. Use it by any body of water to fis [GOODROD] Name = Good Rod NamePlural = Good Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6304,7 +6304,7 @@ Description = A new, good-quality fishing rod. Use it by any body of water to fi [SUPERROD] Name = Super Rod NamePlural = Super Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6313,7 +6313,7 @@ Description = An awesome, high-tech fishing rod. Use it by any body of water to [ITEMFINDER] Name = Itemfinder NamePlural = Itemfinders -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6322,7 +6322,7 @@ Description = A device used for finding items. If there is a hidden item nearby [DOWSINGMACHINE] Name = Dowsing Machine NamePlural = Dowsing Machines -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6331,7 +6331,7 @@ Description = It checks for unseen items in the area and makes noise and lights [POKERADAR] Name = Poké Radar NamePlural = Poké Radars -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6340,7 +6340,7 @@ Description = A tool that can search out Pokémon that are hiding in grass. Its [TOWNMAP] Name = Town Map NamePlural = Town Maps -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6349,7 +6349,7 @@ Description = A very convenient map that can be viewed anytime. It even shows yo [ESCAPEROPE] Name = Escape Rope NamePlural = Escape Ropes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6358,7 +6358,7 @@ Description = A long, durable rope. Use it to escape instantly from a cave or a [COINCASE] Name = Coin Case NamePlural = Coin Cases -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6367,7 +6367,7 @@ Description = A case for holding coins obtained at the Game Corner. It holds up [POKEFLUTE] Name = Poké Flute NamePlural = Poké Flutes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon BattleUse = Direct @@ -6377,7 +6377,7 @@ Description = A flute that is said to instantly awaken any Pokémon. It has a lo [SOOTSACK] Name = Soot Sack NamePlural = Soot Sacks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A sack used to gather and hold volcanic ash. @@ -6385,7 +6385,7 @@ Description = A sack used to gather and hold volcanic ash. [SILPHSCOPE] Name = Silph Scope NamePlural = Silph Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A scope that makes unseeable Pokémon visible. It is made by Silph Co. @@ -6393,7 +6393,7 @@ Description = A scope that makes unseeable Pokémon visible. It is made by Silph [DEVONSCOPE] Name = Devon Scope NamePlural = Devon Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A device by Devon that signals any unseeable Pokémon. @@ -6401,7 +6401,7 @@ Description = A device by Devon that signals any unseeable Pokémon. [SQUIRTBOTTLE] Name = Squirt Bottle NamePlural = Squirt Bottles -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Squirtle. It helps promote healthy growth of Berries planted in soft soil. @@ -6409,7 +6409,7 @@ Description = A watering can shaped like a Squirtle. It helps promote healthy gr [SPRAYDUCK] Name = Sprayduck NamePlural = Sprayducks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Psyduck. It helps promote healthy growth of Berries planted in soft soil. @@ -6417,7 +6417,7 @@ Description = A watering can shaped like a Psyduck. It helps promote healthy gro [WAILMERPAIL] Name = Wailmer Pail NamePlural = Wailmer Pails -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A nifty watering pail. Use it to promote strong growth in Berries planted in soft soil. @@ -6425,7 +6425,7 @@ Description = A nifty watering pail. Use it to promote strong growth in Berries [SPRINKLOTAD] Name = Sprinklotad NamePlural = Sprinklotads -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Lotad. It helps promote the healthy growth of any Berries planted in soft soil. @@ -6433,7 +6433,7 @@ Description = A watering can shaped like a Lotad. It helps promote the healthy g [GRACIDEA] Name = Gracidea NamePlural = Gracideas -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6442,7 +6442,7 @@ Description = A flower sometimes bundled in bouquets to convey gratitude on spec [REVEALGLASS] Name = Reveal Glass NamePlural = Reveal Glasses -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6451,7 +6451,7 @@ Description = A glass that reveals the truth. It is a mysterious glass that retu [PRISONBOTTLE] Name = Prison Bottle NamePlural = Prison Bottles -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6460,7 +6460,7 @@ Description = A bottle believed to have been used to seal away the power of a ce [ROTOMCATALOG] Name = Rotom Catalog NamePlural = Rotom Catalogs -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6469,7 +6469,7 @@ Description = A catalog of devices that Rotom like. Use the catalog to have Roto [ZYGARDECUBE] Name = Zygarde Cube NamePlural = Zygarde Cubes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6478,7 +6478,7 @@ Description = An item in which Zygarde Cores and Cells are gathered. You can als [DNASPLICERS] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6487,7 +6487,7 @@ Description = A splicer that fuses Kyurem and a certain Pokémon. They are said [DNASPLICERSUSED] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6496,7 +6496,7 @@ Description = A splicer that separates Kyurem and a certain Pokémon when they h [NSOLARIZER] Name = N-Solarizer NamePlural = N-Solarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6505,7 +6505,7 @@ Description = A machine to fuse Necrozma, which needs light, and Solgaleo. [NSOLARIZERUSED] Name = N-Solarizer NamePlural = N-Solarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6514,7 +6514,7 @@ Description = A machine to separate Necrozma, which needed light, from Solgaleo. [NLUNARIZER] Name = N-Lunarizer NamePlural = N-Lunarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6523,7 +6523,7 @@ Description = A machine to fuse Necrozma, which needs light, and Lunala. [NLUNARIZERUSED] Name = N-Lunarizer NamePlural = N-Lunarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6534,7 +6534,7 @@ Name = Reins of Unity NamePlural = Reins of Unity PortionName = set of Reins of Unity PortionNamePlural = sets of Reins of Unity -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6545,7 +6545,7 @@ Name = Reins of Unity NamePlural = Reins of Unity PortionName = set of Reins of Unity PortionNamePlural = sets of Reins of Unity -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6554,7 +6554,7 @@ Description = Reins that people presented to the king. They separate Calyrex and [OVALCHARM] Name = Oval Charm NamePlural = Oval Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = An oval charm said to increase the chance of Eggs being found at the Day Care. @@ -6562,7 +6562,7 @@ Description = An oval charm said to increase the chance of Eggs being found at t [SHINYCHARM] Name = Shiny Charm NamePlural = Shiny Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A shiny charm said to increase the chance of finding a Shiny Pokémon. @@ -6570,7 +6570,7 @@ Description = A shiny charm said to increase the chance of finding a Shiny Poké [CATCHINGCHARM] Name = Catching Charm NamePlural = Catching Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A charm said to increase the chance of getting a critical catch. The charm doesn't shake much. @@ -6578,7 +6578,7 @@ Description = A charm said to increase the chance of getting a critical catch. T [EXPCHARM] Name = Exp. Charm NamePlural = Exp. Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A charm that increases the Exp. Points that Pokémon can get. A machine-like object is inside it. @@ -6586,7 +6586,7 @@ Description = A charm that increases the Exp. Points that Pokémon can get. A ma [MEGARING] Name = Mega Ring NamePlural = Mega Rings -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem,MegaRing Description = This ring contains an untold power that somehow enables Pokémon carrying Mega Stones to Mega Evolve. @@ -6594,7 +6594,7 @@ Description = This ring contains an untold power that somehow enables Pokémon c [POKEMONBOXLINK] Name = Pokémon Box Link NamePlural = Pokémon Box Links -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A device that allows you to access the Pokémon storage system. There are some places where it won't work. @@ -6602,7 +6602,7 @@ Description = A device that allows you to access the Pokémon storage system. Th [AURORATICKET] Name = Aurora Ticket NamePlural = Aurora Tickets -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A ticket required to board the ship to Berth Island. It glows beautifully. @@ -6610,7 +6610,7 @@ Description = A ticket required to board the ship to Berth Island. It glows beau [OLDSEAMAP] Name = Old Sea Map NamePlural = Old Sea Maps -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A faded sea chart that shows the way to a certain island. diff --git a/PBS/Gen 9 backup/items.txt b/PBS/Gen 9 backup/items.txt index cd245a85e..7ca3d893c 100644 --- a/PBS/Gen 9 backup/items.txt +++ b/PBS/Gen 9 backup/items.txt @@ -3,7 +3,7 @@ [REPEL] Name = Repel NamePlural = Repels -Pocket = 1 +Pocket = Items Price = 400 FieldUse = Direct Flags = Repel,Fling_30 @@ -12,7 +12,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 100 st [SUPERREPEL] Name = Super Repel NamePlural = Super Repels -Pocket = 1 +Pocket = Items Price = 700 FieldUse = Direct Flags = Repel,Fling_30 @@ -21,7 +21,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 200 st [MAXREPEL] Name = Max Repel NamePlural = Max Repels -Pocket = 1 +Pocket = Items Price = 900 FieldUse = Direct Flags = Repel,Fling_30 @@ -30,7 +30,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 250 st [BLACKFLUTE] Name = Black Flute NamePlural = Black Flutes -Pocket = 1 +Pocket = Items Price = 20 FieldUse = Direct Flags = Fling_30 @@ -40,7 +40,7 @@ Description = A black flute made from blown glass. Its melody makes wild Pokémo [WHITEFLUTE] Name = White Flute NamePlural = White Flutes -Pocket = 1 +Pocket = Items Price = 20 FieldUse = Direct Flags = Fling_30 @@ -52,7 +52,7 @@ Name = Honey NamePlural = Honey PortionName = jar of Honey PortionNamePlural = jars of Honey -Pocket = 1 +Pocket = Items Price = 900 FieldUse = Direct Flags = Fling_30 @@ -61,7 +61,7 @@ Description = A sweet honey with a lush aroma that attracts wild Pokémon when u [REDSHARD] Name = Red Shard NamePlural = Red Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small red shard. It appears to be from some sort of implement made long ago. @@ -69,7 +69,7 @@ Description = A small red shard. It appears to be from some sort of implement ma [YELLOWSHARD] Name = Yellow Shard NamePlural = Yellow Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small yellow shard. It appears to be from some sort of implement made long ago. @@ -77,7 +77,7 @@ Description = A small yellow shard. It appears to be from some sort of implement [BLUESHARD] Name = Blue Shard NamePlural = Blue Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small blue shard. It appears to be from some sort of implement made long ago. @@ -85,7 +85,7 @@ Description = A small blue shard. It appears to be from some sort of implement m [GREENSHARD] Name = Green Shard NamePlural = Green Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small green shard. It appears to be from some sort of implement made long ago. @@ -93,7 +93,7 @@ Description = A small green shard. It appears to be from some sort of implement [FIRESTONE] Name = Fire Stone NamePlural = Fire Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -103,7 +103,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [THUNDERSTONE] Name = Thunder Stone NamePlural = Thunder Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -113,7 +113,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [WATERSTONE] Name = Water Stone NamePlural = Water Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -123,7 +123,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [LEAFSTONE] Name = Leaf Stone NamePlural = Leaf Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -133,7 +133,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [MOONSTONE] Name = Moon Stone NamePlural = Moon Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -143,7 +143,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SUNSTONE] Name = Sun Stone NamePlural = Sun Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -153,7 +153,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DUSKSTONE] Name = Dusk Stone NamePlural = Dusk Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -163,7 +163,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DAWNSTONE] Name = Dawn Stone NamePlural = Dawn Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -173,7 +173,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SHINYSTONE] Name = Shiny Stone NamePlural = Shiny Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -183,7 +183,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [ICESTONE] Name = Ice Stone NamePlural = Ice Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -193,7 +193,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SWEETAPPLE] Name = Sweet Apple NamePlural = Sweet Apples -Pocket = 1 +Pocket = Items Price = 2200 BPPrice = 5 FieldUse = OnPokemon @@ -203,7 +203,7 @@ Description = A peculiar apple that can make a certain species of Pokémon evolv [TARTAPPLE] Name = Tart Apple NamePlural = Tart Apples -Pocket = 1 +Pocket = Items Price = 2200 BPPrice = 5 FieldUse = OnPokemon @@ -213,7 +213,7 @@ Description = A peculiar apple that can make a certain species of Pokémon evolv [CRACKEDPOT] Name = Cracked Pot NamePlural = Cracked Pots -Pocket = 1 +Pocket = Items Price = 3000 SellPrice = 800 BPPrice = 5 @@ -224,7 +224,7 @@ Description = A peculiar cracked teapot that can make a certain species of Poké [CHIPPEDPOT] Name = Chipped Pot NamePlural = Chipped Pots -Pocket = 1 +Pocket = Items Price = 3000 SellPrice = 19000 BPPrice = 5 @@ -235,7 +235,7 @@ Description = A peculiar chipped teapot that can make a certain species of Poké [GALARICACUFF] Name = Galarica Cuff NamePlural = Galarica Cuffs -Pocket = 1 +Pocket = Items Price = 6000 BPPrice = 5 FieldUse = OnPokemon @@ -245,7 +245,7 @@ Description = A cuff made from woven-together Galarica Twigs. Giving it to a Gal [GALARICAWREATH] Name = Galarica Wreath NamePlural = Galarica Wreaths -Pocket = 1 +Pocket = Items Price = 6000 BPPrice = 5 FieldUse = OnPokemon @@ -257,7 +257,7 @@ Name = Black Augurite NamePlural = Black Augurites PortionName = piece of Black Augurite PortionNamePlural = pieces of Black Augurite -Pocket = 1 +Pocket = Items Price = 8000 SellPrice = 500 BPPrice = 5 @@ -268,7 +268,7 @@ Description = A glassy black stone that produces a sharp cutting edge when split [PEATBLOCK] Name = Peat Block NamePlural = Peat Blocks -Pocket = 1 +Pocket = Items Price = 10000 SellPrice = 500 BPPrice = 5 @@ -279,7 +279,7 @@ Description = A block of muddy material that can be used as fuel when it is drie [SYRUPYAPPLE] Name = Syrupy Apple NamePlural = Syrupy Apples -Pocket = 1 +Pocket = Items Price = 500 SellPrice = 550 BPPrice = 5 @@ -290,7 +290,7 @@ Description = A peculiar apple that can make a certain species of Pokémon evolv [UNREMARKABLETEACUP] Name = Unremarkable Teacup NamePlural = Unremarkable Teacups -Pocket = 1 +Pocket = Items Price = 1600 BPPrice = 5 FieldUse = OnPokemon @@ -300,7 +300,7 @@ Description = A peculiar cracked teacup that can make a certain species of Poké [MASTERPIECETEACUP] Name = Masterpiece Teacup NamePlural = Masterpiece Teacups -Pocket = 1 +Pocket = Items Price = 38000 BPPrice = 5 FieldUse = OnPokemon @@ -312,7 +312,7 @@ Name = Metal Alloy NamePlural = Metal Alloys PortionName = hunk of Metal Alloy PortionNamePlural = hunks of Metal Alloy -Pocket = 1 +Pocket = Items Price = 6000 BPPrice = 5 FieldUse = OnPokemon @@ -324,7 +324,7 @@ Name = Malicious Armor NamePlural = Malicious Armors PortionName = set of Malicious Armor PortionNamePlural = sets of Malicious Armor -Pocket = 1 +Pocket = Items Price = 3000 FieldUse = OnPokemon Flags = EvolutionStone,Fling_30 @@ -335,16 +335,16 @@ Name = Auspicious Armor NamePlural = Auspicious Armors PortionName = set of Auspicious Armor PortionNamePlural = sets of Auspicious Armor -Pocket = 1 +Pocket = Items Price = 3000 FieldUse = OnPokemon Flags = EvolutionStone,Fling_30 -Description = A peculiar set of armor that can make a certain species of Pokémon evolve. Auspicious wishes live within it. +Description = A peculiar set of armor that can make a certain species of Pokémon evolve. Auspicious wishes live in it. #------------------------------- [REDAPRICORN] Name = Red Apricorn NamePlural = Red Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A red Apricorn. It assails your nostrils. @@ -352,7 +352,7 @@ Description = A red Apricorn. It assails your nostrils. [YELLOWAPRICORN] Name = Yellow Apricorn NamePlural = Yellow Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A yellow Apricorn. It has an invigorating scent. @@ -360,7 +360,7 @@ Description = A yellow Apricorn. It has an invigorating scent. [BLUEAPRICORN] Name = Blue Apricorn NamePlural = Blue Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A blue Apricorn. It smells a bit like grass. @@ -368,7 +368,7 @@ Description = A blue Apricorn. It smells a bit like grass. [GREENAPRICORN] Name = Green Apricorn NamePlural = Green Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A green Apricorn. It has a mysterious, aromatic scent. @@ -376,7 +376,7 @@ Description = A green Apricorn. It has a mysterious, aromatic scent. [PINKAPRICORN] Name = Pink Apricorn NamePlural = Pink Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A pink Apricorn. It has a nice, sweet scent. @@ -384,7 +384,7 @@ Description = A pink Apricorn. It has a nice, sweet scent. [WHITEAPRICORN] Name = White Apricorn NamePlural = White Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A white Apricorn. It doesn't smell like anything. @@ -392,7 +392,7 @@ Description = A white Apricorn. It doesn't smell like anything. [BLACKAPRICORN] Name = Black Apricorn NamePlural = Black Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A black Apricorn. It has an indescribable scent. @@ -400,7 +400,7 @@ Description = A black Apricorn. It has an indescribable scent. [HELIXFOSSIL] Name = Helix Fossil NamePlural = Helix Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a seashell. @@ -408,7 +408,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [DOMEFOSSIL] Name = Dome Fossil NamePlural = Dome Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a shell. @@ -416,7 +416,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [OLDAMBER] Name = Old Amber NamePlural = Old Ambers -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A piece of amber that contains the genes of an ancient Pokémon. It is clear with a reddish tint. @@ -424,7 +424,7 @@ Description = A piece of amber that contains the genes of an ancient Pokémon. I [ROOTFOSSIL] Name = Root Fossil NamePlural = Root Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a plant root. @@ -432,7 +432,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [CLAWFOSSIL] Name = Claw Fossil NamePlural = Claw Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a claw. @@ -440,7 +440,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [SKULLFOSSIL] Name = Skull Fossil NamePlural = Skull Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a head. @@ -448,7 +448,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [ARMORFOSSIL] Name = Armor Fossil NamePlural = Armor Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a collar. @@ -456,7 +456,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [COVERFOSSIL] Name = Cover Fossil NamePlural = Cover Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea in ancient times. It appears to be part of its back. @@ -464,7 +464,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea in ancient t [PLUMEFOSSIL] Name = Plume Fossil NamePlural = Plume Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that flew in the sky in ancient times. It appears to be part of its wing. @@ -472,7 +472,7 @@ Description = A fossil of an ancient Pokémon that flew in the sky in ancient ti [JAWFOSSIL] Name = Jaw Fossil NamePlural = Jaw Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that once lived on the land. It appears to be part of a large jaw. @@ -480,7 +480,7 @@ Description = A fossil from a prehistoric Pokémon that once lived on the land. [SAILFOSSIL] Name = Sail Fossil NamePlural = Sail Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that once lived on the land. It looks like the impression from a skin sail. @@ -488,7 +488,7 @@ Description = A fossil from a prehistoric Pokémon that once lived on the land. [FOSSILIZEDBIRD] Name = Fossilized Bird NamePlural = Fossilized Birds -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once soared through the sky. What it looked like is a mystery. @@ -496,7 +496,7 @@ Description = The fossil of an ancient Pokémon that once soared through the sky [FOSSILIZEDFISH] Name = Fossilized Fish NamePlural = Fossilized Fish -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once lived in the sea. What it looked like is a mystery. @@ -504,7 +504,7 @@ Description = The fossil of an ancient Pokémon that once lived in the sea. What [FOSSILIZEDDRAKE] Name = Fossilized Drake NamePlural = Fossilized Drakes -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once roamed the land. What it looked like is a mystery. @@ -512,7 +512,7 @@ Description = The fossil of an ancient Pokémon that once roamed the land. What [FOSSILIZEDDINO] Name = Fossilized Dino NamePlural = Fossilized Dinos -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once lived in the sea. What it looked like is a mystery. @@ -520,7 +520,7 @@ Description = The fossil of an ancient Pokémon that once lived in the sea. What [PRETTYFEATHER] Name = Pretty Feather NamePlural = Pretty Feathers -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_20 Description = Though this feather is beautiful, it's just a regular feather and has no effect on Pokémon. @@ -528,7 +528,7 @@ Description = Though this feather is beautiful, it's just a regular feather and [TINYMUSHROOM] Name = Tiny Mushroom NamePlural = Tiny Mushrooms -Pocket = 1 +Pocket = Items Price = 500 Flags = Fling_30 Description = A small and rare mushroom. It is sought after by collectors. @@ -536,7 +536,7 @@ Description = A small and rare mushroom. It is sought after by collectors. [BIGMUSHROOM] Name = Big Mushroom NamePlural = Big Mushrooms -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_30 Description = A large and rare mushroom. It is sought after by collectors. @@ -544,7 +544,7 @@ Description = A large and rare mushroom. It is sought after by collectors. [BALMMUSHROOM] Name = Balm Mushroom NamePlural = Balm Mushrooms -Pocket = 1 +Pocket = Items Price = 15000 Flags = Fling_30 Description = A rare mushroom which gives off a nice fragrance. A maniac will buy it for a high price. @@ -552,7 +552,7 @@ Description = A rare mushroom which gives off a nice fragrance. A maniac will bu [PEARL] Name = Pearl NamePlural = Pearls -Pocket = 1 +Pocket = Items Price = 2000 Flags = Fling_30 Description = A somewhat-small pearl that sparkles in a pretty silver color. It can be sold cheaply to shops. @@ -560,7 +560,7 @@ Description = A somewhat-small pearl that sparkles in a pretty silver color. It [BIGPEARL] Name = Big Pearl NamePlural = Big Pearls -Pocket = 1 +Pocket = Items Price = 8000 Flags = Fling_30 Description = A quite-large pearl that sparkles in a pretty silver color. It can be sold at a high price to shops. @@ -568,7 +568,7 @@ Description = A quite-large pearl that sparkles in a pretty silver color. It can [PEARLSTRING] Name = Pearl String NamePlural = Pearl Strings -Pocket = 1 +Pocket = Items Price = 20000 Flags = Fling_30 Description = Very large pearls that sparkle in a pretty silver color. A maniac will buy them for a high price. @@ -578,7 +578,7 @@ Name = Stardust NamePlural = Stardusts PortionName = bag of Stardust PortionNamePlural = bags of Stardust -Pocket = 1 +Pocket = Items Price = 3000 Flags = Fling_30 Description = Lovely, red-colored sand with a loose, silky feel. It can be sold at a high price to shops. @@ -586,7 +586,7 @@ Description = Lovely, red-colored sand with a loose, silky feel. It can be sold [STARPIECE] Name = Star Piece NamePlural = Star Pieces -Pocket = 1 +Pocket = Items Price = 12000 Flags = Fling_30 Description = A shard of a pretty gem that sparkles in a red color. It can be sold at a high price to shops. @@ -594,7 +594,7 @@ Description = A shard of a pretty gem that sparkles in a red color. It can be so [COMETSHARD] Name = Comet Shard NamePlural = Comet Shards -Pocket = 1 +Pocket = Items Price = 25000 Flags = Fling_30 Description = A shard which fell to the ground when a comet approached. A maniac will buy it for a high price. @@ -602,7 +602,7 @@ Description = A shard which fell to the ground when a comet approached. A maniac [NUGGET] Name = Nugget NamePlural = Nuggets -Pocket = 1 +Pocket = Items Price = 10000 Flags = Fling_30 Description = A nugget of pure gold that gives off a lustrous gleam. It can be sold at a high price to shops. @@ -610,7 +610,7 @@ Description = A nugget of pure gold that gives off a lustrous gleam. It can be s [BIGNUGGET] Name = Big Nugget NamePlural = Big Nuggets -Pocket = 1 +Pocket = Items Price = 40000 Flags = Fling_130 Description = A big nugget of pure gold that gives off a lustrous gleam. A maniac will buy it for a high price. @@ -618,7 +618,7 @@ Description = A big nugget of pure gold that gives off a lustrous gleam. A mania [HEARTSCALE] Name = Heart Scale NamePlural = Heart Scales -Pocket = 1 +Pocket = Items Price = 100 Flags = Fling_30 Description = A pretty, heart-shaped scale that is extremely rare. It glows faintly in the colors of the rainbow. @@ -626,14 +626,14 @@ Description = A pretty, heart-shaped scale that is extremely rare. It glows fain [SLOWPOKETAIL] Name = Slowpoke Tail NamePlural = Slowpoke Tails -Pocket = 1 +Pocket = Items Price = 10000 Description = A very tasty tail of something. It can be sold at a high price to shops. #------------------------------- [RAREBONE] Name = Rare Bone NamePlural = Rare Bones -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = A bone that is extremely valuable for Pokémon archaeology. It can be sold for a high price to shops. @@ -643,7 +643,7 @@ Name = Relic Copper NamePlural = Relic Coppers PortionName = Relic Copper coin PortionNamePlural = Relic Copper coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A copper coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -653,7 +653,7 @@ Name = Relic Silver NamePlural = Relic Silvers PortionName = Relic Silver coin PortionNamePlural = Relic Silver coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A silver coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -663,7 +663,7 @@ Name = Relic Gold NamePlural = Relic Golds PortionName = Relic Gold coin PortionNamePlural = Relic Gold coins -Pocket = 1 +Pocket = Items Price = 60000 Flags = Fling_30 Description = A gold coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -671,7 +671,7 @@ Description = A gold coin used in a civilization about 3,000 years ago. A maniac [RELICVASE] Name = Relic Vase NamePlural = Relic Vases -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A vase made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -679,7 +679,7 @@ Description = A vase made in a civilization about 3,000 years ago. A maniac will [RELICBAND] Name = Relic Band NamePlural = Relic Bands -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A bracelet made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -687,7 +687,7 @@ Description = A bracelet made in a civilization about 3,000 years ago. A maniac [RELICSTATUE] Name = Relic Statue NamePlural = Relic Statues -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A stone figure made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -695,7 +695,7 @@ Description = A stone figure made in a civilization about 3,000 years ago. A man [RELICCROWN] Name = Relic Crown NamePlural = Relic Crowns -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A crown made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -703,7 +703,7 @@ Description = A crown made in a civilization about 3,000 years ago. A maniac wil [TINYBAMBOOSHOOT] Name = Tiny Bamboo Shoot NamePlural = Tiny Bamboo Shoots -Pocket = 1 +Pocket = Items Price = 1500 Flags = Fling_30 Description = A small and rare bamboo shoot. It's quite popular with a certain class of gourmands. @@ -711,7 +711,7 @@ Description = A small and rare bamboo shoot. It's quite popular with a certain c [BIGBAMBOOSHOOT] Name = Big Bamboo Shoot NamePlural = Big Bamboo Shoots -Pocket = 1 +Pocket = Items Price = 6000 Flags = Fling_30 Description = A large and rare bamboo shoot. It's extremely popular with a certain class of gourmands. @@ -721,7 +721,7 @@ Name = Growth Mulch NamePlural = Growth Mulch PortionName = bag of Growth Mulch PortionNamePlural = bags of Growth Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -731,7 +731,7 @@ Name = Damp Mulch NamePlural = Damp Mulch PortionName = bag of Damp Mulch PortionNamePlural = bags of Damp Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -741,7 +741,7 @@ Name = Stable Mulch NamePlural = Stable Mulch PortionName = bag of Stable Mulch PortionNamePlural = bags of Stable Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -751,7 +751,7 @@ Name = Gooey Mulch NamePlural = Gooey Mulch PortionName = bag of Gooey Mulch PortionNamePlural = bags of Gooey Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -761,7 +761,7 @@ Name = Shoal Salt NamePlural = Shoal Salts PortionName = pile of Shoal Salt PortionNamePlural = piles of Shoal Salt -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = Pure salt that can be discovered deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -769,7 +769,7 @@ Description = Pure salt that can be discovered deep inside the Shoal Cave. A man [SHOALSHELL] Name = Shoal Shell NamePlural = Shoal Shells -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = A pretty seashell that can be found deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -777,7 +777,7 @@ Description = A pretty seashell that can be found deep inside the Shoal Cave. A [ODDKEYSTONE] Name = Odd Keystone NamePlural = Odd Keystones -Pocket = 1 +Pocket = Items Price = 2100 Flags = Fling_80 Description = A vital item that is needed to keep a stone tower from collapsing. Voices can be heard from it occasionally. @@ -787,2389 +787,169 @@ Name = Red Nectar NamePlural = Red Nectars PortionName = jar of Red Nectar PortionNamePlural = jars of Red Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Ula'ula Meadow. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a red flower. It changes the form of a certain species of Pokémon. #------------------------------- [YELLOWNECTAR] Name = Yellow Nectar NamePlural = Yellow Nectars PortionName = jar of Yellow Nectar PortionNamePlural = jars of Yellow Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Melemele Meadow. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a yellow flower. It changes the form of a certain species of Pokémon. #------------------------------- [PINKNECTAR] Name = Pink Nectar NamePlural = Pink Nectars PortionName = jar of Pink Nectar PortionNamePlural = jars of Pink Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained from shrubs on Royal Avenue. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a pink flower. It changes the form of a certain species of Pokémon. #------------------------------- [PURPLENECTAR] Name = Purple Nectar NamePlural = Purple Nectars PortionName = jar of Purple Nectar PortionNamePlural = jars of Purple Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Poni Meadow. It changes the form of certain species of Pokémon. -#------------------------------- -[AIRBALLOON] -Name = Air Balloon -NamePlural = Air Balloons -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. -#------------------------------- -[BRIGHTPOWDER] -Name = Bright Powder -NamePlural = Bright Powders -PortionName = bag of Bright Powder -PortionNamePlural = bags of Bright Powder -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. -#------------------------------- -[EVIOLITE] -Name = Eviolite -NamePlural = Eviolites -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_40 -Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. -#------------------------------- -[FLOATSTONE] -Name = Float Stone -NamePlural = Float Stones -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 10 -Flags = Fling_30 -Description = A very light stone. It reduces the weight of a Pokémon when held. -#------------------------------- -[DESTINYKNOT] -Name = Destiny Knot -NamePlural = Destiny Knots -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 10 -Flags = Fling_10 -Description = A long, thin, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. -#------------------------------- -[ROCKYHELMET] -Name = Rocky Helmet -NamePlural = Rocky Helmets -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_60 -Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. -#------------------------------- -[ASSAULTVEST] -Name = Assault Vest -NamePlural = Assault Vests -Pocket = 1 -Price = 1000 -BPPrice = 25 -Flags = Fling_80 -Description = An item to be held by a Pokémon. This offensive vest raises Sp. Def but prevents the use of status moves. -#------------------------------- -[SAFETYGOGGLES] -Name = Safety Goggles -NamePlural = Safety Goggles -PortionName = pair of Safety Goggles -PortionNamePlural = pairs of Safety Goggles -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_80 -Description = An item to be held by a Pokémon. They protect the holder from weather-related damage and powder. -#------------------------------- -[PROTECTIVEPADS] -Name = Protective Pads -NamePlural = Protective Pads -PortionName = set of Protective Pads -PortionNamePlural = sets of Protective Pads -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_30 -Description = An item to be held by a Pokémon. They protect the holder from effects caused by making contact. -#------------------------------- -[HEAVYDUTYBOOTS] -Name = Heavy-Duty Boots -NamePlural = Heavy-Duty Boots -PortionName = pair of Heavy-Duty Boots -PortionNamePlural = pairs of Heavy-Duty Boots -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_80 -Description = These boots prevent the effects of traps set on the battlefield. -#------------------------------- -[UTILITYUMBRELLA] -Name = Utility Umbrella -NamePlural = Utility Umbrellas -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_60 -Description = An item to be held by a Pokémon. This sturdy umbrella protects the holder from the effects of rain and sun. -#------------------------------- -[ABILITYSHIELD] -Name = Ability Shield -NamePlural = Ability Shields -Pocket = 1 -Price = 20000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. This cute shield protects the holder from having its Ability changed by others. -#------------------------------- -[CLEARAMULET] -Name = Clear Amulet -NamePlural = Clear Amulets -Pocket = 1 -Price = 30000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It protects the holder from having its stats lowered by other Pokémon. -#------------------------------- -[COVERTCLOAK] -Name = Covert Cloak -NamePlural = Covert Cloaks -Pocket = 1 -Price = 20000 -SellPrice = 5000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. This hooded cloak protects the holder from moves' additional effects. -#------------------------------- -[EJECTBUTTON] -Name = Eject Button -NamePlural = Eject Buttons -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 20 -Flags = Fling_30 -Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. -#------------------------------- -[EJECTPACK] -Name = Eject Pack -NamePlural = Eject Packs -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 20 -Flags = Fling_50 -Description = An item to be held by a Pokémon. When the holder's stats are lowered, it will be switched out of battle. -#------------------------------- -[REDCARD] -Name = Red Card -NamePlural = Red Cards -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 20 -Flags = Fling_10 -Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. -#------------------------------- -[SHEDSHELL] -Name = Shed Shell -NamePlural = Shed Shells -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. -#------------------------------- -[SMOKEBALL] -Name = Smoke Ball -NamePlural = Smoke Balls -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. -#------------------------------- -[LUCKYEGG] -Name = Lucky Egg -NamePlural = Lucky Eggs -Pocket = 1 -Price = 10000 -BPPrice = 77 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. -#------------------------------- -[EXPSHARE] -Name = Exp. Share -NamePlural = Exp. Shares -Pocket = 1 -Price = 3000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. -#------------------------------- -[AMULETCOIN] -Name = Amulet Coin -NamePlural = Amulet Coins -Pocket = 1 -Price = 10000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[SOOTHEBELL] -Name = Soothe Bell -NamePlural = Soothe Bells -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. -#------------------------------- -[CLEANSETAG] -Name = Cleanse Tag -NamePlural = Cleanse Tags -Pocket = 1 -Price = 5000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[CHOICEBAND] -Name = Choice Band -NamePlural = Choice Bands -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. -#------------------------------- -[CHOICESPECS] -Name = Choice Specs -NamePlural = Choice Specs -PortionName = pair of Choice Specs -PortionNamePlural = pairs of Choice Specs -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. -#------------------------------- -[CHOICESCARF] -Name = Choice Scarf -NamePlural = Choice Scarves -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. -#------------------------------- -[HEATROCK] -Name = Heat Rock -NamePlural = Heat Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. -#------------------------------- -[DAMPROCK] -Name = Damp Rock -NamePlural = Damp Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. -#------------------------------- -[SMOOTHROCK] -Name = Smooth Rock -NamePlural = Smooth Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. -#------------------------------- -[ICYROCK] -Name = Icy Rock -NamePlural = Icy Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_40 -Description = A Pokémon held item that extends the duration of the move Hail used by the holder. -#------------------------------- -[TERRAINEXTENDER] -Name = Terrain Extender -NamePlural = Terrain Extenders -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_60 -Description = An item to be held by a Pokémon. It extends the duration of the terrain caused by the holder. -#------------------------------- -[LIGHTCLAY] -Name = Light Clay -NamePlural = Light Clays -PortionName = lump of Light Clay -PortionNamePlural = lumps of Light Clay -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_30 -Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. -#------------------------------- -[GRIPCLAW] -Name = Grip Claw -NamePlural = Grip Claws -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_90 -Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. -#------------------------------- -[LOADEDDICE] -Name = Loaded Dice -NamePlural = Loaded Dice -PortionName = set of Loaded Dice -PortionNamePlural = sets of Loaded Dice -Pocket = 1 -Price = 20000 -SellPrice = 5000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. This dice ensures that the holder's multistrike moves hit more times. -#------------------------------- -[BINDINGBAND] -Name = Binding Band -NamePlural = Binding Bands -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 15 -Flags = Fling_30 -Description = A band that increases the power of binding moves when held. -#------------------------------- -[BIGROOT] -Name = Big Root -NamePlural = Big Roots -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. -#------------------------------- -[BLACKSLUDGE] -Name = Black Sludge -NamePlural = Black Sludges -PortionName = blob of Black Sludge -PortionNamePlural = blobs of Black Sludge -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_30 -Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. -#------------------------------- -[LEFTOVERS] -Name = Leftovers -NamePlural = Leftovers -PortionName = serving of Leftovers -PortionNamePlural = servings of Leftovers -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. -#------------------------------- -[SHELLBELL] -Name = Shell Bell -NamePlural = Shell Bells -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. -#------------------------------- -[MENTALHERB] -Name = Mental Herb -NamePlural = Mental Herbs -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. -#------------------------------- -[WHITEHERB] -Name = White Herb -NamePlural = White Herbs -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. -#------------------------------- -[POWERHERB] -Name = Power Herb -NamePlural = Power Herbs -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. -#------------------------------- -[MIRRORHERB] -Name = Mirror Herb -NamePlural = Mirror Herbs -Pocket = 1 -Price = 30000 -SellPrice = 7500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It allows the holder to copy an opponent's stat increases once. -#------------------------------- -[ABSORBBULB] -Name = Absorb Bulb -NamePlural = Absorb Bulbs -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. -#------------------------------- -[CELLBATTERY] -Name = Cell Battery -NamePlural = Cell Batteries -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. -#------------------------------- -[LUMINOUSMOSS] -Name = Luminous Moss -NamePlural = Luminous Moss -PortionName = clump of Luminous Moss -PortionNamePlural = clumps of Luminous Moss -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Sp. Def if hit by a Water-type attack. It can only be used once. -#------------------------------- -[SNOWBALL] -Name = Snowball -NamePlural = Snowballs -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Attack if hit by an Ice-type attack. It can only be used once. -#------------------------------- -[WEAKNESSPOLICY] -Name = Weakness Policy -NamePlural = Weakness Policies -Pocket = 1 -Price = 1000 -BPPrice = 20 -Flags = Fling_80 -Description = An item to be held by a Pokémon. The holder's Attack and Sp. Atk sharply increase if hit by a move it's weak to. -#------------------------------- -[BLUNDERPOLICY] -Name = Blunder Policy -NamePlural = Blunder Policies -Pocket = 1 -Price = 4000 -BPPrice = 20 -Flags = Fling_80 -Description = Raises Speed sharply when a Pokémon misses with a move because of accuracy. -#------------------------------- -[THROATSPRAY] -Name = Throat Spray -NamePlural = Throat Sprays -PortionName = bottle of Throat Spray -PortionNamePlural = bottles of Throat Spray -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = Raises Sp. Atk when a Pokémon uses a sound-based move. -#------------------------------- -[ADRENALINEORB] -Name = Adrenaline Orb -NamePlural = Adrenaline Orbs -Pocket = 1 -Price = 300 -BPPrice = 10 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Speed when intimidated. It can be used only once. -#------------------------------- -[BOOSTERENERGY] -Name = Booster Energy -NamePlural = Booster Energies -PortionName = capsule of Booster Energy -PortionNamePlural = capsules of Booster Energy -Pocket = 1 -Price = 0 -Flags = Fling_30 -Description = An item to be held by Pokémon with certain Abilities. Its energy boosts the strength of the Pokémon. -#------------------------------- -[ROOMSERVICE] -Name = Room Service -NamePlural = Room Services -PortionName = voucher for Room Service -PortionNamePlural = vouchers for Room Service -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_100 -Description = An item to be held by a Pokémon. Lowers Speed when Trick Room takes effect. -#------------------------------- -[ELECTRICSEED] -Name = Electric Seed -NamePlural = Electric Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Defense on Electric Terrain. It can only be used once. -#------------------------------- -[GRASSYSEED] -Name = Grassy Seed -NamePlural = Grassy Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Defense on Grassy Terrain. It can only be used once. -#------------------------------- -[MISTYSEED] -Name = Misty Seed -NamePlural = Misty Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Sp. Def on Misty Terrain. It can only be used once. -#------------------------------- -[PSYCHICSEED] -Name = Psychic Seed -NamePlural = Psychic Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Sp. Def on Psychic Terrain. It can only be used once. -#------------------------------- -[LIFEORB] -Name = Life Orb -NamePlural = Life Orbs -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. -#------------------------------- -[EXPERTBELT] -Name = Expert Belt -NamePlural = Expert Belts -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. -#------------------------------- -[METRONOME] -Name = Metronome -NamePlural = Metronomes -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_30 -Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. -#------------------------------- -[PUNCHINGGLOVE] -Name = Punching Glove -NamePlural = Punching Gloves -Pocket = 1 -Price = 15000 -SellPrice = 3750 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It powers up the holder's punching moves and prevents direct contact. -#------------------------------- -[MUSCLEBAND] -Name = Muscle Band -NamePlural = Muscle Bands -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. -#------------------------------- -[WISEGLASSES] -Name = Wise Glasses -NamePlural = Wise Glasses -PortionName = pair of Wise Glasses -PortionNamePlural = pairs of Wise Glasses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. -#------------------------------- -[RAZORCLAW] -Name = Razor Claw -NamePlural = Razor Claws -Pocket = 1 -Price = 3000 -SellPrice = 2500 -BPPrice = 5 -Flags = Fling_80 -Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. -#------------------------------- -[SCOPELENS] -Name = Scope Lens -NamePlural = Scope Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. -#------------------------------- -[WIDELENS] -Name = Wide Lens -NamePlural = Wide Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. -#------------------------------- -[ZOOMLENS] -Name = Zoom Lens -NamePlural = Zoom Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. -#------------------------------- -[KINGSROCK] -Name = King's Rock -NamePlural = King's Rocks -Pocket = 1 -Price = 5000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. -#------------------------------- -[RAZORFANG] -Name = Razor Fang -NamePlural = Razor Fangs -Pocket = 1 -Price = 5000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. -#------------------------------- -[LAGGINGTAIL] -Name = Lagging Tail -NamePlural = Lagging Tails -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. -#------------------------------- -[QUICKCLAW] -Name = Quick Claw -NamePlural = Quick Claws -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_80 -Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. -#------------------------------- -[FOCUSBAND] -Name = Focus Band -NamePlural = Focus Bands -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. -#------------------------------- -[FOCUSSASH] -Name = Focus Sash -NamePlural = Focus Sashes -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. -#------------------------------- -[FLAMEORB] -Name = Flame Orb -NamePlural = Flame Orbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. -#------------------------------- -[TOXICORB] -Name = Toxic Orb -NamePlural = Toxic Orbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. -#------------------------------- -[STICKYBARB] -Name = Sticky Barb -NamePlural = Sticky Barbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_80 -Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. -#------------------------------- -[IRONBALL] -Name = Iron Ball -NamePlural = Iron Balls -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_130 -Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. -#------------------------------- -[RINGTARGET] -Name = Ring Target -NamePlural = Ring Targets -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 10 -Flags = Fling_10 -Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. -#------------------------------- -[MACHOBRACE] -Name = Macho Brace -NamePlural = Macho Braces -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_60 -Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. -#------------------------------- -[POWERWEIGHT] -Name = Power Weight -NamePlural = Power Weights -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBRACER] -Name = Power Bracer -NamePlural = Power Bracers -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBELT] -Name = Power Belt -NamePlural = Power Belts -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERLENS] -Name = Power Lens -NamePlural = Power Lenses -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBAND] -Name = Power Band -NamePlural = Power Bands -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERANKLET] -Name = Power Anklet -NamePlural = Power Anklets -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. -#------------------------------- -[LAXINCENSE] -Name = Lax Incense -NamePlural = Lax Incenses -PortionName = jar of Lax Incense -PortionNamePlural = jars of Lax Incense -Pocket = 1 -Price = 5000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. -#------------------------------- -[FULLINCENSE] -Name = Full Incense -NamePlural = Full Incenses -PortionName = jar of Full Incense -PortionNamePlural = jars of Full Incense -Pocket = 1 -Price = 5000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. -#------------------------------- -[LUCKINCENSE] -Name = Luck Incense -NamePlural = Luck Incenses -PortionName = jar of Luck Incense -PortionNamePlural = jars of Luck Incense -Pocket = 1 -Price = 11000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[PUREINCENSE] -Name = Pure Incense -NamePlural = Pure Incenses -PortionName = jar of Pure Incense -PortionNamePlural = jars of Pure Incense -Pocket = 1 -Price = 6000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[SEAINCENSE] -Name = Sea Incense -NamePlural = Sea Incenses -PortionName = jar of Sea Incense -PortionNamePlural = jars of Sea Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[WAVEINCENSE] -Name = Wave Incense -NamePlural = Wave Incenses -PortionName = jar of Wave Incense -PortionNamePlural = jars of Wave Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[ROSEINCENSE] -Name = Rose Incense -NamePlural = Rose Incenses -PortionName = jar of Rose Incense -PortionNamePlural = jars of Rose Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. -#------------------------------- -[ODDINCENSE] -Name = Odd Incense -NamePlural = Odd Incenses -PortionName = jar of Odd Incense -PortionNamePlural = jars of Odd Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. -#------------------------------- -[ROCKINCENSE] -Name = Rock Incense -NamePlural = Rock Incenses -PortionName = jar of Rock Incense -PortionNamePlural = jars of Rock Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. -#------------------------------- -[CHARCOAL] -Name = Charcoal -NamePlural = Charcoals -PortionName = piece of Charcoal -PortionNamePlural = pieces of Charcoal -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. -#------------------------------- -[MYSTICWATER] -Name = Mystic Water -NamePlural = Mystic Waters -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. -#------------------------------- -[MAGNET] -Name = Magnet -NamePlural = Magnets -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. -#------------------------------- -[MIRACLESEED] -Name = Miracle Seed -NamePlural = Miracle Seeds -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. -#------------------------------- -[NEVERMELTICE] -Name = Never-Melt Ice -NamePlural = Never-Melt Ices -PortionName = piece of Never-Melt Ice -PortionNamePlural = pieces of Never-Melt Ice -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. -#------------------------------- -[BLACKBELT] -Name = Black Belt -NamePlural = Black Belts -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. -#------------------------------- -[POISONBARB] -Name = Poison Barb -NamePlural = Poison Barbs -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. -#------------------------------- -[SOFTSAND] -Name = Soft Sand -NamePlural = Soft Sand -PortionName = bag of Soft Sand -PortionNamePlural = bags of Soft Sand -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. -#------------------------------- -[SHARPBEAK] -Name = Sharp Beak -NamePlural = Sharp Beaks -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_50 -Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. -#------------------------------- -[TWISTEDSPOON] -Name = Twisted Spoon -NamePlural = Twisted Spoons -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. -#------------------------------- -[SILVERPOWDER] -Name = Silver Powder -NamePlural = Silver Powders -PortionName = pile of Silver Powder -PortionNamePlural = piles of Silver Powder -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. -#------------------------------- -[HARDSTONE] -Name = Hard Stone -NamePlural = Hard Stones -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_100 -Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. -#------------------------------- -[SPELLTAG] -Name = Spell Tag -NamePlural = Spell Tags -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. -#------------------------------- -[DRAGONFANG] -Name = Dragon Fang -NamePlural = Dragon Fangs -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. -#------------------------------- -[BLACKGLASSES] -Name = Black Glasses -NamePlural = Black Glasses -PortionName = pair of Black Glasses -PortionNamePlural = pairs of Black Glasses -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. -#------------------------------- -[METALCOAT] -Name = Metal Coat -NamePlural = Metal Coats -Pocket = 1 -Price = 3000 -SellPrice = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. -#------------------------------- -[FAIRYFEATHER] -Name = Fairy Feather -NamePlural = Fairy Feathers -Pocket = 1 -Price = 3000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This gleaming feather boosts the power of the holder's Fairy-type moves. -#------------------------------- -[SILKSCARF] -Name = Silk Scarf -NamePlural = Silk Scarves -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. -#------------------------------- -[FLAMEPLATE] -Name = Flame Plate -NamePlural = Flame Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. -#------------------------------- -[SPLASHPLATE] -Name = Splash Plate -NamePlural = Splash Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. -#------------------------------- -[ZAPPLATE] -Name = Zap Plate -NamePlural = Zap Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. -#------------------------------- -[MEADOWPLATE] -Name = Meadow Plate -NamePlural = Meadow Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. -#------------------------------- -[ICICLEPLATE] -Name = Icicle Plate -NamePlural = Icicle Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. -#------------------------------- -[FISTPLATE] -Name = Fist Plate -NamePlural = Fist Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. -#------------------------------- -[TOXICPLATE] -Name = Toxic Plate -NamePlural = Toxic Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. -#------------------------------- -[EARTHPLATE] -Name = Earth Plate -NamePlural = Earth Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. -#------------------------------- -[SKYPLATE] -Name = Sky Plate -NamePlural = Sky Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. -#------------------------------- -[MINDPLATE] -Name = Mind Plate -NamePlural = Mind Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. -#------------------------------- -[INSECTPLATE] -Name = Insect Plate -NamePlural = Insect Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. -#------------------------------- -[STONEPLATE] -Name = Stone Plate -NamePlural = Stone Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. -#------------------------------- -[SPOOKYPLATE] -Name = Spooky Plate -NamePlural = Spooky Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. -#------------------------------- -[DRACOPLATE] -Name = Draco Plate -NamePlural = Draco Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. -#------------------------------- -[DREADPLATE] -Name = Dread Plate -NamePlural = Dread Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. -#------------------------------- -[IRONPLATE] -Name = Iron Plate -NamePlural = Iron Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. -#------------------------------- -[PIXIEPLATE] -Name = Pixie Plate -NamePlural = Pixie Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fairy-type moves. -#------------------------------- -[FIREGEM] -Name = Fire Gem -NamePlural = Fire Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. -#------------------------------- -[WATERGEM] -Name = Water Gem -NamePlural = Water Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. -#------------------------------- -[ELECTRICGEM] -Name = Electric Gem -NamePlural = Electric Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. -#------------------------------- -[GRASSGEM] -Name = Grass Gem -NamePlural = Grass Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. -#------------------------------- -[ICEGEM] -Name = Ice Gem -NamePlural = Ice Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. -#------------------------------- -[FIGHTINGGEM] -Name = Fighting Gem -NamePlural = Fighting Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. -#------------------------------- -[POISONGEM] -Name = Poison Gem -NamePlural = Poison Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. -#------------------------------- -[GROUNDGEM] -Name = Ground Gem -NamePlural = Ground Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. -#------------------------------- -[FLYINGGEM] -Name = Flying Gem -NamePlural = Flying Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. -#------------------------------- -[PSYCHICGEM] -Name = Psychic Gem -NamePlural = Psychic Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. -#------------------------------- -[BUGGEM] -Name = Bug Gem -NamePlural = Bug Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. -#------------------------------- -[ROCKGEM] -Name = Rock Gem -NamePlural = Rock Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. -#------------------------------- -[GHOSTGEM] -Name = Ghost Gem -NamePlural = Ghost Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. -#------------------------------- -[DRAGONGEM] -Name = Dragon Gem -NamePlural = Dragon Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. -#------------------------------- -[DARKGEM] -Name = Dark Gem -NamePlural = Dark Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. -#------------------------------- -[STEELGEM] -Name = Steel Gem -NamePlural = Steel Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. -#------------------------------- -[FAIRYGEM] -Name = Fairy Gem -NamePlural = Fairy Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of the fey. When held, it strengthens the power of a Fairy-type move only once. -#------------------------------- -[NORMALGEM] -Name = Normal Gem -NamePlural = Normal Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. -#------------------------------- -[LIGHTBALL] -Name = Light Ball -NamePlural = Light Balls -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. -#------------------------------- -[LUCKYPUNCH] -Name = Lucky Punch -NamePlural = Lucky Punches -Pocket = 1 -Price = 1000 -BPPrice = 7 -Flags = Fling_40 -Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. -#------------------------------- -[METALPOWDER] -Name = Metal Powder -NamePlural = Metal Powders -PortionName = bag of Metal Powder -PortionNamePlural = bags of Metal Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. -#------------------------------- -[QUICKPOWDER] -Name = Quick Powder -NamePlural = Quick Powders -PortionName = bag of Quick Powder -PortionNamePlural = bags of Quick Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. -#------------------------------- -[THICKCLUB] -Name = Thick Club -NamePlural = Thick Clubs -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. -#------------------------------- -[LEEK] -Name = Leek -NamePlural = Leeks -Pocket = 1 -Price = 1000 -Flags = Fling_60 -Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. -#------------------------------- -[SOULDEW] -Name = Soul Dew -NamePlural = Soul Dews -Pocket = 1 -Price = 0 -Flags = Fling_30 -Description = A wondrous orb to be held by either Latios or Latias. It raises the power of Psychic- and Dragon-type moves. -#------------------------------- -[DEEPSEATOOTH] -Name = Deep Sea Tooth -NamePlural = Deep Sea Teeth -Pocket = 1 -Price = 2000 -BPPrice = 5 -Flags = Fling_90 -Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. -#------------------------------- -[DEEPSEASCALE] -Name = Deep Sea Scale -NamePlural = Deep Sea Scales -Pocket = 1 -Price = 2000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. -#------------------------------- -[ADAMANTORB] -Name = Adamant Orb -NamePlural = Adamant Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -Flags = Fling_60 -Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. -#------------------------------- -[LUSTROUSORB] -Name = Lustrous Orb -NamePlural = Lustrous Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -Flags = Fling_60 -Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. -#------------------------------- -[GRISEOUSORB] -Name = Griseous Orb -NamePlural = Griseous Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -Flags = Fling_60 -Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. -#------------------------------- -[ADAMANTCRYSTAL] -Name = Adamant Crystal -NamePlural = Adamant Crystals -Pocket = 1 -Price = 4000 -SellPrice = 0 -Flags = Fling_60 -Description = A large, glowing gem to be held by Dialga. It wells with power and allows the Pokémon to change form. -#------------------------------- -[LUSTROUSGLOBE] -Name = Lustrous Globe -NamePlural = Lustrous Globes -Pocket = 1 -Price = 4000 -SellPrice = 0 -Flags = Fling_60 -Description = A large, glowing orb to be held by Palkia. It wells with power and allows the Pokémon to change form. -#------------------------------- -[GRISEOUSCORE] -Name = Griseous Core -NamePlural = Griseous Cores -Pocket = 1 -Price = 4000 -SellPrice = 0 -Flags = Fling_60 -Description = A large, glowing gem to be held by Giratina. It wells with power and allows the Pokémon to change form. -#------------------------------- -[RUSTEDSWORD] -Name = Rusted Sword -NamePlural = Rusted Swords -Pocket = 1 -Price = 0 -Description = It is said that a hero used this sword to halt a disaster in ancient times. But it's grown rusty and worn. -#------------------------------- -[RUSTEDSHIELD] -Name = Rusted Shield -NamePlural = Rusted Shields -Pocket = 1 -Price = 0 -Description = It is said that a hero used this shield to halt a disaster in ancient times. But it's grown rusty and worn. -#------------------------------- -[WELLSPRINGMASK] -Name = Wellspring Mask -NamePlural = Wellspring Masks -Pocket = 1 -Flags = Fling_60 -Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Water type in battle. -#------------------------------- -[HEARTHFLAMEMASK] -Name = Hearthflame Mask -NamePlural = Hearthflame Masks -Pocket = 1 -Price = 0 -Flags = Fling_60 -Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Fire type in battle. -#------------------------------- -[CORNERSTONEMASK] -Name = Cornerstone Mask -NamePlural = Cornerstone Masks -Pocket = 1 -Price = 0 -Flags = Fling_60 -Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Rock type in battle. -#------------------------------- -[DOUSEDRIVE] -Name = Douse Drive -NamePlural = Douse Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. -#------------------------------- -[SHOCKDRIVE] -Name = Shock Drive -NamePlural = Shock Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. -#------------------------------- -[BURNDRIVE] -Name = Burn Drive -NamePlural = Burn Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. -#------------------------------- -[CHILLDRIVE] -Name = Chill Drive -NamePlural = Chill Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. -#------------------------------- -[FIREMEMORY] -Name = Fire Memory -NamePlural = Fire Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fire-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[WATERMEMORY] -Name = Water Memory -NamePlural = Water Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Water-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ELECTRICMEMORY] -Name = Electric Memory -NamePlural = Electric Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Electric-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GRASSMEMORY] -Name = Grass Memory -NamePlural = Grass Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Grass-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ICEMEMORY] -Name = Ice Memory -NamePlural = Ice Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ice-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FIGHTINGMEMORY] -Name = Fighting Memory -NamePlural = Fighting Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fighting-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[POISONMEMORY] -Name = Poison Memory -NamePlural = Poison Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Poison-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GROUNDMEMORY] -Name = Ground Memory -NamePlural = Ground Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ground-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FLYINGMEMORY] -Name = Flying Memory -NamePlural = Flying Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Flying-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[PSYCHICMEMORY] -Name = Psychic Memory -NamePlural = Psychic Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Psychic-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[BUGMEMORY] -Name = Bug Memory -NamePlural = Bug Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Bug-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ROCKMEMORY] -Name = Rock Memory -NamePlural = Rock Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Rock-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GHOSTMEMORY] -Name = Ghost Memory -NamePlural = Ghost Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ghost-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[DRAGONMEMORY] -Name = Dragon Memory -NamePlural = Dragon Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Dragon-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[DARKMEMORY] -Name = Dark Memory -NamePlural = Dark Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Dark-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[STEELMEMORY] -Name = Steel Memory -NamePlural = Steel Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Steel-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FAIRYMEMORY] -Name = Fairy Memory -NamePlural = Fairy Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fairy-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[EVERSTONE] -Name = Everstone -NamePlural = Everstones -Pocket = 1 -Price = 3000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. -#------------------------------- -[DRAGONSCALE] -Name = Dragon Scale -NamePlural = Dragon Scales -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_30 -Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. -#------------------------------- -[UPGRADE] -Name = Upgrade -NamePlural = Upgrades -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_30 -Description = A transparent device filled with all sorts of data. It was produced by Silph Co. -#------------------------------- -[DUBIOUSDISC] -Name = Dubious Disc -NamePlural = Dubious Discs -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_50 -Description = A transparent device overflowing with dubious data. Its producer is unknown. -#------------------------------- -[PROTECTOR] -Name = Protector -NamePlural = Protectors -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. -#------------------------------- -[ELECTIRIZER] -Name = Electirizer -NamePlural = Electirizers -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. -#------------------------------- -[MAGMARIZER] -Name = Magmarizer -NamePlural = Magmarizers -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. -#------------------------------- -[REAPERCLOTH] -Name = Reaper Cloth -NamePlural = Reaper Cloths -PortionName = scrap of Reaper Cloth -PortionNamePlural = scraps of Reaper Cloth -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_10 -Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. -#------------------------------- -[PRISMSCALE] -Name = Prism Scale -NamePlural = Prism Scales -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 10 -Flags = Fling_30 -Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. -#------------------------------- -[OVALSTONE] -Name = Oval Stone -NamePlural = Oval Stones -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. -#------------------------------- -[WHIPPEDDREAM] -Name = Whipped Dream -NamePlural = Whipped Dreams -PortionName = dollop of Whipped Dream -PortionNamePlural = dollops of Whipped Dream -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A soft and sweet treat made of fluffy, puffy and whirled cream. It's loved by a certain Pokémon. -#------------------------------- -[SACHET] -Name = Sachet -NamePlural = Sachets -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A sachet filled with slightly overwhelming fragrant perfumes. Yet it's loved by a certain Pokémon. -#------------------------------- -[STRAWBERRYSWEET] -Name = Strawberry Sweet -NamePlural = Strawberry Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A strawberry-shaped sweet. When a Milcery holds this, it will spin around happily. -#------------------------------- -[LOVESWEET] -Name = Love Sweet -NamePlural = Love Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A heart-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[BERRYSWEET] -Name = Berry Sweet -NamePlural = Berry Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A berry-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[CLOVERSWEET] -Name = Clover Sweet -NamePlural = Clover Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A clover-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[FLOWERSWEET] -Name = Flower Sweet -NamePlural = Flower Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A flower-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[STARSWEET] -Name = Star Sweet -NamePlural = Star Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A star-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[RIBBONSWEET] -Name = Ribbon Sweet -NamePlural = Ribbon Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A ribbon-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[VENUSAURITE] -Name = Venusaurite -NamePlural = Venusaurites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Venusaur hold it, and it will be able to Mega Evolve. -#------------------------------- -[CHARIZARDITEX] -Name = Charizardite X -NamePlural = Charizardite Xs -Pocket = 1 -Price = 0 -BPPrice = 50 -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. -#------------------------------- -[CHARIZARDITEY] -Name = Charizardite Y -NamePlural = Charizardite Ys -Pocket = 1 -Price = 0 -BPPrice = 50 -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. -#------------------------------- -[BLASTOISINITE] -Name = Blastoisinite -NamePlural = Blastoisinites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Blastoise hold it, and it will be able to Mega Evolve. -#------------------------------- -[BEEDRILLITE] -Name = Beedrillite -NamePlural = Beedrillites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Beedrill hold it, and it will be able to Mega Evolve. -#------------------------------- -[PIDGEOTITE] -Name = Pidgeotite -NamePlural = Pidgeotites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Pidgeot hold it, and it will be able to Mega Evolve. -#------------------------------- -[ALAKAZITE] -Name = Alakazite -NamePlural = Alakazites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Alakazam hold it, and it will be able to Mega Evolve. -#------------------------------- -[SLOWBRONITE] -Name = Slowbronite -NamePlural = Slowbronites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Slowbro hold it, and it will be able to Mega Evolve. -#------------------------------- -[GENGARITE] -Name = Gengarite -NamePlural = Gengarites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gengar hold it, and it will be able to Mega Evolve. -#------------------------------- -[KANGASKHANITE] -Name = Kangaskhanite -NamePlural = Kangaskhanites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Kangaskhan hold it, and it will be able to Mega Evolve. -#------------------------------- -[PINSIRITE] -Name = Pinsirite -NamePlural = Pinsirites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Pinsir hold it, and it will be able to Mega Evolve. -#------------------------------- -[GYARADOSITE] -Name = Gyaradosite -NamePlural = Gyaradosites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gyarados hold it, and it will be able to Mega Evolve. -#------------------------------- -[AERODACTYLITE] -Name = Aerodactylite -NamePlural = Aerodactylites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Aerodactyl hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEWTWONITEX] -Name = Mewtwonite X -NamePlural = Mewtwonite Xs -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEWTWONITEY] -Name = Mewtwonite Y -NamePlural = Mewtwonite Ys -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. -#------------------------------- -[AMPHAROSITE] -Name = Ampharosite -NamePlural = Ampharosites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Ampharos hold it, and it will be able to Mega Evolve. -#------------------------------- -[STEELIXITE] -Name = Steelixite -NamePlural = Steelixites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Steelix hold it, and it will be able to Mega Evolve. -#------------------------------- -[SCIZORITE] -Name = Scizorite -NamePlural = Scizorites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Scizor hold it, and it will be able to Mega Evolve. -#------------------------------- -[HERACRONITE] -Name = Heracronite -NamePlural = Heracronites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Heracross hold it, and it will be able to Mega Evolve. -#------------------------------- -[HOUNDOOMINITE] -Name = Houndoominite -NamePlural = Houndoominites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Houndoom hold it, and it will be able to Mega Evolve. -#------------------------------- -[TYRANITARITE] -Name = Tyranitarite -NamePlural = Tyranitarites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Tyranitar hold it, and it will be able to Mega Evolve. -#------------------------------- -[SCEPTILITE] -Name = Sceptilite -NamePlural = Sceptilites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sceptile hold it, and it will be able to Mega Evolve. -#------------------------------- -[BLAZIKENITE] -Name = Blazikenite -NamePlural = Blazikenites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Blaziken hold it, and it will be able to Mega Evolve. -#------------------------------- -[SWAMPERTITE] -Name = Swampertite -NamePlural = Swampertites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Swampert hold it, and it will be able to Mega Evolve. -#------------------------------- -[GARDEVOIRITE] -Name = Gardevoirite -NamePlural = Gardevoirites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gardevoir hold it, and it will be able to Mega Evolve. -#------------------------------- -[SABLENITE] -Name = Sablenite -NamePlural = Sablenites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sableye hold it, and it will be able to Mega Evolve. -#------------------------------- -[MAWILITE] -Name = Mawilite -NamePlural = Mawilites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mawile hold it, and it will be able to Mega Evolve. -#------------------------------- -[AGGRONITE] -Name = Aggronite -NamePlural = Aggronites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Aggron hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEDICHAMITE] -Name = Medichamite -NamePlural = Medichamites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Medicham hold it, and it will be able to Mega Evolve. -#------------------------------- -[MANECTITE] -Name = Manectite -NamePlural = Manectites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Manectric hold it, and it will be able to Mega Evolve. -#------------------------------- -[SHARPEDONITE] -Name = Sharpedonite -NamePlural = Sharpedonites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sharpedo hold it, and it will be able to Mega Evolve. -#------------------------------- -[CAMERUPTITE] -Name = Cameruptite -NamePlural = Cameruptites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Camerupt hold it, and it will be able to Mega Evolve. -#------------------------------- -[ALTARIANITE] -Name = Altarianite -NamePlural = Altarianites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Altaria hold it, and it will be able to Mega Evolve. -#------------------------------- -[BANETTITE] -Name = Banettite -NamePlural = Banettites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Banette hold it, and it will be able to Mega Evolve. -#------------------------------- -[ABSOLITE] -Name = Absolite -NamePlural = Absolites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Absol hold it, and it will be able to Mega Evolve. -#------------------------------- -[GLALITITE] -Name = Glalitite -NamePlural = Glalitites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Glalie hold it, and it will be able to Mega Evolve. -#------------------------------- -[SALAMENCITE] -Name = Salamencite -NamePlural = Salamencites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Salamence hold it, and it will be able to Mega Evolve. -#------------------------------- -[METAGROSSITE] -Name = Metagrossite -NamePlural = Metagrossites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Metagross hold it, and it will be able to Mega Evolve. -#------------------------------- -[LATIASITE] -Name = Latiasite -NamePlural = Latiasites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Latias hold it, and it will be able to Mega Evolve. -#------------------------------- -[LATIOSITE] -Name = Latiosite -NamePlural = Latiosites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Latios hold it, and it will be able to Mega Evolve. -#------------------------------- -[LOPUNNITE] -Name = Lopunnite -NamePlural = Lopunnites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Lopunny hold it, and it will be able to Mega Evolve. -#------------------------------- -[GARCHOMPITE] -Name = Garchompite -NamePlural = Garchompites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Garchomp hold it, and it will be able to Mega Evolve. -#------------------------------- -[LUCARIONITE] -Name = Lucarionite -NamePlural = Lucarionites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Lucario hold it, and it will be able to Mega Evolve. -#------------------------------- -[ABOMASITE] -Name = Abomasite -NamePlural = Abomasites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Abomasnow hold it, and it will be able to Mega Evolve. -#------------------------------- -[GALLADITE] -Name = Galladite -NamePlural = Galladites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gallade hold it, and it will be able to Mega Evolve. -#------------------------------- -[AUDINITE] -Name = Audinite -NamePlural = Audinites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Audino hold it, and it will be able to Mega Evolve. -#------------------------------- -[DIANCITE] -Name = Diancite -NamePlural = Diancites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Diancie hold it, and it will be able to Mega Evolve. -#------------------------------- -[REDORB] -Name = Red Orb -NamePlural = Red Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -BPPrice = 50 -Description = A shiny red orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. -#------------------------------- -[BLUEORB] -Name = Blue Orb -NamePlural = Blue Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -BPPrice = 50 -Description = A shiny blue orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. +Description = Flower nectar obtained from a purple flower. It changes the form of a certain species of Pokémon. +#------------------------------- +[GRASSMAIL] +Name = Grass Mail +NamePlural = Grass Mail +PortionName = piece of Grass Mail +PortionNamePlural = pieces of Grass Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. +#------------------------------- +[FLAMEMAIL] +Name = Flame Mail +NamePlural = Flame Mail +PortionName = piece of Flame Mail +PortionNamePlural = pieces of Flame Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. +#------------------------------- +[BUBBLEMAIL] +Name = Bubble Mail +NamePlural = Bubble Mail +PortionName = piece of Bubble Mail +PortionNamePlural = pieces of Bubble Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. +#------------------------------- +[BLOOMMAIL] +Name = Bloom Mail +NamePlural = Bloom Mail +PortionName = piece of Bloom Mail +PortionNamePlural = pieces of Bloom Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[TUNNELMAIL] +Name = Tunnel Mail +NamePlural = Tunnel Mail +PortionName = piece of Tunnel Mail +PortionNamePlural = pieces of Tunnel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. +#------------------------------- +[STEELMAIL] +Name = Steel Mail +NamePlural = Steel Mail +PortionName = piece of Steel Mail +PortionNamePlural = pieces of Steel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. +#------------------------------- +[HEARTMAIL] +Name = Heart Mail +NamePlural = Heart Mail +PortionName = piece of Heart Mail +PortionNamePlural = pieces of Heart Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[SNOWMAIL] +Name = Snow Mail +NamePlural = Snow Mail +PortionName = piece of Snow Mail +PortionNamePlural = pieces of Snow Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. +#------------------------------- +[SPACEMAIL] +Name = Space Mail +NamePlural = Space Mail +PortionName = piece of Space Mail +PortionNamePlural = pieces of Space Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print showing the huge expanse of space. Let a Pokémon hold it for delivery. +#------------------------------- +[AIRMAIL] +Name = Air Mail +NamePlural = Air Mail +PortionName = piece of Air Mail +PortionNamePlural = pieces of Air Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. +#------------------------------- +[MOSAICMAIL] +Name = Mosaic Mail +NamePlural = Mosaic Mail +PortionName = piece of Mosaic Mail +PortionNamePlural = pieces of Mosaic Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. +#------------------------------- +[BRICKMAIL] +Name = Brick Mail +NamePlural = Brick Mail +PortionName = piece of Brick Mail +PortionNamePlural = pieces of Brick Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. #------------------------------- [POTION] Name = Potion NamePlural = Potions -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3179,7 +959,7 @@ Description = A spray-type medicine for treating wounds. It can be used to resto [SUPERPOTION] Name = Super Potion NamePlural = Super Potions -Pocket = 2 +Pocket = Medicine Price = 700 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3189,7 +969,7 @@ Description = A spray-type medicine for treating wounds. It can be used to resto [HYPERPOTION] Name = Hyper Potion NamePlural = Hyper Potions -Pocket = 2 +Pocket = Medicine Price = 1500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3199,7 +979,7 @@ Description = A spray-type medicine for treating wounds. It can be used to resto [MAXPOTION] Name = Max Potion NamePlural = Max Potions -Pocket = 2 +Pocket = Medicine Price = 2500 BPPrice = 2 FieldUse = OnPokemon @@ -3210,7 +990,7 @@ Description = A spray-type medicine for treating wounds. It can completely resto [FULLRESTORE] Name = Full Restore NamePlural = Full Restores -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3222,7 +1002,7 @@ Name = Sacred Ash NamePlural = Sacred Ashes PortionName = bag of Sacred Ash PortionNamePlural = bags of Sacred Ash -Pocket = 2 +Pocket = Medicine Price = 50000 FieldUse = Direct Flags = Fling_30 @@ -3231,7 +1011,7 @@ Description = It revives all fainted Pokémon. In doing so, it also fully restor [AWAKENING] Name = Awakening NamePlural = Awakenings -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3241,7 +1021,7 @@ Description = A spray-type medicine. It awakens a Pokémon from the clutches of [ANTIDOTE] Name = Antidote NamePlural = Antidotes -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3251,7 +1031,7 @@ Description = A spray-type medicine. It lifts the effect of poison from one Pok [BURNHEAL] Name = Burn Heal NamePlural = Burn Heals -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3261,7 +1041,7 @@ Description = A spray-type medicine. It heals a single Pokémon that is sufferin [PARALYZEHEAL] Name = Paralyze Heal NamePlural = Paralyze Heals -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3271,7 +1051,7 @@ Description = A spray-type medicine. It eliminates paralysis from a single Poké [ICEHEAL] Name = Ice Heal NamePlural = Ice Heals -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3281,7 +1061,7 @@ Description = A spray-type medicine. It defrosts a Pokémon that has been frozen [FULLHEAL] Name = Full Heal NamePlural = Full Heals -Pocket = 2 +Pocket = Medicine Price = 400 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3293,7 +1073,7 @@ Name = Pewter Crunchies NamePlural = Pewter Crunchies PortionName = bag of Pewter Crunchies PortionNamePlural = bags of Pewter Crunchies -Pocket = 2 +Pocket = Medicine Price = 250 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3303,7 +1083,7 @@ Description = Pewter City's famous crunchy snack. They can be used to heal all s [RAGECANDYBAR] Name = Rage Candy Bar NamePlural = Rage Candy Bars -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3313,7 +1093,7 @@ Description = Mahogany Town's famous candy. It can be used once to heal all the [LAVACOOKIE] Name = Lava Cookie NamePlural = Lava Cookies -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3323,7 +1103,7 @@ Description = Lavaridge Town's local specialty. It heals all the status problems [OLDGATEAU] Name = Old Gateau NamePlural = Old Gateaux -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3333,7 +1113,7 @@ Description = Old Chateau's hidden specialty. It heals all the status problems o [CASTELIACONE] Name = Casteliacone NamePlural = Casteliacones -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3343,37 +1123,37 @@ Description = Castelia City's specialty, soft-serve ice cream. It heals all the [LUMIOSEGALETTE] Name = Lumiose Galette NamePlural = Lumiose Galettes -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = A popular treat in Lumiose City. It can be used once to heal all the status conditions of a Pokémon. +Description = A popular treat in Lumiose City. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [SHALOURSABLE] Name = Shalour Sable NamePlural = Shalour Sables -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = Shalour City's famous shortbread. It can be used once to heal all the status conditions of a Pokémon. +Description = Shalour City's famous shortbread. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [BIGMALASADA] Name = Big Malasada NamePlural = Big Malasadas -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = The Alola region's specialty--fried bread. It can be used once to heal all the status conditions of a Pokémon. +Description = The Alola region's specialty--fried bread. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [REVIVE] Name = Revive NamePlural = Revives -Pocket = 2 +Pocket = Medicine Price = 2000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3383,7 +1163,7 @@ Description = A medicine that revives a fainted Pokémon. It restores half the P [MAXREVIVE] Name = Max Revive NamePlural = Max Revives -Pocket = 2 +Pocket = Medicine Price = 4000 BPPrice = 20 FieldUse = OnPokemon @@ -3396,7 +1176,7 @@ Name = Berry Juice NamePlural = Berry Juices PortionName = cup of Berry Juice PortionNamePlural = cups of Berry Juice -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3406,7 +1186,7 @@ Description = A 100% pure juice made of Berries. It restores the HP of one Poké [SWEETHEART] Name = Sweet Heart NamePlural = Sweet Hearts -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3418,7 +1198,7 @@ Name = Fresh Water NamePlural = Fresh Waters PortionName = bottle of Fresh Water PortionNamePlural = bottles of Fresh Water -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3430,7 +1210,7 @@ Name = Soda Pop NamePlural = Soda Pops PortionName = bottle of Soda Pop PortionNamePlural = bottles of Soda Pop -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3442,7 +1222,7 @@ Name = Lemonade NamePlural = Lemonades PortionName = can of Lemonade PortionNamePlural = cans of Lemonade -Pocket = 2 +Pocket = Medicine Price = 350 SellPrice = 200 FieldUse = OnPokemon @@ -3455,7 +1235,7 @@ Name = Moomoo Milk NamePlural = Moomoo Milks PortionName = bottle of Moomoo Milk PortionNamePlural = bottles of Moomoo Milk -Pocket = 2 +Pocket = Medicine Price = 600 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3467,7 +1247,7 @@ Name = Energy Powder NamePlural = Energy Powders PortionName = dose of Energy Powder PortionNamePlural = doses of Energy Powder -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3477,7 +1257,7 @@ Description = A very bitter medicinal powder. It can be used to restore 60 HP to [ENERGYROOT] Name = Energy Root NamePlural = Energy Roots -Pocket = 2 +Pocket = Medicine Price = 1200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3489,7 +1269,7 @@ Name = Heal Powder NamePlural = Heal Powders PortionName = dose of Heal Powder PortionNamePlural = doses of Heal Powder -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3499,7 +1279,7 @@ Description = A very bitter medicine powder. It heals all the status problems of [REVIVALHERB] Name = Revival Herb NamePlural = Revival Herbs -Pocket = 2 +Pocket = Medicine Price = 2800 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3511,7 +1291,7 @@ Name = Max Honey NamePlural = Max Honeys PortionName = comb of Max Honey PortionNamePlural = combs of Max Honey -Pocket = 2 +Pocket = Medicine Price = 8000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3521,7 +1301,7 @@ Description = Honey that Dynamax Vespiquen produces. It has the same effect as a [ETHER] Name = Ether NamePlural = Ethers -Pocket = 2 +Pocket = Medicine Price = 1200 BPPrice = 4 FieldUse = OnPokemon @@ -3532,7 +1312,7 @@ Description = It restores the PP of a Pokémon's selected move by a maximum of 1 [MAXETHER] Name = Max Ether NamePlural = Max Ethers -Pocket = 2 +Pocket = Medicine Price = 2000 FieldUse = OnPokemon BattleUse = OnMove @@ -3542,7 +1322,7 @@ Description = It fully restores the PP of a single selected move that has been l [ELIXIR] Name = Elixir NamePlural = Elixirs -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3552,7 +1332,7 @@ Description = It restores the PP of all the moves learned by the targeted Pokém [MAXELIXIR] Name = Max Elixir NamePlural = Max Elixirs -Pocket = 2 +Pocket = Medicine Price = 4500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3564,7 +1344,7 @@ Name = PP Up NamePlural = PP Ups PortionName = bottle of PP Up PortionNamePlural = bottles of PP Up -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 10 FieldUse = OnPokemon @@ -3576,7 +1356,7 @@ Name = PP Max NamePlural = PP Maxes PortionName = bottle of PP Max PortionNamePlural = bottles of PP Max -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3587,7 +1367,7 @@ Name = HP Up NamePlural = HP Ups PortionName = bottle of HP Up PortionNamePlural = bottles of HP Up -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3598,7 +1378,7 @@ Name = Protein NamePlural = Proteins PortionName = bottle of Protein PortionNamePlural = bottles of Protein -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3609,7 +1389,7 @@ Name = Iron NamePlural = Irons PortionName = bottle of Iron PortionNamePlural = bottles of Iron -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3620,7 +1400,7 @@ Name = Calcium NamePlural = Calciums PortionName = bottle of Calcium PortionNamePlural = bottles of Calcium -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3631,7 +1411,7 @@ Name = Zinc NamePlural = Zincs PortionName = bottle of Zinc PortionNamePlural = bottles of Zinc -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3642,7 +1422,7 @@ Name = Carbos NamePlural = Carbos PortionName = bottle of Carbos PortionNamePlural = bottles of Carbos -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3651,7 +1431,7 @@ Description = A nutritious drink for Pokémon. It raises the base Speed stat of [HEALTHFEATHER] Name = Health Feather NamePlural = Health Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3660,7 +1440,7 @@ Description = An item for use on a Pokémon. It slightly increases the base HP o [MUSCLEFEATHER] Name = Muscle Feather NamePlural = Muscle Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3669,7 +1449,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Atta [RESISTFEATHER] Name = Resist Feather NamePlural = Resist Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3678,7 +1458,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Defe [GENIUSFEATHER] Name = Genius Feather NamePlural = Genius Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3687,7 +1467,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [CLEVERFEATHER] Name = Clever Feather NamePlural = Clever Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3696,7 +1476,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [SWIFTFEATHER] Name = Swift Feather NamePlural = Swift Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3705,61 +1485,61 @@ Description = An item for use on a Pokémon. It slightly increases the base Spee [HEALTHMOCHI] Name = Health Mochi NamePlural = Health Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's HP stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's HP stat. #------------------------------- [MUSCLEMOCHI] Name = Muscle Mochi NamePlural = Muscle Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's Attack stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's Attack stat. #------------------------------- [RESISTMOCHI] Name = Resist Mochi NamePlural = Resist Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's Defense stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's Defense stat. #------------------------------- [GENIUSMOCHI] Name = Genius Mochi NamePlural = Genius Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's Sp. Atk stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's Sp. Atk stat. #------------------------------- [CLEVERMOCHI] Name = Clever Mochi NamePlural = Clever Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's Sp. Def stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's Sp. Def stat. #------------------------------- [SWIFTMOCHI] Name = Swift Mochi NamePlural = Swift Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's Speed stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's Speed stat. #------------------------------- [FRESHSTARTMOCHI] Name = Fresh-Start Mochi NamePlural = Fresh-Start Mochis -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3770,7 +1550,7 @@ Name = Lonely Mint NamePlural = Lonely Mints PortionName = sprig of Lonely Mint PortionNamePlural = sprigs of Lonely Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3782,7 +1562,7 @@ Name = Adamant Mint NamePlural = Adamant Mints PortionName = sprig of Adamant Mint PortionNamePlural = sprigs of Adamant Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3794,7 +1574,7 @@ Name = Naughty Mint NamePlural = Naughty Mints PortionName = sprig of Naughty Mint PortionNamePlural = sprigs of Naughty Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3806,7 +1586,7 @@ Name = Brave Mint NamePlural = Brave Mints PortionName = sprig of Brave Mint PortionNamePlural = sprigs of Brave Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3818,7 +1598,7 @@ Name = Bold Mint NamePlural = Bold Mints PortionName = sprig of Bold Mint PortionNamePlural = sprigs of Bold Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3830,7 +1610,7 @@ Name = Impish Mint NamePlural = Impish Mints PortionName = sprig of Impish Mint PortionNamePlural = sprigs of Impish Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3842,7 +1622,7 @@ Name = Lax Mint NamePlural = Lax Mints PortionName = sprig of Lax Mint PortionNamePlural = sprigs of Lax Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3854,7 +1634,7 @@ Name = Relaxed Mint NamePlural = Relaxed Mints PortionName = sprig of Relaxed Mint PortionNamePlural = sprigs of Relaxed Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3866,7 +1646,7 @@ Name = Modest Mint NamePlural = Modest Mints PortionName = sprig of Modest Mint PortionNamePlural = sprigs of Modest Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3878,7 +1658,7 @@ Name = Mild Mint NamePlural = Mild Mints PortionName = sprig of Mild Mint PortionNamePlural = sprigs of Mild Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3890,7 +1670,7 @@ Name = Rash Mint NamePlural = Rash Mints PortionName = sprig of Rash Mint PortionNamePlural = sprigs of Rash Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3902,7 +1682,7 @@ Name = Quiet Mint NamePlural = Quiet Mints PortionName = sprig of Quiet Mint PortionNamePlural = sprigs of Quiet Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3914,7 +1694,7 @@ Name = Calm Mint NamePlural = Calm Mints PortionName = sprig of Calm Mint PortionNamePlural = sprigs of Calm Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3926,7 +1706,7 @@ Name = Gentle Mint NamePlural = Gentle Mints PortionName = sprig of Gentle Mint PortionNamePlural = sprigs of Gentle Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3938,7 +1718,7 @@ Name = Careful Mint NamePlural = Careful Mints PortionName = sprig of Careful Mint PortionNamePlural = sprigs of Careful Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3950,7 +1730,7 @@ Name = Sassy Mint NamePlural = Sassy Mints PortionName = sprig of Sassy Mint PortionNamePlural = sprigs of Sassy Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3962,7 +1742,7 @@ Name = Timid Mint NamePlural = Timid Mints PortionName = sprig of Timid Mint PortionNamePlural = sprigs of Timid Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3974,7 +1754,7 @@ Name = Hasty Mint NamePlural = Hasty Mints PortionName = sprig of Hasty Mint PortionNamePlural = sprigs of Hasty Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3986,7 +1766,7 @@ Name = Jolly Mint NamePlural = Jolly Mints PortionName = sprig of Jolly Mint PortionNamePlural = sprigs of Jolly Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3998,7 +1778,7 @@ Name = Naive Mint NamePlural = Naive Mints PortionName = sprig of Naive Mint PortionNamePlural = sprigs of Naive Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -4010,7 +1790,7 @@ Name = Serious Mint NamePlural = Serious Mints PortionName = sprig of Serious Mint PortionNamePlural = sprigs of Serious Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -4020,7 +1800,7 @@ Description = When a Pokémon smells this mint, all of its stats will grow at an [ABILITYCAPSULE] Name = Ability Capsule NamePlural = Ability Capsule -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 50 FieldUse = OnPokemon @@ -4029,7 +1809,7 @@ Description = A capsule that allows a Pokémon with two Abilities to switch betw [ABILITYPATCH] Name = Ability Patch NamePlural = Ability Patches -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 200 FieldUse = OnPokemon @@ -4038,7 +1818,7 @@ Description = A patch that allows a Pokémon with a regular Ability to have a ra [EXPCANDYXS] Name = Exp. Candy XS NamePlural = Exp. Candy XSs -Pocket = 2 +Pocket = Medicine Price = 20 FieldUse = OnPokemon Flags = Fling_30 @@ -4047,7 +1827,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYS] Name = Exp. Candy S NamePlural = Exp. Candy Ss -Pocket = 2 +Pocket = Medicine Price = 240 FieldUse = OnPokemon Flags = Fling_30 @@ -4056,7 +1836,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYM] Name = Exp. Candy M NamePlural = Exp. Candy Ms -Pocket = 2 +Pocket = Medicine Price = 1000 FieldUse = OnPokemon Flags = Fling_30 @@ -4065,7 +1845,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYL] Name = Exp. Candy L NamePlural = Exp. Candy Ls -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon Flags = Fling_30 @@ -4074,7 +1854,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYXL] Name = Exp. Candy XL NamePlural = Exp. Candy XLs -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -4083,7 +1863,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [RARECANDY] Name = Rare Candy NamePlural = Rare Candies -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 20 FieldUse = OnPokemon @@ -4093,7 +1873,7 @@ Description = A candy that is packed with energy. It raises the level of a singl [MASTERBALL] Name = Master Ball NamePlural = Master Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -4102,7 +1882,7 @@ Description = The best Ball with the ultimate level of performance. It will catc [ULTRABALL] Name = Ultra Ball NamePlural = Ultra Balls -Pocket = 3 +Pocket = PokeBalls Price = 800 BattleUse = OnFoe Flags = PokeBall @@ -4111,7 +1891,7 @@ Description = An ultra-performance Ball that provides a higher Pokémon catch ra [GREATBALL] Name = Great Ball NamePlural = Great Balls -Pocket = 3 +Pocket = PokeBalls Price = 600 BattleUse = OnFoe Flags = PokeBall @@ -4120,7 +1900,7 @@ Description = A good, high-performance Ball that provides a higher Pokémon catc [POKEBALL] Name = Poké Ball NamePlural = Poké Balls -Pocket = 3 +Pocket = PokeBalls Price = 200 BattleUse = OnFoe Flags = PokeBall @@ -4129,7 +1909,7 @@ Description = A device for catching wild Pokémon. It is thrown like a ball at t [SAFARIBALL] Name = Safari Ball NamePlural = Safari Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -4138,7 +1918,7 @@ Description = A special Poké Ball that is used only in the Safari Zone. It is d [SPORTBALL] Name = Sport Ball NamePlural = Sport Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4147,7 +1927,7 @@ Description = A special Poké Ball for the Bug-Catching Contest. [NETBALL] Name = Net Ball NamePlural = Net Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4156,7 +1936,7 @@ Description = A somewhat different Poké Ball that works especially well on Wate [DIVEBALL] Name = Dive Ball NamePlural = Dive Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4165,7 +1945,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [NESTBALL] Name = Nest Ball NamePlural = Nest Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4174,7 +1954,7 @@ Description = A somewhat different Poké Ball that works especially well on weak [REPEATBALL] Name = Repeat Ball NamePlural = Repeat Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4183,7 +1963,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [TIMERBALL] Name = Timer Ball NamePlural = Timer Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4192,7 +1972,7 @@ Description = A somewhat different Ball that becomes progressively better the mo [LUXURYBALL] Name = Luxury Ball NamePlural = Luxury Balls -Pocket = 3 +Pocket = PokeBalls Price = 3000 BattleUse = OnFoe Flags = PokeBall @@ -4201,7 +1981,7 @@ Description = A comfortable Poké Ball that makes a caught wild Pokémon quickly [PREMIERBALL] Name = Premier Ball NamePlural = Premier Balls -Pocket = 3 +Pocket = PokeBalls Price = 200 SellPrice = 10 BattleUse = OnFoe @@ -4211,7 +1991,7 @@ Description = A somewhat rare Poké Ball that has been specially made to commemo [DUSKBALL] Name = Dusk Ball NamePlural = Dusk Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4220,7 +2000,7 @@ Description = A somewhat different Poké Ball that makes it easier to catch wild [HEALBALL] Name = Heal Ball NamePlural = Heal Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4229,7 +2009,7 @@ Description = A remedial Poké Ball that restores the caught Pokémon's HP and e [QUICKBALL] Name = Quick Ball NamePlural = Quick Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4238,7 +2018,7 @@ Description = A somewhat different Poké Ball that provides a better catch rate [CHERISHBALL] Name = Cherish Ball NamePlural = Cherish Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -4247,7 +2027,7 @@ Description = A quite rare Poké Ball that has been specially crafted to commemo [FASTBALL] Name = Fast Ball NamePlural = Fast Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4256,7 +2036,7 @@ Description = A Poké Ball that makes it easier to catch fast Pokémon. [LEVELBALL] Name = Level Ball NamePlural = Level Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4265,7 +2045,7 @@ Description = A Poké Ball for catching Pokémon that are a lower level than you [LUREBALL] Name = Lure Ball NamePlural = Lure Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4274,7 +2054,7 @@ Description = A Poké Ball for catching Pokémon hooked by a Rod when fishing. [HEAVYBALL] Name = Heavy Ball NamePlural = Heavy Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4283,7 +2063,7 @@ Description = A Poké Ball for catching very heavy Pokémon. [LOVEBALL] Name = Love Ball NamePlural = Love Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4292,7 +2072,7 @@ Description = A Poké Ball for catching Pokémon that are the opposite gender of [FRIENDBALL] Name = Friend Ball NamePlural = Friend Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4301,7 +2081,7 @@ Description = A Poké Ball that makes caught Pokémon more friendly. [MOONBALL] Name = Moon Ball NamePlural = Moon Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4310,7 +2090,7 @@ Description = A Poké Ball for catching Pokémon that evolve using the Moon Ston [DREAMBALL] Name = Dream Ball NamePlural = Dream Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4319,1170 +2099,16 @@ Description = A somewhat different Poké Ball that makes it easier to catch wild [BEASTBALL] Name = Beast Ball NamePlural = Beast Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall Description = A special Poké Ball designed to catch Ultra Beasts. It has a low success rate for catching others. #------------------------------- -[TM01] -Name = TM01 -NamePlural = TM01s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_150 -Move = FOCUSPUNCH -Description = The user focuses its mind before launching a punch. This move fails if the user is hit before it is used. -#------------------------------- -[TM02] -Name = TM02 -NamePlural = TM02s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DRAGONCLAW -Description = The user slashes the target with huge sharp claws. -#------------------------------- -[TM03] -Name = TM03 -NamePlural = TM03s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = WATERPULSE -Description = The user attacks the target with a pulsing blast of water. This may also confuse the target. -#------------------------------- -[TM04] -Name = TM04 -NamePlural = TM04s -Pocket = 4 -Price = 1500 -BPPrice = 48 -FieldUse = TR -Flags = Fling_10 -Move = CALMMIND -Description = The user quietly focuses its mind and calms its spirit to raise its Sp. Atk and Sp. Def stats. -#------------------------------- -[TM05] -Name = TM05 -NamePlural = TM05s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ROAR -Description = The target is scared off, and a different Pokémon is dragged out. In the wild, this ends the battle. -#------------------------------- -[TM06] -Name = TM06 -NamePlural = TM06s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TOXIC -Description = A move that leaves the target badly poisoned. Its poison damage worsens every turn. -#------------------------------- -[TM07] -Name = TM07 -NamePlural = TM07s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = HAIL -Description = The user summons a hailstorm lasting five turns. It damages all Pokémon except Ice types. -#------------------------------- -[TM08] -Name = TM08 -NamePlural = TM08s -Pocket = 4 -Price = 1500 -BPPrice = 48 -FieldUse = TR -Flags = Fling_10 -Move = BULKUP -Description = The user tenses its muscles to bulk up its body, raising both its Attack and Defense stats. -#------------------------------- -[TM09] -Name = TM09 -NamePlural = TM09s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_25 -Move = BULLETSEED -Description = The user forcefully shoots seeds at the target two to five times in a row. -#------------------------------- -[TM10] -Name = TM10 -NamePlural = TM10s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = WORKUP -Description = The user is roused, and its Attack and Sp. Atk stats increase. -#------------------------------- -[TM11] -Name = TM11 -NamePlural = TM11s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SUNNYDAY -Description = The user intensifies the sun for five turns, powering up Fire-type moves and weakening Water-type moves. -#------------------------------- -[TM12] -Name = TM12 -NamePlural = TM12s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TAUNT -Description = The target is taunted into a rage that allows it to use only attack moves for three turns. -#------------------------------- -[TM13] -Name = TM13 -NamePlural = TM13s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = ICEBEAM -Description = The target is struck with an icy-cold beam of energy. This may also leave the target frozen. -#------------------------------- -[TM14] -Name = TM14 -NamePlural = TM14s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_110 -Move = BLIZZARD -Description = A howling blizzard is summoned to strike opposing Pokémon. This may also leave them frozen. -#------------------------------- -[TM15] -Name = TM15 -NamePlural = TM15s -Pocket = 4 -Price = 7500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_150 -Move = HYPERBEAM -Description = The target is attacked with a powerful beam. The user can't move on the next turn. -#------------------------------- -[TM16] -Name = TM16 -NamePlural = TM16s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = LIGHTSCREEN -Description = A wondrous wall of light is put up to reduce damage from special attacks for five turns. -#------------------------------- -[TM17] -Name = TM17 -NamePlural = TM17s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = PROTECT -Description = The user protects itself from all attacks. Its chance of failing rises if it is used in succession. -#------------------------------- -[TM18] -Name = TM18 -NamePlural = TM18s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = RAINDANCE -Description = The user summons a heavy rain for five turns, powering up Water-type moves and weakening Fire-type ones. -#------------------------------- -[TM19] -Name = TM19 -NamePlural = TM19s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_75 -Move = GIGADRAIN -Description = A nutrient-draining attack. The user's HP is restored by half the damage taken by the target. -#------------------------------- -[TM20] -Name = TM20 -NamePlural = TM20s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SAFEGUARD -Description = The user creates a protective field that prevents status conditions for five turns. -#------------------------------- -[TM21] -Name = TM21 -NamePlural = TM21s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DAZZLINGGLEAM -Description = The user damages opposing Pokémon by emitting a powerful flash. -#------------------------------- -[TM22] -Name = TM22 -NamePlural = TM22s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_120 -Move = SOLARBEAM -Description = In this two-turn attack, the user gathers light, then blasts a bundled beam on the next turn. -#------------------------------- -[TM23] -Name = TM23 -NamePlural = TM23s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_100 -Move = IRONTAIL -Description = The target is slammed with a steel-hard tail. This may also lower the target's Defense stat. -#------------------------------- -[TM24] -Name = TM24 -NamePlural = TM24s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = THUNDERBOLT -Description = A strong electric blast crashes down on the target. This may also leave the target with paralysis. -#------------------------------- -[TM25] -Name = TM25 -NamePlural = TM25s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_110 -Move = THUNDER -Description = A wicked thunderbolt is dropped on the target to inflict damage. This may also leave them with paralysis. -#------------------------------- -[TM26] -Name = TM26 -NamePlural = TM26s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_100 -Move = EARTHQUAKE -Description = The user sets off an earthquake that strikes every Pokémon around it. -#------------------------------- -[TM27] -Name = TM27 -NamePlural = TM27s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_65 -Move = LOWSWEEP -Description = The user makes a swift attack on the target's legs, which lowers the target's Speed stat. -#------------------------------- -[TM28] -Name = TM28 -NamePlural = TM28s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DIG -Description = The user burrows into the ground, then attacks on the next turn. It can also be used to exit dungeons. -#------------------------------- -[TM29] -Name = TM29 -NamePlural = TM29s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = PSYCHIC -Description = The target is hit by a strong telekinetic force. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM30] -Name = TM30 -NamePlural = TM30s -Pocket = 4 -Price = 3000 -BPPrice = 64 -FieldUse = TR -Flags = Fling_80 -Move = SHADOWBALL -Description = The user hurls a shadowy blob at the target. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM31] -Name = TM31 -NamePlural = TM31s -Pocket = 4 -Price = 3000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_75 -Move = BRICKBREAK -Description = The user attacks with a swift chop. It can also break barriers, such as Light Screen and Reflect. -#------------------------------- -[TM32] -Name = TM32 -NamePlural = TM32s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = DOUBLETEAM -Description = By moving rapidly, the user makes illusory copies of itself to raise its evasiveness. -#------------------------------- -[TM33] -Name = TM33 -NamePlural = TM33s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = REFLECT -Description = A wondrous wall of light is put up to reduce damage from physical attacks for five turns. -#------------------------------- -[TM34] -Name = TM34 -NamePlural = TM34s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = SHOCKWAVE -Description = The user strikes the target with a quick jolt of electricity. This attack never misses. -#------------------------------- -[TM35] -Name = TM35 -NamePlural = TM35s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = FLAMETHROWER -Description = The target is scorched with an intense blast of fire. This may also leave the target with a burn. -#------------------------------- -[TM36] -Name = TM36 -NamePlural = TM36s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_90 -Move = SLUDGEBOMB -Description = Unsanitary sludge is hurled at the target. This may also poison the target. -#------------------------------- -[TM37] -Name = TM37 -NamePlural = TM37s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SANDSTORM -Description = A five-turn sandstorm is summoned to hurt all combatants except Rock, Ground, and Steel types. -#------------------------------- -[TM38] -Name = TM38 -NamePlural = TM38s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_110 -Move = FIREBLAST -Description = The target is attacked with an intense blast of all-consuming fire. This may also leave them with a burn. -#------------------------------- -[TM39] -Name = TM39 -NamePlural = TM39s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = ROCKTOMB -Description = Boulders are hurled at the target. This also lowers the target's Speed stat by preventing its movement. -#------------------------------- -[TM40] -Name = TM40 -NamePlural = TM40s -Pocket = 4 -Price = 3000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_60 -Move = AERIALACE -Description = The user confounds the target with speed, then slashes. This attack never misses. -#------------------------------- -[TM41] -Name = TM41 -NamePlural = TM41s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TORMENT -Description = The user torments and enrages the target, making it incapable of using the same move twice in a row. -#------------------------------- -[TM42] -Name = TM42 -NamePlural = TM42s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = FACADE -Description = This attack move doubles its power if the user is poisoned, burned, or paralyzed. -#------------------------------- -[TM43] -Name = TM43 -NamePlural = TM43s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = VOLTSWITCH -Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. -#------------------------------- -[TM44] -Name = TM44 -NamePlural = TM44s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = REST -Description = The user goes to sleep for two turns. This fully restores the user's HP and heals any status conditions. -#------------------------------- -[TM45] -Name = TM45 -NamePlural = TM45s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ATTRACT -Description = If it is the opposite gender of the user, the target becomes infatuated and less likely to attack. -#------------------------------- -[TM46] -Name = TM46 -NamePlural = TM46s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = THIEF -Description = The user attacks and steals the target's held item simultaneously. -#------------------------------- -[TM47] -Name = TM47 -NamePlural = TM47s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = STEELWING -Description = The target is hit with wings of steel. This may also raise the user's Defense stat. -#------------------------------- -[TM48] -Name = TM48 -NamePlural = TM48s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SKILLSWAP -Description = The user employs its psychic power to exchange Abilities with the target. -#------------------------------- -[TM49] -Name = TM49 -NamePlural = TM49s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = SCALD -Description = The user shoots boiling hot water at its target. This may also leave the target with a burn. -#------------------------------- -[TM50] -Name = TM50 -NamePlural = TM50s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_130 -Move = OVERHEAT -Description = The user attacks the target at full power. The attack's recoil harshly lowers the user's Sp. Atk stat. -#------------------------------- -[TM51] -Name = TM51 -NamePlural = TM51s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ROOST -Description = The user lands and rests its body. This move restores the user's HP by up to half of its max HP. -#------------------------------- -[TM52] -Name = TM52 -NamePlural = TM52s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_120 -Move = FOCUSBLAST -Description = The user heightens its mental focus and unleashes its power. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM53] -Name = TM53 -NamePlural = TM53s -Pocket = 4 -Price = 3000 -BPPrice = 64 -FieldUse = TR -Flags = Fling_90 -Move = ENERGYBALL -Description = The user draws power from nature and fires it at the target. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM54] -Name = TM54 -NamePlural = TM54s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_40 -Move = FALSESWIPE -Description = A restrained attack that prevents the target from fainting. The target is left with at least 1 HP. -#------------------------------- -[TM55] -Name = TM55 -NamePlural = TM55s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_65 -Move = BRINE -Description = If the target's HP is half or less, this attack will hit with double the power. -#------------------------------- -[TM56] -Name = TM56 -NamePlural = TM56s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = FLING -Description = The user flings its held item at the target to attack. This move's power and effects depend on the item. -#------------------------------- -[TM57] -Name = TM57 -NamePlural = TM57s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_50 -Move = CHARGEBEAM -Description = The user attacks the target with an electric charge. The user may use any remaining charge to raise its Sp. Atk. -#------------------------------- -[TM58] -Name = TM58 -NamePlural = TM58s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ENDURE -Description = The user endures any attack with at least 1 HP. Its chance of failing rises if it is used in succession. -#------------------------------- -[TM59] -Name = TM59 -NamePlural = TM59s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_85 -Move = DRAGONPULSE -Description = The target is attacked with a shock wave generated by the user's gaping mouth. -#------------------------------- -[TM60] -Name = TM60 -NamePlural = TM60s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_75 -Move = DRAINPUNCH -Description = An energy-draining punch. The user's HP is restored by half the damage taken by the target. -#------------------------------- -[TM61] -Name = TM61 -NamePlural = TM61s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = WILLOWISP -Description = The user shoots a sinister flame at the target to inflict a burn. -#------------------------------- -[TM62] -Name = TM62 -NamePlural = TM62s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = BUGBUZZ -Description = The user generates a damaging sound wave by vibration. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM63] -Name = TM63 -NamePlural = TM63s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = NASTYPLOT -Description = The user stimulates its brain by thinking bad thoughts. This sharply raises the user's Sp. Atk stat. -#------------------------------- -[TM64] -Name = TM64 -NamePlural = TM64s -Pocket = 4 -Price = 7500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_250 -Move = EXPLOSION -Description = The user attacks everything around it by causing a tremendous explosion. The user faints upon using this move. -#------------------------------- -[TM65] -Name = TM65 -NamePlural = TM65s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = SHADOWCLAW -Description = The user slashes with a sharp claw made from shadows. Critical hits land more easily. -#------------------------------- -[TM66] -Name = TM66 -NamePlural = TM66s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_50 -Move = PAYBACK -Description = The user stores power, then attacks. If the user moves after the target, this attack's power will be doubled. -#------------------------------- -[TM67] -Name = TM67 -NamePlural = TM67s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = RECYCLE -Description = The user recycles a held item that has been used in battle so it can be used again. -#------------------------------- -[TM68] -Name = TM68 -NamePlural = TM68s -Pocket = 4 -Price = 7500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_150 -Move = GIGAIMPACT -Description = The user charges at the target using every bit of its power. The user can't move on the next turn. -#------------------------------- -[TM69] -Name = TM69 -NamePlural = TM69s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ROCKPOLISH -Description = The user polishes its body to reduce drag. This sharply raises the Speed stat. -#------------------------------- -[TM70] -Name = TM70 -NamePlural = TM70s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = FLASH -Description = The user flashes a light that lowers the target's accuracy. It can also be used to illuminate caves. -#------------------------------- -[TM71] -Name = TM71 -NamePlural = TM71s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_100 -Move = STONEEDGE -Description = The user stabs the target from below with sharpened stones. Critical hits land more easily. -#------------------------------- -[TM72] -Name = TM72 -NamePlural = TM72s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = AVALANCHE -Description = The power of this attack move is doubled if the user has been hurt by the target in the same turn. -#------------------------------- -[TM73] -Name = TM73 -NamePlural = TM73s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = THUNDERWAVE -Description = The user launches a weak jolt of electricity that paralyzes the target. -#------------------------------- -[TM74] -Name = TM74 -NamePlural = TM74s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = GYROBALL -Description = The user tackles with a high-speed spin. This move is stronger the slower the user is than the target. -#------------------------------- -[TM75] -Name = TM75 -NamePlural = TM75s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SWORDSDANCE -Description = A frenetic dance to uplift the fighting spirit. This sharply raises the user's Attack stat. -#------------------------------- -[TM76] -Name = TM76 -NamePlural = TM76s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = STEALTHROCK -Description = The user lays a trap of levitating stones around the opposing team that hurt Pokémon that switch in. -#------------------------------- -[TM77] -Name = TM77 -NamePlural = TM77s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = PSYCHUP -Description = The user hypnotizes itself into copying any stat change made by the target. -#------------------------------- -[TM78] -Name = TM78 -NamePlural = TM78s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_55 -Move = SNARL -Description = The user yells as if it's ranting about something, which lowers the Sp. Atk stats of opposing Pokémon. -#------------------------------- -[TM79] -Name = TM79 -NamePlural = TM79s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DARKPULSE -Description = The user releases a horrible aura imbued with dark thoughts. This may also make the target flinch. -#------------------------------- -[TM80] -Name = TM80 -NamePlural = TM80s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_75 -Move = ROCKSLIDE -Description = Large boulders are hurled at opposing Pokémon to inflict damage. This may also make them flinch. -#------------------------------- -[TM81] -Name = TM81 -NamePlural = TM81s -Pocket = 4 -Price = 3000 -BPPrice = 64 -FieldUse = TR -Flags = Fling_80 -Move = XSCISSOR -Description = The user slashes at the target by crossing its scythes or claws as if they were a pair of scissors. -#------------------------------- -[TM82] -Name = TM82 -NamePlural = TM82s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SLEEPTALK -Description = While it is asleep, the user randomly uses one of the moves it knows. -#------------------------------- -[TM83] -Name = TM83 -NamePlural = TM83s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = BULLDOZE -Description = The user strikes everything around it by stomping down on the ground. This lowers the Speed of those hit. -#------------------------------- -[TM84] -Name = TM84 -NamePlural = TM84s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = POISONJAB -Description = The target is stabbed with a tentacle, arm, or the like steeped in poison. This may also poison them. -#------------------------------- -[TM85] -Name = TM85 -NamePlural = TM85s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_100 -Move = DREAMEATER -Description = The user eats the dreams of a sleeping target. The user's HP is restored by half the damage dealt. -#------------------------------- -[TM86] -Name = TM86 -NamePlural = TM86s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = GRASSKNOT -Description = The user snares the target with grass and trips it. The heavier the target, the strong the move is. -#------------------------------- -[TM87] -Name = TM87 -NamePlural = TM87s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SWAGGER -Description = The user enrages and confuses the target. However, this also sharply raises the target's Attack stat. -#------------------------------- -[TM88] -Name = TM88 -NamePlural = TM88s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = PLUCK -Description = The user pecks the target. If the target is holding a Berry, the user eats it and gains its effect. -#------------------------------- -[TM89] -Name = TM89 -NamePlural = TM89s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = UTURN -Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. -#------------------------------- -[TM90] -Name = TM90 -NamePlural = TM90s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SUBSTITUTE -Description = The user creates a substitute for itself using some of its HP. The substitute serves as a decoy. -#------------------------------- -[TM91] -Name = TM91 -NamePlural = TM91s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = FLASHCANNON -Description = The user gathers all its light energy and releases it all at once. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM92] -Name = TM92 -NamePlural = TM92s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TRICKROOM -Description = The user creates a bizarre area in which slower Pokémon get to move first for five turns. -#------------------------------- -[TM93] -Name = TM93 -NamePlural = TM93s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_50 -Move = CUT -Description = The target is cut with a scythe or claw. -#------------------------------- -[TM94] -Name = TM94 -NamePlural = TM94s -Pocket = 4 -Price = 2000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_90 -Move = FLY -Description = The user flies up into the sky and then strikes its target on the next turn. -#------------------------------- -[TM95] -Name = TM95 -NamePlural = TM95s -Pocket = 4 -Price = 2500 -BPPrice = 64 -FieldUse = TR -Flags = Fling_90 -Move = SURF -Description = The user attacks everything around it by swamping its surroundings with a giant wave. -#------------------------------- -[TM96] -Name = TM96 -NamePlural = TM96s -Pocket = 4 -Price = 2000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_80 -Move = STRENGTH -Description = The target is slugged with a punch thrown at maximum power. -#------------------------------- -[TM97] -Name = TM97 -NamePlural = TM97s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = DEFOG -Description = A strong wind blows away the target's barriers, such as Reflect, and lowers their evasiveness. -#------------------------------- -[TM98] -Name = TM98 -NamePlural = TM98s -Pocket = 4 -Price = 2000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_40 -Move = ROCKSMASH -Description = The user attacks with a punch that may lower the target's Defense stat. -#------------------------------- -[TM99] -Name = TM99 -NamePlural = TM99s -Pocket = 4 -Price = 2500 -BPPrice = 64 -FieldUse = TR -Flags = Fling_80 -Move = WATERFALL -Description = The user charges at the target and may make it flinch. -#------------------------------- -[TM100] -Name = TM100 -NamePlural = TM100s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = ROCKCLIMB -Description = A charging attack that may also leave the foe confused. -#------------------------------- -[HM01] -Name = HM01 -NamePlural = HM01s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = CUT -Description = The target is cut with a scythe or claw. This can also be used to cut down thin trees. -#------------------------------- -[HM02] -Name = HM02 -NamePlural = HM02s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = FLY -Description = The user soars and then strikes on the next turn. This can also be used to fly to any familiar town. -#------------------------------- -[HM03] -Name = HM03 -NamePlural = HM03s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = SURF -Description = Attacks everything by swamping the surroundings with a giant wave. This can also be used to cross water. -#------------------------------- -[HM04] -Name = HM04 -NamePlural = HM04s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = STRENGTH -Description = The target is slugged with a punch thrown at maximum power. This can also be used to move heavy boulders. -#------------------------------- -[HM05] -Name = HM05 -NamePlural = HM05s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = WATERFALL -Description = The user charges at the target and may make it flinch. It can also be used to climb a waterfall. -#------------------------------- -[HM06] -Name = HM06 -NamePlural = HM06s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = DIVE -Description = Diving on the first turn, the user floats up and attacks on the second. It can be used to dive underwater. -#------------------------------- [CHERIBERRY] Name = Cheri Berry NamePlural = Cheri Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5492,7 +2118,7 @@ Description = It may be used or held by a Pokémon to recover from paralysis. [CHESTOBERRY] Name = Chesto Berry NamePlural = Chesto Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5502,7 +2128,7 @@ Description = It may be used or held by a Pokémon to recover from sleep. [PECHABERRY] Name = Pecha Berry NamePlural = Pecha Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5512,7 +2138,7 @@ Description = It may be used or held by a Pokémon to recover from poison. [RAWSTBERRY] Name = Rawst Berry NamePlural = Rawst Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5522,7 +2148,7 @@ Description = It may be used or held by a Pokémon to recover from a burn. [ASPEARBERRY] Name = Aspear Berry NamePlural = Aspear Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5532,7 +2158,7 @@ Description = It may be used or held by a Pokémon to defrost it. [LEPPABERRY] Name = Leppa Berry NamePlural = Leppa Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnMove @@ -5542,7 +2168,7 @@ Description = It may be used or held by a Pokémon to restore a move's PP by 10. [ORANBERRY] Name = Oran Berry NamePlural = Oran Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5552,7 +2178,7 @@ Description = It may be used or held by a Pokémon to heal the user by just 10 H [PERSIMBERRY] Name = Persim Berry NamePlural = Persim Berries -Pocket = 5 +Pocket = Berries Price = 20 BattleUse = OnBattler Flags = Berry,Fling_10,NaturalGift_GROUND_80 @@ -5561,7 +2187,7 @@ Description = It may be used or held by a Pokémon to recover from confusion. [LUMBERRY] Name = Lum Berry NamePlural = Lum Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5571,7 +2197,7 @@ Description = It may be used or held by a Pokémon to recover from any status pr [SITRUSBERRY] Name = Sitrus Berry NamePlural = Sitrus Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5581,7 +2207,7 @@ Description = It may be used or held by a Pokémon to heal the user's HP a littl [FIGYBERRY] Name = Figy Berry NamePlural = Figy Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5589,7 +2215,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [WIKIBERRY] Name = Wiki Berry NamePlural = Wiki Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5597,7 +2223,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [MAGOBERRY] Name = Mago Berry NamePlural = Mago Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5605,7 +2231,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [AGUAVBERRY] Name = Aguav Berry NamePlural = Aguav Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5613,7 +2239,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [IAPAPABERRY] Name = Iapapa Berry NamePlural = Iapapa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5621,7 +2247,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [RAZZBERRY] Name = Razz Berry NamePlural = Razz Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_80 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5629,7 +2255,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [BLUKBERRY] Name = Bluk Berry NamePlural = Bluk Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5637,7 +2263,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [NANABBERRY] Name = Nanab Berry NamePlural = Nanab Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5645,7 +2271,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [WEPEARBERRY] Name = Wepear Berry NamePlural = Wepear Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5653,7 +2279,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [PINAPBERRY] Name = Pinap Berry NamePlural = Pinap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5661,7 +2287,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [POMEGBERRY] Name = Pomeg Berry NamePlural = Pomeg Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_ICE_90 @@ -5670,7 +2296,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [KELPSYBERRY] Name = Kelpsy Berry NamePlural = Kelpsy Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_FIGHTING_90 @@ -5679,7 +2305,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [QUALOTBERRY] Name = Qualot Berry NamePlural = Qualot Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_POISON_90 @@ -5688,7 +2314,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [HONDEWBERRY] Name = Hondew Berry NamePlural = Hondew Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_GROUND_90 @@ -5697,7 +2323,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [GREPABERRY] Name = Grepa Berry NamePlural = Grepa Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_FLYING_90 @@ -5706,7 +2332,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [TAMATOBERRY] Name = Tamato Berry NamePlural = Tamato Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_PSYCHIC_90 @@ -5715,7 +2341,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [CORNNBERRY] Name = Cornn Berry NamePlural = Cornn Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5723,7 +2349,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [MAGOSTBERRY] Name = Magost Berry NamePlural = Magost Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5731,7 +2357,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [RABUTABERRY] Name = Rabuta Berry NamePlural = Rabuta Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5739,7 +2365,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [NOMELBERRY] Name = Nomel Berry NamePlural = Nomel Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5747,7 +2373,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [SPELONBERRY] Name = Spelon Berry NamePlural = Spelon Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5755,7 +2381,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [PAMTREBERRY] Name = Pamtre Berry NamePlural = Pamtre Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5763,7 +2389,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [WATMELBERRY] Name = Watmel Berry NamePlural = Watmel Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5771,7 +2397,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [DURINBERRY] Name = Durin Berry NamePlural = Durin Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5779,7 +2405,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [BELUEBERRY] Name = Belue Berry NamePlural = Belue Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5787,135 +2413,135 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [OCCABERRY] Name = Occa Berry NamePlural = Occa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_80 -Description = Weakens a supereffective Fire-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fire-type attack. #------------------------------- [PASSHOBERRY] Name = Passho Berry NamePlural = Passho Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_80 -Description = Weakens a supereffective Water-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Water-type attack. #------------------------------- [WACANBERRY] Name = Wacan Berry NamePlural = Wacan Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_80 -Description = Weakens a supereffective Electric-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Electric attack. #------------------------------- [RINDOBERRY] Name = Rindo Berry NamePlural = Rindo Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_80 -Description = Weakens a supereffective Grass-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Grass-type attack. #------------------------------- [YACHEBERRY] Name = Yache Berry NamePlural = Yache Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ICE_80 -Description = Weakens a supereffective Ice-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ice-type attack. #------------------------------- [CHOPLEBERRY] Name = Chople Berry NamePlural = Chople Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIGHTING_80 -Description = Weakens a supereffective Fighting-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fighting attack. #------------------------------- [KEBIABERRY] Name = Kebia Berry NamePlural = Kebia Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_POISON_80 -Description = Weakens a supereffective Poison-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Poison-type attack. #------------------------------- [SHUCABERRY] Name = Shuca Berry NamePlural = Shuca Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GROUND_80 -Description = Weakens a supereffective Ground-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ground-type attack. #------------------------------- [COBABERRY] Name = Coba Berry NamePlural = Coba Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FLYING_80 -Description = Weakens a supereffective Flying-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Flying-type attack. #------------------------------- [PAYAPABERRY] Name = Payapa Berry NamePlural = Payapa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_PSYCHIC_80 -Description = Weakens a supereffective Psychic-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Psychic attack. #------------------------------- [TANGABERRY] Name = Tanga Berry NamePlural = Tanga Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_80 -Description = Weakens a supereffective Bug-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Bug-type attack. #------------------------------- [CHARTIBERRY] Name = Charti Berry NamePlural = Charti Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_80 -Description = Weakens a supereffective Rock-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Rock-type attack. #------------------------------- [KASIBBERRY] Name = Kasib Berry NamePlural = Kasib Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_80 -Description = Weakens a supereffective Ghost-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ghost-type attack. #------------------------------- [HABANBERRY] Name = Haban Berry NamePlural = Haban Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_80 -Description = Weakens a supereffective Dragon-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dragon-type attack. #------------------------------- [COLBURBERRY] Name = Colbur Berry NamePlural = Colbur Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_80 -Description = Weakens a supereffective Dark-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dark-type attack. #------------------------------- [BABIRIBERRY] Name = Babiri Berry NamePlural = Babiri Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_80 -Description = Weakens a supereffective Steel-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Steel-type attack. #------------------------------- [ROSELIBERRY] Name = Roseli Berry NamePlural = Roseli Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FAIRY_80 Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fairy-type attack. @@ -5923,15 +2549,15 @@ Description = If held by a Pokémon, this Berry will lessen the damage taken fro [CHILANBERRY] Name = Chilan Berry NamePlural = Chilan Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_NORMAL_80 -Description = Weakens a Normal-type attack against the Pokémon holding this berry. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one Normal-type attack. #------------------------------- [LIECHIBERRY] Name = Liechi Berry NamePlural = Liechi Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_100 Description = If held by a Pokémon, it raises its Attack stat in a pinch. @@ -5939,7 +2565,7 @@ Description = If held by a Pokémon, it raises its Attack stat in a pinch. [GANLONBERRY] Name = Ganlon Berry NamePlural = Ganlon Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ICE_100 Description = If held by a Pokémon, it raises its Defense stat in a pinch. @@ -5947,7 +2573,7 @@ Description = If held by a Pokémon, it raises its Defense stat in a pinch. [SALACBERRY] Name = Salac Berry NamePlural = Salac Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIGHTING_100 Description = If held by a Pokémon, it raises its Speed stat in a pinch. @@ -5955,7 +2581,7 @@ Description = If held by a Pokémon, it raises its Speed stat in a pinch. [PETAYABERRY] Name = Petaya Berry NamePlural = Petaya Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_POISON_100 Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. @@ -5963,7 +2589,7 @@ Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. [APICOTBERRY] Name = Apicot Berry NamePlural = Apicot Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GROUND_100 Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. @@ -5971,7 +2597,7 @@ Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. [LANSATBERRY] Name = Lansat Berry NamePlural = Lansat Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FLYING_100 Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch. @@ -5979,7 +2605,7 @@ Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch [STARFBERRY] Name = Starf Berry NamePlural = Starf Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_PSYCHIC_100 Description = If held by a Pokémon, it sharply raises one of its stats in a pinch. @@ -5987,7 +2613,7 @@ Description = If held by a Pokémon, it sharply raises one of its stats in a pin [ENIGMABERRY] Name = Enigma Berry NamePlural = Enigma Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_100 Description = If held by a Pokémon, it restores its HP if it is hit by any supereffective attack. @@ -5995,7 +2621,7 @@ Description = If held by a Pokémon, it restores its HP if it is hit by any supe [MICLEBERRY] Name = Micle Berry NamePlural = Micle Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_100 Description = If held by a Pokémon, it raises the accuracy of a move just once in a pinch. @@ -6003,7 +2629,7 @@ Description = If held by a Pokémon, it raises the accuracy of a move just once [CUSTAPBERRY] Name = Custap Berry NamePlural = Custap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_100 Description = If held by a Pokémon, it gets to move first just once in a pinch. @@ -6011,7 +2637,7 @@ Description = If held by a Pokémon, it gets to move first just once in a pinch. [JABOCABERRY] Name = Jaboca Berry NamePlural = Jaboca Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_100 Description = If held by a Pokémon and a physical attack lands, the attacker also takes damage. @@ -6019,7 +2645,7 @@ Description = If held by a Pokémon and a physical attack lands, the attacker al [ROWAPBERRY] Name = Rowap Berry NamePlural = Rowap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_100 Description = If held by a Pokémon and a special attack lands, the attacker also takes damage. @@ -6027,7 +2653,7 @@ Description = If held by a Pokémon and a special attack lands, the attacker als [KEEBERRY] Name = Kee Berry NamePlural = Kee Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FAIRY_100 Description = If held by a Pokémon, this Berry will increase the holder's Defense if it's hit with a physical move. @@ -6035,135 +2661,2355 @@ Description = If held by a Pokémon, this Berry will increase the holder's Defen [MARANGABERRY] Name = Maranga Berry NamePlural = Maranga Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_100 Description = If held by a Pokémon, this Berry will increase the holder's Sp. Def if it's hit with a special move. #------------------------------- -[GRASSMAIL] -Name = Grass Mail -NamePlural = Grass Mail -PortionName = piece of Grass Mail -PortionNamePlural = pieces of Grass Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. +[AIRBALLOON] +Name = Air Balloon +NamePlural = Air Balloons +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. #------------------------------- -[FLAMEMAIL] -Name = Flame Mail -NamePlural = Flame Mail -PortionName = piece of Flame Mail -PortionNamePlural = pieces of Flame Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. +[BRIGHTPOWDER] +Name = Bright Powder +NamePlural = Bright Powders +PortionName = bag of Bright Powder +PortionNamePlural = bags of Bright Powder +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. #------------------------------- -[BUBBLEMAIL] -Name = Bubble Mail -NamePlural = Bubble Mail -PortionName = piece of Bubble Mail -PortionNamePlural = pieces of Bubble Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. +[EVIOLITE] +Name = Eviolite +NamePlural = Eviolites +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_40 +Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. #------------------------------- -[BLOOMMAIL] -Name = Bloom Mail -NamePlural = Bloom Mail -PortionName = piece of Bloom Mail -PortionNamePlural = pieces of Bloom Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. +[FLOATSTONE] +Name = Float Stone +NamePlural = Float Stones +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 10 +Flags = Fling_30 +Description = A very light stone. It reduces the weight of a Pokémon when held. #------------------------------- -[TUNNELMAIL] -Name = Tunnel Mail -NamePlural = Tunnel Mail -PortionName = piece of Tunnel Mail -PortionNamePlural = pieces of Tunnel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. +[DESTINYKNOT] +Name = Destiny Knot +NamePlural = Destiny Knots +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 10 +Flags = Fling_10 +Description = A long, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. #------------------------------- -[STEELMAIL] -Name = Steel Mail -NamePlural = Steel Mail -PortionName = piece of Steel Mail -PortionNamePlural = pieces of Steel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. +[ROCKYHELMET] +Name = Rocky Helmet +NamePlural = Rocky Helmets +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_60 +Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. #------------------------------- -[HEARTMAIL] -Name = Heart Mail -NamePlural = Heart Mail -PortionName = piece of Heart Mail -PortionNamePlural = pieces of Heart Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. +[ASSAULTVEST] +Name = Assault Vest +NamePlural = Assault Vests +Pocket = HeldItems +Price = 1000 +BPPrice = 25 +Flags = Fling_80 +Description = An item to be held by a Pokémon. This offensive vest raises Sp. Def but prevents the use of status moves. #------------------------------- -[SNOWMAIL] -Name = Snow Mail -NamePlural = Snow Mail -PortionName = piece of Snow Mail -PortionNamePlural = pieces of Snow Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. +[SAFETYGOGGLES] +Name = Safety Goggles +NamePlural = Safety Goggles +PortionName = pair of Safety Goggles +PortionNamePlural = pairs of Safety Goggles +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_80 +Description = An item to be held by a Pokémon. They protect the holder from weather-related damage and powder. #------------------------------- -[SPACEMAIL] -Name = Space Mail -NamePlural = Space Mail -PortionName = piece of Space Mail -PortionNamePlural = pieces of Space Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print depicting the huge expanse of space. Let a Pokémon hold it for delivery. +[PROTECTIVEPADS] +Name = Protective Pads +NamePlural = Protective Pads +PortionName = set of Protective Pads +PortionNamePlural = sets of Protective Pads +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_30 +Description = An item to be held by a Pokémon. They protect the holder from effects caused by making contact. #------------------------------- -[AIRMAIL] -Name = Air Mail -NamePlural = Air Mail -PortionName = piece of Air Mail -PortionNamePlural = pieces of Air Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. +[HEAVYDUTYBOOTS] +Name = Heavy-Duty Boots +NamePlural = Heavy-Duty Boots +PortionName = pair of Heavy-Duty Boots +PortionNamePlural = pairs of Heavy-Duty Boots +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_80 +Description = These boots prevent the effects of traps set on the battlefield. #------------------------------- -[MOSAICMAIL] -Name = Mosaic Mail -NamePlural = Mosaic Mail -PortionName = piece of Mosaic Mail -PortionNamePlural = pieces of Mosaic Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. +[UTILITYUMBRELLA] +Name = Utility Umbrella +NamePlural = Utility Umbrellas +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_60 +Description = An item to be held by a Pokémon. This sturdy umbrella protects the holder from the effects of rain and sun. #------------------------------- -[BRICKMAIL] -Name = Brick Mail -NamePlural = Brick Mail -PortionName = piece of Brick Mail -PortionNamePlural = pieces of Brick Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. +[ABILITYSHIELD] +Name = Ability Shield +NamePlural = Ability Shields +Pocket = HeldItems +Price = 20000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. This cute shield protects the holder from having its Ability changed by others. +#------------------------------- +[CLEARAMULET] +Name = Clear Amulet +NamePlural = Clear Amulets +Pocket = HeldItems +Price = 30000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It protects the holder from having its stats lowered by other Pokémon. +#------------------------------- +[COVERTCLOAK] +Name = Covert Cloak +NamePlural = Covert Cloaks +Pocket = HeldItems +Price = 20000 +SellPrice = 5000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. This hooded cloak protects the holder from moves' additional effects. +#------------------------------- +[EJECTBUTTON] +Name = Eject Button +NamePlural = Eject Buttons +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 20 +Flags = Fling_30 +Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. +#------------------------------- +[EJECTPACK] +Name = Eject Pack +NamePlural = Eject Packs +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 20 +Flags = Fling_50 +Description = An item to be held by a Pokémon. When the holder's stats are lowered, it will be switched out of battle. +#------------------------------- +[REDCARD] +Name = Red Card +NamePlural = Red Cards +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 20 +Flags = Fling_10 +Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. +#------------------------------- +[SHEDSHELL] +Name = Shed Shell +NamePlural = Shed Shells +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. +#------------------------------- +[SMOKEBALL] +Name = Smoke Ball +NamePlural = Smoke Balls +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. +#------------------------------- +[LUCKYEGG] +Name = Lucky Egg +NamePlural = Lucky Eggs +Pocket = HeldItems +Price = 10000 +BPPrice = 77 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. +#------------------------------- +[EXPSHARE] +Name = Exp. Share +NamePlural = Exp. Shares +Pocket = HeldItems +Price = 3000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. +#------------------------------- +[AMULETCOIN] +Name = Amulet Coin +NamePlural = Amulet Coins +Pocket = HeldItems +Price = 10000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[SOOTHEBELL] +Name = Soothe Bell +NamePlural = Soothe Bells +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. +#------------------------------- +[CLEANSETAG] +Name = Cleanse Tag +NamePlural = Cleanse Tags +Pocket = HeldItems +Price = 5000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[CHOICEBAND] +Name = Choice Band +NamePlural = Choice Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. +#------------------------------- +[CHOICESPECS] +Name = Choice Specs +NamePlural = Choice Specs +PortionName = pair of Choice Specs +PortionNamePlural = pairs of Choice Specs +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. +#------------------------------- +[CHOICESCARF] +Name = Choice Scarf +NamePlural = Choice Scarves +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. +#------------------------------- +[HEATROCK] +Name = Heat Rock +NamePlural = Heat Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. +#------------------------------- +[DAMPROCK] +Name = Damp Rock +NamePlural = Damp Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. +#------------------------------- +[SMOOTHROCK] +Name = Smooth Rock +NamePlural = Smooth Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. +#------------------------------- +[ICYROCK] +Name = Icy Rock +NamePlural = Icy Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_40 +Description = A Pokémon held item that extends the duration of the move Hail used by the holder. +#------------------------------- +[TERRAINEXTENDER] +Name = Terrain Extender +NamePlural = Terrain Extenders +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_60 +Description = An item to be held by a Pokémon. It extends the duration of the terrain caused by the holder. +#------------------------------- +[LIGHTCLAY] +Name = Light Clay +NamePlural = Light Clays +PortionName = lump of Light Clay +PortionNamePlural = lumps of Light Clay +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_30 +Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. +#------------------------------- +[GRIPCLAW] +Name = Grip Claw +NamePlural = Grip Claws +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_90 +Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. +#------------------------------- +[LOADEDDICE] +Name = Loaded Dice +NamePlural = Loaded Dice +PortionName = set of Loaded Dice +PortionNamePlural = sets of Loaded Dice +Pocket = HeldItems +Price = 20000 +SellPrice = 5000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. This dice ensures that the holder's multistrike moves hit more times. +#------------------------------- +[BINDINGBAND] +Name = Binding Band +NamePlural = Binding Bands +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 15 +Flags = Fling_30 +Description = A band that increases the power of binding moves when held. +#------------------------------- +[BIGROOT] +Name = Big Root +NamePlural = Big Roots +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. +#------------------------------- +[BLACKSLUDGE] +Name = Black Sludge +NamePlural = Black Sludges +PortionName = blob of Black Sludge +PortionNamePlural = blobs of Black Sludge +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_30 +Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. +#------------------------------- +[LEFTOVERS] +Name = Leftovers +NamePlural = Leftovers +PortionName = serving of Leftovers +PortionNamePlural = servings of Leftovers +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. +#------------------------------- +[SHELLBELL] +Name = Shell Bell +NamePlural = Shell Bells +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. +#------------------------------- +[MENTALHERB] +Name = Mental Herb +NamePlural = Mental Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. +#------------------------------- +[WHITEHERB] +Name = White Herb +NamePlural = White Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. +#------------------------------- +[POWERHERB] +Name = Power Herb +NamePlural = Power Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. +#------------------------------- +[MIRRORHERB] +Name = Mirror Herb +NamePlural = Mirror Herbs +Pocket = HeldItems +Price = 30000 +SellPrice = 7500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It allows the holder to copy an opponent's stat increases once. +#------------------------------- +[ABSORBBULB] +Name = Absorb Bulb +NamePlural = Absorb Bulbs +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. +#------------------------------- +[CELLBATTERY] +Name = Cell Battery +NamePlural = Cell Batteries +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. +#------------------------------- +[LUMINOUSMOSS] +Name = Luminous Moss +NamePlural = Luminous Moss +PortionName = clump of Luminous Moss +PortionNamePlural = clumps of Luminous Moss +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Sp. Def if hit by a Water-type attack. It can only be used once. +#------------------------------- +[SNOWBALL] +Name = Snowball +NamePlural = Snowballs +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Attack if hit by an Ice-type attack. It can only be used once. +#------------------------------- +[WEAKNESSPOLICY] +Name = Weakness Policy +NamePlural = Weakness Policies +Pocket = HeldItems +Price = 1000 +BPPrice = 20 +Flags = Fling_80 +Description = An item to be held by a Pokémon. The holder's Attack and Sp. Atk sharply increase if hit by a move it's weak to. +#------------------------------- +[BLUNDERPOLICY] +Name = Blunder Policy +NamePlural = Blunder Policies +Pocket = HeldItems +Price = 4000 +BPPrice = 20 +Flags = Fling_80 +Description = Raises Speed sharply when a Pokémon misses with a move because of accuracy. +#------------------------------- +[THROATSPRAY] +Name = Throat Spray +NamePlural = Throat Sprays +PortionName = bottle of Throat Spray +PortionNamePlural = bottles of Throat Spray +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = Raises Sp. Atk when a Pokémon uses a sound-based move. +#------------------------------- +[ADRENALINEORB] +Name = Adrenaline Orb +NamePlural = Adrenaline Orbs +Pocket = HeldItems +Price = 300 +BPPrice = 10 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Speed when intimidated. It can be used only once. +#------------------------------- +[BOOSTERENERGY] +Name = Booster Energy +NamePlural = Booster Energies +PortionName = capsule of Booster Energy +PortionNamePlural = capsules of Booster Energy +Pocket = HeldItems +Price = 0 +Flags = Fling_30 +Description = An item to be held by Pokémon with certain Abilities. Its energy boosts the strength of the Pokémon. +#------------------------------- +[ROOMSERVICE] +Name = Room Service +NamePlural = Room Services +PortionName = voucher for Room Service +PortionNamePlural = vouchers for Room Service +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_100 +Description = An item to be held by a Pokémon. Lowers Speed when Trick Room takes effect. +#------------------------------- +[ELECTRICSEED] +Name = Electric Seed +NamePlural = Electric Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Defense on Electric Terrain. It can only be used once. +#------------------------------- +[GRASSYSEED] +Name = Grassy Seed +NamePlural = Grassy Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Defense on Grassy Terrain. It can only be used once. +#------------------------------- +[MISTYSEED] +Name = Misty Seed +NamePlural = Misty Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Sp. Def on Misty Terrain. It can only be used once. +#------------------------------- +[PSYCHICSEED] +Name = Psychic Seed +NamePlural = Psychic Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Sp. Def on Psychic Terrain. It can only be used once. +#------------------------------- +[LIFEORB] +Name = Life Orb +NamePlural = Life Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. +#------------------------------- +[EXPERTBELT] +Name = Expert Belt +NamePlural = Expert Belts +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. +#------------------------------- +[METRONOME] +Name = Metronome +NamePlural = Metronomes +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_30 +Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. +#------------------------------- +[PUNCHINGGLOVE] +Name = Punching Glove +NamePlural = Punching Gloves +Pocket = HeldItems +Price = 15000 +SellPrice = 3750 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It powers up the holder's punching moves and prevents direct contact. +#------------------------------- +[MUSCLEBAND] +Name = Muscle Band +NamePlural = Muscle Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. +#------------------------------- +[WISEGLASSES] +Name = Wise Glasses +NamePlural = Wise Glasses +PortionName = pair of Wise Glasses +PortionNamePlural = pairs of Wise Glasses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. +#------------------------------- +[RAZORCLAW] +Name = Razor Claw +NamePlural = Razor Claws +Pocket = HeldItems +Price = 3000 +SellPrice = 2500 +BPPrice = 5 +Flags = Fling_80 +Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. +#------------------------------- +[SCOPELENS] +Name = Scope Lens +NamePlural = Scope Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. +#------------------------------- +[WIDELENS] +Name = Wide Lens +NamePlural = Wide Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. +#------------------------------- +[ZOOMLENS] +Name = Zoom Lens +NamePlural = Zoom Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. +#------------------------------- +[KINGSROCK] +Name = King's Rock +NamePlural = King's Rocks +Pocket = HeldItems +Price = 5000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. +#------------------------------- +[RAZORFANG] +Name = Razor Fang +NamePlural = Razor Fangs +Pocket = HeldItems +Price = 5000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. +#------------------------------- +[LAGGINGTAIL] +Name = Lagging Tail +NamePlural = Lagging Tails +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. +#------------------------------- +[QUICKCLAW] +Name = Quick Claw +NamePlural = Quick Claws +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_80 +Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. +#------------------------------- +[FOCUSBAND] +Name = Focus Band +NamePlural = Focus Bands +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. +#------------------------------- +[FOCUSSASH] +Name = Focus Sash +NamePlural = Focus Sashes +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. +#------------------------------- +[FLAMEORB] +Name = Flame Orb +NamePlural = Flame Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. +#------------------------------- +[TOXICORB] +Name = Toxic Orb +NamePlural = Toxic Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. +#------------------------------- +[STICKYBARB] +Name = Sticky Barb +NamePlural = Sticky Barbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_80 +Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. +#------------------------------- +[IRONBALL] +Name = Iron Ball +NamePlural = Iron Balls +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_130 +Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. +#------------------------------- +[RINGTARGET] +Name = Ring Target +NamePlural = Ring Targets +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 10 +Flags = Fling_10 +Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. +#------------------------------- +[MACHOBRACE] +Name = Macho Brace +NamePlural = Macho Braces +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_60 +Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. +#------------------------------- +[POWERWEIGHT] +Name = Power Weight +NamePlural = Power Weights +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBRACER] +Name = Power Bracer +NamePlural = Power Bracers +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBELT] +Name = Power Belt +NamePlural = Power Belts +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERLENS] +Name = Power Lens +NamePlural = Power Lenses +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBAND] +Name = Power Band +NamePlural = Power Bands +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERANKLET] +Name = Power Anklet +NamePlural = Power Anklets +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. +#------------------------------- +[LAXINCENSE] +Name = Lax Incense +NamePlural = Lax Incenses +PortionName = jar of Lax Incense +PortionNamePlural = jars of Lax Incense +Pocket = HeldItems +Price = 5000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. +#------------------------------- +[FULLINCENSE] +Name = Full Incense +NamePlural = Full Incenses +PortionName = jar of Full Incense +PortionNamePlural = jars of Full Incense +Pocket = HeldItems +Price = 5000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. +#------------------------------- +[LUCKINCENSE] +Name = Luck Incense +NamePlural = Luck Incenses +PortionName = jar of Luck Incense +PortionNamePlural = jars of Luck Incense +Pocket = HeldItems +Price = 11000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[PUREINCENSE] +Name = Pure Incense +NamePlural = Pure Incenses +PortionName = jar of Pure Incense +PortionNamePlural = jars of Pure Incense +Pocket = HeldItems +Price = 6000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[SEAINCENSE] +Name = Sea Incense +NamePlural = Sea Incenses +PortionName = jar of Sea Incense +PortionNamePlural = jars of Sea Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[WAVEINCENSE] +Name = Wave Incense +NamePlural = Wave Incenses +PortionName = jar of Wave Incense +PortionNamePlural = jars of Wave Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[ROSEINCENSE] +Name = Rose Incense +NamePlural = Rose Incenses +PortionName = jar of Rose Incense +PortionNamePlural = jars of Rose Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. +#------------------------------- +[ODDINCENSE] +Name = Odd Incense +NamePlural = Odd Incenses +PortionName = jar of Odd Incense +PortionNamePlural = jars of Odd Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. +#------------------------------- +[ROCKINCENSE] +Name = Rock Incense +NamePlural = Rock Incenses +PortionName = jar of Rock Incense +PortionNamePlural = jars of Rock Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. +#------------------------------- +[CHARCOAL] +Name = Charcoal +NamePlural = Charcoals +PortionName = piece of Charcoal +PortionNamePlural = pieces of Charcoal +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. +#------------------------------- +[MYSTICWATER] +Name = Mystic Water +NamePlural = Mystic Waters +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. +#------------------------------- +[MAGNET] +Name = Magnet +NamePlural = Magnets +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. +#------------------------------- +[MIRACLESEED] +Name = Miracle Seed +NamePlural = Miracle Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. +#------------------------------- +[NEVERMELTICE] +Name = Never-Melt Ice +NamePlural = Never-Melt Ices +PortionName = piece of Never-Melt Ice +PortionNamePlural = pieces of Never-Melt Ice +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. +#------------------------------- +[BLACKBELT] +Name = Black Belt +NamePlural = Black Belts +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. +#------------------------------- +[POISONBARB] +Name = Poison Barb +NamePlural = Poison Barbs +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. +#------------------------------- +[SOFTSAND] +Name = Soft Sand +NamePlural = Soft Sand +PortionName = bag of Soft Sand +PortionNamePlural = bags of Soft Sand +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. +#------------------------------- +[SHARPBEAK] +Name = Sharp Beak +NamePlural = Sharp Beaks +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_50 +Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. +#------------------------------- +[TWISTEDSPOON] +Name = Twisted Spoon +NamePlural = Twisted Spoons +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. +#------------------------------- +[SILVERPOWDER] +Name = Silver Powder +NamePlural = Silver Powders +PortionName = pile of Silver Powder +PortionNamePlural = piles of Silver Powder +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. +#------------------------------- +[HARDSTONE] +Name = Hard Stone +NamePlural = Hard Stones +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_100 +Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. +#------------------------------- +[SPELLTAG] +Name = Spell Tag +NamePlural = Spell Tags +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. +#------------------------------- +[DRAGONFANG] +Name = Dragon Fang +NamePlural = Dragon Fangs +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. +#------------------------------- +[BLACKGLASSES] +Name = Black Glasses +NamePlural = Black Glasses +PortionName = pair of Black Glasses +PortionNamePlural = pairs of Black Glasses +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. +#------------------------------- +[METALCOAT] +Name = Metal Coat +NamePlural = Metal Coats +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. +#------------------------------- +[FAIRYFEATHER] +Name = Fairy Feather +NamePlural = Fairy Feathers +Pocket = HeldItems +Price = 3000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This gleaming feather boosts the power of the holder's Fairy-type moves. +#------------------------------- +[SILKSCARF] +Name = Silk Scarf +NamePlural = Silk Scarves +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. +#------------------------------- +[FLAMEPLATE] +Name = Flame Plate +NamePlural = Flame Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. +#------------------------------- +[SPLASHPLATE] +Name = Splash Plate +NamePlural = Splash Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. +#------------------------------- +[ZAPPLATE] +Name = Zap Plate +NamePlural = Zap Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. +#------------------------------- +[MEADOWPLATE] +Name = Meadow Plate +NamePlural = Meadow Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. +#------------------------------- +[ICICLEPLATE] +Name = Icicle Plate +NamePlural = Icicle Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. +#------------------------------- +[FISTPLATE] +Name = Fist Plate +NamePlural = Fist Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. +#------------------------------- +[TOXICPLATE] +Name = Toxic Plate +NamePlural = Toxic Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. +#------------------------------- +[EARTHPLATE] +Name = Earth Plate +NamePlural = Earth Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. +#------------------------------- +[SKYPLATE] +Name = Sky Plate +NamePlural = Sky Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. +#------------------------------- +[MINDPLATE] +Name = Mind Plate +NamePlural = Mind Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. +#------------------------------- +[INSECTPLATE] +Name = Insect Plate +NamePlural = Insect Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. +#------------------------------- +[STONEPLATE] +Name = Stone Plate +NamePlural = Stone Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. +#------------------------------- +[SPOOKYPLATE] +Name = Spooky Plate +NamePlural = Spooky Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. +#------------------------------- +[DRACOPLATE] +Name = Draco Plate +NamePlural = Draco Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. +#------------------------------- +[DREADPLATE] +Name = Dread Plate +NamePlural = Dread Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. +#------------------------------- +[IRONPLATE] +Name = Iron Plate +NamePlural = Iron Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. +#------------------------------- +[PIXIEPLATE] +Name = Pixie Plate +NamePlural = Pixie Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fairy-type moves. +#------------------------------- +[FIREGEM] +Name = Fire Gem +NamePlural = Fire Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. +#------------------------------- +[WATERGEM] +Name = Water Gem +NamePlural = Water Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. +#------------------------------- +[ELECTRICGEM] +Name = Electric Gem +NamePlural = Electric Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. +#------------------------------- +[GRASSGEM] +Name = Grass Gem +NamePlural = Grass Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. +#------------------------------- +[ICEGEM] +Name = Ice Gem +NamePlural = Ice Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. +#------------------------------- +[FIGHTINGGEM] +Name = Fighting Gem +NamePlural = Fighting Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. +#------------------------------- +[POISONGEM] +Name = Poison Gem +NamePlural = Poison Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. +#------------------------------- +[GROUNDGEM] +Name = Ground Gem +NamePlural = Ground Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. +#------------------------------- +[FLYINGGEM] +Name = Flying Gem +NamePlural = Flying Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. +#------------------------------- +[PSYCHICGEM] +Name = Psychic Gem +NamePlural = Psychic Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. +#------------------------------- +[BUGGEM] +Name = Bug Gem +NamePlural = Bug Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. +#------------------------------- +[ROCKGEM] +Name = Rock Gem +NamePlural = Rock Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. +#------------------------------- +[GHOSTGEM] +Name = Ghost Gem +NamePlural = Ghost Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. +#------------------------------- +[DRAGONGEM] +Name = Dragon Gem +NamePlural = Dragon Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. +#------------------------------- +[DARKGEM] +Name = Dark Gem +NamePlural = Dark Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. +#------------------------------- +[STEELGEM] +Name = Steel Gem +NamePlural = Steel Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. +#------------------------------- +[FAIRYGEM] +Name = Fairy Gem +NamePlural = Fairy Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of the fey. When held, it strengthens the power of a Fairy-type move only once. +#------------------------------- +[NORMALGEM] +Name = Normal Gem +NamePlural = Normal Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. +#------------------------------- +[LIGHTBALL] +Name = Light Ball +NamePlural = Light Balls +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. +#------------------------------- +[LUCKYPUNCH] +Name = Lucky Punch +NamePlural = Lucky Punches +Pocket = HeldItems +Price = 1000 +BPPrice = 7 +Flags = Fling_40 +Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. +#------------------------------- +[METALPOWDER] +Name = Metal Powder +NamePlural = Metal Powders +PortionName = bag of Metal Powder +PortionNamePlural = bags of Metal Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. +#------------------------------- +[QUICKPOWDER] +Name = Quick Powder +NamePlural = Quick Powders +PortionName = bag of Quick Powder +PortionNamePlural = bags of Quick Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. +#------------------------------- +[THICKCLUB] +Name = Thick Club +NamePlural = Thick Clubs +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. +#------------------------------- +[LEEK] +Name = Leek +NamePlural = Leeks +Pocket = HeldItems +Price = 1000 +Flags = Fling_60 +Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. +#------------------------------- +[SOULDEW] +Name = Soul Dew +NamePlural = Soul Dews +Pocket = HeldItems +Price = 0 +Flags = Fling_30 +Description = A wondrous orb to be held by either Latios or Latias. It raises the power of Psychic- and Dragon-type moves. +#------------------------------- +[DEEPSEATOOTH] +Name = Deep Sea Tooth +NamePlural = Deep Sea Teeth +Pocket = HeldItems +Price = 2000 +BPPrice = 5 +Flags = Fling_90 +Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. +#------------------------------- +[DEEPSEASCALE] +Name = Deep Sea Scale +NamePlural = Deep Sea Scales +Pocket = HeldItems +Price = 2000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. +#------------------------------- +[ADAMANTORB] +Name = Adamant Orb +NamePlural = Adamant Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +Flags = Fling_60 +Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. +#------------------------------- +[LUSTROUSORB] +Name = Lustrous Orb +NamePlural = Lustrous Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +Flags = Fling_60 +Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. +#------------------------------- +[GRISEOUSORB] +Name = Griseous Orb +NamePlural = Griseous Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +Flags = Fling_60 +Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. +#------------------------------- +[ADAMANTCRYSTAL] +Name = Adamant Crystal +NamePlural = Adamant Crystals +Pocket = HeldItems +Price = 4000 +SellPrice = 0 +Flags = Fling_60 +Description = A large, glowing gem to be held by Dialga. It wells with power and allows the Pokémon to change form. +#------------------------------- +[LUSTROUSGLOBE] +Name = Lustrous Globe +NamePlural = Lustrous Globes +Pocket = HeldItems +Price = 4000 +SellPrice = 0 +Flags = Fling_60 +Description = A large, glowing orb to be held by Palkia. It wells with power and allows the Pokémon to change form. +#------------------------------- +[GRISEOUSCORE] +Name = Griseous Core +NamePlural = Griseous Cores +Pocket = HeldItems +Price = 4000 +SellPrice = 0 +Flags = Fling_60 +Description = A large, glowing gem to be held by Giratina. It wells with power and allows the Pokémon to change form. +#------------------------------- +[RUSTEDSWORD] +Name = Rusted Sword +NamePlural = Rusted Swords +Pocket = HeldItems +Price = 0 +Description = It is said that a hero used this sword to halt a disaster in ancient times. But it's grown rusty and worn. +#------------------------------- +[RUSTEDSHIELD] +Name = Rusted Shield +NamePlural = Rusted Shields +Pocket = HeldItems +Price = 0 +Description = It is said that a hero used this shield to halt a disaster in ancient times. But it's grown rusty and worn. +#------------------------------- +[WELLSPRINGMASK] +Name = Wellspring Mask +NamePlural = Wellspring Masks +Pocket = HeldItems +Flags = Fling_60 +Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Water type in battle. +#------------------------------- +[HEARTHFLAMEMASK] +Name = Hearthflame Mask +NamePlural = Hearthflame Masks +Pocket = HeldItems +Price = 0 +Flags = Fling_60 +Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Fire type in battle. +#------------------------------- +[CORNERSTONEMASK] +Name = Cornerstone Mask +NamePlural = Cornerstone Masks +Pocket = HeldItems +Price = 0 +Flags = Fling_60 +Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Rock type in battle. +#------------------------------- +[DOUSEDRIVE] +Name = Douse Drive +NamePlural = Douse Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. +#------------------------------- +[SHOCKDRIVE] +Name = Shock Drive +NamePlural = Shock Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. +#------------------------------- +[BURNDRIVE] +Name = Burn Drive +NamePlural = Burn Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. +#------------------------------- +[CHILLDRIVE] +Name = Chill Drive +NamePlural = Chill Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. +#------------------------------- +[FIREMEMORY] +Name = Fire Memory +NamePlural = Fire Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fire-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[WATERMEMORY] +Name = Water Memory +NamePlural = Water Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Water-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ELECTRICMEMORY] +Name = Electric Memory +NamePlural = Electric Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Electric-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GRASSMEMORY] +Name = Grass Memory +NamePlural = Grass Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Grass-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ICEMEMORY] +Name = Ice Memory +NamePlural = Ice Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ice-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FIGHTINGMEMORY] +Name = Fighting Memory +NamePlural = Fighting Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fighting-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[POISONMEMORY] +Name = Poison Memory +NamePlural = Poison Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Poison-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GROUNDMEMORY] +Name = Ground Memory +NamePlural = Ground Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ground-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FLYINGMEMORY] +Name = Flying Memory +NamePlural = Flying Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Flying-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[PSYCHICMEMORY] +Name = Psychic Memory +NamePlural = Psychic Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Psychic-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[BUGMEMORY] +Name = Bug Memory +NamePlural = Bug Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Bug-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ROCKMEMORY] +Name = Rock Memory +NamePlural = Rock Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Rock-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GHOSTMEMORY] +Name = Ghost Memory +NamePlural = Ghost Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ghost-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[DRAGONMEMORY] +Name = Dragon Memory +NamePlural = Dragon Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Dragon-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[DARKMEMORY] +Name = Dark Memory +NamePlural = Dark Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Dark-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[STEELMEMORY] +Name = Steel Memory +NamePlural = Steel Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Steel-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FAIRYMEMORY] +Name = Fairy Memory +NamePlural = Fairy Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fairy-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[EVERSTONE] +Name = Everstone +NamePlural = Everstones +Pocket = HeldItems +Price = 3000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. +#------------------------------- +[DRAGONSCALE] +Name = Dragon Scale +NamePlural = Dragon Scales +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_30 +Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. +#------------------------------- +[UPGRADE] +Name = Upgrade +NamePlural = Upgrades +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_30 +Description = A transparent device filled with all sorts of data. It was produced by Silph Co. +#------------------------------- +[DUBIOUSDISC] +Name = Dubious Disc +NamePlural = Dubious Discs +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_50 +Description = A transparent device overflowing with dubious data. Its producer is unknown. +#------------------------------- +[PROTECTOR] +Name = Protector +NamePlural = Protectors +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. +#------------------------------- +[ELECTIRIZER] +Name = Electirizer +NamePlural = Electirizers +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. +#------------------------------- +[MAGMARIZER] +Name = Magmarizer +NamePlural = Magmarizers +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. +#------------------------------- +[REAPERCLOTH] +Name = Reaper Cloth +NamePlural = Reaper Cloths +PortionName = scrap of Reaper Cloth +PortionNamePlural = scraps of Reaper Cloth +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_10 +Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. +#------------------------------- +[PRISMSCALE] +Name = Prism Scale +NamePlural = Prism Scales +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 10 +Flags = Fling_30 +Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. +#------------------------------- +[OVALSTONE] +Name = Oval Stone +NamePlural = Oval Stones +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. +#------------------------------- +[WHIPPEDDREAM] +Name = Whipped Dream +NamePlural = Whipped Dreams +PortionName = dollop of Whipped Dream +PortionNamePlural = dollops of Whipped Dream +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A soft and sweet treat made of fluffy, puffy and whirled cream. It's loved by a certain Pokémon. +#------------------------------- +[SACHET] +Name = Sachet +NamePlural = Sachets +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A sachet filled with slightly overwhelming fragrant perfumes. Yet it's loved by a certain Pokémon. +#------------------------------- +[STRAWBERRYSWEET] +Name = Strawberry Sweet +NamePlural = Strawberry Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A strawberry-shaped sweet. When a Milcery holds this, it will spin around happily. +#------------------------------- +[LOVESWEET] +Name = Love Sweet +NamePlural = Love Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A heart-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[BERRYSWEET] +Name = Berry Sweet +NamePlural = Berry Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A berry-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[CLOVERSWEET] +Name = Clover Sweet +NamePlural = Clover Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A clover-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[FLOWERSWEET] +Name = Flower Sweet +NamePlural = Flower Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A flower-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[STARSWEET] +Name = Star Sweet +NamePlural = Star Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A star-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[RIBBONSWEET] +Name = Ribbon Sweet +NamePlural = Ribbon Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A ribbon-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[VENUSAURITE] +Name = Venusaurite +NamePlural = Venusaurites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Venusaur hold it, and it will be able to Mega Evolve. +#------------------------------- +[CHARIZARDITEX] +Name = Charizardite X +NamePlural = Charizardite Xs +Pocket = MegaStones +Price = 0 +BPPrice = 50 +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. +#------------------------------- +[CHARIZARDITEY] +Name = Charizardite Y +NamePlural = Charizardite Ys +Pocket = MegaStones +Price = 0 +BPPrice = 50 +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. +#------------------------------- +[BLASTOISINITE] +Name = Blastoisinite +NamePlural = Blastoisinites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Blastoise hold it, and it will be able to Mega Evolve. +#------------------------------- +[BEEDRILLITE] +Name = Beedrillite +NamePlural = Beedrillites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Beedrill hold it, and it will be able to Mega Evolve. +#------------------------------- +[PIDGEOTITE] +Name = Pidgeotite +NamePlural = Pidgeotites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Pidgeot hold it, and it will be able to Mega Evolve. +#------------------------------- +[ALAKAZITE] +Name = Alakazite +NamePlural = Alakazites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Alakazam hold it, and it will be able to Mega Evolve. +#------------------------------- +[SLOWBRONITE] +Name = Slowbronite +NamePlural = Slowbronites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Slowbro hold it, and it will be able to Mega Evolve. +#------------------------------- +[GENGARITE] +Name = Gengarite +NamePlural = Gengarites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gengar hold it, and it will be able to Mega Evolve. +#------------------------------- +[KANGASKHANITE] +Name = Kangaskhanite +NamePlural = Kangaskhanites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Kangaskhan hold it, and it will be able to Mega Evolve. +#------------------------------- +[PINSIRITE] +Name = Pinsirite +NamePlural = Pinsirites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Pinsir hold it, and it will be able to Mega Evolve. +#------------------------------- +[GYARADOSITE] +Name = Gyaradosite +NamePlural = Gyaradosites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gyarados hold it, and it will be able to Mega Evolve. +#------------------------------- +[AERODACTYLITE] +Name = Aerodactylite +NamePlural = Aerodactylites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Aerodactyl hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEWTWONITEX] +Name = Mewtwonite X +NamePlural = Mewtwonite Xs +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEWTWONITEY] +Name = Mewtwonite Y +NamePlural = Mewtwonite Ys +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. +#------------------------------- +[AMPHAROSITE] +Name = Ampharosite +NamePlural = Ampharosites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Ampharos hold it, and it will be able to Mega Evolve. +#------------------------------- +[STEELIXITE] +Name = Steelixite +NamePlural = Steelixites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Steelix hold it, and it will be able to Mega Evolve. +#------------------------------- +[SCIZORITE] +Name = Scizorite +NamePlural = Scizorites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Scizor hold it, and it will be able to Mega Evolve. +#------------------------------- +[HERACRONITE] +Name = Heracronite +NamePlural = Heracronites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Heracross hold it, and it will be able to Mega Evolve. +#------------------------------- +[HOUNDOOMINITE] +Name = Houndoominite +NamePlural = Houndoominites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Houndoom hold it, and it will be able to Mega Evolve. +#------------------------------- +[TYRANITARITE] +Name = Tyranitarite +NamePlural = Tyranitarites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Tyranitar hold it, and it will be able to Mega Evolve. +#------------------------------- +[SCEPTILITE] +Name = Sceptilite +NamePlural = Sceptilites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sceptile hold it, and it will be able to Mega Evolve. +#------------------------------- +[BLAZIKENITE] +Name = Blazikenite +NamePlural = Blazikenites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Blaziken hold it, and it will be able to Mega Evolve. +#------------------------------- +[SWAMPERTITE] +Name = Swampertite +NamePlural = Swampertites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Swampert hold it, and it will be able to Mega Evolve. +#------------------------------- +[GARDEVOIRITE] +Name = Gardevoirite +NamePlural = Gardevoirites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gardevoir hold it, and it will be able to Mega Evolve. +#------------------------------- +[SABLENITE] +Name = Sablenite +NamePlural = Sablenites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sableye hold it, and it will be able to Mega Evolve. +#------------------------------- +[MAWILITE] +Name = Mawilite +NamePlural = Mawilites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mawile hold it, and it will be able to Mega Evolve. +#------------------------------- +[AGGRONITE] +Name = Aggronite +NamePlural = Aggronites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Aggron hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEDICHAMITE] +Name = Medichamite +NamePlural = Medichamites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Medicham hold it, and it will be able to Mega Evolve. +#------------------------------- +[MANECTITE] +Name = Manectite +NamePlural = Manectites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Manectric hold it, and it will be able to Mega Evolve. +#------------------------------- +[SHARPEDONITE] +Name = Sharpedonite +NamePlural = Sharpedonites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sharpedo hold it, and it will be able to Mega Evolve. +#------------------------------- +[CAMERUPTITE] +Name = Cameruptite +NamePlural = Cameruptites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Camerupt hold it, and it will be able to Mega Evolve. +#------------------------------- +[ALTARIANITE] +Name = Altarianite +NamePlural = Altarianites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Altaria hold it, and it will be able to Mega Evolve. +#------------------------------- +[BANETTITE] +Name = Banettite +NamePlural = Banettites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Banette hold it, and it will be able to Mega Evolve. +#------------------------------- +[ABSOLITE] +Name = Absolite +NamePlural = Absolites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Absol hold it, and it will be able to Mega Evolve. +#------------------------------- +[GLALITITE] +Name = Glalitite +NamePlural = Glalitites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Glalie hold it, and it will be able to Mega Evolve. +#------------------------------- +[SALAMENCITE] +Name = Salamencite +NamePlural = Salamencites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Salamence hold it, and it will be able to Mega Evolve. +#------------------------------- +[METAGROSSITE] +Name = Metagrossite +NamePlural = Metagrossites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Metagross hold it, and it will be able to Mega Evolve. +#------------------------------- +[LATIASITE] +Name = Latiasite +NamePlural = Latiasites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Latias hold it, and it will be able to Mega Evolve. +#------------------------------- +[LATIOSITE] +Name = Latiosite +NamePlural = Latiosites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Latios hold it, and it will be able to Mega Evolve. +#------------------------------- +[LOPUNNITE] +Name = Lopunnite +NamePlural = Lopunnites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Lopunny hold it, and it will be able to Mega Evolve. +#------------------------------- +[GARCHOMPITE] +Name = Garchompite +NamePlural = Garchompites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Garchomp hold it, and it will be able to Mega Evolve. +#------------------------------- +[LUCARIONITE] +Name = Lucarionite +NamePlural = Lucarionites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Lucario hold it, and it will be able to Mega Evolve. +#------------------------------- +[ABOMASITE] +Name = Abomasite +NamePlural = Abomasites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Abomasnow hold it, and it will be able to Mega Evolve. +#------------------------------- +[GALLADITE] +Name = Galladite +NamePlural = Galladites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gallade hold it, and it will be able to Mega Evolve. +#------------------------------- +[AUDINITE] +Name = Audinite +NamePlural = Audinites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Audino hold it, and it will be able to Mega Evolve. +#------------------------------- +[DIANCITE] +Name = Diancite +NamePlural = Diancites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Diancie hold it, and it will be able to Mega Evolve. +#------------------------------- +[REDORB] +Name = Red Orb +NamePlural = Red Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +BPPrice = 50 +Description = A shiny red orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. +#------------------------------- +[BLUEORB] +Name = Blue Orb +NamePlural = Blue Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +BPPrice = 50 +Description = A shiny blue orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. #------------------------------- [XATTACK] Name = X Attack NamePlural = X Attacks -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6172,7 +5018,7 @@ Description = An item that sharply boosts the Attack stat of a Pokémon while it [XATTACK2] Name = X Attack 2 NamePlural = X Attack 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6181,7 +5027,7 @@ Description = It sharply raises the Attack stat of a Pokémon in battle. It wear [XATTACK3] Name = X Attack 3 NamePlural = X Attack 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6190,7 +5036,7 @@ Description = It drastically raises the Attack stat of a Pokémon in battle. It [XATTACK6] Name = X Attack 6 NamePlural = X Attack 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6199,7 +5045,7 @@ Description = It raises the Attack stat of a Pokémon in battle immensely. It we [XDEFENSE] Name = X Defense NamePlural = X Defenses -Pocket = 7 +Pocket = BattleItems Price = 2000 BattleUse = OnBattler Flags = Fling_30 @@ -6208,7 +5054,7 @@ Description = An item that sharply boosts the Defense of a Pokémon while it rem [XDEFENSE2] Name = X Defense 2 NamePlural = X Defense 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6217,7 +5063,7 @@ Description = It sharply raises the Defense stat of a Pokémon in battle. It wea [XDEFENSE3] Name = X Defense 3 NamePlural = X Defense 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6226,7 +5072,7 @@ Description = It drastically raises the Defense stat of a Pokémon in battle. It [XDEFENSE6] Name = X Defense 6 NamePlural = X Defense 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6235,7 +5081,7 @@ Description = It raises the Defense stat of a Pokémon in battle immensely. It w [XSPATK] Name = X Sp. Atk NamePlural = X Sp. Atks -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6244,7 +5090,7 @@ Description = An item that sharply boosts the Sp. Atk stat of a Pokémon while i [XSPATK2] Name = X Sp. Atk 2 NamePlural = X Sp. Atk 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6253,7 +5099,7 @@ Description = It sharply raises the Sp. Atk stat of a Pokémon in battle. It wea [XSPATK3] Name = X Sp. Atk 3 NamePlural = X Sp. Atk 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6262,7 +5108,7 @@ Description = It drastically raises the Sp. Atk stat of a Pokémon in battle. It [XSPATK6] Name = X Sp. Atk 6 NamePlural = X Sp. Atk 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6271,7 +5117,7 @@ Description = It raises the Sp. Atk stat of a Pokémon in battle immensely. It w [XSPDEF] Name = X Sp. Def NamePlural = X Sp. Defs -Pocket = 7 +Pocket = BattleItems Price = 2000 BattleUse = OnBattler Flags = Fling_30 @@ -6280,7 +5126,7 @@ Description = An item that sharply boosts the Sp. Def stat of a Pokémon while i [XSPDEF2] Name = X Sp. Def 2 NamePlural = X Sp. Def 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6289,7 +5135,7 @@ Description = It sharply raises the Sp. Def stat of a Pokémon in battle. It wea [XSPDEF3] Name = X Sp. Def 3 NamePlural = X Sp. Def 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6298,7 +5144,7 @@ Description = It drastically raises the Sp. Def stat of a Pokémon in battle. It [XSPDEF6] Name = X Sp. Def 6 NamePlural = X Sp. Def 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6307,7 +5153,7 @@ Description = It raises the Sp. Def stat of a Pokémon in battle immensely. It w [XSPEED] Name = X Speed NamePlural = X Speeds -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6316,7 +5162,7 @@ Description = An item that sharply boosts the Speed stat of a Pokémon while it [XSPEED2] Name = X Speed 2 NamePlural = X Speed 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6325,7 +5171,7 @@ Description = It sharply raises the Speed stat of a Pokémon in battle. It wears [XSPEED3] Name = X Speed 3 NamePlural = X Speed 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6334,7 +5180,7 @@ Description = It drastically raises the Speed stat of a Pokémon in battle. It w [XSPEED6] Name = X Speed 6 NamePlural = X Speed 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6343,7 +5189,7 @@ Description = It raises the Speed stat of a Pokémon in battle immensely. It wea [XACCURACY] Name = X Accuracy NamePlural = X Accuracies -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6352,7 +5198,7 @@ Description = An item that sharply boosts the accuracy of a Pokémon while it re [XACCURACY2] Name = X Accuracy 2 NamePlural = X Accuracy 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6361,7 +5207,7 @@ Description = It sharply raises the accuracy of a Pokémon in battle. It wears o [XACCURACY3] Name = X Accuracy 3 NamePlural = X Accuracy 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6370,7 +5216,7 @@ Description = It drastically raises the accuracy of a Pokémon in battle. It wea [XACCURACY6] Name = X Accuracy 6 NamePlural = X Accuracy 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6381,7 +5227,7 @@ Name = Max Mushrooms NamePlural = Max Mushrooms PortionName = cluster of Max Mushrooms PortionNamePlural = clusters of Max Mushrooms -Pocket = 7 +Pocket = BattleItems Price = 8000 BattleUse = OnBattler Flags = Fling_30 @@ -6390,7 +5236,7 @@ Description = Mushrooms that boost all stats of a Pokémon during battle. [DIREHIT] Name = Dire Hit NamePlural = Dire Hits -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6399,7 +5245,7 @@ Description = An item that raises the critical-hit ratio greatly. It wears off i [DIREHIT2] Name = Dire Hit 2 NamePlural = Dire Hit 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6408,7 +5254,7 @@ Description = It sharply raises the critical-hit ratio. It wears off if the Pok [DIREHIT3] Name = Dire Hit 3 NamePlural = Dire Hit 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6417,7 +5263,7 @@ Description = It greatly raises the critical-hit ratio. It wears off if the Pok [GUARDSPEC] Name = Guard Spec. NamePlural = Guard Specs. -Pocket = 7 +Pocket = BattleItems Price = 1500 BattleUse = Direct Flags = Fling_30 @@ -6426,7 +5272,7 @@ Description = An item that prevents stat reduction among the Trainer's party Pok [RESETURGE] Name = Reset Urge NamePlural = Reset Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it restores any stat changes of an ally Pokémon. @@ -6434,7 +5280,7 @@ Description = When used, it restores any stat changes of an ally Pokémon. [ABILITYURGE] Name = Ability Urge NamePlural = Ability Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it activates the Ability of an ally Pokémon. @@ -6442,7 +5288,7 @@ Description = When used, it activates the Ability of an ally Pokémon. [ITEMURGE] Name = Item Urge NamePlural = Item Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it causes an ally Pokémon to use its held item. @@ -6450,7 +5296,7 @@ Description = When used, it causes an ally Pokémon to use its held item. [ITEMDROP] Name = Item Drop NamePlural = Item Drops -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it causes an ally Pokémon to drop a held item. @@ -6458,7 +5304,7 @@ Description = When used, it causes an ally Pokémon to drop a held item. [BLUEFLUTE] Name = Blue Flute NamePlural = Blue Flutes -Pocket = 7 +Pocket = BattleItems Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -6469,7 +5315,7 @@ Description = A blue flute made from blown glass. Its melody awakens a single Po [YELLOWFLUTE] Name = Yellow Flute NamePlural = Yellow Flutes -Pocket = 7 +Pocket = BattleItems Price = 20 BattleUse = OnBattler Flags = Fling_30 @@ -6479,7 +5325,7 @@ Description = A yellow flute made from blown glass. Its melody snaps a single Po [REDFLUTE] Name = Red Flute NamePlural = Red Flutes -Pocket = 7 +Pocket = BattleItems Price = 20 BattleUse = OnBattler Flags = Fling_30 @@ -6489,7 +5335,7 @@ Description = A red flute made from blown glass. Its melody snaps a single Poké [POKEDOLL] Name = Poké Doll NamePlural = Poké Dolls -Pocket = 7 +Pocket = BattleItems Price = 300 BattleUse = Direct Flags = Fling_30 @@ -6498,7 +5344,7 @@ Description = A doll that attracts Pokémon. Use it to flee from any battle with [FLUFFYTAIL] Name = Fluffy Tail NamePlural = Fluffy Tails -Pocket = 7 +Pocket = BattleItems Price = 300 BattleUse = Direct Flags = Fling_30 @@ -6507,16 +5353,1170 @@ Description = An item that attracts Pokémon. Use it to flee from any battle wit [POKETOY] Name = Poké Toy NamePlural = Poké Toys -Pocket = 7 +Pocket = BattleItems Price = 300 BattleUse = Direct Flags = Fling_30 Description = An item that attracts Pokémon. Use it to flee from any battle with a wild Pokémon. #------------------------------- +[TM01] +Name = TM01 +NamePlural = TM01s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_150 +Move = FOCUSPUNCH +Description = The user focuses its mind before launching a punch. This move fails if the user is hit before it is used. +#------------------------------- +[TM02] +Name = TM02 +NamePlural = TM02s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DRAGONCLAW +Description = The user slashes the target with huge sharp claws. +#------------------------------- +[TM03] +Name = TM03 +NamePlural = TM03s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = WATERPULSE +Description = The user attacks the target with a pulsing blast of water. This may also confuse the target. +#------------------------------- +[TM04] +Name = TM04 +NamePlural = TM04s +Pocket = Machines +Price = 1500 +BPPrice = 48 +FieldUse = TR +Flags = Fling_10 +Move = CALMMIND +Description = The user quietly focuses its mind and calms its spirit to raise its Sp. Atk and Sp. Def stats. +#------------------------------- +[TM05] +Name = TM05 +NamePlural = TM05s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ROAR +Description = The target is scared off, and a different Pokémon is dragged out. In the wild, this ends the battle. +#------------------------------- +[TM06] +Name = TM06 +NamePlural = TM06s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TOXIC +Description = A move that leaves the target badly poisoned. Its poison damage worsens every turn. +#------------------------------- +[TM07] +Name = TM07 +NamePlural = TM07s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = HAIL +Description = The user summons a hailstorm lasting five turns. It damages all Pokémon except Ice types. +#------------------------------- +[TM08] +Name = TM08 +NamePlural = TM08s +Pocket = Machines +Price = 1500 +BPPrice = 48 +FieldUse = TR +Flags = Fling_10 +Move = BULKUP +Description = The user tenses its muscles to bulk up its body, raising both its Attack and Defense stats. +#------------------------------- +[TM09] +Name = TM09 +NamePlural = TM09s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_25 +Move = BULLETSEED +Description = The user forcefully shoots seeds at the target two to five times in a row. +#------------------------------- +[TM10] +Name = TM10 +NamePlural = TM10s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = WORKUP +Description = The user is roused, and its Attack and Sp. Atk stats increase. +#------------------------------- +[TM11] +Name = TM11 +NamePlural = TM11s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SUNNYDAY +Description = The user intensifies the sun for five turns, powering up Fire-type moves and weakening Water-type moves. +#------------------------------- +[TM12] +Name = TM12 +NamePlural = TM12s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TAUNT +Description = The target is taunted into a rage that allows it to use only attack moves for three turns. +#------------------------------- +[TM13] +Name = TM13 +NamePlural = TM13s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = ICEBEAM +Description = The target is struck with an icy-cold beam of energy. This may also leave the target frozen. +#------------------------------- +[TM14] +Name = TM14 +NamePlural = TM14s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_110 +Move = BLIZZARD +Description = A howling blizzard is summoned to strike opposing Pokémon. This may also leave them frozen. +#------------------------------- +[TM15] +Name = TM15 +NamePlural = TM15s +Pocket = Machines +Price = 7500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_150 +Move = HYPERBEAM +Description = The target is attacked with a powerful beam. The user can't move on the next turn. +#------------------------------- +[TM16] +Name = TM16 +NamePlural = TM16s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = LIGHTSCREEN +Description = A wondrous wall of light is put up to reduce damage from special attacks for five turns. +#------------------------------- +[TM17] +Name = TM17 +NamePlural = TM17s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = PROTECT +Description = The user protects itself from all attacks. Its chance of failing rises if it is used in succession. +#------------------------------- +[TM18] +Name = TM18 +NamePlural = TM18s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = RAINDANCE +Description = The user summons a heavy rain for five turns, powering up Water-type moves and weakening Fire-type ones. +#------------------------------- +[TM19] +Name = TM19 +NamePlural = TM19s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_75 +Move = GIGADRAIN +Description = A nutrient-draining attack. The user's HP is restored by half the damage taken by the target. +#------------------------------- +[TM20] +Name = TM20 +NamePlural = TM20s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SAFEGUARD +Description = The user creates a protective field that prevents status conditions for five turns. +#------------------------------- +[TM21] +Name = TM21 +NamePlural = TM21s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DAZZLINGGLEAM +Description = The user damages opposing Pokémon by emitting a powerful flash. +#------------------------------- +[TM22] +Name = TM22 +NamePlural = TM22s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_120 +Move = SOLARBEAM +Description = In this two-turn attack, the user gathers light, then blasts a bundled beam on the next turn. +#------------------------------- +[TM23] +Name = TM23 +NamePlural = TM23s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_100 +Move = IRONTAIL +Description = The target is slammed with a steel-hard tail. This may also lower the target's Defense stat. +#------------------------------- +[TM24] +Name = TM24 +NamePlural = TM24s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = THUNDERBOLT +Description = A strong electric blast crashes down on the target. This may also leave the target with paralysis. +#------------------------------- +[TM25] +Name = TM25 +NamePlural = TM25s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_110 +Move = THUNDER +Description = A wicked thunderbolt is dropped on the target to inflict damage. This may also leave them with paralysis. +#------------------------------- +[TM26] +Name = TM26 +NamePlural = TM26s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_100 +Move = EARTHQUAKE +Description = The user sets off an earthquake that strikes every Pokémon around it. +#------------------------------- +[TM27] +Name = TM27 +NamePlural = TM27s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_65 +Move = LOWSWEEP +Description = The user makes a swift attack on the target's legs, which lowers the target's Speed stat. +#------------------------------- +[TM28] +Name = TM28 +NamePlural = TM28s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DIG +Description = The user burrows into the ground, then attacks on the next turn. It can also be used to exit dungeons. +#------------------------------- +[TM29] +Name = TM29 +NamePlural = TM29s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = PSYCHIC +Description = The target is hit by a strong telekinetic force. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM30] +Name = TM30 +NamePlural = TM30s +Pocket = Machines +Price = 3000 +BPPrice = 64 +FieldUse = TR +Flags = Fling_80 +Move = SHADOWBALL +Description = The user hurls a shadowy blob at the target. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM31] +Name = TM31 +NamePlural = TM31s +Pocket = Machines +Price = 3000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_75 +Move = BRICKBREAK +Description = The user attacks with a swift chop. It can also break barriers, such as Light Screen and Reflect. +#------------------------------- +[TM32] +Name = TM32 +NamePlural = TM32s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = DOUBLETEAM +Description = By moving rapidly, the user makes illusory copies of itself to raise its evasiveness. +#------------------------------- +[TM33] +Name = TM33 +NamePlural = TM33s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = REFLECT +Description = A wondrous wall of light is put up to reduce damage from physical attacks for five turns. +#------------------------------- +[TM34] +Name = TM34 +NamePlural = TM34s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = SHOCKWAVE +Description = The user strikes the target with a quick jolt of electricity. This attack never misses. +#------------------------------- +[TM35] +Name = TM35 +NamePlural = TM35s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = FLAMETHROWER +Description = The target is scorched with an intense blast of fire. This may also leave the target with a burn. +#------------------------------- +[TM36] +Name = TM36 +NamePlural = TM36s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_90 +Move = SLUDGEBOMB +Description = Unsanitary sludge is hurled at the target. This may also poison the target. +#------------------------------- +[TM37] +Name = TM37 +NamePlural = TM37s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SANDSTORM +Description = A five-turn sandstorm is summoned to hurt all combatants except Rock, Ground, and Steel types. +#------------------------------- +[TM38] +Name = TM38 +NamePlural = TM38s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_110 +Move = FIREBLAST +Description = The target is attacked with an intense blast of all-consuming fire. This may also leave them with a burn. +#------------------------------- +[TM39] +Name = TM39 +NamePlural = TM39s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = ROCKTOMB +Description = Boulders are hurled at the target. This also lowers the target's Speed stat by preventing its movement. +#------------------------------- +[TM40] +Name = TM40 +NamePlural = TM40s +Pocket = Machines +Price = 3000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_60 +Move = AERIALACE +Description = The user confounds the target with speed, then slashes. This attack never misses. +#------------------------------- +[TM41] +Name = TM41 +NamePlural = TM41s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TORMENT +Description = The user torments and enrages the target, making it incapable of using the same move twice in a row. +#------------------------------- +[TM42] +Name = TM42 +NamePlural = TM42s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = FACADE +Description = This attack move doubles its power if the user is poisoned, burned, or paralyzed. +#------------------------------- +[TM43] +Name = TM43 +NamePlural = TM43s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = VOLTSWITCH +Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. +#------------------------------- +[TM44] +Name = TM44 +NamePlural = TM44s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = REST +Description = The user goes to sleep for two turns. This fully restores the user's HP and heals any status conditions. +#------------------------------- +[TM45] +Name = TM45 +NamePlural = TM45s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ATTRACT +Description = If it is the opposite gender of the user, the target becomes infatuated and less likely to attack. +#------------------------------- +[TM46] +Name = TM46 +NamePlural = TM46s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = THIEF +Description = The user attacks and steals the target's held item simultaneously. +#------------------------------- +[TM47] +Name = TM47 +NamePlural = TM47s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = STEELWING +Description = The target is hit with wings of steel. This may also raise the user's Defense stat. +#------------------------------- +[TM48] +Name = TM48 +NamePlural = TM48s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SKILLSWAP +Description = The user employs its psychic power to exchange Abilities with the target. +#------------------------------- +[TM49] +Name = TM49 +NamePlural = TM49s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = SCALD +Description = The user shoots boiling hot water at its target. This may also leave the target with a burn. +#------------------------------- +[TM50] +Name = TM50 +NamePlural = TM50s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_130 +Move = OVERHEAT +Description = The user attacks the target at full power. The attack's recoil harshly lowers the user's Sp. Atk stat. +#------------------------------- +[TM51] +Name = TM51 +NamePlural = TM51s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ROOST +Description = The user lands and rests its body. This move restores the user's HP by up to half of its max HP. +#------------------------------- +[TM52] +Name = TM52 +NamePlural = TM52s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_120 +Move = FOCUSBLAST +Description = The user heightens its mental focus and unleashes its power. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM53] +Name = TM53 +NamePlural = TM53s +Pocket = Machines +Price = 3000 +BPPrice = 64 +FieldUse = TR +Flags = Fling_90 +Move = ENERGYBALL +Description = The user draws power from nature and fires it at the target. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM54] +Name = TM54 +NamePlural = TM54s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_40 +Move = FALSESWIPE +Description = A restrained attack that prevents the target from fainting. The target is left with at least 1 HP. +#------------------------------- +[TM55] +Name = TM55 +NamePlural = TM55s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_65 +Move = BRINE +Description = If the target's HP is half or less, this attack will hit with double the power. +#------------------------------- +[TM56] +Name = TM56 +NamePlural = TM56s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = FLING +Description = The user flings its held item at the target to attack. This move's power and effects depend on the item. +#------------------------------- +[TM57] +Name = TM57 +NamePlural = TM57s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_50 +Move = CHARGEBEAM +Description = The user attacks with an electric charge. The user may use any remaining charge to raise its Sp. Atk. +#------------------------------- +[TM58] +Name = TM58 +NamePlural = TM58s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ENDURE +Description = The user endures any attack with at least 1 HP. Its chance of failing rises if it is used in succession. +#------------------------------- +[TM59] +Name = TM59 +NamePlural = TM59s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_85 +Move = DRAGONPULSE +Description = The target is attacked with a shock wave generated by the user's gaping mouth. +#------------------------------- +[TM60] +Name = TM60 +NamePlural = TM60s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_75 +Move = DRAINPUNCH +Description = An energy-draining punch. The user's HP is restored by half the damage taken by the target. +#------------------------------- +[TM61] +Name = TM61 +NamePlural = TM61s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = WILLOWISP +Description = The user shoots a sinister flame at the target to inflict a burn. +#------------------------------- +[TM62] +Name = TM62 +NamePlural = TM62s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = BUGBUZZ +Description = The user generates a damaging sound wave by vibration. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM63] +Name = TM63 +NamePlural = TM63s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = NASTYPLOT +Description = The user stimulates its brain by thinking bad thoughts. This sharply raises the user's Sp. Atk stat. +#------------------------------- +[TM64] +Name = TM64 +NamePlural = TM64s +Pocket = Machines +Price = 7500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_250 +Move = EXPLOSION +Description = The user attacks everything around it by causing a tremendous explosion. The user faints upon using this move. +#------------------------------- +[TM65] +Name = TM65 +NamePlural = TM65s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = SHADOWCLAW +Description = The user slashes with a sharp claw made from shadows. Critical hits land more easily. +#------------------------------- +[TM66] +Name = TM66 +NamePlural = TM66s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_50 +Move = PAYBACK +Description = The user stores power, then attacks. If the user goes after the target, this attack's power doubles. +#------------------------------- +[TM67] +Name = TM67 +NamePlural = TM67s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = RECYCLE +Description = The user recycles a held item that has been used in battle so it can be used again. +#------------------------------- +[TM68] +Name = TM68 +NamePlural = TM68s +Pocket = Machines +Price = 7500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_150 +Move = GIGAIMPACT +Description = The user charges at the target using every bit of its power. The user can't move on the next turn. +#------------------------------- +[TM69] +Name = TM69 +NamePlural = TM69s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ROCKPOLISH +Description = The user polishes its body to reduce drag. This sharply raises the Speed stat. +#------------------------------- +[TM70] +Name = TM70 +NamePlural = TM70s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = FLASH +Description = The user flashes a light that lowers the target's accuracy. It can also be used to illuminate caves. +#------------------------------- +[TM71] +Name = TM71 +NamePlural = TM71s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_100 +Move = STONEEDGE +Description = The user stabs the target from below with sharpened stones. Critical hits land more easily. +#------------------------------- +[TM72] +Name = TM72 +NamePlural = TM72s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = AVALANCHE +Description = The power of this attack move is doubled if the user has been hurt by the target in the same turn. +#------------------------------- +[TM73] +Name = TM73 +NamePlural = TM73s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = THUNDERWAVE +Description = The user launches a weak jolt of electricity that paralyzes the target. +#------------------------------- +[TM74] +Name = TM74 +NamePlural = TM74s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = GYROBALL +Description = The user tackles with a high-speed spin. This move is stronger the slower the user is than the target. +#------------------------------- +[TM75] +Name = TM75 +NamePlural = TM75s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SWORDSDANCE +Description = A frenetic dance to uplift the fighting spirit. This sharply raises the user's Attack stat. +#------------------------------- +[TM76] +Name = TM76 +NamePlural = TM76s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = STEALTHROCK +Description = The user lays a trap of levitating stones around the opposing team that hurt Pokémon that switch in. +#------------------------------- +[TM77] +Name = TM77 +NamePlural = TM77s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = PSYCHUP +Description = The user hypnotizes itself into copying any stat change made by the target. +#------------------------------- +[TM78] +Name = TM78 +NamePlural = TM78s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_55 +Move = SNARL +Description = The user yells as if it's ranting about something, which lowers the Sp. Atk stats of opposing Pokémon. +#------------------------------- +[TM79] +Name = TM79 +NamePlural = TM79s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DARKPULSE +Description = The user releases a horrible aura imbued with dark thoughts. This may also make the target flinch. +#------------------------------- +[TM80] +Name = TM80 +NamePlural = TM80s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_75 +Move = ROCKSLIDE +Description = Large boulders are hurled at opposing Pokémon to inflict damage. This may also make them flinch. +#------------------------------- +[TM81] +Name = TM81 +NamePlural = TM81s +Pocket = Machines +Price = 3000 +BPPrice = 64 +FieldUse = TR +Flags = Fling_80 +Move = XSCISSOR +Description = The user slashes at the target by crossing its scythes or claws as if they were a pair of scissors. +#------------------------------- +[TM82] +Name = TM82 +NamePlural = TM82s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SLEEPTALK +Description = While it is asleep, the user randomly uses one of the moves it knows. +#------------------------------- +[TM83] +Name = TM83 +NamePlural = TM83s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = BULLDOZE +Description = The user strikes everything around it by stomping down on the ground. This lowers the Speed of those hit. +#------------------------------- +[TM84] +Name = TM84 +NamePlural = TM84s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = POISONJAB +Description = The target is stabbed with a tentacle, arm, or the like steeped in poison. This may also poison them. +#------------------------------- +[TM85] +Name = TM85 +NamePlural = TM85s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_100 +Move = DREAMEATER +Description = The user eats the dreams of a sleeping target. The user's HP is restored by half the damage dealt. +#------------------------------- +[TM86] +Name = TM86 +NamePlural = TM86s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = GRASSKNOT +Description = The user snares the target with grass and trips it. The heavier the target, the strong the move is. +#------------------------------- +[TM87] +Name = TM87 +NamePlural = TM87s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SWAGGER +Description = The user enrages and confuses the target. However, this also sharply raises the target's Attack stat. +#------------------------------- +[TM88] +Name = TM88 +NamePlural = TM88s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = PLUCK +Description = The user pecks the target. If the target is holding a Berry, the user eats it and gains its effect. +#------------------------------- +[TM89] +Name = TM89 +NamePlural = TM89s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = UTURN +Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. +#------------------------------- +[TM90] +Name = TM90 +NamePlural = TM90s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SUBSTITUTE +Description = The user creates a substitute for itself using some of its HP. The substitute serves as a decoy. +#------------------------------- +[TM91] +Name = TM91 +NamePlural = TM91s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = FLASHCANNON +Description = The user gathers all its light energy and releases it all at once. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM92] +Name = TM92 +NamePlural = TM92s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TRICKROOM +Description = The user creates a bizarre area in which slower Pokémon get to move first for five turns. +#------------------------------- +[TM93] +Name = TM93 +NamePlural = TM93s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_50 +Move = CUT +Description = The target is cut with a scythe or claw. +#------------------------------- +[TM94] +Name = TM94 +NamePlural = TM94s +Pocket = Machines +Price = 2000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_90 +Move = FLY +Description = The user flies up into the sky and then strikes its target on the next turn. +#------------------------------- +[TM95] +Name = TM95 +NamePlural = TM95s +Pocket = Machines +Price = 2500 +BPPrice = 64 +FieldUse = TR +Flags = Fling_90 +Move = SURF +Description = The user attacks everything around it by swamping its surroundings with a giant wave. +#------------------------------- +[TM96] +Name = TM96 +NamePlural = TM96s +Pocket = Machines +Price = 2000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_80 +Move = STRENGTH +Description = The target is slugged with a punch thrown at maximum power. +#------------------------------- +[TM97] +Name = TM97 +NamePlural = TM97s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = DEFOG +Description = A strong wind blows away the target's barriers, such as Reflect, and lowers their evasiveness. +#------------------------------- +[TM98] +Name = TM98 +NamePlural = TM98s +Pocket = Machines +Price = 2000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_40 +Move = ROCKSMASH +Description = The user attacks with a punch that may lower the target's Defense stat. +#------------------------------- +[TM99] +Name = TM99 +NamePlural = TM99s +Pocket = Machines +Price = 2500 +BPPrice = 64 +FieldUse = TR +Flags = Fling_80 +Move = WATERFALL +Description = The user charges at the target and may make it flinch. +#------------------------------- +[TM100] +Name = TM100 +NamePlural = TM100s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = ROCKCLIMB +Description = A charging attack that may also leave the foe confused. +#------------------------------- +[HM01] +Name = HM01 +NamePlural = HM01s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = CUT +Description = The target is cut with a scythe or claw. This can also be used to cut down thin trees. +#------------------------------- +[HM02] +Name = HM02 +NamePlural = HM02s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = FLY +Description = The user soars and then strikes on the next turn. This can also be used to fly to any familiar town. +#------------------------------- +[HM03] +Name = HM03 +NamePlural = HM03s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = SURF +Description = Attacks everything by swamping the surroundings with a giant wave. This can also be used to cross water. +#------------------------------- +[HM04] +Name = HM04 +NamePlural = HM04s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = STRENGTH +Description = The target is slugged with a punch thrown at maximum power. This can also be used to move heavy boulders. +#------------------------------- +[HM05] +Name = HM05 +NamePlural = HM05s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = WATERFALL +Description = The user charges at the target and may make it flinch. It can also be used to climb a waterfall. +#------------------------------- +[HM06] +Name = HM06 +NamePlural = HM06s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = DIVE +Description = The user dives on the first turn, and floats up and attacks on the next. It can be used to dive underwater. +#------------------------------- [BICYCLE] Name = Bicycle NamePlural = Bicycles -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6525,7 +6525,7 @@ Description = A folding Bicycle that enables much faster movement than the Runni [OLDROD] Name = Old Rod NamePlural = Old Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6534,7 +6534,7 @@ Description = An old and beat-up fishing rod. Use it by any body of water to fis [GOODROD] Name = Good Rod NamePlural = Good Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6543,7 +6543,7 @@ Description = A new, good-quality fishing rod. Use it by any body of water to fi [SUPERROD] Name = Super Rod NamePlural = Super Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6552,7 +6552,7 @@ Description = An awesome, high-tech fishing rod. Use it by any body of water to [ITEMFINDER] Name = Itemfinder NamePlural = Itemfinders -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6561,7 +6561,7 @@ Description = A device used for finding items. If there is a hidden item nearby [DOWSINGMACHINE] Name = Dowsing Machine NamePlural = Dowsing Machines -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6570,7 +6570,7 @@ Description = It checks for unseen items in the area and makes noise and lights [POKERADAR] Name = Poké Radar NamePlural = Poké Radars -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6579,7 +6579,7 @@ Description = A tool that can search out Pokémon that are hiding in grass. Its [TOWNMAP] Name = Town Map NamePlural = Town Maps -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6588,7 +6588,7 @@ Description = A very convenient map that can be viewed anytime. It even shows yo [ESCAPEROPE] Name = Escape Rope NamePlural = Escape Ropes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6597,7 +6597,7 @@ Description = A long, durable rope. Use it to escape instantly from a cave or a [COINCASE] Name = Coin Case NamePlural = Coin Cases -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6606,7 +6606,7 @@ Description = A case for holding coins obtained at the Game Corner. It holds up [POKEFLUTE] Name = Poké Flute NamePlural = Poké Flutes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon BattleUse = Direct @@ -6616,7 +6616,7 @@ Description = A flute that is said to instantly awaken any Pokémon. It has a lo [SOOTSACK] Name = Soot Sack NamePlural = Soot Sacks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A sack used to gather and hold volcanic ash. @@ -6624,7 +6624,7 @@ Description = A sack used to gather and hold volcanic ash. [SILPHSCOPE] Name = Silph Scope NamePlural = Silph Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A scope that makes unseeable Pokémon visible. It is made by Silph Co. @@ -6632,7 +6632,7 @@ Description = A scope that makes unseeable Pokémon visible. It is made by Silph [DEVONSCOPE] Name = Devon Scope NamePlural = Devon Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A device by Devon that signals any unseeable Pokémon. @@ -6640,7 +6640,7 @@ Description = A device by Devon that signals any unseeable Pokémon. [SQUIRTBOTTLE] Name = Squirt Bottle NamePlural = Squirt Bottles -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Squirtle. It helps promote healthy growth of Berries planted in soft soil. @@ -6648,7 +6648,7 @@ Description = A watering can shaped like a Squirtle. It helps promote healthy gr [SPRAYDUCK] Name = Sprayduck NamePlural = Sprayducks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Psyduck. It helps promote healthy growth of Berries planted in soft soil. @@ -6656,7 +6656,7 @@ Description = A watering can shaped like a Psyduck. It helps promote healthy gro [WAILMERPAIL] Name = Wailmer Pail NamePlural = Wailmer Pails -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A nifty watering pail. Use it to promote strong growth in Berries planted in soft soil. @@ -6664,7 +6664,7 @@ Description = A nifty watering pail. Use it to promote strong growth in Berries [SPRINKLOTAD] Name = Sprinklotad NamePlural = Sprinklotads -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Lotad. It helps promote the healthy growth of any Berries planted in soft soil. @@ -6672,7 +6672,7 @@ Description = A watering can shaped like a Lotad. It helps promote the healthy g [GRACIDEA] Name = Gracidea NamePlural = Gracideas -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6681,7 +6681,7 @@ Description = A flower sometimes bundled in bouquets to convey gratitude on spec [REVEALGLASS] Name = Reveal Glass NamePlural = Reveal Glasses -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6690,7 +6690,7 @@ Description = A glass that reveals the truth. It is a mysterious glass that retu [PRISONBOTTLE] Name = Prison Bottle NamePlural = Prison Bottles -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6699,7 +6699,7 @@ Description = A bottle believed to have been used to seal away the power of a ce [ROTOMCATALOG] Name = Rotom Catalog NamePlural = Rotom Catalogs -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6708,7 +6708,7 @@ Description = A catalog of devices that Rotom like. Use the catalog to have Roto [ZYGARDECUBE] Name = Zygarde Cube NamePlural = Zygarde Cubes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6717,7 +6717,7 @@ Description = An item in which Zygarde Cores and Cells are gathered. You can als [DNASPLICERS] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6726,7 +6726,7 @@ Description = A splicer that fuses Kyurem and a certain Pokémon. They are said [DNASPLICERSUSED] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6735,7 +6735,7 @@ Description = A splicer that separates Kyurem and a certain Pokémon when they h [NSOLARIZER] Name = N-Solarizer NamePlural = N-Solarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6744,7 +6744,7 @@ Description = A machine to fuse Necrozma, which needs light, and Solgaleo. [NSOLARIZERUSED] Name = N-Solarizer NamePlural = N-Solarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6753,7 +6753,7 @@ Description = A machine to separate Necrozma, which needed light, from Solgaleo. [NLUNARIZER] Name = N-Lunarizer NamePlural = N-Lunarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6762,7 +6762,7 @@ Description = A machine to fuse Necrozma, which needs light, and Lunala. [NLUNARIZERUSED] Name = N-Lunarizer NamePlural = N-Lunarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6773,7 +6773,7 @@ Name = Reins of Unity NamePlural = Reins of Unity PortionName = set of Reins of Unity PortionNamePlural = sets of Reins of Unity -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6784,7 +6784,7 @@ Name = Reins of Unity NamePlural = Reins of Unity PortionName = set of Reins of Unity PortionNamePlural = sets of Reins of Unity -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6793,7 +6793,7 @@ Description = Reins that people presented to the king. They separate Calyrex and [METEORITE] Name = Meteorite NamePlural = Meteorites -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6802,7 +6802,7 @@ Description = A slightly warm rock that fell to earth from space. It allows a ce [SCROLLOFDARKNESS] Name = Scroll of Darkness NamePlural = Scrolls of Darkness -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6811,7 +6811,7 @@ Description = A scroll containing the true secrets of the path of darkness. It c [SCROLLOFWATERS] Name = Scroll of Waters NamePlural = Scrolls of Waters -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6820,7 +6820,7 @@ Description = A scroll containing the true secrets of the path of water. It can [OVALCHARM] Name = Oval Charm NamePlural = Oval Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = An oval charm said to increase the chance of Eggs being found at the Day Care. @@ -6828,7 +6828,7 @@ Description = An oval charm said to increase the chance of Eggs being found at t [SHINYCHARM] Name = Shiny Charm NamePlural = Shiny Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A shiny charm said to increase the chance of finding a Shiny Pokémon. @@ -6836,7 +6836,7 @@ Description = A shiny charm said to increase the chance of finding a Shiny Poké [CATCHINGCHARM] Name = Catching Charm NamePlural = Catching Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A charm said to increase the chance of getting a critical catch. The charm doesn't shake much. @@ -6844,7 +6844,7 @@ Description = A charm said to increase the chance of getting a critical catch. T [EXPCHARM] Name = Exp. Charm NamePlural = Exp. Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A charm that increases the Exp. Points that Pokémon can get. A machine-like object is inside it. @@ -6852,7 +6852,7 @@ Description = A charm that increases the Exp. Points that Pokémon can get. A ma [MEGARING] Name = Mega Ring NamePlural = Mega Rings -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem,MegaRing Description = This ring contains an untold power that somehow enables Pokémon carrying Mega Stones to Mega Evolve. @@ -6860,7 +6860,7 @@ Description = This ring contains an untold power that somehow enables Pokémon c [POKEMONBOXLINK] Name = Pokémon Box Link NamePlural = Pokémon Box Links -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A device that allows you to access the Pokémon storage system. There are some places where it won't work. @@ -6868,7 +6868,7 @@ Description = A device that allows you to access the Pokémon storage system. Th [AURORATICKET] Name = Aurora Ticket NamePlural = Aurora Tickets -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A ticket required to board the ship to Berth Island. It glows beautifully. @@ -6876,7 +6876,7 @@ Description = A ticket required to board the ship to Berth Island. It glows beau [OLDSEAMAP] Name = Old Sea Map NamePlural = Old Sea Maps -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem -Description = A faded sea chart that shows the way to a certain island. +Description = A faded sea chart that shows the way to a certain island. \ No newline at end of file diff --git a/PBS/items.txt b/PBS/items.txt index cd245a85e..7ca3d893c 100644 --- a/PBS/items.txt +++ b/PBS/items.txt @@ -3,7 +3,7 @@ [REPEL] Name = Repel NamePlural = Repels -Pocket = 1 +Pocket = Items Price = 400 FieldUse = Direct Flags = Repel,Fling_30 @@ -12,7 +12,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 100 st [SUPERREPEL] Name = Super Repel NamePlural = Super Repels -Pocket = 1 +Pocket = Items Price = 700 FieldUse = Direct Flags = Repel,Fling_30 @@ -21,7 +21,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 200 st [MAXREPEL] Name = Max Repel NamePlural = Max Repels -Pocket = 1 +Pocket = Items Price = 900 FieldUse = Direct Flags = Repel,Fling_30 @@ -30,7 +30,7 @@ Description = An item that prevents weak wild Pokémon from appearing for 250 st [BLACKFLUTE] Name = Black Flute NamePlural = Black Flutes -Pocket = 1 +Pocket = Items Price = 20 FieldUse = Direct Flags = Fling_30 @@ -40,7 +40,7 @@ Description = A black flute made from blown glass. Its melody makes wild Pokémo [WHITEFLUTE] Name = White Flute NamePlural = White Flutes -Pocket = 1 +Pocket = Items Price = 20 FieldUse = Direct Flags = Fling_30 @@ -52,7 +52,7 @@ Name = Honey NamePlural = Honey PortionName = jar of Honey PortionNamePlural = jars of Honey -Pocket = 1 +Pocket = Items Price = 900 FieldUse = Direct Flags = Fling_30 @@ -61,7 +61,7 @@ Description = A sweet honey with a lush aroma that attracts wild Pokémon when u [REDSHARD] Name = Red Shard NamePlural = Red Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small red shard. It appears to be from some sort of implement made long ago. @@ -69,7 +69,7 @@ Description = A small red shard. It appears to be from some sort of implement ma [YELLOWSHARD] Name = Yellow Shard NamePlural = Yellow Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small yellow shard. It appears to be from some sort of implement made long ago. @@ -77,7 +77,7 @@ Description = A small yellow shard. It appears to be from some sort of implement [BLUESHARD] Name = Blue Shard NamePlural = Blue Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small blue shard. It appears to be from some sort of implement made long ago. @@ -85,7 +85,7 @@ Description = A small blue shard. It appears to be from some sort of implement m [GREENSHARD] Name = Green Shard NamePlural = Green Shards -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_30 Description = A small green shard. It appears to be from some sort of implement made long ago. @@ -93,7 +93,7 @@ Description = A small green shard. It appears to be from some sort of implement [FIRESTONE] Name = Fire Stone NamePlural = Fire Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -103,7 +103,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [THUNDERSTONE] Name = Thunder Stone NamePlural = Thunder Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -113,7 +113,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [WATERSTONE] Name = Water Stone NamePlural = Water Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -123,7 +123,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [LEAFSTONE] Name = Leaf Stone NamePlural = Leaf Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -133,7 +133,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [MOONSTONE] Name = Moon Stone NamePlural = Moon Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -143,7 +143,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SUNSTONE] Name = Sun Stone NamePlural = Sun Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -153,7 +153,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DUSKSTONE] Name = Dusk Stone NamePlural = Dusk Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -163,7 +163,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [DAWNSTONE] Name = Dawn Stone NamePlural = Dawn Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -173,7 +173,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SHINYSTONE] Name = Shiny Stone NamePlural = Shiny Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -183,7 +183,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [ICESTONE] Name = Ice Stone NamePlural = Ice Stones -Pocket = 1 +Pocket = Items Price = 3000 BPPrice = 5 FieldUse = OnPokemon @@ -193,7 +193,7 @@ Description = A peculiar stone that makes certain species of Pokémon evolve. It [SWEETAPPLE] Name = Sweet Apple NamePlural = Sweet Apples -Pocket = 1 +Pocket = Items Price = 2200 BPPrice = 5 FieldUse = OnPokemon @@ -203,7 +203,7 @@ Description = A peculiar apple that can make a certain species of Pokémon evolv [TARTAPPLE] Name = Tart Apple NamePlural = Tart Apples -Pocket = 1 +Pocket = Items Price = 2200 BPPrice = 5 FieldUse = OnPokemon @@ -213,7 +213,7 @@ Description = A peculiar apple that can make a certain species of Pokémon evolv [CRACKEDPOT] Name = Cracked Pot NamePlural = Cracked Pots -Pocket = 1 +Pocket = Items Price = 3000 SellPrice = 800 BPPrice = 5 @@ -224,7 +224,7 @@ Description = A peculiar cracked teapot that can make a certain species of Poké [CHIPPEDPOT] Name = Chipped Pot NamePlural = Chipped Pots -Pocket = 1 +Pocket = Items Price = 3000 SellPrice = 19000 BPPrice = 5 @@ -235,7 +235,7 @@ Description = A peculiar chipped teapot that can make a certain species of Poké [GALARICACUFF] Name = Galarica Cuff NamePlural = Galarica Cuffs -Pocket = 1 +Pocket = Items Price = 6000 BPPrice = 5 FieldUse = OnPokemon @@ -245,7 +245,7 @@ Description = A cuff made from woven-together Galarica Twigs. Giving it to a Gal [GALARICAWREATH] Name = Galarica Wreath NamePlural = Galarica Wreaths -Pocket = 1 +Pocket = Items Price = 6000 BPPrice = 5 FieldUse = OnPokemon @@ -257,7 +257,7 @@ Name = Black Augurite NamePlural = Black Augurites PortionName = piece of Black Augurite PortionNamePlural = pieces of Black Augurite -Pocket = 1 +Pocket = Items Price = 8000 SellPrice = 500 BPPrice = 5 @@ -268,7 +268,7 @@ Description = A glassy black stone that produces a sharp cutting edge when split [PEATBLOCK] Name = Peat Block NamePlural = Peat Blocks -Pocket = 1 +Pocket = Items Price = 10000 SellPrice = 500 BPPrice = 5 @@ -279,7 +279,7 @@ Description = A block of muddy material that can be used as fuel when it is drie [SYRUPYAPPLE] Name = Syrupy Apple NamePlural = Syrupy Apples -Pocket = 1 +Pocket = Items Price = 500 SellPrice = 550 BPPrice = 5 @@ -290,7 +290,7 @@ Description = A peculiar apple that can make a certain species of Pokémon evolv [UNREMARKABLETEACUP] Name = Unremarkable Teacup NamePlural = Unremarkable Teacups -Pocket = 1 +Pocket = Items Price = 1600 BPPrice = 5 FieldUse = OnPokemon @@ -300,7 +300,7 @@ Description = A peculiar cracked teacup that can make a certain species of Poké [MASTERPIECETEACUP] Name = Masterpiece Teacup NamePlural = Masterpiece Teacups -Pocket = 1 +Pocket = Items Price = 38000 BPPrice = 5 FieldUse = OnPokemon @@ -312,7 +312,7 @@ Name = Metal Alloy NamePlural = Metal Alloys PortionName = hunk of Metal Alloy PortionNamePlural = hunks of Metal Alloy -Pocket = 1 +Pocket = Items Price = 6000 BPPrice = 5 FieldUse = OnPokemon @@ -324,7 +324,7 @@ Name = Malicious Armor NamePlural = Malicious Armors PortionName = set of Malicious Armor PortionNamePlural = sets of Malicious Armor -Pocket = 1 +Pocket = Items Price = 3000 FieldUse = OnPokemon Flags = EvolutionStone,Fling_30 @@ -335,16 +335,16 @@ Name = Auspicious Armor NamePlural = Auspicious Armors PortionName = set of Auspicious Armor PortionNamePlural = sets of Auspicious Armor -Pocket = 1 +Pocket = Items Price = 3000 FieldUse = OnPokemon Flags = EvolutionStone,Fling_30 -Description = A peculiar set of armor that can make a certain species of Pokémon evolve. Auspicious wishes live within it. +Description = A peculiar set of armor that can make a certain species of Pokémon evolve. Auspicious wishes live in it. #------------------------------- [REDAPRICORN] Name = Red Apricorn NamePlural = Red Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A red Apricorn. It assails your nostrils. @@ -352,7 +352,7 @@ Description = A red Apricorn. It assails your nostrils. [YELLOWAPRICORN] Name = Yellow Apricorn NamePlural = Yellow Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A yellow Apricorn. It has an invigorating scent. @@ -360,7 +360,7 @@ Description = A yellow Apricorn. It has an invigorating scent. [BLUEAPRICORN] Name = Blue Apricorn NamePlural = Blue Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A blue Apricorn. It smells a bit like grass. @@ -368,7 +368,7 @@ Description = A blue Apricorn. It smells a bit like grass. [GREENAPRICORN] Name = Green Apricorn NamePlural = Green Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A green Apricorn. It has a mysterious, aromatic scent. @@ -376,7 +376,7 @@ Description = A green Apricorn. It has a mysterious, aromatic scent. [PINKAPRICORN] Name = Pink Apricorn NamePlural = Pink Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A pink Apricorn. It has a nice, sweet scent. @@ -384,7 +384,7 @@ Description = A pink Apricorn. It has a nice, sweet scent. [WHITEAPRICORN] Name = White Apricorn NamePlural = White Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A white Apricorn. It doesn't smell like anything. @@ -392,7 +392,7 @@ Description = A white Apricorn. It doesn't smell like anything. [BLACKAPRICORN] Name = Black Apricorn NamePlural = Black Apricorns -Pocket = 1 +Pocket = Items Price = 200 Flags = Apricorn Description = A black Apricorn. It has an indescribable scent. @@ -400,7 +400,7 @@ Description = A black Apricorn. It has an indescribable scent. [HELIXFOSSIL] Name = Helix Fossil NamePlural = Helix Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a seashell. @@ -408,7 +408,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [DOMEFOSSIL] Name = Dome Fossil NamePlural = Dome Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a shell. @@ -416,7 +416,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [OLDAMBER] Name = Old Amber NamePlural = Old Ambers -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fossil,Fling_100 Description = A piece of amber that contains the genes of an ancient Pokémon. It is clear with a reddish tint. @@ -424,7 +424,7 @@ Description = A piece of amber that contains the genes of an ancient Pokémon. I [ROOTFOSSIL] Name = Root Fossil NamePlural = Root Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a plant root. @@ -432,7 +432,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [CLAWFOSSIL] Name = Claw Fossil NamePlural = Claw Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea. It appears to be part of a claw. @@ -440,7 +440,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea. It appears [SKULLFOSSIL] Name = Skull Fossil NamePlural = Skull Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a head. @@ -448,7 +448,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [ARMORFOSSIL] Name = Armor Fossil NamePlural = Armor Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that lived on the land. It appears to be part of a collar. @@ -456,7 +456,7 @@ Description = A fossil from a prehistoric Pokémon that lived on the land. It ap [COVERFOSSIL] Name = Cover Fossil NamePlural = Cover Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that lived in the sea in ancient times. It appears to be part of its back. @@ -464,7 +464,7 @@ Description = A fossil of an ancient Pokémon that lived in the sea in ancient t [PLUMEFOSSIL] Name = Plume Fossil NamePlural = Plume Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil of an ancient Pokémon that flew in the sky in ancient times. It appears to be part of its wing. @@ -472,7 +472,7 @@ Description = A fossil of an ancient Pokémon that flew in the sky in ancient ti [JAWFOSSIL] Name = Jaw Fossil NamePlural = Jaw Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that once lived on the land. It appears to be part of a large jaw. @@ -480,7 +480,7 @@ Description = A fossil from a prehistoric Pokémon that once lived on the land. [SAILFOSSIL] Name = Sail Fossil NamePlural = Sail Fossils -Pocket = 1 +Pocket = Items Price = 7000 Flags = Fossil,Fling_100 Description = A fossil from a prehistoric Pokémon that once lived on the land. It looks like the impression from a skin sail. @@ -488,7 +488,7 @@ Description = A fossil from a prehistoric Pokémon that once lived on the land. [FOSSILIZEDBIRD] Name = Fossilized Bird NamePlural = Fossilized Birds -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once soared through the sky. What it looked like is a mystery. @@ -496,7 +496,7 @@ Description = The fossil of an ancient Pokémon that once soared through the sky [FOSSILIZEDFISH] Name = Fossilized Fish NamePlural = Fossilized Fish -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once lived in the sea. What it looked like is a mystery. @@ -504,7 +504,7 @@ Description = The fossil of an ancient Pokémon that once lived in the sea. What [FOSSILIZEDDRAKE] Name = Fossilized Drake NamePlural = Fossilized Drakes -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once roamed the land. What it looked like is a mystery. @@ -512,7 +512,7 @@ Description = The fossil of an ancient Pokémon that once roamed the land. What [FOSSILIZEDDINO] Name = Fossilized Dino NamePlural = Fossilized Dinos -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = The fossil of an ancient Pokémon that once lived in the sea. What it looked like is a mystery. @@ -520,7 +520,7 @@ Description = The fossil of an ancient Pokémon that once lived in the sea. What [PRETTYFEATHER] Name = Pretty Feather NamePlural = Pretty Feathers -Pocket = 1 +Pocket = Items Price = 1000 Flags = Fling_20 Description = Though this feather is beautiful, it's just a regular feather and has no effect on Pokémon. @@ -528,7 +528,7 @@ Description = Though this feather is beautiful, it's just a regular feather and [TINYMUSHROOM] Name = Tiny Mushroom NamePlural = Tiny Mushrooms -Pocket = 1 +Pocket = Items Price = 500 Flags = Fling_30 Description = A small and rare mushroom. It is sought after by collectors. @@ -536,7 +536,7 @@ Description = A small and rare mushroom. It is sought after by collectors. [BIGMUSHROOM] Name = Big Mushroom NamePlural = Big Mushrooms -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_30 Description = A large and rare mushroom. It is sought after by collectors. @@ -544,7 +544,7 @@ Description = A large and rare mushroom. It is sought after by collectors. [BALMMUSHROOM] Name = Balm Mushroom NamePlural = Balm Mushrooms -Pocket = 1 +Pocket = Items Price = 15000 Flags = Fling_30 Description = A rare mushroom which gives off a nice fragrance. A maniac will buy it for a high price. @@ -552,7 +552,7 @@ Description = A rare mushroom which gives off a nice fragrance. A maniac will bu [PEARL] Name = Pearl NamePlural = Pearls -Pocket = 1 +Pocket = Items Price = 2000 Flags = Fling_30 Description = A somewhat-small pearl that sparkles in a pretty silver color. It can be sold cheaply to shops. @@ -560,7 +560,7 @@ Description = A somewhat-small pearl that sparkles in a pretty silver color. It [BIGPEARL] Name = Big Pearl NamePlural = Big Pearls -Pocket = 1 +Pocket = Items Price = 8000 Flags = Fling_30 Description = A quite-large pearl that sparkles in a pretty silver color. It can be sold at a high price to shops. @@ -568,7 +568,7 @@ Description = A quite-large pearl that sparkles in a pretty silver color. It can [PEARLSTRING] Name = Pearl String NamePlural = Pearl Strings -Pocket = 1 +Pocket = Items Price = 20000 Flags = Fling_30 Description = Very large pearls that sparkle in a pretty silver color. A maniac will buy them for a high price. @@ -578,7 +578,7 @@ Name = Stardust NamePlural = Stardusts PortionName = bag of Stardust PortionNamePlural = bags of Stardust -Pocket = 1 +Pocket = Items Price = 3000 Flags = Fling_30 Description = Lovely, red-colored sand with a loose, silky feel. It can be sold at a high price to shops. @@ -586,7 +586,7 @@ Description = Lovely, red-colored sand with a loose, silky feel. It can be sold [STARPIECE] Name = Star Piece NamePlural = Star Pieces -Pocket = 1 +Pocket = Items Price = 12000 Flags = Fling_30 Description = A shard of a pretty gem that sparkles in a red color. It can be sold at a high price to shops. @@ -594,7 +594,7 @@ Description = A shard of a pretty gem that sparkles in a red color. It can be so [COMETSHARD] Name = Comet Shard NamePlural = Comet Shards -Pocket = 1 +Pocket = Items Price = 25000 Flags = Fling_30 Description = A shard which fell to the ground when a comet approached. A maniac will buy it for a high price. @@ -602,7 +602,7 @@ Description = A shard which fell to the ground when a comet approached. A maniac [NUGGET] Name = Nugget NamePlural = Nuggets -Pocket = 1 +Pocket = Items Price = 10000 Flags = Fling_30 Description = A nugget of pure gold that gives off a lustrous gleam. It can be sold at a high price to shops. @@ -610,7 +610,7 @@ Description = A nugget of pure gold that gives off a lustrous gleam. It can be s [BIGNUGGET] Name = Big Nugget NamePlural = Big Nuggets -Pocket = 1 +Pocket = Items Price = 40000 Flags = Fling_130 Description = A big nugget of pure gold that gives off a lustrous gleam. A maniac will buy it for a high price. @@ -618,7 +618,7 @@ Description = A big nugget of pure gold that gives off a lustrous gleam. A mania [HEARTSCALE] Name = Heart Scale NamePlural = Heart Scales -Pocket = 1 +Pocket = Items Price = 100 Flags = Fling_30 Description = A pretty, heart-shaped scale that is extremely rare. It glows faintly in the colors of the rainbow. @@ -626,14 +626,14 @@ Description = A pretty, heart-shaped scale that is extremely rare. It glows fain [SLOWPOKETAIL] Name = Slowpoke Tail NamePlural = Slowpoke Tails -Pocket = 1 +Pocket = Items Price = 10000 Description = A very tasty tail of something. It can be sold at a high price to shops. #------------------------------- [RAREBONE] Name = Rare Bone NamePlural = Rare Bones -Pocket = 1 +Pocket = Items Price = 5000 Flags = Fling_100 Description = A bone that is extremely valuable for Pokémon archaeology. It can be sold for a high price to shops. @@ -643,7 +643,7 @@ Name = Relic Copper NamePlural = Relic Coppers PortionName = Relic Copper coin PortionNamePlural = Relic Copper coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A copper coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -653,7 +653,7 @@ Name = Relic Silver NamePlural = Relic Silvers PortionName = Relic Silver coin PortionNamePlural = Relic Silver coins -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A silver coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -663,7 +663,7 @@ Name = Relic Gold NamePlural = Relic Golds PortionName = Relic Gold coin PortionNamePlural = Relic Gold coins -Pocket = 1 +Pocket = Items Price = 60000 Flags = Fling_30 Description = A gold coin used in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -671,7 +671,7 @@ Description = A gold coin used in a civilization about 3,000 years ago. A maniac [RELICVASE] Name = Relic Vase NamePlural = Relic Vases -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A vase made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -679,7 +679,7 @@ Description = A vase made in a civilization about 3,000 years ago. A maniac will [RELICBAND] Name = Relic Band NamePlural = Relic Bands -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A bracelet made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -687,7 +687,7 @@ Description = A bracelet made in a civilization about 3,000 years ago. A maniac [RELICSTATUE] Name = Relic Statue NamePlural = Relic Statues -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A stone figure made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -695,7 +695,7 @@ Description = A stone figure made in a civilization about 3,000 years ago. A man [RELICCROWN] Name = Relic Crown NamePlural = Relic Crowns -Pocket = 1 +Pocket = Items Price = 0 Flags = Fling_30 Description = A crown made in a civilization about 3,000 years ago. A maniac will buy it for a high price. @@ -703,7 +703,7 @@ Description = A crown made in a civilization about 3,000 years ago. A maniac wil [TINYBAMBOOSHOOT] Name = Tiny Bamboo Shoot NamePlural = Tiny Bamboo Shoots -Pocket = 1 +Pocket = Items Price = 1500 Flags = Fling_30 Description = A small and rare bamboo shoot. It's quite popular with a certain class of gourmands. @@ -711,7 +711,7 @@ Description = A small and rare bamboo shoot. It's quite popular with a certain c [BIGBAMBOOSHOOT] Name = Big Bamboo Shoot NamePlural = Big Bamboo Shoots -Pocket = 1 +Pocket = Items Price = 6000 Flags = Fling_30 Description = A large and rare bamboo shoot. It's extremely popular with a certain class of gourmands. @@ -721,7 +721,7 @@ Name = Growth Mulch NamePlural = Growth Mulch PortionName = bag of Growth Mulch PortionNamePlural = bags of Growth Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -731,7 +731,7 @@ Name = Damp Mulch NamePlural = Damp Mulch PortionName = bag of Damp Mulch PortionNamePlural = bags of Damp Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -741,7 +741,7 @@ Name = Stable Mulch NamePlural = Stable Mulch PortionName = bag of Stable Mulch PortionNamePlural = bags of Stable Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -751,7 +751,7 @@ Name = Gooey Mulch NamePlural = Gooey Mulch PortionName = bag of Gooey Mulch PortionNamePlural = bags of Gooey Mulch -Pocket = 1 +Pocket = Items Price = 200 Flags = Mulch,Fling_30 Description = A fertilizer to be spread on soft soil in regions where Berries are grown. A maniac will buy it for a high price. @@ -761,7 +761,7 @@ Name = Shoal Salt NamePlural = Shoal Salts PortionName = pile of Shoal Salt PortionNamePlural = piles of Shoal Salt -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = Pure salt that can be discovered deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -769,7 +769,7 @@ Description = Pure salt that can be discovered deep inside the Shoal Cave. A man [SHOALSHELL] Name = Shoal Shell NamePlural = Shoal Shells -Pocket = 1 +Pocket = Items Price = 20 Flags = Fling_30 Description = A pretty seashell that can be found deep inside the Shoal Cave. A maniac will buy it for a high price. @@ -777,7 +777,7 @@ Description = A pretty seashell that can be found deep inside the Shoal Cave. A [ODDKEYSTONE] Name = Odd Keystone NamePlural = Odd Keystones -Pocket = 1 +Pocket = Items Price = 2100 Flags = Fling_80 Description = A vital item that is needed to keep a stone tower from collapsing. Voices can be heard from it occasionally. @@ -787,2389 +787,169 @@ Name = Red Nectar NamePlural = Red Nectars PortionName = jar of Red Nectar PortionNamePlural = jars of Red Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Ula'ula Meadow. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a red flower. It changes the form of a certain species of Pokémon. #------------------------------- [YELLOWNECTAR] Name = Yellow Nectar NamePlural = Yellow Nectars PortionName = jar of Yellow Nectar PortionNamePlural = jars of Yellow Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Melemele Meadow. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a yellow flower. It changes the form of a certain species of Pokémon. #------------------------------- [PINKNECTAR] Name = Pink Nectar NamePlural = Pink Nectars PortionName = jar of Pink Nectar PortionNamePlural = jars of Pink Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained from shrubs on Royal Avenue. It changes the form of certain species of Pokémon. +Description = Flower nectar obtained from a pink flower. It changes the form of a certain species of Pokémon. #------------------------------- [PURPLENECTAR] Name = Purple Nectar NamePlural = Purple Nectars PortionName = jar of Purple Nectar PortionNamePlural = jars of Purple Nectar -Pocket = 1 +Pocket = Items Price = 300 FieldUse = OnPokemon Flags = Fling_10 -Description = A flower nectar obtained at Poni Meadow. It changes the form of certain species of Pokémon. -#------------------------------- -[AIRBALLOON] -Name = Air Balloon -NamePlural = Air Balloons -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. -#------------------------------- -[BRIGHTPOWDER] -Name = Bright Powder -NamePlural = Bright Powders -PortionName = bag of Bright Powder -PortionNamePlural = bags of Bright Powder -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. -#------------------------------- -[EVIOLITE] -Name = Eviolite -NamePlural = Eviolites -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_40 -Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. -#------------------------------- -[FLOATSTONE] -Name = Float Stone -NamePlural = Float Stones -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 10 -Flags = Fling_30 -Description = A very light stone. It reduces the weight of a Pokémon when held. -#------------------------------- -[DESTINYKNOT] -Name = Destiny Knot -NamePlural = Destiny Knots -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 10 -Flags = Fling_10 -Description = A long, thin, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. -#------------------------------- -[ROCKYHELMET] -Name = Rocky Helmet -NamePlural = Rocky Helmets -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_60 -Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. -#------------------------------- -[ASSAULTVEST] -Name = Assault Vest -NamePlural = Assault Vests -Pocket = 1 -Price = 1000 -BPPrice = 25 -Flags = Fling_80 -Description = An item to be held by a Pokémon. This offensive vest raises Sp. Def but prevents the use of status moves. -#------------------------------- -[SAFETYGOGGLES] -Name = Safety Goggles -NamePlural = Safety Goggles -PortionName = pair of Safety Goggles -PortionNamePlural = pairs of Safety Goggles -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_80 -Description = An item to be held by a Pokémon. They protect the holder from weather-related damage and powder. -#------------------------------- -[PROTECTIVEPADS] -Name = Protective Pads -NamePlural = Protective Pads -PortionName = set of Protective Pads -PortionNamePlural = sets of Protective Pads -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_30 -Description = An item to be held by a Pokémon. They protect the holder from effects caused by making contact. -#------------------------------- -[HEAVYDUTYBOOTS] -Name = Heavy-Duty Boots -NamePlural = Heavy-Duty Boots -PortionName = pair of Heavy-Duty Boots -PortionNamePlural = pairs of Heavy-Duty Boots -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_80 -Description = These boots prevent the effects of traps set on the battlefield. -#------------------------------- -[UTILITYUMBRELLA] -Name = Utility Umbrella -NamePlural = Utility Umbrellas -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_60 -Description = An item to be held by a Pokémon. This sturdy umbrella protects the holder from the effects of rain and sun. -#------------------------------- -[ABILITYSHIELD] -Name = Ability Shield -NamePlural = Ability Shields -Pocket = 1 -Price = 20000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. This cute shield protects the holder from having its Ability changed by others. -#------------------------------- -[CLEARAMULET] -Name = Clear Amulet -NamePlural = Clear Amulets -Pocket = 1 -Price = 30000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It protects the holder from having its stats lowered by other Pokémon. -#------------------------------- -[COVERTCLOAK] -Name = Covert Cloak -NamePlural = Covert Cloaks -Pocket = 1 -Price = 20000 -SellPrice = 5000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. This hooded cloak protects the holder from moves' additional effects. -#------------------------------- -[EJECTBUTTON] -Name = Eject Button -NamePlural = Eject Buttons -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 20 -Flags = Fling_30 -Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. -#------------------------------- -[EJECTPACK] -Name = Eject Pack -NamePlural = Eject Packs -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 20 -Flags = Fling_50 -Description = An item to be held by a Pokémon. When the holder's stats are lowered, it will be switched out of battle. -#------------------------------- -[REDCARD] -Name = Red Card -NamePlural = Red Cards -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 20 -Flags = Fling_10 -Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. -#------------------------------- -[SHEDSHELL] -Name = Shed Shell -NamePlural = Shed Shells -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. -#------------------------------- -[SMOKEBALL] -Name = Smoke Ball -NamePlural = Smoke Balls -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. -#------------------------------- -[LUCKYEGG] -Name = Lucky Egg -NamePlural = Lucky Eggs -Pocket = 1 -Price = 10000 -BPPrice = 77 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. -#------------------------------- -[EXPSHARE] -Name = Exp. Share -NamePlural = Exp. Shares -Pocket = 1 -Price = 3000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. -#------------------------------- -[AMULETCOIN] -Name = Amulet Coin -NamePlural = Amulet Coins -Pocket = 1 -Price = 10000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[SOOTHEBELL] -Name = Soothe Bell -NamePlural = Soothe Bells -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. -#------------------------------- -[CLEANSETAG] -Name = Cleanse Tag -NamePlural = Cleanse Tags -Pocket = 1 -Price = 5000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[CHOICEBAND] -Name = Choice Band -NamePlural = Choice Bands -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. -#------------------------------- -[CHOICESPECS] -Name = Choice Specs -NamePlural = Choice Specs -PortionName = pair of Choice Specs -PortionNamePlural = pairs of Choice Specs -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. -#------------------------------- -[CHOICESCARF] -Name = Choice Scarf -NamePlural = Choice Scarves -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. -#------------------------------- -[HEATROCK] -Name = Heat Rock -NamePlural = Heat Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. -#------------------------------- -[DAMPROCK] -Name = Damp Rock -NamePlural = Damp Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_60 -Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. -#------------------------------- -[SMOOTHROCK] -Name = Smooth Rock -NamePlural = Smooth Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. -#------------------------------- -[ICYROCK] -Name = Icy Rock -NamePlural = Icy Rocks -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_40 -Description = A Pokémon held item that extends the duration of the move Hail used by the holder. -#------------------------------- -[TERRAINEXTENDER] -Name = Terrain Extender -NamePlural = Terrain Extenders -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_60 -Description = An item to be held by a Pokémon. It extends the duration of the terrain caused by the holder. -#------------------------------- -[LIGHTCLAY] -Name = Light Clay -NamePlural = Light Clays -PortionName = lump of Light Clay -PortionNamePlural = lumps of Light Clay -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_30 -Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. -#------------------------------- -[GRIPCLAW] -Name = Grip Claw -NamePlural = Grip Claws -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_90 -Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. -#------------------------------- -[LOADEDDICE] -Name = Loaded Dice -NamePlural = Loaded Dice -PortionName = set of Loaded Dice -PortionNamePlural = sets of Loaded Dice -Pocket = 1 -Price = 20000 -SellPrice = 5000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. This dice ensures that the holder's multistrike moves hit more times. -#------------------------------- -[BINDINGBAND] -Name = Binding Band -NamePlural = Binding Bands -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 15 -Flags = Fling_30 -Description = A band that increases the power of binding moves when held. -#------------------------------- -[BIGROOT] -Name = Big Root -NamePlural = Big Roots -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. -#------------------------------- -[BLACKSLUDGE] -Name = Black Sludge -NamePlural = Black Sludges -PortionName = blob of Black Sludge -PortionNamePlural = blobs of Black Sludge -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_30 -Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. -#------------------------------- -[LEFTOVERS] -Name = Leftovers -NamePlural = Leftovers -PortionName = serving of Leftovers -PortionNamePlural = servings of Leftovers -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. -#------------------------------- -[SHELLBELL] -Name = Shell Bell -NamePlural = Shell Bells -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. -#------------------------------- -[MENTALHERB] -Name = Mental Herb -NamePlural = Mental Herbs -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. -#------------------------------- -[WHITEHERB] -Name = White Herb -NamePlural = White Herbs -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. -#------------------------------- -[POWERHERB] -Name = Power Herb -NamePlural = Power Herbs -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_10 -Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. -#------------------------------- -[MIRRORHERB] -Name = Mirror Herb -NamePlural = Mirror Herbs -Pocket = 1 -Price = 30000 -SellPrice = 7500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It allows the holder to copy an opponent's stat increases once. -#------------------------------- -[ABSORBBULB] -Name = Absorb Bulb -NamePlural = Absorb Bulbs -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. -#------------------------------- -[CELLBATTERY] -Name = Cell Battery -NamePlural = Cell Batteries -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. -#------------------------------- -[LUMINOUSMOSS] -Name = Luminous Moss -NamePlural = Luminous Moss -PortionName = clump of Luminous Moss -PortionNamePlural = clumps of Luminous Moss -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Sp. Def if hit by a Water-type attack. It can only be used once. -#------------------------------- -[SNOWBALL] -Name = Snowball -NamePlural = Snowballs -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Attack if hit by an Ice-type attack. It can only be used once. -#------------------------------- -[WEAKNESSPOLICY] -Name = Weakness Policy -NamePlural = Weakness Policies -Pocket = 1 -Price = 1000 -BPPrice = 20 -Flags = Fling_80 -Description = An item to be held by a Pokémon. The holder's Attack and Sp. Atk sharply increase if hit by a move it's weak to. -#------------------------------- -[BLUNDERPOLICY] -Name = Blunder Policy -NamePlural = Blunder Policies -Pocket = 1 -Price = 4000 -BPPrice = 20 -Flags = Fling_80 -Description = Raises Speed sharply when a Pokémon misses with a move because of accuracy. -#------------------------------- -[THROATSPRAY] -Name = Throat Spray -NamePlural = Throat Sprays -PortionName = bottle of Throat Spray -PortionNamePlural = bottles of Throat Spray -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_30 -Description = Raises Sp. Atk when a Pokémon uses a sound-based move. -#------------------------------- -[ADRENALINEORB] -Name = Adrenaline Orb -NamePlural = Adrenaline Orbs -Pocket = 1 -Price = 300 -BPPrice = 10 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts Speed when intimidated. It can be used only once. -#------------------------------- -[BOOSTERENERGY] -Name = Booster Energy -NamePlural = Booster Energies -PortionName = capsule of Booster Energy -PortionNamePlural = capsules of Booster Energy -Pocket = 1 -Price = 0 -Flags = Fling_30 -Description = An item to be held by Pokémon with certain Abilities. Its energy boosts the strength of the Pokémon. -#------------------------------- -[ROOMSERVICE] -Name = Room Service -NamePlural = Room Services -PortionName = voucher for Room Service -PortionNamePlural = vouchers for Room Service -Pocket = 1 -Price = 4000 -BPPrice = 15 -Flags = Fling_100 -Description = An item to be held by a Pokémon. Lowers Speed when Trick Room takes effect. -#------------------------------- -[ELECTRICSEED] -Name = Electric Seed -NamePlural = Electric Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Defense on Electric Terrain. It can only be used once. -#------------------------------- -[GRASSYSEED] -Name = Grassy Seed -NamePlural = Grassy Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Defense on Grassy Terrain. It can only be used once. -#------------------------------- -[MISTYSEED] -Name = Misty Seed -NamePlural = Misty Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Sp. Def on Misty Terrain. It can only be used once. -#------------------------------- -[PSYCHICSEED] -Name = Psychic Seed -NamePlural = Psychic Seeds -Pocket = 1 -Price = 3000 -SellPrice = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It boosts Sp. Def on Psychic Terrain. It can only be used once. -#------------------------------- -[LIFEORB] -Name = Life Orb -NamePlural = Life Orbs -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. -#------------------------------- -[EXPERTBELT] -Name = Expert Belt -NamePlural = Expert Belts -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. -#------------------------------- -[METRONOME] -Name = Metronome -NamePlural = Metronomes -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_30 -Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. -#------------------------------- -[PUNCHINGGLOVE] -Name = Punching Glove -NamePlural = Punching Gloves -Pocket = 1 -Price = 15000 -SellPrice = 3750 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It powers up the holder's punching moves and prevents direct contact. -#------------------------------- -[MUSCLEBAND] -Name = Muscle Band -NamePlural = Muscle Bands -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. -#------------------------------- -[WISEGLASSES] -Name = Wise Glasses -NamePlural = Wise Glasses -PortionName = pair of Wise Glasses -PortionNamePlural = pairs of Wise Glasses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. -#------------------------------- -[RAZORCLAW] -Name = Razor Claw -NamePlural = Razor Claws -Pocket = 1 -Price = 3000 -SellPrice = 2500 -BPPrice = 5 -Flags = Fling_80 -Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. -#------------------------------- -[SCOPELENS] -Name = Scope Lens -NamePlural = Scope Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. -#------------------------------- -[WIDELENS] -Name = Wide Lens -NamePlural = Wide Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. -#------------------------------- -[ZOOMLENS] -Name = Zoom Lens -NamePlural = Zoom Lenses -Pocket = 1 -Price = 4000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. -#------------------------------- -[KINGSROCK] -Name = King's Rock -NamePlural = King's Rocks -Pocket = 1 -Price = 5000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. -#------------------------------- -[RAZORFANG] -Name = Razor Fang -NamePlural = Razor Fangs -Pocket = 1 -Price = 5000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. -#------------------------------- -[LAGGINGTAIL] -Name = Lagging Tail -NamePlural = Lagging Tails -Pocket = 1 -Price = 4000 -BPPrice = 25 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. -#------------------------------- -[QUICKCLAW] -Name = Quick Claw -NamePlural = Quick Claws -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 25 -Flags = Fling_80 -Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. -#------------------------------- -[FOCUSBAND] -Name = Focus Band -NamePlural = Focus Bands -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 48 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. -#------------------------------- -[FOCUSSASH] -Name = Focus Sash -NamePlural = Focus Sashes -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 15 -Flags = Fling_10 -Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. -#------------------------------- -[FLAMEORB] -Name = Flame Orb -NamePlural = Flame Orbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. -#------------------------------- -[TOXICORB] -Name = Toxic Orb -NamePlural = Toxic Orbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. -#------------------------------- -[STICKYBARB] -Name = Sticky Barb -NamePlural = Sticky Barbs -Pocket = 1 -Price = 4000 -BPPrice = 16 -Flags = Fling_80 -Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. -#------------------------------- -[IRONBALL] -Name = Iron Ball -NamePlural = Iron Balls -Pocket = 1 -Price = 4000 -BPPrice = 10 -Flags = Fling_130 -Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. -#------------------------------- -[RINGTARGET] -Name = Ring Target -NamePlural = Ring Targets -Pocket = 1 -Price = 3000 -SellPrice = 2000 -BPPrice = 10 -Flags = Fling_10 -Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. -#------------------------------- -[MACHOBRACE] -Name = Macho Brace -NamePlural = Macho Braces -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_60 -Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. -#------------------------------- -[POWERWEIGHT] -Name = Power Weight -NamePlural = Power Weights -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBRACER] -Name = Power Bracer -NamePlural = Power Bracers -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBELT] -Name = Power Belt -NamePlural = Power Belts -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERLENS] -Name = Power Lens -NamePlural = Power Lenses -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERBAND] -Name = Power Band -NamePlural = Power Bands -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. -#------------------------------- -[POWERANKLET] -Name = Power Anklet -NamePlural = Power Anklets -Pocket = 1 -Price = 3000 -BPPrice = 10 -Flags = Fling_70 -Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. -#------------------------------- -[LAXINCENSE] -Name = Lax Incense -NamePlural = Lax Incenses -PortionName = jar of Lax Incense -PortionNamePlural = jars of Lax Incense -Pocket = 1 -Price = 5000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. -#------------------------------- -[FULLINCENSE] -Name = Full Incense -NamePlural = Full Incenses -PortionName = jar of Full Incense -PortionNamePlural = jars of Full Incense -Pocket = 1 -Price = 5000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. -#------------------------------- -[LUCKINCENSE] -Name = Luck Incense -NamePlural = Luck Incenses -PortionName = jar of Luck Incense -PortionNamePlural = jars of Luck Incense -Pocket = 1 -Price = 11000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. -#------------------------------- -[PUREINCENSE] -Name = Pure Incense -NamePlural = Pure Incenses -PortionName = jar of Pure Incense -PortionNamePlural = jars of Pure Incense -Pocket = 1 -Price = 6000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. -#------------------------------- -[SEAINCENSE] -Name = Sea Incense -NamePlural = Sea Incenses -PortionName = jar of Sea Incense -PortionNamePlural = jars of Sea Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[WAVEINCENSE] -Name = Wave Incense -NamePlural = Wave Incenses -PortionName = jar of Wave Incense -PortionNamePlural = jars of Wave Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. -#------------------------------- -[ROSEINCENSE] -Name = Rose Incense -NamePlural = Rose Incenses -PortionName = jar of Rose Incense -PortionNamePlural = jars of Rose Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. -#------------------------------- -[ODDINCENSE] -Name = Odd Incense -NamePlural = Odd Incenses -PortionName = jar of Odd Incense -PortionNamePlural = jars of Odd Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. -#------------------------------- -[ROCKINCENSE] -Name = Rock Incense -NamePlural = Rock Incenses -PortionName = jar of Rock Incense -PortionNamePlural = jars of Rock Incense -Pocket = 1 -Price = 2000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. -#------------------------------- -[CHARCOAL] -Name = Charcoal -NamePlural = Charcoals -PortionName = piece of Charcoal -PortionNamePlural = pieces of Charcoal -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. -#------------------------------- -[MYSTICWATER] -Name = Mystic Water -NamePlural = Mystic Waters -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. -#------------------------------- -[MAGNET] -Name = Magnet -NamePlural = Magnets -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. -#------------------------------- -[MIRACLESEED] -Name = Miracle Seed -NamePlural = Miracle Seeds -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. -#------------------------------- -[NEVERMELTICE] -Name = Never-Melt Ice -NamePlural = Never-Melt Ices -PortionName = piece of Never-Melt Ice -PortionNamePlural = pieces of Never-Melt Ice -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. -#------------------------------- -[BLACKBELT] -Name = Black Belt -NamePlural = Black Belts -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. -#------------------------------- -[POISONBARB] -Name = Poison Barb -NamePlural = Poison Barbs -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. -#------------------------------- -[SOFTSAND] -Name = Soft Sand -NamePlural = Soft Sand -PortionName = bag of Soft Sand -PortionNamePlural = bags of Soft Sand -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. -#------------------------------- -[SHARPBEAK] -Name = Sharp Beak -NamePlural = Sharp Beaks -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_50 -Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. -#------------------------------- -[TWISTEDSPOON] -Name = Twisted Spoon -NamePlural = Twisted Spoons -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. -#------------------------------- -[SILVERPOWDER] -Name = Silver Powder -NamePlural = Silver Powders -PortionName = pile of Silver Powder -PortionNamePlural = piles of Silver Powder -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. -#------------------------------- -[HARDSTONE] -Name = Hard Stone -NamePlural = Hard Stones -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_100 -Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. -#------------------------------- -[SPELLTAG] -Name = Spell Tag -NamePlural = Spell Tags -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. -#------------------------------- -[DRAGONFANG] -Name = Dragon Fang -NamePlural = Dragon Fangs -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_70 -Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. -#------------------------------- -[BLACKGLASSES] -Name = Black Glasses -NamePlural = Black Glasses -PortionName = pair of Black Glasses -PortionNamePlural = pairs of Black Glasses -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. -#------------------------------- -[METALCOAT] -Name = Metal Coat -NamePlural = Metal Coats -Pocket = 1 -Price = 3000 -SellPrice = 1000 -Flags = Fling_30 -Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. -#------------------------------- -[FAIRYFEATHER] -Name = Fairy Feather -NamePlural = Fairy Feathers -Pocket = 1 -Price = 3000 -Flags = Fling_10 -Description = An item to be held by a Pokémon. This gleaming feather boosts the power of the holder's Fairy-type moves. -#------------------------------- -[SILKSCARF] -Name = Silk Scarf -NamePlural = Silk Scarves -Pocket = 1 -Price = 3000 -SellPrice = 500 -Flags = Fling_10 -Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. -#------------------------------- -[FLAMEPLATE] -Name = Flame Plate -NamePlural = Flame Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. -#------------------------------- -[SPLASHPLATE] -Name = Splash Plate -NamePlural = Splash Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. -#------------------------------- -[ZAPPLATE] -Name = Zap Plate -NamePlural = Zap Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. -#------------------------------- -[MEADOWPLATE] -Name = Meadow Plate -NamePlural = Meadow Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. -#------------------------------- -[ICICLEPLATE] -Name = Icicle Plate -NamePlural = Icicle Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. -#------------------------------- -[FISTPLATE] -Name = Fist Plate -NamePlural = Fist Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. -#------------------------------- -[TOXICPLATE] -Name = Toxic Plate -NamePlural = Toxic Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. -#------------------------------- -[EARTHPLATE] -Name = Earth Plate -NamePlural = Earth Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. -#------------------------------- -[SKYPLATE] -Name = Sky Plate -NamePlural = Sky Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. -#------------------------------- -[MINDPLATE] -Name = Mind Plate -NamePlural = Mind Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. -#------------------------------- -[INSECTPLATE] -Name = Insect Plate -NamePlural = Insect Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. -#------------------------------- -[STONEPLATE] -Name = Stone Plate -NamePlural = Stone Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. -#------------------------------- -[SPOOKYPLATE] -Name = Spooky Plate -NamePlural = Spooky Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. -#------------------------------- -[DRACOPLATE] -Name = Draco Plate -NamePlural = Draco Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. -#------------------------------- -[DREADPLATE] -Name = Dread Plate -NamePlural = Dread Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. -#------------------------------- -[IRONPLATE] -Name = Iron Plate -NamePlural = Iron Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. -#------------------------------- -[PIXIEPLATE] -Name = Pixie Plate -NamePlural = Pixie Plates -Pocket = 1 -Price = 10000 -SellPrice = 500 -Flags = Fling_90 -Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fairy-type moves. -#------------------------------- -[FIREGEM] -Name = Fire Gem -NamePlural = Fire Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. -#------------------------------- -[WATERGEM] -Name = Water Gem -NamePlural = Water Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. -#------------------------------- -[ELECTRICGEM] -Name = Electric Gem -NamePlural = Electric Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. -#------------------------------- -[GRASSGEM] -Name = Grass Gem -NamePlural = Grass Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. -#------------------------------- -[ICEGEM] -Name = Ice Gem -NamePlural = Ice Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. -#------------------------------- -[FIGHTINGGEM] -Name = Fighting Gem -NamePlural = Fighting Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. -#------------------------------- -[POISONGEM] -Name = Poison Gem -NamePlural = Poison Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. -#------------------------------- -[GROUNDGEM] -Name = Ground Gem -NamePlural = Ground Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. -#------------------------------- -[FLYINGGEM] -Name = Flying Gem -NamePlural = Flying Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. -#------------------------------- -[PSYCHICGEM] -Name = Psychic Gem -NamePlural = Psychic Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. -#------------------------------- -[BUGGEM] -Name = Bug Gem -NamePlural = Bug Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. -#------------------------------- -[ROCKGEM] -Name = Rock Gem -NamePlural = Rock Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. -#------------------------------- -[GHOSTGEM] -Name = Ghost Gem -NamePlural = Ghost Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. -#------------------------------- -[DRAGONGEM] -Name = Dragon Gem -NamePlural = Dragon Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. -#------------------------------- -[DARKGEM] -Name = Dark Gem -NamePlural = Dark Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. -#------------------------------- -[STEELGEM] -Name = Steel Gem -NamePlural = Steel Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. -#------------------------------- -[FAIRYGEM] -Name = Fairy Gem -NamePlural = Fairy Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an essence of the fey. When held, it strengthens the power of a Fairy-type move only once. -#------------------------------- -[NORMALGEM] -Name = Normal Gem -NamePlural = Normal Gems -Pocket = 1 -Price = 4000 -Flags = TypeGem -Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. -#------------------------------- -[LIGHTBALL] -Name = Light Ball -NamePlural = Light Balls -Pocket = 1 -Price = 1000 -Flags = Fling_30 -Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. -#------------------------------- -[LUCKYPUNCH] -Name = Lucky Punch -NamePlural = Lucky Punches -Pocket = 1 -Price = 1000 -BPPrice = 7 -Flags = Fling_40 -Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. -#------------------------------- -[METALPOWDER] -Name = Metal Powder -NamePlural = Metal Powders -PortionName = bag of Metal Powder -PortionNamePlural = bags of Metal Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. -#------------------------------- -[QUICKPOWDER] -Name = Quick Powder -NamePlural = Quick Powders -PortionName = bag of Quick Powder -PortionNamePlural = bags of Quick Powder -Pocket = 1 -Price = 1000 -Flags = Fling_10 -Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. -#------------------------------- -[THICKCLUB] -Name = Thick Club -NamePlural = Thick Clubs -Pocket = 1 -Price = 1000 -Flags = Fling_90 -Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. -#------------------------------- -[LEEK] -Name = Leek -NamePlural = Leeks -Pocket = 1 -Price = 1000 -Flags = Fling_60 -Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. -#------------------------------- -[SOULDEW] -Name = Soul Dew -NamePlural = Soul Dews -Pocket = 1 -Price = 0 -Flags = Fling_30 -Description = A wondrous orb to be held by either Latios or Latias. It raises the power of Psychic- and Dragon-type moves. -#------------------------------- -[DEEPSEATOOTH] -Name = Deep Sea Tooth -NamePlural = Deep Sea Teeth -Pocket = 1 -Price = 2000 -BPPrice = 5 -Flags = Fling_90 -Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. -#------------------------------- -[DEEPSEASCALE] -Name = Deep Sea Scale -NamePlural = Deep Sea Scales -Pocket = 1 -Price = 2000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. -#------------------------------- -[ADAMANTORB] -Name = Adamant Orb -NamePlural = Adamant Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -Flags = Fling_60 -Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. -#------------------------------- -[LUSTROUSORB] -Name = Lustrous Orb -NamePlural = Lustrous Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -Flags = Fling_60 -Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. -#------------------------------- -[GRISEOUSORB] -Name = Griseous Orb -NamePlural = Griseous Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -Flags = Fling_60 -Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. -#------------------------------- -[ADAMANTCRYSTAL] -Name = Adamant Crystal -NamePlural = Adamant Crystals -Pocket = 1 -Price = 4000 -SellPrice = 0 -Flags = Fling_60 -Description = A large, glowing gem to be held by Dialga. It wells with power and allows the Pokémon to change form. -#------------------------------- -[LUSTROUSGLOBE] -Name = Lustrous Globe -NamePlural = Lustrous Globes -Pocket = 1 -Price = 4000 -SellPrice = 0 -Flags = Fling_60 -Description = A large, glowing orb to be held by Palkia. It wells with power and allows the Pokémon to change form. -#------------------------------- -[GRISEOUSCORE] -Name = Griseous Core -NamePlural = Griseous Cores -Pocket = 1 -Price = 4000 -SellPrice = 0 -Flags = Fling_60 -Description = A large, glowing gem to be held by Giratina. It wells with power and allows the Pokémon to change form. -#------------------------------- -[RUSTEDSWORD] -Name = Rusted Sword -NamePlural = Rusted Swords -Pocket = 1 -Price = 0 -Description = It is said that a hero used this sword to halt a disaster in ancient times. But it's grown rusty and worn. -#------------------------------- -[RUSTEDSHIELD] -Name = Rusted Shield -NamePlural = Rusted Shields -Pocket = 1 -Price = 0 -Description = It is said that a hero used this shield to halt a disaster in ancient times. But it's grown rusty and worn. -#------------------------------- -[WELLSPRINGMASK] -Name = Wellspring Mask -NamePlural = Wellspring Masks -Pocket = 1 -Flags = Fling_60 -Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Water type in battle. -#------------------------------- -[HEARTHFLAMEMASK] -Name = Hearthflame Mask -NamePlural = Hearthflame Masks -Pocket = 1 -Price = 0 -Flags = Fling_60 -Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Fire type in battle. -#------------------------------- -[CORNERSTONEMASK] -Name = Cornerstone Mask -NamePlural = Cornerstone Masks -Pocket = 1 -Price = 0 -Flags = Fling_60 -Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Rock type in battle. -#------------------------------- -[DOUSEDRIVE] -Name = Douse Drive -NamePlural = Douse Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. -#------------------------------- -[SHOCKDRIVE] -Name = Shock Drive -NamePlural = Shock Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. -#------------------------------- -[BURNDRIVE] -Name = Burn Drive -NamePlural = Burn Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. -#------------------------------- -[CHILLDRIVE] -Name = Chill Drive -NamePlural = Chill Drives -Pocket = 1 -Price = 0 -Flags = Fling_70 -Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. -#------------------------------- -[FIREMEMORY] -Name = Fire Memory -NamePlural = Fire Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fire-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[WATERMEMORY] -Name = Water Memory -NamePlural = Water Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Water-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ELECTRICMEMORY] -Name = Electric Memory -NamePlural = Electric Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Electric-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GRASSMEMORY] -Name = Grass Memory -NamePlural = Grass Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Grass-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ICEMEMORY] -Name = Ice Memory -NamePlural = Ice Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ice-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FIGHTINGMEMORY] -Name = Fighting Memory -NamePlural = Fighting Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fighting-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[POISONMEMORY] -Name = Poison Memory -NamePlural = Poison Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Poison-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GROUNDMEMORY] -Name = Ground Memory -NamePlural = Ground Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ground-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FLYINGMEMORY] -Name = Flying Memory -NamePlural = Flying Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Flying-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[PSYCHICMEMORY] -Name = Psychic Memory -NamePlural = Psychic Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Psychic-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[BUGMEMORY] -Name = Bug Memory -NamePlural = Bug Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Bug-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[ROCKMEMORY] -Name = Rock Memory -NamePlural = Rock Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Rock-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[GHOSTMEMORY] -Name = Ghost Memory -NamePlural = Ghost Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Ghost-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[DRAGONMEMORY] -Name = Dragon Memory -NamePlural = Dragon Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Dragon-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[DARKMEMORY] -Name = Dark Memory -NamePlural = Dark Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Dark-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[STEELMEMORY] -Name = Steel Memory -NamePlural = Steel Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Steel-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[FAIRYMEMORY] -Name = Fairy Memory -NamePlural = Fairy Memories -Pocket = 1 -Price = 1000 -Flags = Fling_50 -Description = A memory disc containing Fairy-type data. It changes the holder's type if held by a certain Pokémon. -#------------------------------- -[EVERSTONE] -Name = Everstone -NamePlural = Everstones -Pocket = 1 -Price = 3000 -BPPrice = 5 -Flags = Fling_30 -Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. -#------------------------------- -[DRAGONSCALE] -Name = Dragon Scale -NamePlural = Dragon Scales -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_30 -Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. -#------------------------------- -[UPGRADE] -Name = Upgrade -NamePlural = Upgrades -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_30 -Description = A transparent device filled with all sorts of data. It was produced by Silph Co. -#------------------------------- -[DUBIOUSDISC] -Name = Dubious Disc -NamePlural = Dubious Discs -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_50 -Description = A transparent device overflowing with dubious data. Its producer is unknown. -#------------------------------- -[PROTECTOR] -Name = Protector -NamePlural = Protectors -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. -#------------------------------- -[ELECTIRIZER] -Name = Electirizer -NamePlural = Electirizers -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. -#------------------------------- -[MAGMARIZER] -Name = Magmarizer -NamePlural = Magmarizers -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. -#------------------------------- -[REAPERCLOTH] -Name = Reaper Cloth -NamePlural = Reaper Cloths -PortionName = scrap of Reaper Cloth -PortionNamePlural = scraps of Reaper Cloth -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_10 -Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. -#------------------------------- -[PRISMSCALE] -Name = Prism Scale -NamePlural = Prism Scales -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 10 -Flags = Fling_30 -Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. -#------------------------------- -[OVALSTONE] -Name = Oval Stone -NamePlural = Oval Stones -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. -#------------------------------- -[WHIPPEDDREAM] -Name = Whipped Dream -NamePlural = Whipped Dreams -PortionName = dollop of Whipped Dream -PortionNamePlural = dollops of Whipped Dream -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A soft and sweet treat made of fluffy, puffy and whirled cream. It's loved by a certain Pokémon. -#------------------------------- -[SACHET] -Name = Sachet -NamePlural = Sachets -Pocket = 1 -Price = 3000 -SellPrice = 1000 -BPPrice = 5 -Flags = Fling_80 -Description = A sachet filled with slightly overwhelming fragrant perfumes. Yet it's loved by a certain Pokémon. -#------------------------------- -[STRAWBERRYSWEET] -Name = Strawberry Sweet -NamePlural = Strawberry Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A strawberry-shaped sweet. When a Milcery holds this, it will spin around happily. -#------------------------------- -[LOVESWEET] -Name = Love Sweet -NamePlural = Love Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A heart-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[BERRYSWEET] -Name = Berry Sweet -NamePlural = Berry Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A berry-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[CLOVERSWEET] -Name = Clover Sweet -NamePlural = Clover Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A clover-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[FLOWERSWEET] -Name = Flower Sweet -NamePlural = Flower Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A flower-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[STARSWEET] -Name = Star Sweet -NamePlural = Star Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A star-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[RIBBONSWEET] -Name = Ribbon Sweet -NamePlural = Ribbon Sweets -Pocket = 1 -Price = 500 -BPPrice = 5 -Flags = Fling_10 -Description = A ribbon-shaped sweet. When a Milcery holds this, it spins around happily. -#------------------------------- -[VENUSAURITE] -Name = Venusaurite -NamePlural = Venusaurites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Venusaur hold it, and it will be able to Mega Evolve. -#------------------------------- -[CHARIZARDITEX] -Name = Charizardite X -NamePlural = Charizardite Xs -Pocket = 1 -Price = 0 -BPPrice = 50 -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. -#------------------------------- -[CHARIZARDITEY] -Name = Charizardite Y -NamePlural = Charizardite Ys -Pocket = 1 -Price = 0 -BPPrice = 50 -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. -#------------------------------- -[BLASTOISINITE] -Name = Blastoisinite -NamePlural = Blastoisinites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Blastoise hold it, and it will be able to Mega Evolve. -#------------------------------- -[BEEDRILLITE] -Name = Beedrillite -NamePlural = Beedrillites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Beedrill hold it, and it will be able to Mega Evolve. -#------------------------------- -[PIDGEOTITE] -Name = Pidgeotite -NamePlural = Pidgeotites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Pidgeot hold it, and it will be able to Mega Evolve. -#------------------------------- -[ALAKAZITE] -Name = Alakazite -NamePlural = Alakazites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Alakazam hold it, and it will be able to Mega Evolve. -#------------------------------- -[SLOWBRONITE] -Name = Slowbronite -NamePlural = Slowbronites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Slowbro hold it, and it will be able to Mega Evolve. -#------------------------------- -[GENGARITE] -Name = Gengarite -NamePlural = Gengarites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gengar hold it, and it will be able to Mega Evolve. -#------------------------------- -[KANGASKHANITE] -Name = Kangaskhanite -NamePlural = Kangaskhanites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Kangaskhan hold it, and it will be able to Mega Evolve. -#------------------------------- -[PINSIRITE] -Name = Pinsirite -NamePlural = Pinsirites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Pinsir hold it, and it will be able to Mega Evolve. -#------------------------------- -[GYARADOSITE] -Name = Gyaradosite -NamePlural = Gyaradosites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gyarados hold it, and it will be able to Mega Evolve. -#------------------------------- -[AERODACTYLITE] -Name = Aerodactylite -NamePlural = Aerodactylites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Aerodactyl hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEWTWONITEX] -Name = Mewtwonite X -NamePlural = Mewtwonite Xs -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEWTWONITEY] -Name = Mewtwonite Y -NamePlural = Mewtwonite Ys -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. -#------------------------------- -[AMPHAROSITE] -Name = Ampharosite -NamePlural = Ampharosites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Ampharos hold it, and it will be able to Mega Evolve. -#------------------------------- -[STEELIXITE] -Name = Steelixite -NamePlural = Steelixites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Steelix hold it, and it will be able to Mega Evolve. -#------------------------------- -[SCIZORITE] -Name = Scizorite -NamePlural = Scizorites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Scizor hold it, and it will be able to Mega Evolve. -#------------------------------- -[HERACRONITE] -Name = Heracronite -NamePlural = Heracronites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Heracross hold it, and it will be able to Mega Evolve. -#------------------------------- -[HOUNDOOMINITE] -Name = Houndoominite -NamePlural = Houndoominites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Houndoom hold it, and it will be able to Mega Evolve. -#------------------------------- -[TYRANITARITE] -Name = Tyranitarite -NamePlural = Tyranitarites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Tyranitar hold it, and it will be able to Mega Evolve. -#------------------------------- -[SCEPTILITE] -Name = Sceptilite -NamePlural = Sceptilites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sceptile hold it, and it will be able to Mega Evolve. -#------------------------------- -[BLAZIKENITE] -Name = Blazikenite -NamePlural = Blazikenites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Blaziken hold it, and it will be able to Mega Evolve. -#------------------------------- -[SWAMPERTITE] -Name = Swampertite -NamePlural = Swampertites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Swampert hold it, and it will be able to Mega Evolve. -#------------------------------- -[GARDEVOIRITE] -Name = Gardevoirite -NamePlural = Gardevoirites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gardevoir hold it, and it will be able to Mega Evolve. -#------------------------------- -[SABLENITE] -Name = Sablenite -NamePlural = Sablenites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sableye hold it, and it will be able to Mega Evolve. -#------------------------------- -[MAWILITE] -Name = Mawilite -NamePlural = Mawilites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Mawile hold it, and it will be able to Mega Evolve. -#------------------------------- -[AGGRONITE] -Name = Aggronite -NamePlural = Aggronites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Aggron hold it, and it will be able to Mega Evolve. -#------------------------------- -[MEDICHAMITE] -Name = Medichamite -NamePlural = Medichamites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Medicham hold it, and it will be able to Mega Evolve. -#------------------------------- -[MANECTITE] -Name = Manectite -NamePlural = Manectites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Manectric hold it, and it will be able to Mega Evolve. -#------------------------------- -[SHARPEDONITE] -Name = Sharpedonite -NamePlural = Sharpedonites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Sharpedo hold it, and it will be able to Mega Evolve. -#------------------------------- -[CAMERUPTITE] -Name = Cameruptite -NamePlural = Cameruptites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Camerupt hold it, and it will be able to Mega Evolve. -#------------------------------- -[ALTARIANITE] -Name = Altarianite -NamePlural = Altarianites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Altaria hold it, and it will be able to Mega Evolve. -#------------------------------- -[BANETTITE] -Name = Banettite -NamePlural = Banettites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Banette hold it, and it will be able to Mega Evolve. -#------------------------------- -[ABSOLITE] -Name = Absolite -NamePlural = Absolites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Absol hold it, and it will be able to Mega Evolve. -#------------------------------- -[GLALITITE] -Name = Glalitite -NamePlural = Glalitites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Glalie hold it, and it will be able to Mega Evolve. -#------------------------------- -[SALAMENCITE] -Name = Salamencite -NamePlural = Salamencites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Salamence hold it, and it will be able to Mega Evolve. -#------------------------------- -[METAGROSSITE] -Name = Metagrossite -NamePlural = Metagrossites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Metagross hold it, and it will be able to Mega Evolve. -#------------------------------- -[LATIASITE] -Name = Latiasite -NamePlural = Latiasites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Latias hold it, and it will be able to Mega Evolve. -#------------------------------- -[LATIOSITE] -Name = Latiosite -NamePlural = Latiosites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Latios hold it, and it will be able to Mega Evolve. -#------------------------------- -[LOPUNNITE] -Name = Lopunnite -NamePlural = Lopunnites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Lopunny hold it, and it will be able to Mega Evolve. -#------------------------------- -[GARCHOMPITE] -Name = Garchompite -NamePlural = Garchompites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Garchomp hold it, and it will be able to Mega Evolve. -#------------------------------- -[LUCARIONITE] -Name = Lucarionite -NamePlural = Lucarionites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Lucario hold it, and it will be able to Mega Evolve. -#------------------------------- -[ABOMASITE] -Name = Abomasite -NamePlural = Abomasites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Abomasnow hold it, and it will be able to Mega Evolve. -#------------------------------- -[GALLADITE] -Name = Galladite -NamePlural = Galladites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Gallade hold it, and it will be able to Mega Evolve. -#------------------------------- -[AUDINITE] -Name = Audinite -NamePlural = Audinites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Audino hold it, and it will be able to Mega Evolve. -#------------------------------- -[DIANCITE] -Name = Diancite -NamePlural = Diancites -Pocket = 1 -Price = 0 -BPPrice = 50 -Flags = MegaStone,Fling_80 -Description = One of a variety of mysterious Mega Stones. Have Diancie hold it, and it will be able to Mega Evolve. -#------------------------------- -[REDORB] -Name = Red Orb -NamePlural = Red Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -BPPrice = 50 -Description = A shiny red orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. -#------------------------------- -[BLUEORB] -Name = Blue Orb -NamePlural = Blue Orbs -Pocket = 1 -Price = 10000 -SellPrice = 0 -BPPrice = 50 -Description = A shiny blue orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. +Description = Flower nectar obtained from a purple flower. It changes the form of a certain species of Pokémon. +#------------------------------- +[GRASSMAIL] +Name = Grass Mail +NamePlural = Grass Mail +PortionName = piece of Grass Mail +PortionNamePlural = pieces of Grass Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. +#------------------------------- +[FLAMEMAIL] +Name = Flame Mail +NamePlural = Flame Mail +PortionName = piece of Flame Mail +PortionNamePlural = pieces of Flame Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. +#------------------------------- +[BUBBLEMAIL] +Name = Bubble Mail +NamePlural = Bubble Mail +PortionName = piece of Bubble Mail +PortionNamePlural = pieces of Bubble Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. +#------------------------------- +[BLOOMMAIL] +Name = Bloom Mail +NamePlural = Bloom Mail +PortionName = piece of Bloom Mail +PortionNamePlural = pieces of Bloom Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[TUNNELMAIL] +Name = Tunnel Mail +NamePlural = Tunnel Mail +PortionName = piece of Tunnel Mail +PortionNamePlural = pieces of Tunnel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. +#------------------------------- +[STEELMAIL] +Name = Steel Mail +NamePlural = Steel Mail +PortionName = piece of Steel Mail +PortionNamePlural = pieces of Steel Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. +#------------------------------- +[HEARTMAIL] +Name = Heart Mail +NamePlural = Heart Mail +PortionName = piece of Heart Mail +PortionNamePlural = pieces of Heart Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. +#------------------------------- +[SNOWMAIL] +Name = Snow Mail +NamePlural = Snow Mail +PortionName = piece of Snow Mail +PortionNamePlural = pieces of Snow Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. +#------------------------------- +[SPACEMAIL] +Name = Space Mail +NamePlural = Space Mail +PortionName = piece of Space Mail +PortionNamePlural = pieces of Space Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print showing the huge expanse of space. Let a Pokémon hold it for delivery. +#------------------------------- +[AIRMAIL] +Name = Air Mail +NamePlural = Air Mail +PortionName = piece of Air Mail +PortionNamePlural = pieces of Air Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. +#------------------------------- +[MOSAICMAIL] +Name = Mosaic Mail +NamePlural = Mosaic Mail +PortionName = piece of Mosaic Mail +PortionNamePlural = pieces of Mosaic Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. +#------------------------------- +[BRICKMAIL] +Name = Brick Mail +NamePlural = Brick Mail +PortionName = piece of Brick Mail +PortionNamePlural = pieces of Brick Mail +Pocket = Mail +Price = 50 +Flags = IconMail +Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. #------------------------------- [POTION] Name = Potion NamePlural = Potions -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3179,7 +959,7 @@ Description = A spray-type medicine for treating wounds. It can be used to resto [SUPERPOTION] Name = Super Potion NamePlural = Super Potions -Pocket = 2 +Pocket = Medicine Price = 700 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3189,7 +969,7 @@ Description = A spray-type medicine for treating wounds. It can be used to resto [HYPERPOTION] Name = Hyper Potion NamePlural = Hyper Potions -Pocket = 2 +Pocket = Medicine Price = 1500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3199,7 +979,7 @@ Description = A spray-type medicine for treating wounds. It can be used to resto [MAXPOTION] Name = Max Potion NamePlural = Max Potions -Pocket = 2 +Pocket = Medicine Price = 2500 BPPrice = 2 FieldUse = OnPokemon @@ -3210,7 +990,7 @@ Description = A spray-type medicine for treating wounds. It can completely resto [FULLRESTORE] Name = Full Restore NamePlural = Full Restores -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3222,7 +1002,7 @@ Name = Sacred Ash NamePlural = Sacred Ashes PortionName = bag of Sacred Ash PortionNamePlural = bags of Sacred Ash -Pocket = 2 +Pocket = Medicine Price = 50000 FieldUse = Direct Flags = Fling_30 @@ -3231,7 +1011,7 @@ Description = It revives all fainted Pokémon. In doing so, it also fully restor [AWAKENING] Name = Awakening NamePlural = Awakenings -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3241,7 +1021,7 @@ Description = A spray-type medicine. It awakens a Pokémon from the clutches of [ANTIDOTE] Name = Antidote NamePlural = Antidotes -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3251,7 +1031,7 @@ Description = A spray-type medicine. It lifts the effect of poison from one Pok [BURNHEAL] Name = Burn Heal NamePlural = Burn Heals -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3261,7 +1041,7 @@ Description = A spray-type medicine. It heals a single Pokémon that is sufferin [PARALYZEHEAL] Name = Paralyze Heal NamePlural = Paralyze Heals -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3271,7 +1051,7 @@ Description = A spray-type medicine. It eliminates paralysis from a single Poké [ICEHEAL] Name = Ice Heal NamePlural = Ice Heals -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3281,7 +1061,7 @@ Description = A spray-type medicine. It defrosts a Pokémon that has been frozen [FULLHEAL] Name = Full Heal NamePlural = Full Heals -Pocket = 2 +Pocket = Medicine Price = 400 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3293,7 +1073,7 @@ Name = Pewter Crunchies NamePlural = Pewter Crunchies PortionName = bag of Pewter Crunchies PortionNamePlural = bags of Pewter Crunchies -Pocket = 2 +Pocket = Medicine Price = 250 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3303,7 +1083,7 @@ Description = Pewter City's famous crunchy snack. They can be used to heal all s [RAGECANDYBAR] Name = Rage Candy Bar NamePlural = Rage Candy Bars -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3313,7 +1093,7 @@ Description = Mahogany Town's famous candy. It can be used once to heal all the [LAVACOOKIE] Name = Lava Cookie NamePlural = Lava Cookies -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3323,7 +1103,7 @@ Description = Lavaridge Town's local specialty. It heals all the status problems [OLDGATEAU] Name = Old Gateau NamePlural = Old Gateaux -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3333,7 +1113,7 @@ Description = Old Chateau's hidden specialty. It heals all the status problems o [CASTELIACONE] Name = Casteliacone NamePlural = Casteliacones -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3343,37 +1123,37 @@ Description = Castelia City's specialty, soft-serve ice cream. It heals all the [LUMIOSEGALETTE] Name = Lumiose Galette NamePlural = Lumiose Galettes -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = A popular treat in Lumiose City. It can be used once to heal all the status conditions of a Pokémon. +Description = A popular treat in Lumiose City. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [SHALOURSABLE] Name = Shalour Sable NamePlural = Shalour Sables -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = Shalour City's famous shortbread. It can be used once to heal all the status conditions of a Pokémon. +Description = Shalour City's famous shortbread. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [BIGMALASADA] Name = Big Malasada NamePlural = Big Malasadas -Pocket = 2 +Pocket = Medicine Price = 350 FieldUse = OnPokemon BattleUse = OnPokemon Flags = Fling_30 -Description = The Alola region's specialty--fried bread. It can be used once to heal all the status conditions of a Pokémon. +Description = The Alola region's specialty--fried bread. It can be used to heal all the status conditions of a Pokémon. #------------------------------- [REVIVE] Name = Revive NamePlural = Revives -Pocket = 2 +Pocket = Medicine Price = 2000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3383,7 +1163,7 @@ Description = A medicine that revives a fainted Pokémon. It restores half the P [MAXREVIVE] Name = Max Revive NamePlural = Max Revives -Pocket = 2 +Pocket = Medicine Price = 4000 BPPrice = 20 FieldUse = OnPokemon @@ -3396,7 +1176,7 @@ Name = Berry Juice NamePlural = Berry Juices PortionName = cup of Berry Juice PortionNamePlural = cups of Berry Juice -Pocket = 2 +Pocket = Medicine Price = 100 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3406,7 +1186,7 @@ Description = A 100% pure juice made of Berries. It restores the HP of one Poké [SWEETHEART] Name = Sweet Heart NamePlural = Sweet Hearts -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3418,7 +1198,7 @@ Name = Fresh Water NamePlural = Fresh Waters PortionName = bottle of Fresh Water PortionNamePlural = bottles of Fresh Water -Pocket = 2 +Pocket = Medicine Price = 200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3430,7 +1210,7 @@ Name = Soda Pop NamePlural = Soda Pops PortionName = bottle of Soda Pop PortionNamePlural = bottles of Soda Pop -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3442,7 +1222,7 @@ Name = Lemonade NamePlural = Lemonades PortionName = can of Lemonade PortionNamePlural = cans of Lemonade -Pocket = 2 +Pocket = Medicine Price = 350 SellPrice = 200 FieldUse = OnPokemon @@ -3455,7 +1235,7 @@ Name = Moomoo Milk NamePlural = Moomoo Milks PortionName = bottle of Moomoo Milk PortionNamePlural = bottles of Moomoo Milk -Pocket = 2 +Pocket = Medicine Price = 600 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3467,7 +1247,7 @@ Name = Energy Powder NamePlural = Energy Powders PortionName = dose of Energy Powder PortionNamePlural = doses of Energy Powder -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3477,7 +1257,7 @@ Description = A very bitter medicinal powder. It can be used to restore 60 HP to [ENERGYROOT] Name = Energy Root NamePlural = Energy Roots -Pocket = 2 +Pocket = Medicine Price = 1200 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3489,7 +1269,7 @@ Name = Heal Powder NamePlural = Heal Powders PortionName = dose of Heal Powder PortionNamePlural = doses of Heal Powder -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3499,7 +1279,7 @@ Description = A very bitter medicine powder. It heals all the status problems of [REVIVALHERB] Name = Revival Herb NamePlural = Revival Herbs -Pocket = 2 +Pocket = Medicine Price = 2800 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3511,7 +1291,7 @@ Name = Max Honey NamePlural = Max Honeys PortionName = comb of Max Honey PortionNamePlural = combs of Max Honey -Pocket = 2 +Pocket = Medicine Price = 8000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3521,7 +1301,7 @@ Description = Honey that Dynamax Vespiquen produces. It has the same effect as a [ETHER] Name = Ether NamePlural = Ethers -Pocket = 2 +Pocket = Medicine Price = 1200 BPPrice = 4 FieldUse = OnPokemon @@ -3532,7 +1312,7 @@ Description = It restores the PP of a Pokémon's selected move by a maximum of 1 [MAXETHER] Name = Max Ether NamePlural = Max Ethers -Pocket = 2 +Pocket = Medicine Price = 2000 FieldUse = OnPokemon BattleUse = OnMove @@ -3542,7 +1322,7 @@ Description = It fully restores the PP of a single selected move that has been l [ELIXIR] Name = Elixir NamePlural = Elixirs -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3552,7 +1332,7 @@ Description = It restores the PP of all the moves learned by the targeted Pokém [MAXELIXIR] Name = Max Elixir NamePlural = Max Elixirs -Pocket = 2 +Pocket = Medicine Price = 4500 FieldUse = OnPokemon BattleUse = OnPokemon @@ -3564,7 +1344,7 @@ Name = PP Up NamePlural = PP Ups PortionName = bottle of PP Up PortionNamePlural = bottles of PP Up -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 10 FieldUse = OnPokemon @@ -3576,7 +1356,7 @@ Name = PP Max NamePlural = PP Maxes PortionName = bottle of PP Max PortionNamePlural = bottles of PP Max -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3587,7 +1367,7 @@ Name = HP Up NamePlural = HP Ups PortionName = bottle of HP Up PortionNamePlural = bottles of HP Up -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3598,7 +1378,7 @@ Name = Protein NamePlural = Proteins PortionName = bottle of Protein PortionNamePlural = bottles of Protein -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3609,7 +1389,7 @@ Name = Iron NamePlural = Irons PortionName = bottle of Iron PortionNamePlural = bottles of Iron -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3620,7 +1400,7 @@ Name = Calcium NamePlural = Calciums PortionName = bottle of Calcium PortionNamePlural = bottles of Calcium -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3631,7 +1411,7 @@ Name = Zinc NamePlural = Zincs PortionName = bottle of Zinc PortionNamePlural = bottles of Zinc -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3642,7 +1422,7 @@ Name = Carbos NamePlural = Carbos PortionName = bottle of Carbos PortionNamePlural = bottles of Carbos -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -3651,7 +1431,7 @@ Description = A nutritious drink for Pokémon. It raises the base Speed stat of [HEALTHFEATHER] Name = Health Feather NamePlural = Health Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3660,7 +1440,7 @@ Description = An item for use on a Pokémon. It slightly increases the base HP o [MUSCLEFEATHER] Name = Muscle Feather NamePlural = Muscle Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3669,7 +1449,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Atta [RESISTFEATHER] Name = Resist Feather NamePlural = Resist Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3678,7 +1458,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Defe [GENIUSFEATHER] Name = Genius Feather NamePlural = Genius Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3687,7 +1467,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [CLEVERFEATHER] Name = Clever Feather NamePlural = Clever Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3696,7 +1476,7 @@ Description = An item for use on a Pokémon. It slightly increases the base Sp. [SWIFTFEATHER] Name = Swift Feather NamePlural = Swift Feathers -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3705,61 +1485,61 @@ Description = An item for use on a Pokémon. It slightly increases the base Spee [HEALTHMOCHI] Name = Health Mochi NamePlural = Health Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's HP stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's HP stat. #------------------------------- [MUSCLEMOCHI] Name = Muscle Mochi NamePlural = Muscle Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's Attack stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's Attack stat. #------------------------------- [RESISTMOCHI] Name = Resist Mochi NamePlural = Resist Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's Defense stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's Defense stat. #------------------------------- [GENIUSMOCHI] Name = Genius Mochi NamePlural = Genius Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's Sp. Atk stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's Sp. Atk stat. #------------------------------- [CLEVERMOCHI] Name = Clever Mochi NamePlural = Clever Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's Sp. Def stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's Sp. Def stat. #------------------------------- [SWIFTMOCHI] Name = Swift Mochi NamePlural = Swift Mochis -Pocket = 2 +Pocket = Medicine Price = 500 FieldUse = OnPokemon Flags = Fling_20 -Description = A mochi cake with Berries kneaded into its dough. It increases base points for a Pokémon's Speed stat. +Description = A mochi cake with Berries kneaded into its dough. It increases base points of a Pokémon's Speed stat. #------------------------------- [FRESHSTARTMOCHI] Name = Fresh-Start Mochi NamePlural = Fresh-Start Mochis -Pocket = 2 +Pocket = Medicine Price = 300 FieldUse = OnPokemon Flags = Fling_20 @@ -3770,7 +1550,7 @@ Name = Lonely Mint NamePlural = Lonely Mints PortionName = sprig of Lonely Mint PortionNamePlural = sprigs of Lonely Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3782,7 +1562,7 @@ Name = Adamant Mint NamePlural = Adamant Mints PortionName = sprig of Adamant Mint PortionNamePlural = sprigs of Adamant Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3794,7 +1574,7 @@ Name = Naughty Mint NamePlural = Naughty Mints PortionName = sprig of Naughty Mint PortionNamePlural = sprigs of Naughty Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3806,7 +1586,7 @@ Name = Brave Mint NamePlural = Brave Mints PortionName = sprig of Brave Mint PortionNamePlural = sprigs of Brave Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3818,7 +1598,7 @@ Name = Bold Mint NamePlural = Bold Mints PortionName = sprig of Bold Mint PortionNamePlural = sprigs of Bold Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3830,7 +1610,7 @@ Name = Impish Mint NamePlural = Impish Mints PortionName = sprig of Impish Mint PortionNamePlural = sprigs of Impish Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3842,7 +1622,7 @@ Name = Lax Mint NamePlural = Lax Mints PortionName = sprig of Lax Mint PortionNamePlural = sprigs of Lax Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3854,7 +1634,7 @@ Name = Relaxed Mint NamePlural = Relaxed Mints PortionName = sprig of Relaxed Mint PortionNamePlural = sprigs of Relaxed Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3866,7 +1646,7 @@ Name = Modest Mint NamePlural = Modest Mints PortionName = sprig of Modest Mint PortionNamePlural = sprigs of Modest Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3878,7 +1658,7 @@ Name = Mild Mint NamePlural = Mild Mints PortionName = sprig of Mild Mint PortionNamePlural = sprigs of Mild Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3890,7 +1670,7 @@ Name = Rash Mint NamePlural = Rash Mints PortionName = sprig of Rash Mint PortionNamePlural = sprigs of Rash Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3902,7 +1682,7 @@ Name = Quiet Mint NamePlural = Quiet Mints PortionName = sprig of Quiet Mint PortionNamePlural = sprigs of Quiet Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3914,7 +1694,7 @@ Name = Calm Mint NamePlural = Calm Mints PortionName = sprig of Calm Mint PortionNamePlural = sprigs of Calm Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3926,7 +1706,7 @@ Name = Gentle Mint NamePlural = Gentle Mints PortionName = sprig of Gentle Mint PortionNamePlural = sprigs of Gentle Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3938,7 +1718,7 @@ Name = Careful Mint NamePlural = Careful Mints PortionName = sprig of Careful Mint PortionNamePlural = sprigs of Careful Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3950,7 +1730,7 @@ Name = Sassy Mint NamePlural = Sassy Mints PortionName = sprig of Sassy Mint PortionNamePlural = sprigs of Sassy Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3962,7 +1742,7 @@ Name = Timid Mint NamePlural = Timid Mints PortionName = sprig of Timid Mint PortionNamePlural = sprigs of Timid Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3974,7 +1754,7 @@ Name = Hasty Mint NamePlural = Hasty Mints PortionName = sprig of Hasty Mint PortionNamePlural = sprigs of Hasty Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3986,7 +1766,7 @@ Name = Jolly Mint NamePlural = Jolly Mints PortionName = sprig of Jolly Mint PortionNamePlural = sprigs of Jolly Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -3998,7 +1778,7 @@ Name = Naive Mint NamePlural = Naive Mints PortionName = sprig of Naive Mint PortionNamePlural = sprigs of Naive Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -4010,7 +1790,7 @@ Name = Serious Mint NamePlural = Serious Mints PortionName = sprig of Serious Mint PortionNamePlural = sprigs of Serious Mint -Pocket = 2 +Pocket = Medicine Price = 20 BPPrice = 50 FieldUse = OnPokemon @@ -4020,7 +1800,7 @@ Description = When a Pokémon smells this mint, all of its stats will grow at an [ABILITYCAPSULE] Name = Ability Capsule NamePlural = Ability Capsule -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 50 FieldUse = OnPokemon @@ -4029,7 +1809,7 @@ Description = A capsule that allows a Pokémon with two Abilities to switch betw [ABILITYPATCH] Name = Ability Patch NamePlural = Ability Patches -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 200 FieldUse = OnPokemon @@ -4038,7 +1818,7 @@ Description = A patch that allows a Pokémon with a regular Ability to have a ra [EXPCANDYXS] Name = Exp. Candy XS NamePlural = Exp. Candy XSs -Pocket = 2 +Pocket = Medicine Price = 20 FieldUse = OnPokemon Flags = Fling_30 @@ -4047,7 +1827,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYS] Name = Exp. Candy S NamePlural = Exp. Candy Ss -Pocket = 2 +Pocket = Medicine Price = 240 FieldUse = OnPokemon Flags = Fling_30 @@ -4056,7 +1836,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYM] Name = Exp. Candy M NamePlural = Exp. Candy Ms -Pocket = 2 +Pocket = Medicine Price = 1000 FieldUse = OnPokemon Flags = Fling_30 @@ -4065,7 +1845,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYL] Name = Exp. Candy L NamePlural = Exp. Candy Ls -Pocket = 2 +Pocket = Medicine Price = 3000 FieldUse = OnPokemon Flags = Fling_30 @@ -4074,7 +1854,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [EXPCANDYXL] Name = Exp. Candy XL NamePlural = Exp. Candy XLs -Pocket = 2 +Pocket = Medicine Price = 10000 FieldUse = OnPokemon Flags = Fling_30 @@ -4083,7 +1863,7 @@ Description = A candy packed with energy. When consumed, it will grant a Pokémo [RARECANDY] Name = Rare Candy NamePlural = Rare Candies -Pocket = 2 +Pocket = Medicine Price = 10000 BPPrice = 20 FieldUse = OnPokemon @@ -4093,7 +1873,7 @@ Description = A candy that is packed with energy. It raises the level of a singl [MASTERBALL] Name = Master Ball NamePlural = Master Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -4102,7 +1882,7 @@ Description = The best Ball with the ultimate level of performance. It will catc [ULTRABALL] Name = Ultra Ball NamePlural = Ultra Balls -Pocket = 3 +Pocket = PokeBalls Price = 800 BattleUse = OnFoe Flags = PokeBall @@ -4111,7 +1891,7 @@ Description = An ultra-performance Ball that provides a higher Pokémon catch ra [GREATBALL] Name = Great Ball NamePlural = Great Balls -Pocket = 3 +Pocket = PokeBalls Price = 600 BattleUse = OnFoe Flags = PokeBall @@ -4120,7 +1900,7 @@ Description = A good, high-performance Ball that provides a higher Pokémon catc [POKEBALL] Name = Poké Ball NamePlural = Poké Balls -Pocket = 3 +Pocket = PokeBalls Price = 200 BattleUse = OnFoe Flags = PokeBall @@ -4129,7 +1909,7 @@ Description = A device for catching wild Pokémon. It is thrown like a ball at t [SAFARIBALL] Name = Safari Ball NamePlural = Safari Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -4138,7 +1918,7 @@ Description = A special Poké Ball that is used only in the Safari Zone. It is d [SPORTBALL] Name = Sport Ball NamePlural = Sport Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4147,7 +1927,7 @@ Description = A special Poké Ball for the Bug-Catching Contest. [NETBALL] Name = Net Ball NamePlural = Net Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4156,7 +1936,7 @@ Description = A somewhat different Poké Ball that works especially well on Wate [DIVEBALL] Name = Dive Ball NamePlural = Dive Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4165,7 +1945,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [NESTBALL] Name = Nest Ball NamePlural = Nest Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4174,7 +1954,7 @@ Description = A somewhat different Poké Ball that works especially well on weak [REPEATBALL] Name = Repeat Ball NamePlural = Repeat Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4183,7 +1963,7 @@ Description = A somewhat different Poké Ball that works especially well on Pok [TIMERBALL] Name = Timer Ball NamePlural = Timer Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4192,7 +1972,7 @@ Description = A somewhat different Ball that becomes progressively better the mo [LUXURYBALL] Name = Luxury Ball NamePlural = Luxury Balls -Pocket = 3 +Pocket = PokeBalls Price = 3000 BattleUse = OnFoe Flags = PokeBall @@ -4201,7 +1981,7 @@ Description = A comfortable Poké Ball that makes a caught wild Pokémon quickly [PREMIERBALL] Name = Premier Ball NamePlural = Premier Balls -Pocket = 3 +Pocket = PokeBalls Price = 200 SellPrice = 10 BattleUse = OnFoe @@ -4211,7 +1991,7 @@ Description = A somewhat rare Poké Ball that has been specially made to commemo [DUSKBALL] Name = Dusk Ball NamePlural = Dusk Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4220,7 +2000,7 @@ Description = A somewhat different Poké Ball that makes it easier to catch wild [HEALBALL] Name = Heal Ball NamePlural = Heal Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4229,7 +2009,7 @@ Description = A remedial Poké Ball that restores the caught Pokémon's HP and e [QUICKBALL] Name = Quick Ball NamePlural = Quick Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall @@ -4238,7 +2018,7 @@ Description = A somewhat different Poké Ball that provides a better catch rate [CHERISHBALL] Name = Cherish Ball NamePlural = Cherish Balls -Pocket = 3 +Pocket = PokeBalls Price = 0 BattleUse = OnFoe Flags = PokeBall @@ -4247,7 +2027,7 @@ Description = A quite rare Poké Ball that has been specially crafted to commemo [FASTBALL] Name = Fast Ball NamePlural = Fast Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4256,7 +2036,7 @@ Description = A Poké Ball that makes it easier to catch fast Pokémon. [LEVELBALL] Name = Level Ball NamePlural = Level Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4265,7 +2045,7 @@ Description = A Poké Ball for catching Pokémon that are a lower level than you [LUREBALL] Name = Lure Ball NamePlural = Lure Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4274,7 +2054,7 @@ Description = A Poké Ball for catching Pokémon hooked by a Rod when fishing. [HEAVYBALL] Name = Heavy Ball NamePlural = Heavy Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4283,7 +2063,7 @@ Description = A Poké Ball for catching very heavy Pokémon. [LOVEBALL] Name = Love Ball NamePlural = Love Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4292,7 +2072,7 @@ Description = A Poké Ball for catching Pokémon that are the opposite gender of [FRIENDBALL] Name = Friend Ball NamePlural = Friend Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4301,7 +2081,7 @@ Description = A Poké Ball that makes caught Pokémon more friendly. [MOONBALL] Name = Moon Ball NamePlural = Moon Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4310,7 +2090,7 @@ Description = A Poké Ball for catching Pokémon that evolve using the Moon Ston [DREAMBALL] Name = Dream Ball NamePlural = Dream Balls -Pocket = 3 +Pocket = PokeBalls Price = 300 BattleUse = OnFoe Flags = PokeBall @@ -4319,1170 +2099,16 @@ Description = A somewhat different Poké Ball that makes it easier to catch wild [BEASTBALL] Name = Beast Ball NamePlural = Beast Balls -Pocket = 3 +Pocket = PokeBalls Price = 1000 BattleUse = OnFoe Flags = PokeBall Description = A special Poké Ball designed to catch Ultra Beasts. It has a low success rate for catching others. #------------------------------- -[TM01] -Name = TM01 -NamePlural = TM01s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_150 -Move = FOCUSPUNCH -Description = The user focuses its mind before launching a punch. This move fails if the user is hit before it is used. -#------------------------------- -[TM02] -Name = TM02 -NamePlural = TM02s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DRAGONCLAW -Description = The user slashes the target with huge sharp claws. -#------------------------------- -[TM03] -Name = TM03 -NamePlural = TM03s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = WATERPULSE -Description = The user attacks the target with a pulsing blast of water. This may also confuse the target. -#------------------------------- -[TM04] -Name = TM04 -NamePlural = TM04s -Pocket = 4 -Price = 1500 -BPPrice = 48 -FieldUse = TR -Flags = Fling_10 -Move = CALMMIND -Description = The user quietly focuses its mind and calms its spirit to raise its Sp. Atk and Sp. Def stats. -#------------------------------- -[TM05] -Name = TM05 -NamePlural = TM05s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ROAR -Description = The target is scared off, and a different Pokémon is dragged out. In the wild, this ends the battle. -#------------------------------- -[TM06] -Name = TM06 -NamePlural = TM06s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TOXIC -Description = A move that leaves the target badly poisoned. Its poison damage worsens every turn. -#------------------------------- -[TM07] -Name = TM07 -NamePlural = TM07s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = HAIL -Description = The user summons a hailstorm lasting five turns. It damages all Pokémon except Ice types. -#------------------------------- -[TM08] -Name = TM08 -NamePlural = TM08s -Pocket = 4 -Price = 1500 -BPPrice = 48 -FieldUse = TR -Flags = Fling_10 -Move = BULKUP -Description = The user tenses its muscles to bulk up its body, raising both its Attack and Defense stats. -#------------------------------- -[TM09] -Name = TM09 -NamePlural = TM09s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_25 -Move = BULLETSEED -Description = The user forcefully shoots seeds at the target two to five times in a row. -#------------------------------- -[TM10] -Name = TM10 -NamePlural = TM10s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = WORKUP -Description = The user is roused, and its Attack and Sp. Atk stats increase. -#------------------------------- -[TM11] -Name = TM11 -NamePlural = TM11s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SUNNYDAY -Description = The user intensifies the sun for five turns, powering up Fire-type moves and weakening Water-type moves. -#------------------------------- -[TM12] -Name = TM12 -NamePlural = TM12s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TAUNT -Description = The target is taunted into a rage that allows it to use only attack moves for three turns. -#------------------------------- -[TM13] -Name = TM13 -NamePlural = TM13s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = ICEBEAM -Description = The target is struck with an icy-cold beam of energy. This may also leave the target frozen. -#------------------------------- -[TM14] -Name = TM14 -NamePlural = TM14s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_110 -Move = BLIZZARD -Description = A howling blizzard is summoned to strike opposing Pokémon. This may also leave them frozen. -#------------------------------- -[TM15] -Name = TM15 -NamePlural = TM15s -Pocket = 4 -Price = 7500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_150 -Move = HYPERBEAM -Description = The target is attacked with a powerful beam. The user can't move on the next turn. -#------------------------------- -[TM16] -Name = TM16 -NamePlural = TM16s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = LIGHTSCREEN -Description = A wondrous wall of light is put up to reduce damage from special attacks for five turns. -#------------------------------- -[TM17] -Name = TM17 -NamePlural = TM17s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = PROTECT -Description = The user protects itself from all attacks. Its chance of failing rises if it is used in succession. -#------------------------------- -[TM18] -Name = TM18 -NamePlural = TM18s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = RAINDANCE -Description = The user summons a heavy rain for five turns, powering up Water-type moves and weakening Fire-type ones. -#------------------------------- -[TM19] -Name = TM19 -NamePlural = TM19s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_75 -Move = GIGADRAIN -Description = A nutrient-draining attack. The user's HP is restored by half the damage taken by the target. -#------------------------------- -[TM20] -Name = TM20 -NamePlural = TM20s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SAFEGUARD -Description = The user creates a protective field that prevents status conditions for five turns. -#------------------------------- -[TM21] -Name = TM21 -NamePlural = TM21s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DAZZLINGGLEAM -Description = The user damages opposing Pokémon by emitting a powerful flash. -#------------------------------- -[TM22] -Name = TM22 -NamePlural = TM22s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_120 -Move = SOLARBEAM -Description = In this two-turn attack, the user gathers light, then blasts a bundled beam on the next turn. -#------------------------------- -[TM23] -Name = TM23 -NamePlural = TM23s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_100 -Move = IRONTAIL -Description = The target is slammed with a steel-hard tail. This may also lower the target's Defense stat. -#------------------------------- -[TM24] -Name = TM24 -NamePlural = TM24s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = THUNDERBOLT -Description = A strong electric blast crashes down on the target. This may also leave the target with paralysis. -#------------------------------- -[TM25] -Name = TM25 -NamePlural = TM25s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_110 -Move = THUNDER -Description = A wicked thunderbolt is dropped on the target to inflict damage. This may also leave them with paralysis. -#------------------------------- -[TM26] -Name = TM26 -NamePlural = TM26s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_100 -Move = EARTHQUAKE -Description = The user sets off an earthquake that strikes every Pokémon around it. -#------------------------------- -[TM27] -Name = TM27 -NamePlural = TM27s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_65 -Move = LOWSWEEP -Description = The user makes a swift attack on the target's legs, which lowers the target's Speed stat. -#------------------------------- -[TM28] -Name = TM28 -NamePlural = TM28s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DIG -Description = The user burrows into the ground, then attacks on the next turn. It can also be used to exit dungeons. -#------------------------------- -[TM29] -Name = TM29 -NamePlural = TM29s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = PSYCHIC -Description = The target is hit by a strong telekinetic force. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM30] -Name = TM30 -NamePlural = TM30s -Pocket = 4 -Price = 3000 -BPPrice = 64 -FieldUse = TR -Flags = Fling_80 -Move = SHADOWBALL -Description = The user hurls a shadowy blob at the target. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM31] -Name = TM31 -NamePlural = TM31s -Pocket = 4 -Price = 3000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_75 -Move = BRICKBREAK -Description = The user attacks with a swift chop. It can also break barriers, such as Light Screen and Reflect. -#------------------------------- -[TM32] -Name = TM32 -NamePlural = TM32s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = DOUBLETEAM -Description = By moving rapidly, the user makes illusory copies of itself to raise its evasiveness. -#------------------------------- -[TM33] -Name = TM33 -NamePlural = TM33s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = REFLECT -Description = A wondrous wall of light is put up to reduce damage from physical attacks for five turns. -#------------------------------- -[TM34] -Name = TM34 -NamePlural = TM34s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = SHOCKWAVE -Description = The user strikes the target with a quick jolt of electricity. This attack never misses. -#------------------------------- -[TM35] -Name = TM35 -NamePlural = TM35s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = FLAMETHROWER -Description = The target is scorched with an intense blast of fire. This may also leave the target with a burn. -#------------------------------- -[TM36] -Name = TM36 -NamePlural = TM36s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_90 -Move = SLUDGEBOMB -Description = Unsanitary sludge is hurled at the target. This may also poison the target. -#------------------------------- -[TM37] -Name = TM37 -NamePlural = TM37s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SANDSTORM -Description = A five-turn sandstorm is summoned to hurt all combatants except Rock, Ground, and Steel types. -#------------------------------- -[TM38] -Name = TM38 -NamePlural = TM38s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_110 -Move = FIREBLAST -Description = The target is attacked with an intense blast of all-consuming fire. This may also leave them with a burn. -#------------------------------- -[TM39] -Name = TM39 -NamePlural = TM39s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = ROCKTOMB -Description = Boulders are hurled at the target. This also lowers the target's Speed stat by preventing its movement. -#------------------------------- -[TM40] -Name = TM40 -NamePlural = TM40s -Pocket = 4 -Price = 3000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_60 -Move = AERIALACE -Description = The user confounds the target with speed, then slashes. This attack never misses. -#------------------------------- -[TM41] -Name = TM41 -NamePlural = TM41s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TORMENT -Description = The user torments and enrages the target, making it incapable of using the same move twice in a row. -#------------------------------- -[TM42] -Name = TM42 -NamePlural = TM42s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = FACADE -Description = This attack move doubles its power if the user is poisoned, burned, or paralyzed. -#------------------------------- -[TM43] -Name = TM43 -NamePlural = TM43s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = VOLTSWITCH -Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. -#------------------------------- -[TM44] -Name = TM44 -NamePlural = TM44s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = REST -Description = The user goes to sleep for two turns. This fully restores the user's HP and heals any status conditions. -#------------------------------- -[TM45] -Name = TM45 -NamePlural = TM45s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ATTRACT -Description = If it is the opposite gender of the user, the target becomes infatuated and less likely to attack. -#------------------------------- -[TM46] -Name = TM46 -NamePlural = TM46s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = THIEF -Description = The user attacks and steals the target's held item simultaneously. -#------------------------------- -[TM47] -Name = TM47 -NamePlural = TM47s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = STEELWING -Description = The target is hit with wings of steel. This may also raise the user's Defense stat. -#------------------------------- -[TM48] -Name = TM48 -NamePlural = TM48s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SKILLSWAP -Description = The user employs its psychic power to exchange Abilities with the target. -#------------------------------- -[TM49] -Name = TM49 -NamePlural = TM49s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = SCALD -Description = The user shoots boiling hot water at its target. This may also leave the target with a burn. -#------------------------------- -[TM50] -Name = TM50 -NamePlural = TM50s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_130 -Move = OVERHEAT -Description = The user attacks the target at full power. The attack's recoil harshly lowers the user's Sp. Atk stat. -#------------------------------- -[TM51] -Name = TM51 -NamePlural = TM51s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ROOST -Description = The user lands and rests its body. This move restores the user's HP by up to half of its max HP. -#------------------------------- -[TM52] -Name = TM52 -NamePlural = TM52s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_120 -Move = FOCUSBLAST -Description = The user heightens its mental focus and unleashes its power. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM53] -Name = TM53 -NamePlural = TM53s -Pocket = 4 -Price = 3000 -BPPrice = 64 -FieldUse = TR -Flags = Fling_90 -Move = ENERGYBALL -Description = The user draws power from nature and fires it at the target. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM54] -Name = TM54 -NamePlural = TM54s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_40 -Move = FALSESWIPE -Description = A restrained attack that prevents the target from fainting. The target is left with at least 1 HP. -#------------------------------- -[TM55] -Name = TM55 -NamePlural = TM55s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_65 -Move = BRINE -Description = If the target's HP is half or less, this attack will hit with double the power. -#------------------------------- -[TM56] -Name = TM56 -NamePlural = TM56s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = FLING -Description = The user flings its held item at the target to attack. This move's power and effects depend on the item. -#------------------------------- -[TM57] -Name = TM57 -NamePlural = TM57s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_50 -Move = CHARGEBEAM -Description = The user attacks the target with an electric charge. The user may use any remaining charge to raise its Sp. Atk. -#------------------------------- -[TM58] -Name = TM58 -NamePlural = TM58s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ENDURE -Description = The user endures any attack with at least 1 HP. Its chance of failing rises if it is used in succession. -#------------------------------- -[TM59] -Name = TM59 -NamePlural = TM59s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_85 -Move = DRAGONPULSE -Description = The target is attacked with a shock wave generated by the user's gaping mouth. -#------------------------------- -[TM60] -Name = TM60 -NamePlural = TM60s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_75 -Move = DRAINPUNCH -Description = An energy-draining punch. The user's HP is restored by half the damage taken by the target. -#------------------------------- -[TM61] -Name = TM61 -NamePlural = TM61s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = WILLOWISP -Description = The user shoots a sinister flame at the target to inflict a burn. -#------------------------------- -[TM62] -Name = TM62 -NamePlural = TM62s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = BUGBUZZ -Description = The user generates a damaging sound wave by vibration. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM63] -Name = TM63 -NamePlural = TM63s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = NASTYPLOT -Description = The user stimulates its brain by thinking bad thoughts. This sharply raises the user's Sp. Atk stat. -#------------------------------- -[TM64] -Name = TM64 -NamePlural = TM64s -Pocket = 4 -Price = 7500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_250 -Move = EXPLOSION -Description = The user attacks everything around it by causing a tremendous explosion. The user faints upon using this move. -#------------------------------- -[TM65] -Name = TM65 -NamePlural = TM65s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = SHADOWCLAW -Description = The user slashes with a sharp claw made from shadows. Critical hits land more easily. -#------------------------------- -[TM66] -Name = TM66 -NamePlural = TM66s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_50 -Move = PAYBACK -Description = The user stores power, then attacks. If the user moves after the target, this attack's power will be doubled. -#------------------------------- -[TM67] -Name = TM67 -NamePlural = TM67s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = RECYCLE -Description = The user recycles a held item that has been used in battle so it can be used again. -#------------------------------- -[TM68] -Name = TM68 -NamePlural = TM68s -Pocket = 4 -Price = 7500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_150 -Move = GIGAIMPACT -Description = The user charges at the target using every bit of its power. The user can't move on the next turn. -#------------------------------- -[TM69] -Name = TM69 -NamePlural = TM69s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = ROCKPOLISH -Description = The user polishes its body to reduce drag. This sharply raises the Speed stat. -#------------------------------- -[TM70] -Name = TM70 -NamePlural = TM70s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = FLASH -Description = The user flashes a light that lowers the target's accuracy. It can also be used to illuminate caves. -#------------------------------- -[TM71] -Name = TM71 -NamePlural = TM71s -Pocket = 4 -Price = 3000 -BPPrice = 80 -FieldUse = TR -Flags = Fling_100 -Move = STONEEDGE -Description = The user stabs the target from below with sharpened stones. Critical hits land more easily. -#------------------------------- -[TM72] -Name = TM72 -NamePlural = TM72s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = AVALANCHE -Description = The power of this attack move is doubled if the user has been hurt by the target in the same turn. -#------------------------------- -[TM73] -Name = TM73 -NamePlural = TM73s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = THUNDERWAVE -Description = The user launches a weak jolt of electricity that paralyzes the target. -#------------------------------- -[TM74] -Name = TM74 -NamePlural = TM74s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = GYROBALL -Description = The user tackles with a high-speed spin. This move is stronger the slower the user is than the target. -#------------------------------- -[TM75] -Name = TM75 -NamePlural = TM75s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SWORDSDANCE -Description = A frenetic dance to uplift the fighting spirit. This sharply raises the user's Attack stat. -#------------------------------- -[TM76] -Name = TM76 -NamePlural = TM76s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = STEALTHROCK -Description = The user lays a trap of levitating stones around the opposing team that hurt Pokémon that switch in. -#------------------------------- -[TM77] -Name = TM77 -NamePlural = TM77s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = PSYCHUP -Description = The user hypnotizes itself into copying any stat change made by the target. -#------------------------------- -[TM78] -Name = TM78 -NamePlural = TM78s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_55 -Move = SNARL -Description = The user yells as if it's ranting about something, which lowers the Sp. Atk stats of opposing Pokémon. -#------------------------------- -[TM79] -Name = TM79 -NamePlural = TM79s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = DARKPULSE -Description = The user releases a horrible aura imbued with dark thoughts. This may also make the target flinch. -#------------------------------- -[TM80] -Name = TM80 -NamePlural = TM80s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_75 -Move = ROCKSLIDE -Description = Large boulders are hurled at opposing Pokémon to inflict damage. This may also make them flinch. -#------------------------------- -[TM81] -Name = TM81 -NamePlural = TM81s -Pocket = 4 -Price = 3000 -BPPrice = 64 -FieldUse = TR -Flags = Fling_80 -Move = XSCISSOR -Description = The user slashes at the target by crossing its scythes or claws as if they were a pair of scissors. -#------------------------------- -[TM82] -Name = TM82 -NamePlural = TM82s -Pocket = 4 -Price = 1000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SLEEPTALK -Description = While it is asleep, the user randomly uses one of the moves it knows. -#------------------------------- -[TM83] -Name = TM83 -NamePlural = TM83s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = BULLDOZE -Description = The user strikes everything around it by stomping down on the ground. This lowers the Speed of those hit. -#------------------------------- -[TM84] -Name = TM84 -NamePlural = TM84s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = POISONJAB -Description = The target is stabbed with a tentacle, arm, or the like steeped in poison. This may also poison them. -#------------------------------- -[TM85] -Name = TM85 -NamePlural = TM85s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_100 -Move = DREAMEATER -Description = The user eats the dreams of a sleeping target. The user's HP is restored by half the damage dealt. -#------------------------------- -[TM86] -Name = TM86 -NamePlural = TM86s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = GRASSKNOT -Description = The user snares the target with grass and trips it. The heavier the target, the strong the move is. -#------------------------------- -[TM87] -Name = TM87 -NamePlural = TM87s -Pocket = 4 -Price = 1500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SWAGGER -Description = The user enrages and confuses the target. However, this also sharply raises the target's Attack stat. -#------------------------------- -[TM88] -Name = TM88 -NamePlural = TM88s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_60 -Move = PLUCK -Description = The user pecks the target. If the target is holding a Berry, the user eats it and gains its effect. -#------------------------------- -[TM89] -Name = TM89 -NamePlural = TM89s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_70 -Move = UTURN -Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. -#------------------------------- -[TM90] -Name = TM90 -NamePlural = TM90s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = SUBSTITUTE -Description = The user creates a substitute for itself using some of its HP. The substitute serves as a decoy. -#------------------------------- -[TM91] -Name = TM91 -NamePlural = TM91s -Pocket = 4 -Price = 3000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_80 -Move = FLASHCANNON -Description = The user gathers all its light energy and releases it all at once. This may also lower the target's Sp. Def stat. -#------------------------------- -[TM92] -Name = TM92 -NamePlural = TM92s -Pocket = 4 -Price = 5500 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = TRICKROOM -Description = The user creates a bizarre area in which slower Pokémon get to move first for five turns. -#------------------------------- -[TM93] -Name = TM93 -NamePlural = TM93s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_50 -Move = CUT -Description = The target is cut with a scythe or claw. -#------------------------------- -[TM94] -Name = TM94 -NamePlural = TM94s -Pocket = 4 -Price = 2000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_90 -Move = FLY -Description = The user flies up into the sky and then strikes its target on the next turn. -#------------------------------- -[TM95] -Name = TM95 -NamePlural = TM95s -Pocket = 4 -Price = 2500 -BPPrice = 64 -FieldUse = TR -Flags = Fling_90 -Move = SURF -Description = The user attacks everything around it by swamping its surroundings with a giant wave. -#------------------------------- -[TM96] -Name = TM96 -NamePlural = TM96s -Pocket = 4 -Price = 2000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_80 -Move = STRENGTH -Description = The target is slugged with a punch thrown at maximum power. -#------------------------------- -[TM97] -Name = TM97 -NamePlural = TM97s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_10 -Move = DEFOG -Description = A strong wind blows away the target's barriers, such as Reflect, and lowers their evasiveness. -#------------------------------- -[TM98] -Name = TM98 -NamePlural = TM98s -Pocket = 4 -Price = 2000 -BPPrice = 40 -FieldUse = TR -Flags = Fling_40 -Move = ROCKSMASH -Description = The user attacks with a punch that may lower the target's Defense stat. -#------------------------------- -[TM99] -Name = TM99 -NamePlural = TM99s -Pocket = 4 -Price = 2500 -BPPrice = 64 -FieldUse = TR -Flags = Fling_80 -Move = WATERFALL -Description = The user charges at the target and may make it flinch. -#------------------------------- -[TM100] -Name = TM100 -NamePlural = TM100s -Pocket = 4 -Price = 2000 -BPPrice = 32 -FieldUse = TR -Flags = Fling_90 -Move = ROCKCLIMB -Description = A charging attack that may also leave the foe confused. -#------------------------------- -[HM01] -Name = HM01 -NamePlural = HM01s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = CUT -Description = The target is cut with a scythe or claw. This can also be used to cut down thin trees. -#------------------------------- -[HM02] -Name = HM02 -NamePlural = HM02s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = FLY -Description = The user soars and then strikes on the next turn. This can also be used to fly to any familiar town. -#------------------------------- -[HM03] -Name = HM03 -NamePlural = HM03s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = SURF -Description = Attacks everything by swamping the surroundings with a giant wave. This can also be used to cross water. -#------------------------------- -[HM04] -Name = HM04 -NamePlural = HM04s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = STRENGTH -Description = The target is slugged with a punch thrown at maximum power. This can also be used to move heavy boulders. -#------------------------------- -[HM05] -Name = HM05 -NamePlural = HM05s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = WATERFALL -Description = The user charges at the target and may make it flinch. It can also be used to climb a waterfall. -#------------------------------- -[HM06] -Name = HM06 -NamePlural = HM06s -Pocket = 4 -Price = 0 -FieldUse = HM -Move = DIVE -Description = Diving on the first turn, the user floats up and attacks on the second. It can be used to dive underwater. -#------------------------------- [CHERIBERRY] Name = Cheri Berry NamePlural = Cheri Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5492,7 +2118,7 @@ Description = It may be used or held by a Pokémon to recover from paralysis. [CHESTOBERRY] Name = Chesto Berry NamePlural = Chesto Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5502,7 +2128,7 @@ Description = It may be used or held by a Pokémon to recover from sleep. [PECHABERRY] Name = Pecha Berry NamePlural = Pecha Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5512,7 +2138,7 @@ Description = It may be used or held by a Pokémon to recover from poison. [RAWSTBERRY] Name = Rawst Berry NamePlural = Rawst Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5522,7 +2148,7 @@ Description = It may be used or held by a Pokémon to recover from a burn. [ASPEARBERRY] Name = Aspear Berry NamePlural = Aspear Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5532,7 +2158,7 @@ Description = It may be used or held by a Pokémon to defrost it. [LEPPABERRY] Name = Leppa Berry NamePlural = Leppa Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnMove @@ -5542,7 +2168,7 @@ Description = It may be used or held by a Pokémon to restore a move's PP by 10. [ORANBERRY] Name = Oran Berry NamePlural = Oran Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5552,7 +2178,7 @@ Description = It may be used or held by a Pokémon to heal the user by just 10 H [PERSIMBERRY] Name = Persim Berry NamePlural = Persim Berries -Pocket = 5 +Pocket = Berries Price = 20 BattleUse = OnBattler Flags = Berry,Fling_10,NaturalGift_GROUND_80 @@ -5561,7 +2187,7 @@ Description = It may be used or held by a Pokémon to recover from confusion. [LUMBERRY] Name = Lum Berry NamePlural = Lum Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5571,7 +2197,7 @@ Description = It may be used or held by a Pokémon to recover from any status pr [SITRUSBERRY] Name = Sitrus Berry NamePlural = Sitrus Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -5581,7 +2207,7 @@ Description = It may be used or held by a Pokémon to heal the user's HP a littl [FIGYBERRY] Name = Figy Berry NamePlural = Figy Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5589,7 +2215,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [WIKIBERRY] Name = Wiki Berry NamePlural = Wiki Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5597,7 +2223,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [MAGOBERRY] Name = Mago Berry NamePlural = Mago Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5605,7 +2231,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [AGUAVBERRY] Name = Aguav Berry NamePlural = Aguav Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5613,7 +2239,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [IAPAPABERRY] Name = Iapapa Berry NamePlural = Iapapa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_80 Description = If held by a Pokémon, it restores the user's HP in a pinch, but will cause confusion if it hates the taste. @@ -5621,7 +2247,7 @@ Description = If held by a Pokémon, it restores the user's HP in a pinch, but w [RAZZBERRY] Name = Razz Berry NamePlural = Razz Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_80 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5629,7 +2255,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [BLUKBERRY] Name = Bluk Berry NamePlural = Bluk Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5637,7 +2263,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [NANABBERRY] Name = Nanab Berry NamePlural = Nanab Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5645,7 +2271,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [WEPEARBERRY] Name = Wepear Berry NamePlural = Wepear Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5653,7 +2279,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [PINAPBERRY] Name = Pinap Berry NamePlural = Pinap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5661,7 +2287,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [POMEGBERRY] Name = Pomeg Berry NamePlural = Pomeg Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_ICE_90 @@ -5670,7 +2296,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [KELPSYBERRY] Name = Kelpsy Berry NamePlural = Kelpsy Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_FIGHTING_90 @@ -5679,7 +2305,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [QUALOTBERRY] Name = Qualot Berry NamePlural = Qualot Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_POISON_90 @@ -5688,7 +2314,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [HONDEWBERRY] Name = Hondew Berry NamePlural = Hondew Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_GROUND_90 @@ -5697,7 +2323,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [GREPABERRY] Name = Grepa Berry NamePlural = Grepa Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_FLYING_90 @@ -5706,7 +2332,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [TAMATOBERRY] Name = Tamato Berry NamePlural = Tamato Berries -Pocket = 5 +Pocket = Berries Price = 20 FieldUse = OnPokemon Flags = Berry,Fling_10,NaturalGift_PSYCHIC_90 @@ -5715,7 +2341,7 @@ Description = Using it on a Pokémon makes it more friendly, but it also lowers [CORNNBERRY] Name = Cornn Berry NamePlural = Cornn Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5723,7 +2349,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [MAGOSTBERRY] Name = Magost Berry NamePlural = Magost Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5731,7 +2357,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [RABUTABERRY] Name = Rabuta Berry NamePlural = Rabuta Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5739,7 +2365,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [NOMELBERRY] Name = Nomel Berry NamePlural = Nomel Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5747,7 +2373,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [SPELONBERRY] Name = Spelon Berry NamePlural = Spelon Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5755,7 +2381,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [PAMTREBERRY] Name = Pamtre Berry NamePlural = Pamtre Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_90 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5763,7 +2389,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [WATMELBERRY] Name = Watmel Berry NamePlural = Watmel Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5771,7 +2397,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [DURINBERRY] Name = Durin Berry NamePlural = Durin Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5779,7 +2405,7 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [BELUEBERRY] Name = Belue Berry NamePlural = Belue Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_100 Description = In the Sinnoh region, they like to make sweets known as Poffins with this Berry. @@ -5787,135 +2413,135 @@ Description = In the Sinnoh region, they like to make sweets known as Poffins wi [OCCABERRY] Name = Occa Berry NamePlural = Occa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIRE_80 -Description = Weakens a supereffective Fire-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fire-type attack. #------------------------------- [PASSHOBERRY] Name = Passho Berry NamePlural = Passho Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_WATER_80 -Description = Weakens a supereffective Water-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Water-type attack. #------------------------------- [WACANBERRY] Name = Wacan Berry NamePlural = Wacan Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ELECTRIC_80 -Description = Weakens a supereffective Electric-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Electric attack. #------------------------------- [RINDOBERRY] Name = Rindo Berry NamePlural = Rindo Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_80 -Description = Weakens a supereffective Grass-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Grass-type attack. #------------------------------- [YACHEBERRY] Name = Yache Berry NamePlural = Yache Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ICE_80 -Description = Weakens a supereffective Ice-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ice-type attack. #------------------------------- [CHOPLEBERRY] Name = Chople Berry NamePlural = Chople Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIGHTING_80 -Description = Weakens a supereffective Fighting-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fighting attack. #------------------------------- [KEBIABERRY] Name = Kebia Berry NamePlural = Kebia Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_POISON_80 -Description = Weakens a supereffective Poison-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Poison-type attack. #------------------------------- [SHUCABERRY] Name = Shuca Berry NamePlural = Shuca Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GROUND_80 -Description = Weakens a supereffective Ground-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ground-type attack. #------------------------------- [COBABERRY] Name = Coba Berry NamePlural = Coba Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FLYING_80 -Description = Weakens a supereffective Flying-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Flying-type attack. #------------------------------- [PAYAPABERRY] Name = Payapa Berry NamePlural = Payapa Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_PSYCHIC_80 -Description = Weakens a supereffective Psychic-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Psychic attack. #------------------------------- [TANGABERRY] Name = Tanga Berry NamePlural = Tanga Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_80 -Description = Weakens a supereffective Bug-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Bug-type attack. #------------------------------- [CHARTIBERRY] Name = Charti Berry NamePlural = Charti Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_80 -Description = Weakens a supereffective Rock-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Rock-type attack. #------------------------------- [KASIBBERRY] Name = Kasib Berry NamePlural = Kasib Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_80 -Description = Weakens a supereffective Ghost-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Ghost-type attack. #------------------------------- [HABANBERRY] Name = Haban Berry NamePlural = Haban Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_80 -Description = Weakens a supereffective Dragon-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dragon-type attack. #------------------------------- [COLBURBERRY] Name = Colbur Berry NamePlural = Colbur Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_80 -Description = Weakens a supereffective Dark-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Dark-type attack. #------------------------------- [BABIRIBERRY] Name = Babiri Berry NamePlural = Babiri Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_STEEL_80 -Description = Weakens a supereffective Steel-type attack against the holding Pokémon. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Steel-type attack. #------------------------------- [ROSELIBERRY] Name = Roseli Berry NamePlural = Roseli Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FAIRY_80 Description = If held by a Pokémon, this Berry will lessen the damage taken from one supereffective Fairy-type attack. @@ -5923,15 +2549,15 @@ Description = If held by a Pokémon, this Berry will lessen the damage taken fro [CHILANBERRY] Name = Chilan Berry NamePlural = Chilan Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_NORMAL_80 -Description = Weakens a Normal-type attack against the Pokémon holding this berry. +Description = If held by a Pokémon, this Berry will lessen the damage taken from one Normal-type attack. #------------------------------- [LIECHIBERRY] Name = Liechi Berry NamePlural = Liechi Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GRASS_100 Description = If held by a Pokémon, it raises its Attack stat in a pinch. @@ -5939,7 +2565,7 @@ Description = If held by a Pokémon, it raises its Attack stat in a pinch. [GANLONBERRY] Name = Ganlon Berry NamePlural = Ganlon Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ICE_100 Description = If held by a Pokémon, it raises its Defense stat in a pinch. @@ -5947,7 +2573,7 @@ Description = If held by a Pokémon, it raises its Defense stat in a pinch. [SALACBERRY] Name = Salac Berry NamePlural = Salac Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FIGHTING_100 Description = If held by a Pokémon, it raises its Speed stat in a pinch. @@ -5955,7 +2581,7 @@ Description = If held by a Pokémon, it raises its Speed stat in a pinch. [PETAYABERRY] Name = Petaya Berry NamePlural = Petaya Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_POISON_100 Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. @@ -5963,7 +2589,7 @@ Description = If held by a Pokémon, it raises its Sp. Atk stat in a pinch. [APICOTBERRY] Name = Apicot Berry NamePlural = Apicot Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GROUND_100 Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. @@ -5971,7 +2597,7 @@ Description = If held by a Pokémon, it raises its Sp. Def stat in a pinch. [LANSATBERRY] Name = Lansat Berry NamePlural = Lansat Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FLYING_100 Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch. @@ -5979,7 +2605,7 @@ Description = If held by a Pokémon, it raises its critical-hit ratio in a pinch [STARFBERRY] Name = Starf Berry NamePlural = Starf Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_PSYCHIC_100 Description = If held by a Pokémon, it sharply raises one of its stats in a pinch. @@ -5987,7 +2613,7 @@ Description = If held by a Pokémon, it sharply raises one of its stats in a pin [ENIGMABERRY] Name = Enigma Berry NamePlural = Enigma Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_BUG_100 Description = If held by a Pokémon, it restores its HP if it is hit by any supereffective attack. @@ -5995,7 +2621,7 @@ Description = If held by a Pokémon, it restores its HP if it is hit by any supe [MICLEBERRY] Name = Micle Berry NamePlural = Micle Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_ROCK_100 Description = If held by a Pokémon, it raises the accuracy of a move just once in a pinch. @@ -6003,7 +2629,7 @@ Description = If held by a Pokémon, it raises the accuracy of a move just once [CUSTAPBERRY] Name = Custap Berry NamePlural = Custap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_GHOST_100 Description = If held by a Pokémon, it gets to move first just once in a pinch. @@ -6011,7 +2637,7 @@ Description = If held by a Pokémon, it gets to move first just once in a pinch. [JABOCABERRY] Name = Jaboca Berry NamePlural = Jaboca Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DRAGON_100 Description = If held by a Pokémon and a physical attack lands, the attacker also takes damage. @@ -6019,7 +2645,7 @@ Description = If held by a Pokémon and a physical attack lands, the attacker al [ROWAPBERRY] Name = Rowap Berry NamePlural = Rowap Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_100 Description = If held by a Pokémon and a special attack lands, the attacker also takes damage. @@ -6027,7 +2653,7 @@ Description = If held by a Pokémon and a special attack lands, the attacker als [KEEBERRY] Name = Kee Berry NamePlural = Kee Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_FAIRY_100 Description = If held by a Pokémon, this Berry will increase the holder's Defense if it's hit with a physical move. @@ -6035,135 +2661,2355 @@ Description = If held by a Pokémon, this Berry will increase the holder's Defen [MARANGABERRY] Name = Maranga Berry NamePlural = Maranga Berries -Pocket = 5 +Pocket = Berries Price = 20 Flags = Berry,Fling_10,NaturalGift_DARK_100 Description = If held by a Pokémon, this Berry will increase the holder's Sp. Def if it's hit with a special move. #------------------------------- -[GRASSMAIL] -Name = Grass Mail -NamePlural = Grass Mail -PortionName = piece of Grass Mail -PortionNamePlural = pieces of Grass Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a refreshingly green field. Let a Pokémon hold it for delivery. +[AIRBALLOON] +Name = Air Balloon +NamePlural = Air Balloons +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder will float in the air until hit. Once hit, this item will burst. #------------------------------- -[FLAMEMAIL] -Name = Flame Mail -NamePlural = Flame Mail -PortionName = piece of Flame Mail -PortionNamePlural = pieces of Flame Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of flames in blazing red. Let a Pokémon hold it for delivery. +[BRIGHTPOWDER] +Name = Bright Powder +NamePlural = Bright Powders +PortionName = bag of Bright Powder +PortionNamePlural = bags of Bright Powder +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It casts a tricky glare that lowers the opponent's accuracy. #------------------------------- -[BUBBLEMAIL] -Name = Bubble Mail -NamePlural = Bubble Mail -PortionName = piece of Bubble Mail -PortionNamePlural = pieces of Bubble Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a blue world underwater. Let a Pokémon hold it for delivery. +[EVIOLITE] +Name = Eviolite +NamePlural = Eviolites +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_40 +Description = A mysterious evolutionary lump. When held, it raises the Defense and Sp. Def if the holder can still evolve. #------------------------------- -[BLOOMMAIL] -Name = Bloom Mail -NamePlural = Bloom Mail -PortionName = piece of Bloom Mail -PortionNamePlural = pieces of Bloom Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of pretty floral patterns. Let a Pokémon hold it for delivery. +[FLOATSTONE] +Name = Float Stone +NamePlural = Float Stones +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 10 +Flags = Fling_30 +Description = A very light stone. It reduces the weight of a Pokémon when held. #------------------------------- -[TUNNELMAIL] -Name = Tunnel Mail -NamePlural = Tunnel Mail -PortionName = piece of Tunnel Mail -PortionNamePlural = pieces of Tunnel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a dimly lit coal mine. Let a Pokémon hold it for delivery. +[DESTINYKNOT] +Name = Destiny Knot +NamePlural = Destiny Knots +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 10 +Flags = Fling_10 +Description = A long, bright-red string to be held by a Pokémon. If the holder becomes infatuated, so does the foe. #------------------------------- -[STEELMAIL] -Name = Steel Mail -NamePlural = Steel Mail -PortionName = piece of Steel Mail -PortionNamePlural = pieces of Steel Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of cool mechanical designs. Let a Pokémon hold it for delivery. +[ROCKYHELMET] +Name = Rocky Helmet +NamePlural = Rocky Helmets +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_60 +Description = If the holder of this item takes damage, the attacker will also be damaged upon contact. #------------------------------- -[HEARTMAIL] -Name = Heart Mail -NamePlural = Heart Mail -PortionName = piece of Heart Mail -PortionNamePlural = pieces of Heart Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of giant heart patterns. Let a Pokémon hold it for delivery. +[ASSAULTVEST] +Name = Assault Vest +NamePlural = Assault Vests +Pocket = HeldItems +Price = 1000 +BPPrice = 25 +Flags = Fling_80 +Description = An item to be held by a Pokémon. This offensive vest raises Sp. Def but prevents the use of status moves. #------------------------------- -[SNOWMAIL] -Name = Snow Mail -NamePlural = Snow Mail -PortionName = piece of Snow Mail -PortionNamePlural = pieces of Snow Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a chilly, snow-covered world. Let a Pokémon hold it for delivery. +[SAFETYGOGGLES] +Name = Safety Goggles +NamePlural = Safety Goggles +PortionName = pair of Safety Goggles +PortionNamePlural = pairs of Safety Goggles +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_80 +Description = An item to be held by a Pokémon. They protect the holder from weather-related damage and powder. #------------------------------- -[SPACEMAIL] -Name = Space Mail -NamePlural = Space Mail -PortionName = piece of Space Mail -PortionNamePlural = pieces of Space Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print depicting the huge expanse of space. Let a Pokémon hold it for delivery. +[PROTECTIVEPADS] +Name = Protective Pads +NamePlural = Protective Pads +PortionName = set of Protective Pads +PortionNamePlural = sets of Protective Pads +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_30 +Description = An item to be held by a Pokémon. They protect the holder from effects caused by making contact. #------------------------------- -[AIRMAIL] -Name = Air Mail -NamePlural = Air Mail -PortionName = piece of Air Mail -PortionNamePlural = pieces of Air Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of colorful letter sets. Let a Pokémon hold it for delivery. +[HEAVYDUTYBOOTS] +Name = Heavy-Duty Boots +NamePlural = Heavy-Duty Boots +PortionName = pair of Heavy-Duty Boots +PortionNamePlural = pairs of Heavy-Duty Boots +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_80 +Description = These boots prevent the effects of traps set on the battlefield. #------------------------------- -[MOSAICMAIL] -Name = Mosaic Mail -NamePlural = Mosaic Mail -PortionName = piece of Mosaic Mail -PortionNamePlural = pieces of Mosaic Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a vivid rainbow pattern. Let a Pokémon hold it for delivery. +[UTILITYUMBRELLA] +Name = Utility Umbrella +NamePlural = Utility Umbrellas +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_60 +Description = An item to be held by a Pokémon. This sturdy umbrella protects the holder from the effects of rain and sun. #------------------------------- -[BRICKMAIL] -Name = Brick Mail -NamePlural = Brick Mail -PortionName = piece of Brick Mail -PortionNamePlural = pieces of Brick Mail -Pocket = 6 -Price = 50 -Flags = IconMail -Description = Stationery featuring a print of a tough-looking brick pattern. Let a Pokémon hold it for delivery. +[ABILITYSHIELD] +Name = Ability Shield +NamePlural = Ability Shields +Pocket = HeldItems +Price = 20000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. This cute shield protects the holder from having its Ability changed by others. +#------------------------------- +[CLEARAMULET] +Name = Clear Amulet +NamePlural = Clear Amulets +Pocket = HeldItems +Price = 30000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It protects the holder from having its stats lowered by other Pokémon. +#------------------------------- +[COVERTCLOAK] +Name = Covert Cloak +NamePlural = Covert Cloaks +Pocket = HeldItems +Price = 20000 +SellPrice = 5000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. This hooded cloak protects the holder from moves' additional effects. +#------------------------------- +[EJECTBUTTON] +Name = Eject Button +NamePlural = Eject Buttons +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 20 +Flags = Fling_30 +Description = If the holder is hit by an attack, it will switch with another Pokémon in your party. +#------------------------------- +[EJECTPACK] +Name = Eject Pack +NamePlural = Eject Packs +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 20 +Flags = Fling_50 +Description = An item to be held by a Pokémon. When the holder's stats are lowered, it will be switched out of battle. +#------------------------------- +[REDCARD] +Name = Red Card +NamePlural = Red Cards +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 20 +Flags = Fling_10 +Description = A card with a mysterious power. When the holder is struck by a foe, the attacker is removed from battle. +#------------------------------- +[SHEDSHELL] +Name = Shed Shell +NamePlural = Shed Shells +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This discarded carapace lets the holder switch out of battle without fail. +#------------------------------- +[SMOKEBALL] +Name = Smoke Ball +NamePlural = Smoke Balls +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It enables the holder to flee from any wild Pokémon without fail. +#------------------------------- +[LUCKYEGG] +Name = Lucky Egg +NamePlural = Lucky Eggs +Pocket = HeldItems +Price = 10000 +BPPrice = 77 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is an egg filled with happiness that earns extra Exp. Points in battle. +#------------------------------- +[EXPSHARE] +Name = Exp. Share +NamePlural = Exp. Shares +Pocket = HeldItems +Price = 3000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder gets a share of a battle's Exp. Points without battling. +#------------------------------- +[AMULETCOIN] +Name = Amulet Coin +NamePlural = Amulet Coins +Pocket = HeldItems +Price = 10000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[SOOTHEBELL] +Name = Soothe Bell +NamePlural = Soothe Bells +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The comforting chime of this bell calms the holder, making it friendly. +#------------------------------- +[CLEANSETAG] +Name = Cleanse Tag +NamePlural = Cleanse Tags +Pocket = HeldItems +Price = 5000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[CHOICEBAND] +Name = Choice Band +NamePlural = Choice Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This headband ups Attack, but allows the use of only one move. +#------------------------------- +[CHOICESPECS] +Name = Choice Specs +NamePlural = Choice Specs +PortionName = pair of Choice Specs +PortionNamePlural = pairs of Choice Specs +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. These curious glasses boost Sp. Atk but allows the use of only one move. +#------------------------------- +[CHOICESCARF] +Name = Choice Scarf +NamePlural = Choice Scarves +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This scarf boosts Speed but allows the use of only one move. +#------------------------------- +[HEATROCK] +Name = Heat Rock +NamePlural = Heat Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Sunny Day used by the holder. +#------------------------------- +[DAMPROCK] +Name = Damp Rock +NamePlural = Damp Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_60 +Description = A Pokémon held item that extends the duration of the move Rain Dance used by the holder. +#------------------------------- +[SMOOTHROCK] +Name = Smooth Rock +NamePlural = Smooth Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = A Pokémon held item that extends the duration of the move Sandstorm used by the holder. +#------------------------------- +[ICYROCK] +Name = Icy Rock +NamePlural = Icy Rocks +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_40 +Description = A Pokémon held item that extends the duration of the move Hail used by the holder. +#------------------------------- +[TERRAINEXTENDER] +Name = Terrain Extender +NamePlural = Terrain Extenders +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_60 +Description = An item to be held by a Pokémon. It extends the duration of the terrain caused by the holder. +#------------------------------- +[LIGHTCLAY] +Name = Light Clay +NamePlural = Light Clays +PortionName = lump of Light Clay +PortionNamePlural = lumps of Light Clay +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_30 +Description = An item to be held by a Pokémon. Protective moves like Light Screen and Reflect will be effective longer. +#------------------------------- +[GRIPCLAW] +Name = Grip Claw +NamePlural = Grip Claws +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_90 +Description = A Pokémon held item that extends the duration of multiturn attacks like Bind and Wrap. +#------------------------------- +[LOADEDDICE] +Name = Loaded Dice +NamePlural = Loaded Dice +PortionName = set of Loaded Dice +PortionNamePlural = sets of Loaded Dice +Pocket = HeldItems +Price = 20000 +SellPrice = 5000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. This dice ensures that the holder's multistrike moves hit more times. +#------------------------------- +[BINDINGBAND] +Name = Binding Band +NamePlural = Binding Bands +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 15 +Flags = Fling_30 +Description = A band that increases the power of binding moves when held. +#------------------------------- +[BIGROOT] +Name = Big Root +NamePlural = Big Roots +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = A Pokémon held item that boosts the power of HP-stealing moves to let the holder recover more HP. +#------------------------------- +[BLACKSLUDGE] +Name = Black Sludge +NamePlural = Black Sludges +PortionName = blob of Black Sludge +PortionNamePlural = blobs of Black Sludge +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_30 +Description = A held item that gradually restores the HP of Poison-type Pokémon. It inflicts damage on all other types. +#------------------------------- +[LEFTOVERS] +Name = Leftovers +NamePlural = Leftovers +PortionName = serving of Leftovers +PortionNamePlural = servings of Leftovers +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder's HP is gradually restored during battle. +#------------------------------- +[SHELLBELL] +Name = Shell Bell +NamePlural = Shell Bells +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The holder's HP is restored a little every time it inflicts damage. +#------------------------------- +[MENTALHERB] +Name = Mental Herb +NamePlural = Mental Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It snaps the holder out of infatuation. It can be used only once. +#------------------------------- +[WHITEHERB] +Name = White Herb +NamePlural = White Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It restores any lowered stat in battle. It can be used only once. +#------------------------------- +[POWERHERB] +Name = Power Herb +NamePlural = Power Herbs +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_10 +Description = A single-use item to be held by a Pokémon. It allows the immediate use of a move that charges up first. +#------------------------------- +[MIRRORHERB] +Name = Mirror Herb +NamePlural = Mirror Herbs +Pocket = HeldItems +Price = 30000 +SellPrice = 7500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It allows the holder to copy an opponent's stat increases once. +#------------------------------- +[ABSORBBULB] +Name = Absorb Bulb +NamePlural = Absorb Bulbs +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = A consumable bulb. If the holder is hit by a Water-type move, its Sp. Atk will rise. +#------------------------------- +[CELLBATTERY] +Name = Cell Battery +NamePlural = Cell Batteries +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = A consumable battery. If the holder is hit by an Electric-type move, its Attack will rise. +#------------------------------- +[LUMINOUSMOSS] +Name = Luminous Moss +NamePlural = Luminous Moss +PortionName = clump of Luminous Moss +PortionNamePlural = clumps of Luminous Moss +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Sp. Def if hit by a Water-type attack. It can only be used once. +#------------------------------- +[SNOWBALL] +Name = Snowball +NamePlural = Snowballs +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Attack if hit by an Ice-type attack. It can only be used once. +#------------------------------- +[WEAKNESSPOLICY] +Name = Weakness Policy +NamePlural = Weakness Policies +Pocket = HeldItems +Price = 1000 +BPPrice = 20 +Flags = Fling_80 +Description = An item to be held by a Pokémon. The holder's Attack and Sp. Atk sharply increase if hit by a move it's weak to. +#------------------------------- +[BLUNDERPOLICY] +Name = Blunder Policy +NamePlural = Blunder Policies +Pocket = HeldItems +Price = 4000 +BPPrice = 20 +Flags = Fling_80 +Description = Raises Speed sharply when a Pokémon misses with a move because of accuracy. +#------------------------------- +[THROATSPRAY] +Name = Throat Spray +NamePlural = Throat Sprays +PortionName = bottle of Throat Spray +PortionNamePlural = bottles of Throat Spray +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_30 +Description = Raises Sp. Atk when a Pokémon uses a sound-based move. +#------------------------------- +[ADRENALINEORB] +Name = Adrenaline Orb +NamePlural = Adrenaline Orbs +Pocket = HeldItems +Price = 300 +BPPrice = 10 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts Speed when intimidated. It can be used only once. +#------------------------------- +[BOOSTERENERGY] +Name = Booster Energy +NamePlural = Booster Energies +PortionName = capsule of Booster Energy +PortionNamePlural = capsules of Booster Energy +Pocket = HeldItems +Price = 0 +Flags = Fling_30 +Description = An item to be held by Pokémon with certain Abilities. Its energy boosts the strength of the Pokémon. +#------------------------------- +[ROOMSERVICE] +Name = Room Service +NamePlural = Room Services +PortionName = voucher for Room Service +PortionNamePlural = vouchers for Room Service +Pocket = HeldItems +Price = 4000 +BPPrice = 15 +Flags = Fling_100 +Description = An item to be held by a Pokémon. Lowers Speed when Trick Room takes effect. +#------------------------------- +[ELECTRICSEED] +Name = Electric Seed +NamePlural = Electric Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Defense on Electric Terrain. It can only be used once. +#------------------------------- +[GRASSYSEED] +Name = Grassy Seed +NamePlural = Grassy Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Defense on Grassy Terrain. It can only be used once. +#------------------------------- +[MISTYSEED] +Name = Misty Seed +NamePlural = Misty Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Sp. Def on Misty Terrain. It can only be used once. +#------------------------------- +[PSYCHICSEED] +Name = Psychic Seed +NamePlural = Psychic Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It boosts Sp. Def on Psychic Terrain. It can only be used once. +#------------------------------- +[LIFEORB] +Name = Life Orb +NamePlural = Life Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It boosts the power of moves, but at the cost of some HP on each hit. +#------------------------------- +[EXPERTBELT] +Name = Expert Belt +NamePlural = Expert Belts +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a well-worn belt that slightly boosts the power of supereffective moves. +#------------------------------- +[METRONOME] +Name = Metronome +NamePlural = Metronomes +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_30 +Description = A Pokémon held item that boosts a move used consecutively. Its effect is reset if another move is used. +#------------------------------- +[PUNCHINGGLOVE] +Name = Punching Glove +NamePlural = Punching Gloves +Pocket = HeldItems +Price = 15000 +SellPrice = 3750 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It powers up the holder's punching moves and prevents direct contact. +#------------------------------- +[MUSCLEBAND] +Name = Muscle Band +NamePlural = Muscle Bands +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a headband that slightly boosts the power of physical moves. +#------------------------------- +[WISEGLASSES] +Name = Wise Glasses +NamePlural = Wise Glasses +PortionName = pair of Wise Glasses +PortionNamePlural = pairs of Wise Glasses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a thick pair of glasses that slightly boosts the power of special moves. +#------------------------------- +[RAZORCLAW] +Name = Razor Claw +NamePlural = Razor Claws +Pocket = HeldItems +Price = 3000 +SellPrice = 2500 +BPPrice = 5 +Flags = Fling_80 +Description = An item to be held by a Pokémon. It is a sharply hooked claw that ups the holder's critical-hit ratio. +#------------------------------- +[SCOPELENS] +Name = Scope Lens +NamePlural = Scope Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a lens that boosts the holder's critical-hit ratio. +#------------------------------- +[WIDELENS] +Name = Wide Lens +NamePlural = Wide Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a magnifying lens that slightly boosts the accuracy of moves. +#------------------------------- +[ZOOMLENS] +Name = Zoom Lens +NamePlural = Zoom Lenses +Pocket = HeldItems +Price = 4000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If the holder moves after its target, its accuracy will be boosted. +#------------------------------- +[KINGSROCK] +Name = King's Rock +NamePlural = King's Rocks +Pocket = HeldItems +Price = 5000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by a Pokémon. When the holder inflicts damage, the target may flinch. +#------------------------------- +[RAZORFANG] +Name = Razor Fang +NamePlural = Razor Fangs +Pocket = HeldItems +Price = 5000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It may make foes and allies flinch when the holder inflicts damage. +#------------------------------- +[LAGGINGTAIL] +Name = Lagging Tail +NamePlural = Lagging Tails +Pocket = HeldItems +Price = 4000 +BPPrice = 25 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is tremendously heavy and makes the holder move slower than usual. +#------------------------------- +[QUICKCLAW] +Name = Quick Claw +NamePlural = Quick Claws +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 25 +Flags = Fling_80 +Description = An item to be held by a Pokémon. A light, sharp claw that lets the bearer move first occasionally. +#------------------------------- +[FOCUSBAND] +Name = Focus Band +NamePlural = Focus Bands +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 48 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The holder may endure a potential KO attack, leaving it with just 1 HP. +#------------------------------- +[FOCUSSASH] +Name = Focus Sash +NamePlural = Focus Sashes +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 15 +Flags = Fling_10 +Description = An item to be held by a Pokémon. If it has full HP, the holder will endure one potential KO attack, leaving 1 HP. +#------------------------------- +[FLAMEORB] +Name = Flame Orb +NamePlural = Flame Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that inflicts a burn on the holder in battle. +#------------------------------- +[TOXICORB] +Name = Toxic Orb +NamePlural = Toxic Orbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a bizarre orb that badly poisons the holder in battle. +#------------------------------- +[STICKYBARB] +Name = Sticky Barb +NamePlural = Sticky Barbs +Pocket = HeldItems +Price = 4000 +BPPrice = 16 +Flags = Fling_80 +Description = A held item that damages the holder on every turn. It may latch on to Pokémon that touch the holder. +#------------------------------- +[IRONBALL] +Name = Iron Ball +NamePlural = Iron Balls +Pocket = HeldItems +Price = 4000 +BPPrice = 10 +Flags = Fling_130 +Description = A Pokémon held item that cuts Speed. It makes Flying-type and levitating holders susceptible to Ground moves. +#------------------------------- +[RINGTARGET] +Name = Ring Target +NamePlural = Ring Targets +Pocket = HeldItems +Price = 3000 +SellPrice = 2000 +BPPrice = 10 +Flags = Fling_10 +Description = Moves that would otherwise have no effect will land on the Pokémon that holds it. +#------------------------------- +[MACHOBRACE] +Name = Macho Brace +NamePlural = Macho Braces +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_60 +Description = An item to be held by a Pokémon. It is a stiff, heavy brace that promotes strong growth but lowers Speed. +#------------------------------- +[POWERWEIGHT] +Name = Power Weight +NamePlural = Power Weights +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes HP gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBRACER] +Name = Power Bracer +NamePlural = Power Bracers +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Attack gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBELT] +Name = Power Belt +NamePlural = Power Belts +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Defense gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERLENS] +Name = Power Lens +NamePlural = Power Lenses +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Atk gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERBAND] +Name = Power Band +NamePlural = Power Bands +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Sp. Def gain on leveling, but reduces the Speed stat. +#------------------------------- +[POWERANKLET] +Name = Power Anklet +NamePlural = Power Anklets +Pocket = HeldItems +Price = 3000 +BPPrice = 10 +Flags = Fling_70 +Description = A Pokémon held item that promotes Speed gain on leveling, but reduces the Speed stat. +#------------------------------- +[LAXINCENSE] +Name = Lax Incense +NamePlural = Lax Incenses +PortionName = jar of Lax Incense +PortionNamePlural = jars of Lax Incense +Pocket = HeldItems +Price = 5000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. The tricky aroma of this incense may make attacks miss the holder. +#------------------------------- +[FULLINCENSE] +Name = Full Incense +NamePlural = Full Incenses +PortionName = jar of Full Incense +PortionNamePlural = jars of Full Incense +Pocket = HeldItems +Price = 5000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense makes the holder bloated and slow moving. +#------------------------------- +[LUCKINCENSE] +Name = Luck Incense +NamePlural = Luck Incenses +PortionName = jar of Luck Incense +PortionNamePlural = jars of Luck Incense +Pocket = HeldItems +Price = 11000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It doubles a battle's prize money if the holding Pokémon joins in. +#------------------------------- +[PUREINCENSE] +Name = Pure Incense +NamePlural = Pure Incenses +PortionName = jar of Pure Incense +PortionNamePlural = jars of Pure Incense +Pocket = HeldItems +Price = 6000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It helps keep wild Pokémon away if the holder is the first one in the party. +#------------------------------- +[SEAINCENSE] +Name = Sea Incense +NamePlural = Sea Incenses +PortionName = jar of Sea Incense +PortionNamePlural = jars of Sea Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[WAVEINCENSE] +Name = Wave Incense +NamePlural = Wave Incenses +PortionName = jar of Wave Incense +PortionNamePlural = jars of Wave Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It has a curious aroma that boosts the power of Water-type moves. +#------------------------------- +[ROSEINCENSE] +Name = Rose Incense +NamePlural = Rose Incenses +PortionName = jar of Rose Incense +PortionNamePlural = jars of Rose Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Grass-type moves. +#------------------------------- +[ODDINCENSE] +Name = Odd Incense +NamePlural = Odd Incenses +PortionName = jar of Odd Incense +PortionNamePlural = jars of Odd Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Psychic-type moves. +#------------------------------- +[ROCKINCENSE] +Name = Rock Incense +NamePlural = Rock Incenses +PortionName = jar of Rock Incense +PortionNamePlural = jars of Rock Incense +Pocket = HeldItems +Price = 2000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This exotic-smelling incense boosts the power of Rock-type moves. +#------------------------------- +[CHARCOAL] +Name = Charcoal +NamePlural = Charcoals +PortionName = piece of Charcoal +PortionNamePlural = pieces of Charcoal +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a combustible fuel that boosts the power of Fire-type moves. +#------------------------------- +[MYSTICWATER] +Name = Mystic Water +NamePlural = Mystic Waters +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a teardrop-shaped gem that ups the power of Water-type moves. +#------------------------------- +[MAGNET] +Name = Magnet +NamePlural = Magnets +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a powerful magnet that boosts the power of Electric-type moves. +#------------------------------- +[MIRACLESEED] +Name = Miracle Seed +NamePlural = Miracle Seeds +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a seed imbued with life that ups the power of Grass-type moves. +#------------------------------- +[NEVERMELTICE] +Name = Never-Melt Ice +NamePlural = Never-Melt Ices +PortionName = piece of Never-Melt Ice +PortionNamePlural = pieces of Never-Melt Ice +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a piece of ice that repels heat and boosts Ice-type moves. +#------------------------------- +[BLACKBELT] +Name = Black Belt +NamePlural = Black Belts +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a belt that boosts determination and Fighting-type moves. +#------------------------------- +[POISONBARB] +Name = Poison Barb +NamePlural = Poison Barbs +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a small, poisonous barb that ups the power of Poison-type moves. +#------------------------------- +[SOFTSAND] +Name = Soft Sand +NamePlural = Soft Sand +PortionName = bag of Soft Sand +PortionNamePlural = bags of Soft Sand +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a loose, silky sand that boosts the power of Ground-type moves. +#------------------------------- +[SHARPBEAK] +Name = Sharp Beak +NamePlural = Sharp Beaks +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_50 +Description = An item to be held by a Pokémon. It is a long, sharp beak that boosts the power of Flying-type moves. +#------------------------------- +[TWISTEDSPOON] +Name = Twisted Spoon +NamePlural = Twisted Spoons +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a spoon imbued with telekinetic power that boosts Psychic-type moves. +#------------------------------- +[SILVERPOWDER] +Name = Silver Powder +NamePlural = Silver Powders +PortionName = pile of Silver Powder +PortionNamePlural = piles of Silver Powder +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a shiny, silver powder that ups the power of Bug-type moves. +#------------------------------- +[HARDSTONE] +Name = Hard Stone +NamePlural = Hard Stones +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_100 +Description = An item to be held by a Pokémon. It is an unbreakable stone that ups the power of Rock-type moves. +#------------------------------- +[SPELLTAG] +Name = Spell Tag +NamePlural = Spell Tags +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a sinister, eerie tag that boosts the power of Ghost-type moves. +#------------------------------- +[DRAGONFANG] +Name = Dragon Fang +NamePlural = Dragon Fangs +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_70 +Description = An item to be held by a Pokémon. It is a hard and sharp fang that ups the power of Dragon-type moves. +#------------------------------- +[BLACKGLASSES] +Name = Black Glasses +NamePlural = Black Glasses +PortionName = pair of Black Glasses +PortionNamePlural = pairs of Black Glasses +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a shady-looking pair of glasses that boosts Dark-type moves. +#------------------------------- +[METALCOAT] +Name = Metal Coat +NamePlural = Metal Coats +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +Flags = Fling_30 +Description = An item to be held by a Pokémon. It is a special metallic film that ups the power of Steel-type moves. +#------------------------------- +[FAIRYFEATHER] +Name = Fairy Feather +NamePlural = Fairy Feathers +Pocket = HeldItems +Price = 3000 +Flags = Fling_10 +Description = An item to be held by a Pokémon. This gleaming feather boosts the power of the holder's Fairy-type moves. +#------------------------------- +[SILKSCARF] +Name = Silk Scarf +NamePlural = Silk Scarves +Pocket = HeldItems +Price = 3000 +SellPrice = 500 +Flags = Fling_10 +Description = An item to be held by a Pokémon. It is a sumptuous scarf that boosts the power of Normal-type moves. +#------------------------------- +[FLAMEPLATE] +Name = Flame Plate +NamePlural = Flame Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fire-type moves. +#------------------------------- +[SPLASHPLATE] +Name = Splash Plate +NamePlural = Splash Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Water-type moves. +#------------------------------- +[ZAPPLATE] +Name = Zap Plate +NamePlural = Zap Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Electric-type moves. +#------------------------------- +[MEADOWPLATE] +Name = Meadow Plate +NamePlural = Meadow Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Grass-type moves. +#------------------------------- +[ICICLEPLATE] +Name = Icicle Plate +NamePlural = Icicle Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ice-type moves. +#------------------------------- +[FISTPLATE] +Name = Fist Plate +NamePlural = Fist Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fighting-type moves. +#------------------------------- +[TOXICPLATE] +Name = Toxic Plate +NamePlural = Toxic Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Poison-type moves. +#------------------------------- +[EARTHPLATE] +Name = Earth Plate +NamePlural = Earth Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ground-type moves. +#------------------------------- +[SKYPLATE] +Name = Sky Plate +NamePlural = Sky Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Flying-type moves. +#------------------------------- +[MINDPLATE] +Name = Mind Plate +NamePlural = Mind Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Psychic-type moves. +#------------------------------- +[INSECTPLATE] +Name = Insect Plate +NamePlural = Insect Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Bug-type moves. +#------------------------------- +[STONEPLATE] +Name = Stone Plate +NamePlural = Stone Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Rock-type moves. +#------------------------------- +[SPOOKYPLATE] +Name = Spooky Plate +NamePlural = Spooky Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Ghost-type moves. +#------------------------------- +[DRACOPLATE] +Name = Draco Plate +NamePlural = Draco Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dragon-type moves. +#------------------------------- +[DREADPLATE] +Name = Dread Plate +NamePlural = Dread Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Dark-type moves. +#------------------------------- +[IRONPLATE] +Name = Iron Plate +NamePlural = Iron Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Steel-type moves. +#------------------------------- +[PIXIEPLATE] +Name = Pixie Plate +NamePlural = Pixie Plates +Pocket = HeldItems +Price = 10000 +SellPrice = 500 +Flags = Fling_90 +Description = An item to be held by a Pokémon. It is a stone tablet that boosts the power of Fairy-type moves. +#------------------------------- +[FIREGEM] +Name = Fire Gem +NamePlural = Fire Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of fire. When held, it strengthens the power of a Fire-type move only once. +#------------------------------- +[WATERGEM] +Name = Water Gem +NamePlural = Water Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of water. When held, it strengthens the power of a Water-type move only once. +#------------------------------- +[ELECTRICGEM] +Name = Electric Gem +NamePlural = Electric Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of electricity. When held, it strengthens the power of an Electric-type move only once. +#------------------------------- +[GRASSGEM] +Name = Grass Gem +NamePlural = Grass Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of nature. When held, it strengthens the power of a Grass-type move only once. +#------------------------------- +[ICEGEM] +Name = Ice Gem +NamePlural = Ice Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of ice. When held, it strengthens the power of an Ice-type move only once. +#------------------------------- +[FIGHTINGGEM] +Name = Fighting Gem +NamePlural = Fighting Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of combat. When held, it strengthens the power of a Fighting-type move only once. +#------------------------------- +[POISONGEM] +Name = Poison Gem +NamePlural = Poison Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of poison. When held, it strengthens the power of a Poison-type move only once. +#------------------------------- +[GROUNDGEM] +Name = Ground Gem +NamePlural = Ground Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of land. When held, it strengthens the power of a Ground-type move only once. +#------------------------------- +[FLYINGGEM] +Name = Flying Gem +NamePlural = Flying Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of air. When held, it strengthens the power of a Flying-type move only once. +#------------------------------- +[PSYCHICGEM] +Name = Psychic Gem +NamePlural = Psychic Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of the mind. When held, it strengthens the power of a Psychic-type move only once. +#------------------------------- +[BUGGEM] +Name = Bug Gem +NamePlural = Bug Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an insect-like essence. When held, it strengthens the power of a Bug-type move only once. +#------------------------------- +[ROCKGEM] +Name = Rock Gem +NamePlural = Rock Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of rock. When held, it strengthens the power of a Rock-type move only once. +#------------------------------- +[GHOSTGEM] +Name = Ghost Gem +NamePlural = Ghost Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with a spectral essence. When held, it strengthens the power of a Ghost-type move only once. +#------------------------------- +[DRAGONGEM] +Name = Dragon Gem +NamePlural = Dragon Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with a draconic essence. When held, it strengthens the power of a Dragon-type move only once. +#------------------------------- +[DARKGEM] +Name = Dark Gem +NamePlural = Dark Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of darkness. When held, it strengthens the power of a Dark-type move only once. +#------------------------------- +[STEELGEM] +Name = Steel Gem +NamePlural = Steel Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of steel. When held, it strengthens the power of a Steel-type move only once. +#------------------------------- +[FAIRYGEM] +Name = Fairy Gem +NamePlural = Fairy Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an essence of the fey. When held, it strengthens the power of a Fairy-type move only once. +#------------------------------- +[NORMALGEM] +Name = Normal Gem +NamePlural = Normal Gems +Pocket = HeldItems +Price = 4000 +Flags = TypeGem +Description = A gem with an ordinary essence. When held, it strengthens the power of a Normal-type move only once. +#------------------------------- +[LIGHTBALL] +Name = Light Ball +NamePlural = Light Balls +Pocket = HeldItems +Price = 1000 +Flags = Fling_30 +Description = An item to be held by Pikachu. It is a puzzling orb that raises the Attack and Sp. Atk stat. +#------------------------------- +[LUCKYPUNCH] +Name = Lucky Punch +NamePlural = Lucky Punches +Pocket = HeldItems +Price = 1000 +BPPrice = 7 +Flags = Fling_40 +Description = An item to be held by Chansey. It is a pair of gloves that boosts Chansey's critical-hit ratio. +#------------------------------- +[METALPOWDER] +Name = Metal Powder +NamePlural = Metal Powders +PortionName = bag of Metal Powder +PortionNamePlural = bags of Metal Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Defense stat. +#------------------------------- +[QUICKPOWDER] +Name = Quick Powder +NamePlural = Quick Powders +PortionName = bag of Quick Powder +PortionNamePlural = bags of Quick Powder +Pocket = HeldItems +Price = 1000 +Flags = Fling_10 +Description = An item to be held by Ditto. Extremely fine yet hard, this odd powder boosts the Speed stat. +#------------------------------- +[THICKCLUB] +Name = Thick Club +NamePlural = Thick Clubs +Pocket = HeldItems +Price = 1000 +Flags = Fling_90 +Description = An item to be held by Cubone or Marowak. It is a hard bone of some sort that boosts the Attack stat. +#------------------------------- +[LEEK] +Name = Leek +NamePlural = Leeks +Pocket = HeldItems +Price = 1000 +Flags = Fling_60 +Description = An item to be held by Farfetch'd. It is a very long and stiff stalk of leek that boosts the critical-hit ratio. +#------------------------------- +[SOULDEW] +Name = Soul Dew +NamePlural = Soul Dews +Pocket = HeldItems +Price = 0 +Flags = Fling_30 +Description = A wondrous orb to be held by either Latios or Latias. It raises the power of Psychic- and Dragon-type moves. +#------------------------------- +[DEEPSEATOOTH] +Name = Deep Sea Tooth +NamePlural = Deep Sea Teeth +Pocket = HeldItems +Price = 2000 +BPPrice = 5 +Flags = Fling_90 +Description = An item to be held by Clamperl. A fang that gleams a sharp silver, it raises the Sp. Atk stat. +#------------------------------- +[DEEPSEASCALE] +Name = Deep Sea Scale +NamePlural = Deep Sea Scales +Pocket = HeldItems +Price = 2000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by Clamperl. A scale that shines a faint pink, it raises the Sp. Def stat. +#------------------------------- +[ADAMANTORB] +Name = Adamant Orb +NamePlural = Adamant Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +Flags = Fling_60 +Description = A brightly gleaming orb to be held by Dialga. It boosts the power of Dragon- and Steel-type moves. +#------------------------------- +[LUSTROUSORB] +Name = Lustrous Orb +NamePlural = Lustrous Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +Flags = Fling_60 +Description = A beautifully glowing orb to be held by Palkia. It boosts the power of Dragon- and Water-type moves. +#------------------------------- +[GRISEOUSORB] +Name = Griseous Orb +NamePlural = Griseous Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +Flags = Fling_60 +Description = A glowing orb to be held by Giratina. It boosts the power of Dragon- and Ghost-type moves. +#------------------------------- +[ADAMANTCRYSTAL] +Name = Adamant Crystal +NamePlural = Adamant Crystals +Pocket = HeldItems +Price = 4000 +SellPrice = 0 +Flags = Fling_60 +Description = A large, glowing gem to be held by Dialga. It wells with power and allows the Pokémon to change form. +#------------------------------- +[LUSTROUSGLOBE] +Name = Lustrous Globe +NamePlural = Lustrous Globes +Pocket = HeldItems +Price = 4000 +SellPrice = 0 +Flags = Fling_60 +Description = A large, glowing orb to be held by Palkia. It wells with power and allows the Pokémon to change form. +#------------------------------- +[GRISEOUSCORE] +Name = Griseous Core +NamePlural = Griseous Cores +Pocket = HeldItems +Price = 4000 +SellPrice = 0 +Flags = Fling_60 +Description = A large, glowing gem to be held by Giratina. It wells with power and allows the Pokémon to change form. +#------------------------------- +[RUSTEDSWORD] +Name = Rusted Sword +NamePlural = Rusted Swords +Pocket = HeldItems +Price = 0 +Description = It is said that a hero used this sword to halt a disaster in ancient times. But it's grown rusty and worn. +#------------------------------- +[RUSTEDSHIELD] +Name = Rusted Shield +NamePlural = Rusted Shields +Pocket = HeldItems +Price = 0 +Description = It is said that a hero used this shield to halt a disaster in ancient times. But it's grown rusty and worn. +#------------------------------- +[WELLSPRINGMASK] +Name = Wellspring Mask +NamePlural = Wellspring Masks +Pocket = HeldItems +Flags = Fling_60 +Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Water type in battle. +#------------------------------- +[HEARTHFLAMEMASK] +Name = Hearthflame Mask +NamePlural = Hearthflame Masks +Pocket = HeldItems +Price = 0 +Flags = Fling_60 +Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Fire type in battle. +#------------------------------- +[CORNERSTONEMASK] +Name = Cornerstone Mask +NamePlural = Cornerstone Masks +Pocket = HeldItems +Price = 0 +Flags = Fling_60 +Description = An item to be held by Ogerpon. This carved wooden mask allows Ogerpon to wield the Rock type in battle. +#------------------------------- +[DOUSEDRIVE] +Name = Douse Drive +NamePlural = Douse Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Water-type move. +#------------------------------- +[SHOCKDRIVE] +Name = Shock Drive +NamePlural = Shock Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Electric-type move. +#------------------------------- +[BURNDRIVE] +Name = Burn Drive +NamePlural = Burn Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to a Fire-type move. +#------------------------------- +[CHILLDRIVE] +Name = Chill Drive +NamePlural = Chill Drives +Pocket = HeldItems +Price = 0 +Flags = Fling_70 +Description = A cassette to be held by Genesect. It changes Techno Blast to an Ice-type move. +#------------------------------- +[FIREMEMORY] +Name = Fire Memory +NamePlural = Fire Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fire-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[WATERMEMORY] +Name = Water Memory +NamePlural = Water Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Water-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ELECTRICMEMORY] +Name = Electric Memory +NamePlural = Electric Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Electric-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GRASSMEMORY] +Name = Grass Memory +NamePlural = Grass Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Grass-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ICEMEMORY] +Name = Ice Memory +NamePlural = Ice Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ice-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FIGHTINGMEMORY] +Name = Fighting Memory +NamePlural = Fighting Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fighting-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[POISONMEMORY] +Name = Poison Memory +NamePlural = Poison Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Poison-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GROUNDMEMORY] +Name = Ground Memory +NamePlural = Ground Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ground-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FLYINGMEMORY] +Name = Flying Memory +NamePlural = Flying Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Flying-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[PSYCHICMEMORY] +Name = Psychic Memory +NamePlural = Psychic Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Psychic-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[BUGMEMORY] +Name = Bug Memory +NamePlural = Bug Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Bug-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[ROCKMEMORY] +Name = Rock Memory +NamePlural = Rock Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Rock-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[GHOSTMEMORY] +Name = Ghost Memory +NamePlural = Ghost Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Ghost-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[DRAGONMEMORY] +Name = Dragon Memory +NamePlural = Dragon Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Dragon-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[DARKMEMORY] +Name = Dark Memory +NamePlural = Dark Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Dark-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[STEELMEMORY] +Name = Steel Memory +NamePlural = Steel Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Steel-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[FAIRYMEMORY] +Name = Fairy Memory +NamePlural = Fairy Memories +Pocket = HeldItems +Price = 1000 +Flags = Fling_50 +Description = A memory disc containing Fairy-type data. It changes the holder's type if held by a certain Pokémon. +#------------------------------- +[EVERSTONE] +Name = Everstone +NamePlural = Everstones +Pocket = HeldItems +Price = 3000 +BPPrice = 5 +Flags = Fling_30 +Description = An item to be held by a Pokémon. The Pokémon holding this peculiar stone is prevented from evolving. +#------------------------------- +[DRAGONSCALE] +Name = Dragon Scale +NamePlural = Dragon Scales +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_30 +Description = A thick and tough scale. Dragon-type Pokémon may be holding this item when caught. +#------------------------------- +[UPGRADE] +Name = Upgrade +NamePlural = Upgrades +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_30 +Description = A transparent device filled with all sorts of data. It was produced by Silph Co. +#------------------------------- +[DUBIOUSDISC] +Name = Dubious Disc +NamePlural = Dubious Discs +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_50 +Description = A transparent device overflowing with dubious data. Its producer is unknown. +#------------------------------- +[PROTECTOR] +Name = Protector +NamePlural = Protectors +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A protective item of some sort. It is extremely stiff and heavy. It is loved by a certain Pokémon. +#------------------------------- +[ELECTIRIZER] +Name = Electirizer +NamePlural = Electirizers +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A box packed with a tremendous amount of electric energy. It is loved by a certain Pokémon. +#------------------------------- +[MAGMARIZER] +Name = Magmarizer +NamePlural = Magmarizers +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A box packed with a tremendous amount of magma energy. It is loved by a certain Pokémon. +#------------------------------- +[REAPERCLOTH] +Name = Reaper Cloth +NamePlural = Reaper Cloths +PortionName = scrap of Reaper Cloth +PortionNamePlural = scraps of Reaper Cloth +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_10 +Description = A cloth imbued with horrifyingly strong spiritual energy. It is loved by a certain Pokémon. +#------------------------------- +[PRISMSCALE] +Name = Prism Scale +NamePlural = Prism Scales +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 10 +Flags = Fling_30 +Description = A mysterious scale that evolves certain Pokémon. It shines in rainbow colors. +#------------------------------- +[OVALSTONE] +Name = Oval Stone +NamePlural = Oval Stones +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A peculiar stone that makes certain species of Pokémon evolve. It is shaped like an egg. +#------------------------------- +[WHIPPEDDREAM] +Name = Whipped Dream +NamePlural = Whipped Dreams +PortionName = dollop of Whipped Dream +PortionNamePlural = dollops of Whipped Dream +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A soft and sweet treat made of fluffy, puffy and whirled cream. It's loved by a certain Pokémon. +#------------------------------- +[SACHET] +Name = Sachet +NamePlural = Sachets +Pocket = HeldItems +Price = 3000 +SellPrice = 1000 +BPPrice = 5 +Flags = Fling_80 +Description = A sachet filled with slightly overwhelming fragrant perfumes. Yet it's loved by a certain Pokémon. +#------------------------------- +[STRAWBERRYSWEET] +Name = Strawberry Sweet +NamePlural = Strawberry Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A strawberry-shaped sweet. When a Milcery holds this, it will spin around happily. +#------------------------------- +[LOVESWEET] +Name = Love Sweet +NamePlural = Love Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A heart-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[BERRYSWEET] +Name = Berry Sweet +NamePlural = Berry Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A berry-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[CLOVERSWEET] +Name = Clover Sweet +NamePlural = Clover Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A clover-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[FLOWERSWEET] +Name = Flower Sweet +NamePlural = Flower Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A flower-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[STARSWEET] +Name = Star Sweet +NamePlural = Star Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A star-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[RIBBONSWEET] +Name = Ribbon Sweet +NamePlural = Ribbon Sweets +Pocket = HeldItems +Price = 500 +BPPrice = 5 +Flags = Fling_10 +Description = A ribbon-shaped sweet. When a Milcery holds this, it spins around happily. +#------------------------------- +[VENUSAURITE] +Name = Venusaurite +NamePlural = Venusaurites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Venusaur hold it, and it will be able to Mega Evolve. +#------------------------------- +[CHARIZARDITEX] +Name = Charizardite X +NamePlural = Charizardite Xs +Pocket = MegaStones +Price = 0 +BPPrice = 50 +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. +#------------------------------- +[CHARIZARDITEY] +Name = Charizardite Y +NamePlural = Charizardite Ys +Pocket = MegaStones +Price = 0 +BPPrice = 50 +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. +#------------------------------- +[BLASTOISINITE] +Name = Blastoisinite +NamePlural = Blastoisinites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Blastoise hold it, and it will be able to Mega Evolve. +#------------------------------- +[BEEDRILLITE] +Name = Beedrillite +NamePlural = Beedrillites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Beedrill hold it, and it will be able to Mega Evolve. +#------------------------------- +[PIDGEOTITE] +Name = Pidgeotite +NamePlural = Pidgeotites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Pidgeot hold it, and it will be able to Mega Evolve. +#------------------------------- +[ALAKAZITE] +Name = Alakazite +NamePlural = Alakazites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Alakazam hold it, and it will be able to Mega Evolve. +#------------------------------- +[SLOWBRONITE] +Name = Slowbronite +NamePlural = Slowbronites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Slowbro hold it, and it will be able to Mega Evolve. +#------------------------------- +[GENGARITE] +Name = Gengarite +NamePlural = Gengarites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gengar hold it, and it will be able to Mega Evolve. +#------------------------------- +[KANGASKHANITE] +Name = Kangaskhanite +NamePlural = Kangaskhanites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Kangaskhan hold it, and it will be able to Mega Evolve. +#------------------------------- +[PINSIRITE] +Name = Pinsirite +NamePlural = Pinsirites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Pinsir hold it, and it will be able to Mega Evolve. +#------------------------------- +[GYARADOSITE] +Name = Gyaradosite +NamePlural = Gyaradosites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gyarados hold it, and it will be able to Mega Evolve. +#------------------------------- +[AERODACTYLITE] +Name = Aerodactylite +NamePlural = Aerodactylites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Aerodactyl hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEWTWONITEX] +Name = Mewtwonite X +NamePlural = Mewtwonite Xs +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEWTWONITEY] +Name = Mewtwonite Y +NamePlural = Mewtwonite Ys +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mewtwo hold it, and it will be able to Mega Evolve. +#------------------------------- +[AMPHAROSITE] +Name = Ampharosite +NamePlural = Ampharosites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Ampharos hold it, and it will be able to Mega Evolve. +#------------------------------- +[STEELIXITE] +Name = Steelixite +NamePlural = Steelixites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Steelix hold it, and it will be able to Mega Evolve. +#------------------------------- +[SCIZORITE] +Name = Scizorite +NamePlural = Scizorites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Scizor hold it, and it will be able to Mega Evolve. +#------------------------------- +[HERACRONITE] +Name = Heracronite +NamePlural = Heracronites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Heracross hold it, and it will be able to Mega Evolve. +#------------------------------- +[HOUNDOOMINITE] +Name = Houndoominite +NamePlural = Houndoominites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Houndoom hold it, and it will be able to Mega Evolve. +#------------------------------- +[TYRANITARITE] +Name = Tyranitarite +NamePlural = Tyranitarites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Tyranitar hold it, and it will be able to Mega Evolve. +#------------------------------- +[SCEPTILITE] +Name = Sceptilite +NamePlural = Sceptilites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sceptile hold it, and it will be able to Mega Evolve. +#------------------------------- +[BLAZIKENITE] +Name = Blazikenite +NamePlural = Blazikenites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Blaziken hold it, and it will be able to Mega Evolve. +#------------------------------- +[SWAMPERTITE] +Name = Swampertite +NamePlural = Swampertites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Swampert hold it, and it will be able to Mega Evolve. +#------------------------------- +[GARDEVOIRITE] +Name = Gardevoirite +NamePlural = Gardevoirites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gardevoir hold it, and it will be able to Mega Evolve. +#------------------------------- +[SABLENITE] +Name = Sablenite +NamePlural = Sablenites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sableye hold it, and it will be able to Mega Evolve. +#------------------------------- +[MAWILITE] +Name = Mawilite +NamePlural = Mawilites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Mawile hold it, and it will be able to Mega Evolve. +#------------------------------- +[AGGRONITE] +Name = Aggronite +NamePlural = Aggronites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Aggron hold it, and it will be able to Mega Evolve. +#------------------------------- +[MEDICHAMITE] +Name = Medichamite +NamePlural = Medichamites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Medicham hold it, and it will be able to Mega Evolve. +#------------------------------- +[MANECTITE] +Name = Manectite +NamePlural = Manectites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Manectric hold it, and it will be able to Mega Evolve. +#------------------------------- +[SHARPEDONITE] +Name = Sharpedonite +NamePlural = Sharpedonites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Sharpedo hold it, and it will be able to Mega Evolve. +#------------------------------- +[CAMERUPTITE] +Name = Cameruptite +NamePlural = Cameruptites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Camerupt hold it, and it will be able to Mega Evolve. +#------------------------------- +[ALTARIANITE] +Name = Altarianite +NamePlural = Altarianites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Altaria hold it, and it will be able to Mega Evolve. +#------------------------------- +[BANETTITE] +Name = Banettite +NamePlural = Banettites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Banette hold it, and it will be able to Mega Evolve. +#------------------------------- +[ABSOLITE] +Name = Absolite +NamePlural = Absolites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Absol hold it, and it will be able to Mega Evolve. +#------------------------------- +[GLALITITE] +Name = Glalitite +NamePlural = Glalitites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Glalie hold it, and it will be able to Mega Evolve. +#------------------------------- +[SALAMENCITE] +Name = Salamencite +NamePlural = Salamencites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Salamence hold it, and it will be able to Mega Evolve. +#------------------------------- +[METAGROSSITE] +Name = Metagrossite +NamePlural = Metagrossites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Metagross hold it, and it will be able to Mega Evolve. +#------------------------------- +[LATIASITE] +Name = Latiasite +NamePlural = Latiasites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Latias hold it, and it will be able to Mega Evolve. +#------------------------------- +[LATIOSITE] +Name = Latiosite +NamePlural = Latiosites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Latios hold it, and it will be able to Mega Evolve. +#------------------------------- +[LOPUNNITE] +Name = Lopunnite +NamePlural = Lopunnites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Lopunny hold it, and it will be able to Mega Evolve. +#------------------------------- +[GARCHOMPITE] +Name = Garchompite +NamePlural = Garchompites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Garchomp hold it, and it will be able to Mega Evolve. +#------------------------------- +[LUCARIONITE] +Name = Lucarionite +NamePlural = Lucarionites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Lucario hold it, and it will be able to Mega Evolve. +#------------------------------- +[ABOMASITE] +Name = Abomasite +NamePlural = Abomasites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Abomasnow hold it, and it will be able to Mega Evolve. +#------------------------------- +[GALLADITE] +Name = Galladite +NamePlural = Galladites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Gallade hold it, and it will be able to Mega Evolve. +#------------------------------- +[AUDINITE] +Name = Audinite +NamePlural = Audinites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Audino hold it, and it will be able to Mega Evolve. +#------------------------------- +[DIANCITE] +Name = Diancite +NamePlural = Diancites +Pocket = MegaStones +Price = 0 +BPPrice = 50 +Flags = MegaStone,Fling_80 +Description = One of a variety of mysterious Mega Stones. Have Diancie hold it, and it will be able to Mega Evolve. +#------------------------------- +[REDORB] +Name = Red Orb +NamePlural = Red Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +BPPrice = 50 +Description = A shiny red orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. +#------------------------------- +[BLUEORB] +Name = Blue Orb +NamePlural = Blue Orbs +Pocket = HeldItems +Price = 10000 +SellPrice = 0 +BPPrice = 50 +Description = A shiny blue orb that is said to have a legend tied to it. It's known to be connected with the Hoenn region. #------------------------------- [XATTACK] Name = X Attack NamePlural = X Attacks -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6172,7 +5018,7 @@ Description = An item that sharply boosts the Attack stat of a Pokémon while it [XATTACK2] Name = X Attack 2 NamePlural = X Attack 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6181,7 +5027,7 @@ Description = It sharply raises the Attack stat of a Pokémon in battle. It wear [XATTACK3] Name = X Attack 3 NamePlural = X Attack 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6190,7 +5036,7 @@ Description = It drastically raises the Attack stat of a Pokémon in battle. It [XATTACK6] Name = X Attack 6 NamePlural = X Attack 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6199,7 +5045,7 @@ Description = It raises the Attack stat of a Pokémon in battle immensely. It we [XDEFENSE] Name = X Defense NamePlural = X Defenses -Pocket = 7 +Pocket = BattleItems Price = 2000 BattleUse = OnBattler Flags = Fling_30 @@ -6208,7 +5054,7 @@ Description = An item that sharply boosts the Defense of a Pokémon while it rem [XDEFENSE2] Name = X Defense 2 NamePlural = X Defense 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6217,7 +5063,7 @@ Description = It sharply raises the Defense stat of a Pokémon in battle. It wea [XDEFENSE3] Name = X Defense 3 NamePlural = X Defense 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6226,7 +5072,7 @@ Description = It drastically raises the Defense stat of a Pokémon in battle. It [XDEFENSE6] Name = X Defense 6 NamePlural = X Defense 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6235,7 +5081,7 @@ Description = It raises the Defense stat of a Pokémon in battle immensely. It w [XSPATK] Name = X Sp. Atk NamePlural = X Sp. Atks -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6244,7 +5090,7 @@ Description = An item that sharply boosts the Sp. Atk stat of a Pokémon while i [XSPATK2] Name = X Sp. Atk 2 NamePlural = X Sp. Atk 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6253,7 +5099,7 @@ Description = It sharply raises the Sp. Atk stat of a Pokémon in battle. It wea [XSPATK3] Name = X Sp. Atk 3 NamePlural = X Sp. Atk 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6262,7 +5108,7 @@ Description = It drastically raises the Sp. Atk stat of a Pokémon in battle. It [XSPATK6] Name = X Sp. Atk 6 NamePlural = X Sp. Atk 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6271,7 +5117,7 @@ Description = It raises the Sp. Atk stat of a Pokémon in battle immensely. It w [XSPDEF] Name = X Sp. Def NamePlural = X Sp. Defs -Pocket = 7 +Pocket = BattleItems Price = 2000 BattleUse = OnBattler Flags = Fling_30 @@ -6280,7 +5126,7 @@ Description = An item that sharply boosts the Sp. Def stat of a Pokémon while i [XSPDEF2] Name = X Sp. Def 2 NamePlural = X Sp. Def 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6289,7 +5135,7 @@ Description = It sharply raises the Sp. Def stat of a Pokémon in battle. It wea [XSPDEF3] Name = X Sp. Def 3 NamePlural = X Sp. Def 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6298,7 +5144,7 @@ Description = It drastically raises the Sp. Def stat of a Pokémon in battle. It [XSPDEF6] Name = X Sp. Def 6 NamePlural = X Sp. Def 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6307,7 +5153,7 @@ Description = It raises the Sp. Def stat of a Pokémon in battle immensely. It w [XSPEED] Name = X Speed NamePlural = X Speeds -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6316,7 +5162,7 @@ Description = An item that sharply boosts the Speed stat of a Pokémon while it [XSPEED2] Name = X Speed 2 NamePlural = X Speed 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6325,7 +5171,7 @@ Description = It sharply raises the Speed stat of a Pokémon in battle. It wears [XSPEED3] Name = X Speed 3 NamePlural = X Speed 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6334,7 +5180,7 @@ Description = It drastically raises the Speed stat of a Pokémon in battle. It w [XSPEED6] Name = X Speed 6 NamePlural = X Speed 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6343,7 +5189,7 @@ Description = It raises the Speed stat of a Pokémon in battle immensely. It wea [XACCURACY] Name = X Accuracy NamePlural = X Accuracies -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6352,7 +5198,7 @@ Description = An item that sharply boosts the accuracy of a Pokémon while it re [XACCURACY2] Name = X Accuracy 2 NamePlural = X Accuracy 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6361,7 +5207,7 @@ Description = It sharply raises the accuracy of a Pokémon in battle. It wears o [XACCURACY3] Name = X Accuracy 3 NamePlural = X Accuracy 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6370,7 +5216,7 @@ Description = It drastically raises the accuracy of a Pokémon in battle. It wea [XACCURACY6] Name = X Accuracy 6 NamePlural = X Accuracy 6s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6381,7 +5227,7 @@ Name = Max Mushrooms NamePlural = Max Mushrooms PortionName = cluster of Max Mushrooms PortionNamePlural = clusters of Max Mushrooms -Pocket = 7 +Pocket = BattleItems Price = 8000 BattleUse = OnBattler Flags = Fling_30 @@ -6390,7 +5236,7 @@ Description = Mushrooms that boost all stats of a Pokémon during battle. [DIREHIT] Name = Dire Hit NamePlural = Dire Hits -Pocket = 7 +Pocket = BattleItems Price = 1000 BattleUse = OnBattler Flags = Fling_30 @@ -6399,7 +5245,7 @@ Description = An item that raises the critical-hit ratio greatly. It wears off i [DIREHIT2] Name = Dire Hit 2 NamePlural = Dire Hit 2s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6408,7 +5254,7 @@ Description = It sharply raises the critical-hit ratio. It wears off if the Pok [DIREHIT3] Name = Dire Hit 3 NamePlural = Dire Hit 3s -Pocket = 7 +Pocket = BattleItems Price = 0 BattleUse = OnBattler Flags = Fling_30 @@ -6417,7 +5263,7 @@ Description = It greatly raises the critical-hit ratio. It wears off if the Pok [GUARDSPEC] Name = Guard Spec. NamePlural = Guard Specs. -Pocket = 7 +Pocket = BattleItems Price = 1500 BattleUse = Direct Flags = Fling_30 @@ -6426,7 +5272,7 @@ Description = An item that prevents stat reduction among the Trainer's party Pok [RESETURGE] Name = Reset Urge NamePlural = Reset Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it restores any stat changes of an ally Pokémon. @@ -6434,7 +5280,7 @@ Description = When used, it restores any stat changes of an ally Pokémon. [ABILITYURGE] Name = Ability Urge NamePlural = Ability Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it activates the Ability of an ally Pokémon. @@ -6442,7 +5288,7 @@ Description = When used, it activates the Ability of an ally Pokémon. [ITEMURGE] Name = Item Urge NamePlural = Item Urges -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it causes an ally Pokémon to use its held item. @@ -6450,7 +5296,7 @@ Description = When used, it causes an ally Pokémon to use its held item. [ITEMDROP] Name = Item Drop NamePlural = Item Drops -Pocket = 7 +Pocket = BattleItems Price = 0 Flags = Fling_30 Description = When used, it causes an ally Pokémon to drop a held item. @@ -6458,7 +5304,7 @@ Description = When used, it causes an ally Pokémon to drop a held item. [BLUEFLUTE] Name = Blue Flute NamePlural = Blue Flutes -Pocket = 7 +Pocket = BattleItems Price = 20 FieldUse = OnPokemon BattleUse = OnPokemon @@ -6469,7 +5315,7 @@ Description = A blue flute made from blown glass. Its melody awakens a single Po [YELLOWFLUTE] Name = Yellow Flute NamePlural = Yellow Flutes -Pocket = 7 +Pocket = BattleItems Price = 20 BattleUse = OnBattler Flags = Fling_30 @@ -6479,7 +5325,7 @@ Description = A yellow flute made from blown glass. Its melody snaps a single Po [REDFLUTE] Name = Red Flute NamePlural = Red Flutes -Pocket = 7 +Pocket = BattleItems Price = 20 BattleUse = OnBattler Flags = Fling_30 @@ -6489,7 +5335,7 @@ Description = A red flute made from blown glass. Its melody snaps a single Poké [POKEDOLL] Name = Poké Doll NamePlural = Poké Dolls -Pocket = 7 +Pocket = BattleItems Price = 300 BattleUse = Direct Flags = Fling_30 @@ -6498,7 +5344,7 @@ Description = A doll that attracts Pokémon. Use it to flee from any battle with [FLUFFYTAIL] Name = Fluffy Tail NamePlural = Fluffy Tails -Pocket = 7 +Pocket = BattleItems Price = 300 BattleUse = Direct Flags = Fling_30 @@ -6507,16 +5353,1170 @@ Description = An item that attracts Pokémon. Use it to flee from any battle wit [POKETOY] Name = Poké Toy NamePlural = Poké Toys -Pocket = 7 +Pocket = BattleItems Price = 300 BattleUse = Direct Flags = Fling_30 Description = An item that attracts Pokémon. Use it to flee from any battle with a wild Pokémon. #------------------------------- +[TM01] +Name = TM01 +NamePlural = TM01s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_150 +Move = FOCUSPUNCH +Description = The user focuses its mind before launching a punch. This move fails if the user is hit before it is used. +#------------------------------- +[TM02] +Name = TM02 +NamePlural = TM02s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DRAGONCLAW +Description = The user slashes the target with huge sharp claws. +#------------------------------- +[TM03] +Name = TM03 +NamePlural = TM03s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = WATERPULSE +Description = The user attacks the target with a pulsing blast of water. This may also confuse the target. +#------------------------------- +[TM04] +Name = TM04 +NamePlural = TM04s +Pocket = Machines +Price = 1500 +BPPrice = 48 +FieldUse = TR +Flags = Fling_10 +Move = CALMMIND +Description = The user quietly focuses its mind and calms its spirit to raise its Sp. Atk and Sp. Def stats. +#------------------------------- +[TM05] +Name = TM05 +NamePlural = TM05s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ROAR +Description = The target is scared off, and a different Pokémon is dragged out. In the wild, this ends the battle. +#------------------------------- +[TM06] +Name = TM06 +NamePlural = TM06s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TOXIC +Description = A move that leaves the target badly poisoned. Its poison damage worsens every turn. +#------------------------------- +[TM07] +Name = TM07 +NamePlural = TM07s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = HAIL +Description = The user summons a hailstorm lasting five turns. It damages all Pokémon except Ice types. +#------------------------------- +[TM08] +Name = TM08 +NamePlural = TM08s +Pocket = Machines +Price = 1500 +BPPrice = 48 +FieldUse = TR +Flags = Fling_10 +Move = BULKUP +Description = The user tenses its muscles to bulk up its body, raising both its Attack and Defense stats. +#------------------------------- +[TM09] +Name = TM09 +NamePlural = TM09s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_25 +Move = BULLETSEED +Description = The user forcefully shoots seeds at the target two to five times in a row. +#------------------------------- +[TM10] +Name = TM10 +NamePlural = TM10s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = WORKUP +Description = The user is roused, and its Attack and Sp. Atk stats increase. +#------------------------------- +[TM11] +Name = TM11 +NamePlural = TM11s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SUNNYDAY +Description = The user intensifies the sun for five turns, powering up Fire-type moves and weakening Water-type moves. +#------------------------------- +[TM12] +Name = TM12 +NamePlural = TM12s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TAUNT +Description = The target is taunted into a rage that allows it to use only attack moves for three turns. +#------------------------------- +[TM13] +Name = TM13 +NamePlural = TM13s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = ICEBEAM +Description = The target is struck with an icy-cold beam of energy. This may also leave the target frozen. +#------------------------------- +[TM14] +Name = TM14 +NamePlural = TM14s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_110 +Move = BLIZZARD +Description = A howling blizzard is summoned to strike opposing Pokémon. This may also leave them frozen. +#------------------------------- +[TM15] +Name = TM15 +NamePlural = TM15s +Pocket = Machines +Price = 7500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_150 +Move = HYPERBEAM +Description = The target is attacked with a powerful beam. The user can't move on the next turn. +#------------------------------- +[TM16] +Name = TM16 +NamePlural = TM16s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = LIGHTSCREEN +Description = A wondrous wall of light is put up to reduce damage from special attacks for five turns. +#------------------------------- +[TM17] +Name = TM17 +NamePlural = TM17s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = PROTECT +Description = The user protects itself from all attacks. Its chance of failing rises if it is used in succession. +#------------------------------- +[TM18] +Name = TM18 +NamePlural = TM18s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = RAINDANCE +Description = The user summons a heavy rain for five turns, powering up Water-type moves and weakening Fire-type ones. +#------------------------------- +[TM19] +Name = TM19 +NamePlural = TM19s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_75 +Move = GIGADRAIN +Description = A nutrient-draining attack. The user's HP is restored by half the damage taken by the target. +#------------------------------- +[TM20] +Name = TM20 +NamePlural = TM20s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SAFEGUARD +Description = The user creates a protective field that prevents status conditions for five turns. +#------------------------------- +[TM21] +Name = TM21 +NamePlural = TM21s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DAZZLINGGLEAM +Description = The user damages opposing Pokémon by emitting a powerful flash. +#------------------------------- +[TM22] +Name = TM22 +NamePlural = TM22s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_120 +Move = SOLARBEAM +Description = In this two-turn attack, the user gathers light, then blasts a bundled beam on the next turn. +#------------------------------- +[TM23] +Name = TM23 +NamePlural = TM23s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_100 +Move = IRONTAIL +Description = The target is slammed with a steel-hard tail. This may also lower the target's Defense stat. +#------------------------------- +[TM24] +Name = TM24 +NamePlural = TM24s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = THUNDERBOLT +Description = A strong electric blast crashes down on the target. This may also leave the target with paralysis. +#------------------------------- +[TM25] +Name = TM25 +NamePlural = TM25s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_110 +Move = THUNDER +Description = A wicked thunderbolt is dropped on the target to inflict damage. This may also leave them with paralysis. +#------------------------------- +[TM26] +Name = TM26 +NamePlural = TM26s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_100 +Move = EARTHQUAKE +Description = The user sets off an earthquake that strikes every Pokémon around it. +#------------------------------- +[TM27] +Name = TM27 +NamePlural = TM27s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_65 +Move = LOWSWEEP +Description = The user makes a swift attack on the target's legs, which lowers the target's Speed stat. +#------------------------------- +[TM28] +Name = TM28 +NamePlural = TM28s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DIG +Description = The user burrows into the ground, then attacks on the next turn. It can also be used to exit dungeons. +#------------------------------- +[TM29] +Name = TM29 +NamePlural = TM29s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = PSYCHIC +Description = The target is hit by a strong telekinetic force. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM30] +Name = TM30 +NamePlural = TM30s +Pocket = Machines +Price = 3000 +BPPrice = 64 +FieldUse = TR +Flags = Fling_80 +Move = SHADOWBALL +Description = The user hurls a shadowy blob at the target. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM31] +Name = TM31 +NamePlural = TM31s +Pocket = Machines +Price = 3000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_75 +Move = BRICKBREAK +Description = The user attacks with a swift chop. It can also break barriers, such as Light Screen and Reflect. +#------------------------------- +[TM32] +Name = TM32 +NamePlural = TM32s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = DOUBLETEAM +Description = By moving rapidly, the user makes illusory copies of itself to raise its evasiveness. +#------------------------------- +[TM33] +Name = TM33 +NamePlural = TM33s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = REFLECT +Description = A wondrous wall of light is put up to reduce damage from physical attacks for five turns. +#------------------------------- +[TM34] +Name = TM34 +NamePlural = TM34s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = SHOCKWAVE +Description = The user strikes the target with a quick jolt of electricity. This attack never misses. +#------------------------------- +[TM35] +Name = TM35 +NamePlural = TM35s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = FLAMETHROWER +Description = The target is scorched with an intense blast of fire. This may also leave the target with a burn. +#------------------------------- +[TM36] +Name = TM36 +NamePlural = TM36s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_90 +Move = SLUDGEBOMB +Description = Unsanitary sludge is hurled at the target. This may also poison the target. +#------------------------------- +[TM37] +Name = TM37 +NamePlural = TM37s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SANDSTORM +Description = A five-turn sandstorm is summoned to hurt all combatants except Rock, Ground, and Steel types. +#------------------------------- +[TM38] +Name = TM38 +NamePlural = TM38s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_110 +Move = FIREBLAST +Description = The target is attacked with an intense blast of all-consuming fire. This may also leave them with a burn. +#------------------------------- +[TM39] +Name = TM39 +NamePlural = TM39s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = ROCKTOMB +Description = Boulders are hurled at the target. This also lowers the target's Speed stat by preventing its movement. +#------------------------------- +[TM40] +Name = TM40 +NamePlural = TM40s +Pocket = Machines +Price = 3000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_60 +Move = AERIALACE +Description = The user confounds the target with speed, then slashes. This attack never misses. +#------------------------------- +[TM41] +Name = TM41 +NamePlural = TM41s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TORMENT +Description = The user torments and enrages the target, making it incapable of using the same move twice in a row. +#------------------------------- +[TM42] +Name = TM42 +NamePlural = TM42s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = FACADE +Description = This attack move doubles its power if the user is poisoned, burned, or paralyzed. +#------------------------------- +[TM43] +Name = TM43 +NamePlural = TM43s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = VOLTSWITCH +Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. +#------------------------------- +[TM44] +Name = TM44 +NamePlural = TM44s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = REST +Description = The user goes to sleep for two turns. This fully restores the user's HP and heals any status conditions. +#------------------------------- +[TM45] +Name = TM45 +NamePlural = TM45s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ATTRACT +Description = If it is the opposite gender of the user, the target becomes infatuated and less likely to attack. +#------------------------------- +[TM46] +Name = TM46 +NamePlural = TM46s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = THIEF +Description = The user attacks and steals the target's held item simultaneously. +#------------------------------- +[TM47] +Name = TM47 +NamePlural = TM47s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = STEELWING +Description = The target is hit with wings of steel. This may also raise the user's Defense stat. +#------------------------------- +[TM48] +Name = TM48 +NamePlural = TM48s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SKILLSWAP +Description = The user employs its psychic power to exchange Abilities with the target. +#------------------------------- +[TM49] +Name = TM49 +NamePlural = TM49s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = SCALD +Description = The user shoots boiling hot water at its target. This may also leave the target with a burn. +#------------------------------- +[TM50] +Name = TM50 +NamePlural = TM50s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_130 +Move = OVERHEAT +Description = The user attacks the target at full power. The attack's recoil harshly lowers the user's Sp. Atk stat. +#------------------------------- +[TM51] +Name = TM51 +NamePlural = TM51s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ROOST +Description = The user lands and rests its body. This move restores the user's HP by up to half of its max HP. +#------------------------------- +[TM52] +Name = TM52 +NamePlural = TM52s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_120 +Move = FOCUSBLAST +Description = The user heightens its mental focus and unleashes its power. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM53] +Name = TM53 +NamePlural = TM53s +Pocket = Machines +Price = 3000 +BPPrice = 64 +FieldUse = TR +Flags = Fling_90 +Move = ENERGYBALL +Description = The user draws power from nature and fires it at the target. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM54] +Name = TM54 +NamePlural = TM54s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_40 +Move = FALSESWIPE +Description = A restrained attack that prevents the target from fainting. The target is left with at least 1 HP. +#------------------------------- +[TM55] +Name = TM55 +NamePlural = TM55s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_65 +Move = BRINE +Description = If the target's HP is half or less, this attack will hit with double the power. +#------------------------------- +[TM56] +Name = TM56 +NamePlural = TM56s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = FLING +Description = The user flings its held item at the target to attack. This move's power and effects depend on the item. +#------------------------------- +[TM57] +Name = TM57 +NamePlural = TM57s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_50 +Move = CHARGEBEAM +Description = The user attacks with an electric charge. The user may use any remaining charge to raise its Sp. Atk. +#------------------------------- +[TM58] +Name = TM58 +NamePlural = TM58s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ENDURE +Description = The user endures any attack with at least 1 HP. Its chance of failing rises if it is used in succession. +#------------------------------- +[TM59] +Name = TM59 +NamePlural = TM59s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_85 +Move = DRAGONPULSE +Description = The target is attacked with a shock wave generated by the user's gaping mouth. +#------------------------------- +[TM60] +Name = TM60 +NamePlural = TM60s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_75 +Move = DRAINPUNCH +Description = An energy-draining punch. The user's HP is restored by half the damage taken by the target. +#------------------------------- +[TM61] +Name = TM61 +NamePlural = TM61s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = WILLOWISP +Description = The user shoots a sinister flame at the target to inflict a burn. +#------------------------------- +[TM62] +Name = TM62 +NamePlural = TM62s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = BUGBUZZ +Description = The user generates a damaging sound wave by vibration. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM63] +Name = TM63 +NamePlural = TM63s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = NASTYPLOT +Description = The user stimulates its brain by thinking bad thoughts. This sharply raises the user's Sp. Atk stat. +#------------------------------- +[TM64] +Name = TM64 +NamePlural = TM64s +Pocket = Machines +Price = 7500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_250 +Move = EXPLOSION +Description = The user attacks everything around it by causing a tremendous explosion. The user faints upon using this move. +#------------------------------- +[TM65] +Name = TM65 +NamePlural = TM65s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = SHADOWCLAW +Description = The user slashes with a sharp claw made from shadows. Critical hits land more easily. +#------------------------------- +[TM66] +Name = TM66 +NamePlural = TM66s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_50 +Move = PAYBACK +Description = The user stores power, then attacks. If the user goes after the target, this attack's power doubles. +#------------------------------- +[TM67] +Name = TM67 +NamePlural = TM67s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = RECYCLE +Description = The user recycles a held item that has been used in battle so it can be used again. +#------------------------------- +[TM68] +Name = TM68 +NamePlural = TM68s +Pocket = Machines +Price = 7500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_150 +Move = GIGAIMPACT +Description = The user charges at the target using every bit of its power. The user can't move on the next turn. +#------------------------------- +[TM69] +Name = TM69 +NamePlural = TM69s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = ROCKPOLISH +Description = The user polishes its body to reduce drag. This sharply raises the Speed stat. +#------------------------------- +[TM70] +Name = TM70 +NamePlural = TM70s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = FLASH +Description = The user flashes a light that lowers the target's accuracy. It can also be used to illuminate caves. +#------------------------------- +[TM71] +Name = TM71 +NamePlural = TM71s +Pocket = Machines +Price = 3000 +BPPrice = 80 +FieldUse = TR +Flags = Fling_100 +Move = STONEEDGE +Description = The user stabs the target from below with sharpened stones. Critical hits land more easily. +#------------------------------- +[TM72] +Name = TM72 +NamePlural = TM72s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = AVALANCHE +Description = The power of this attack move is doubled if the user has been hurt by the target in the same turn. +#------------------------------- +[TM73] +Name = TM73 +NamePlural = TM73s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = THUNDERWAVE +Description = The user launches a weak jolt of electricity that paralyzes the target. +#------------------------------- +[TM74] +Name = TM74 +NamePlural = TM74s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = GYROBALL +Description = The user tackles with a high-speed spin. This move is stronger the slower the user is than the target. +#------------------------------- +[TM75] +Name = TM75 +NamePlural = TM75s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SWORDSDANCE +Description = A frenetic dance to uplift the fighting spirit. This sharply raises the user's Attack stat. +#------------------------------- +[TM76] +Name = TM76 +NamePlural = TM76s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = STEALTHROCK +Description = The user lays a trap of levitating stones around the opposing team that hurt Pokémon that switch in. +#------------------------------- +[TM77] +Name = TM77 +NamePlural = TM77s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = PSYCHUP +Description = The user hypnotizes itself into copying any stat change made by the target. +#------------------------------- +[TM78] +Name = TM78 +NamePlural = TM78s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_55 +Move = SNARL +Description = The user yells as if it's ranting about something, which lowers the Sp. Atk stats of opposing Pokémon. +#------------------------------- +[TM79] +Name = TM79 +NamePlural = TM79s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = DARKPULSE +Description = The user releases a horrible aura imbued with dark thoughts. This may also make the target flinch. +#------------------------------- +[TM80] +Name = TM80 +NamePlural = TM80s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_75 +Move = ROCKSLIDE +Description = Large boulders are hurled at opposing Pokémon to inflict damage. This may also make them flinch. +#------------------------------- +[TM81] +Name = TM81 +NamePlural = TM81s +Pocket = Machines +Price = 3000 +BPPrice = 64 +FieldUse = TR +Flags = Fling_80 +Move = XSCISSOR +Description = The user slashes at the target by crossing its scythes or claws as if they were a pair of scissors. +#------------------------------- +[TM82] +Name = TM82 +NamePlural = TM82s +Pocket = Machines +Price = 1000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SLEEPTALK +Description = While it is asleep, the user randomly uses one of the moves it knows. +#------------------------------- +[TM83] +Name = TM83 +NamePlural = TM83s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = BULLDOZE +Description = The user strikes everything around it by stomping down on the ground. This lowers the Speed of those hit. +#------------------------------- +[TM84] +Name = TM84 +NamePlural = TM84s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = POISONJAB +Description = The target is stabbed with a tentacle, arm, or the like steeped in poison. This may also poison them. +#------------------------------- +[TM85] +Name = TM85 +NamePlural = TM85s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_100 +Move = DREAMEATER +Description = The user eats the dreams of a sleeping target. The user's HP is restored by half the damage dealt. +#------------------------------- +[TM86] +Name = TM86 +NamePlural = TM86s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = GRASSKNOT +Description = The user snares the target with grass and trips it. The heavier the target, the strong the move is. +#------------------------------- +[TM87] +Name = TM87 +NamePlural = TM87s +Pocket = Machines +Price = 1500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SWAGGER +Description = The user enrages and confuses the target. However, this also sharply raises the target's Attack stat. +#------------------------------- +[TM88] +Name = TM88 +NamePlural = TM88s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_60 +Move = PLUCK +Description = The user pecks the target. If the target is holding a Berry, the user eats it and gains its effect. +#------------------------------- +[TM89] +Name = TM89 +NamePlural = TM89s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_70 +Move = UTURN +Description = After making its attack, the user rushes back to switch places with a party Pokémon in waiting. +#------------------------------- +[TM90] +Name = TM90 +NamePlural = TM90s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = SUBSTITUTE +Description = The user creates a substitute for itself using some of its HP. The substitute serves as a decoy. +#------------------------------- +[TM91] +Name = TM91 +NamePlural = TM91s +Pocket = Machines +Price = 3000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_80 +Move = FLASHCANNON +Description = The user gathers all its light energy and releases it all at once. This may also lower the target's Sp. Def stat. +#------------------------------- +[TM92] +Name = TM92 +NamePlural = TM92s +Pocket = Machines +Price = 5500 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = TRICKROOM +Description = The user creates a bizarre area in which slower Pokémon get to move first for five turns. +#------------------------------- +[TM93] +Name = TM93 +NamePlural = TM93s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_50 +Move = CUT +Description = The target is cut with a scythe or claw. +#------------------------------- +[TM94] +Name = TM94 +NamePlural = TM94s +Pocket = Machines +Price = 2000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_90 +Move = FLY +Description = The user flies up into the sky and then strikes its target on the next turn. +#------------------------------- +[TM95] +Name = TM95 +NamePlural = TM95s +Pocket = Machines +Price = 2500 +BPPrice = 64 +FieldUse = TR +Flags = Fling_90 +Move = SURF +Description = The user attacks everything around it by swamping its surroundings with a giant wave. +#------------------------------- +[TM96] +Name = TM96 +NamePlural = TM96s +Pocket = Machines +Price = 2000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_80 +Move = STRENGTH +Description = The target is slugged with a punch thrown at maximum power. +#------------------------------- +[TM97] +Name = TM97 +NamePlural = TM97s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_10 +Move = DEFOG +Description = A strong wind blows away the target's barriers, such as Reflect, and lowers their evasiveness. +#------------------------------- +[TM98] +Name = TM98 +NamePlural = TM98s +Pocket = Machines +Price = 2000 +BPPrice = 40 +FieldUse = TR +Flags = Fling_40 +Move = ROCKSMASH +Description = The user attacks with a punch that may lower the target's Defense stat. +#------------------------------- +[TM99] +Name = TM99 +NamePlural = TM99s +Pocket = Machines +Price = 2500 +BPPrice = 64 +FieldUse = TR +Flags = Fling_80 +Move = WATERFALL +Description = The user charges at the target and may make it flinch. +#------------------------------- +[TM100] +Name = TM100 +NamePlural = TM100s +Pocket = Machines +Price = 2000 +BPPrice = 32 +FieldUse = TR +Flags = Fling_90 +Move = ROCKCLIMB +Description = A charging attack that may also leave the foe confused. +#------------------------------- +[HM01] +Name = HM01 +NamePlural = HM01s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = CUT +Description = The target is cut with a scythe or claw. This can also be used to cut down thin trees. +#------------------------------- +[HM02] +Name = HM02 +NamePlural = HM02s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = FLY +Description = The user soars and then strikes on the next turn. This can also be used to fly to any familiar town. +#------------------------------- +[HM03] +Name = HM03 +NamePlural = HM03s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = SURF +Description = Attacks everything by swamping the surroundings with a giant wave. This can also be used to cross water. +#------------------------------- +[HM04] +Name = HM04 +NamePlural = HM04s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = STRENGTH +Description = The target is slugged with a punch thrown at maximum power. This can also be used to move heavy boulders. +#------------------------------- +[HM05] +Name = HM05 +NamePlural = HM05s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = WATERFALL +Description = The user charges at the target and may make it flinch. It can also be used to climb a waterfall. +#------------------------------- +[HM06] +Name = HM06 +NamePlural = HM06s +Pocket = Machines +Price = 0 +FieldUse = HM +Move = DIVE +Description = The user dives on the first turn, and floats up and attacks on the next. It can be used to dive underwater. +#------------------------------- [BICYCLE] Name = Bicycle NamePlural = Bicycles -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6525,7 +6525,7 @@ Description = A folding Bicycle that enables much faster movement than the Runni [OLDROD] Name = Old Rod NamePlural = Old Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6534,7 +6534,7 @@ Description = An old and beat-up fishing rod. Use it by any body of water to fis [GOODROD] Name = Good Rod NamePlural = Good Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6543,7 +6543,7 @@ Description = A new, good-quality fishing rod. Use it by any body of water to fi [SUPERROD] Name = Super Rod NamePlural = Super Rods -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6552,7 +6552,7 @@ Description = An awesome, high-tech fishing rod. Use it by any body of water to [ITEMFINDER] Name = Itemfinder NamePlural = Itemfinders -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6561,7 +6561,7 @@ Description = A device used for finding items. If there is a hidden item nearby [DOWSINGMACHINE] Name = Dowsing Machine NamePlural = Dowsing Machines -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6570,7 +6570,7 @@ Description = It checks for unseen items in the area and makes noise and lights [POKERADAR] Name = Poké Radar NamePlural = Poké Radars -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6579,7 +6579,7 @@ Description = A tool that can search out Pokémon that are hiding in grass. Its [TOWNMAP] Name = Town Map NamePlural = Town Maps -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6588,7 +6588,7 @@ Description = A very convenient map that can be viewed anytime. It even shows yo [ESCAPEROPE] Name = Escape Rope NamePlural = Escape Ropes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6597,7 +6597,7 @@ Description = A long, durable rope. Use it to escape instantly from a cave or a [COINCASE] Name = Coin Case NamePlural = Coin Cases -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = Direct Flags = KeyItem @@ -6606,7 +6606,7 @@ Description = A case for holding coins obtained at the Game Corner. It holds up [POKEFLUTE] Name = Poké Flute NamePlural = Poké Flutes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon BattleUse = Direct @@ -6616,7 +6616,7 @@ Description = A flute that is said to instantly awaken any Pokémon. It has a lo [SOOTSACK] Name = Soot Sack NamePlural = Soot Sacks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A sack used to gather and hold volcanic ash. @@ -6624,7 +6624,7 @@ Description = A sack used to gather and hold volcanic ash. [SILPHSCOPE] Name = Silph Scope NamePlural = Silph Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A scope that makes unseeable Pokémon visible. It is made by Silph Co. @@ -6632,7 +6632,7 @@ Description = A scope that makes unseeable Pokémon visible. It is made by Silph [DEVONSCOPE] Name = Devon Scope NamePlural = Devon Scopes -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A device by Devon that signals any unseeable Pokémon. @@ -6640,7 +6640,7 @@ Description = A device by Devon that signals any unseeable Pokémon. [SQUIRTBOTTLE] Name = Squirt Bottle NamePlural = Squirt Bottles -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Squirtle. It helps promote healthy growth of Berries planted in soft soil. @@ -6648,7 +6648,7 @@ Description = A watering can shaped like a Squirtle. It helps promote healthy gr [SPRAYDUCK] Name = Sprayduck NamePlural = Sprayducks -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Psyduck. It helps promote healthy growth of Berries planted in soft soil. @@ -6656,7 +6656,7 @@ Description = A watering can shaped like a Psyduck. It helps promote healthy gro [WAILMERPAIL] Name = Wailmer Pail NamePlural = Wailmer Pails -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A nifty watering pail. Use it to promote strong growth in Berries planted in soft soil. @@ -6664,7 +6664,7 @@ Description = A nifty watering pail. Use it to promote strong growth in Berries [SPRINKLOTAD] Name = Sprinklotad NamePlural = Sprinklotads -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A watering can shaped like a Lotad. It helps promote the healthy growth of any Berries planted in soft soil. @@ -6672,7 +6672,7 @@ Description = A watering can shaped like a Lotad. It helps promote the healthy g [GRACIDEA] Name = Gracidea NamePlural = Gracideas -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6681,7 +6681,7 @@ Description = A flower sometimes bundled in bouquets to convey gratitude on spec [REVEALGLASS] Name = Reveal Glass NamePlural = Reveal Glasses -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6690,7 +6690,7 @@ Description = A glass that reveals the truth. It is a mysterious glass that retu [PRISONBOTTLE] Name = Prison Bottle NamePlural = Prison Bottles -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6699,7 +6699,7 @@ Description = A bottle believed to have been used to seal away the power of a ce [ROTOMCATALOG] Name = Rotom Catalog NamePlural = Rotom Catalogs -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6708,7 +6708,7 @@ Description = A catalog of devices that Rotom like. Use the catalog to have Roto [ZYGARDECUBE] Name = Zygarde Cube NamePlural = Zygarde Cubes -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6717,7 +6717,7 @@ Description = An item in which Zygarde Cores and Cells are gathered. You can als [DNASPLICERS] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6726,7 +6726,7 @@ Description = A splicer that fuses Kyurem and a certain Pokémon. They are said [DNASPLICERSUSED] Name = DNA Splicers NamePlural = DNA Splicers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6735,7 +6735,7 @@ Description = A splicer that separates Kyurem and a certain Pokémon when they h [NSOLARIZER] Name = N-Solarizer NamePlural = N-Solarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6744,7 +6744,7 @@ Description = A machine to fuse Necrozma, which needs light, and Solgaleo. [NSOLARIZERUSED] Name = N-Solarizer NamePlural = N-Solarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6753,7 +6753,7 @@ Description = A machine to separate Necrozma, which needed light, from Solgaleo. [NLUNARIZER] Name = N-Lunarizer NamePlural = N-Lunarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6762,7 +6762,7 @@ Description = A machine to fuse Necrozma, which needs light, and Lunala. [NLUNARIZERUSED] Name = N-Lunarizer NamePlural = N-Lunarizers -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6773,7 +6773,7 @@ Name = Reins of Unity NamePlural = Reins of Unity PortionName = set of Reins of Unity PortionNamePlural = sets of Reins of Unity -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6784,7 +6784,7 @@ Name = Reins of Unity NamePlural = Reins of Unity PortionName = set of Reins of Unity PortionNamePlural = sets of Reins of Unity -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6793,7 +6793,7 @@ Description = Reins that people presented to the king. They separate Calyrex and [METEORITE] Name = Meteorite NamePlural = Meteorites -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6802,7 +6802,7 @@ Description = A slightly warm rock that fell to earth from space. It allows a ce [SCROLLOFDARKNESS] Name = Scroll of Darkness NamePlural = Scrolls of Darkness -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6811,7 +6811,7 @@ Description = A scroll containing the true secrets of the path of darkness. It c [SCROLLOFWATERS] Name = Scroll of Waters NamePlural = Scrolls of Waters -Pocket = 8 +Pocket = KeyItems Price = 0 FieldUse = OnPokemon Flags = KeyItem @@ -6820,7 +6820,7 @@ Description = A scroll containing the true secrets of the path of water. It can [OVALCHARM] Name = Oval Charm NamePlural = Oval Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = An oval charm said to increase the chance of Eggs being found at the Day Care. @@ -6828,7 +6828,7 @@ Description = An oval charm said to increase the chance of Eggs being found at t [SHINYCHARM] Name = Shiny Charm NamePlural = Shiny Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A shiny charm said to increase the chance of finding a Shiny Pokémon. @@ -6836,7 +6836,7 @@ Description = A shiny charm said to increase the chance of finding a Shiny Poké [CATCHINGCHARM] Name = Catching Charm NamePlural = Catching Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A charm said to increase the chance of getting a critical catch. The charm doesn't shake much. @@ -6844,7 +6844,7 @@ Description = A charm said to increase the chance of getting a critical catch. T [EXPCHARM] Name = Exp. Charm NamePlural = Exp. Charms -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A charm that increases the Exp. Points that Pokémon can get. A machine-like object is inside it. @@ -6852,7 +6852,7 @@ Description = A charm that increases the Exp. Points that Pokémon can get. A ma [MEGARING] Name = Mega Ring NamePlural = Mega Rings -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem,MegaRing Description = This ring contains an untold power that somehow enables Pokémon carrying Mega Stones to Mega Evolve. @@ -6860,7 +6860,7 @@ Description = This ring contains an untold power that somehow enables Pokémon c [POKEMONBOXLINK] Name = Pokémon Box Link NamePlural = Pokémon Box Links -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A device that allows you to access the Pokémon storage system. There are some places where it won't work. @@ -6868,7 +6868,7 @@ Description = A device that allows you to access the Pokémon storage system. Th [AURORATICKET] Name = Aurora Ticket NamePlural = Aurora Tickets -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem Description = A ticket required to board the ship to Berth Island. It glows beautifully. @@ -6876,7 +6876,7 @@ Description = A ticket required to board the ship to Berth Island. It glows beau [OLDSEAMAP] Name = Old Sea Map NamePlural = Old Sea Maps -Pocket = 8 +Pocket = KeyItems Price = 0 Flags = KeyItem -Description = A faded sea chart that shows the way to a certain island. +Description = A faded sea chart that shows the way to a certain island. \ No newline at end of file diff --git a/PBS/map_metadata.txt b/PBS/map_metadata.txt index 6b4c16df5..3c9b6ad80 100644 --- a/PBS/map_metadata.txt +++ b/PBS/map_metadata.txt @@ -7,6 +7,7 @@ Name = Intro Name = Lappet Town Outdoor = true ShowArea = true +LocationSign = Pt town MapPosition = 0,13,12 BattleBack = field #------------------------------- @@ -23,6 +24,7 @@ MapPosition = 0,13,12 Name = Route 1 Outdoor = true ShowArea = true +LocationSign = Pt route MapPosition = 0,13,11 BattleBack = field #------------------------------- @@ -34,6 +36,7 @@ MapPosition = 0,13,11 Name = Cedolan City Outdoor = true ShowArea = true +LocationSign = Pt city MapPosition = 0,13,10 MapSize = 2,11 #------------------------------- @@ -97,6 +100,7 @@ MapPosition = 0,13,10 Name = Route 2 Outdoor = true ShowArea = true +LocationSign = Pt route Weather = Rain,100 MapPosition = 0,14,8 BattleBack = field @@ -106,6 +110,7 @@ MapSize = 1,11 Name = Lerucean Town Outdoor = true ShowArea = true +LocationSign = Pt town MapPosition = 0,15,8 #------------------------------- [024] # Lerucean Town Poké Center @@ -129,6 +134,7 @@ MapPosition = 0,15,8 Name = Natural Park Outdoor = true ShowArea = true +LocationSign = Pt park MapPosition = 0,16,8 BattleBack = field Flags = MossRock,BugContest @@ -148,12 +154,15 @@ Flags = BugContestReception Name = Route 3 Outdoor = true ShowArea = true +LocationSign = Pt route MapPosition = 0,14,6 BattleBack = field MapSize = 2,1101 #------------------------------- [034] # Ice Cave -Name = Route 3 +Name = Ice Cave +ShowArea = true +LocationSign = Pt cave Bicycle = true MapPosition = 0,15,6 BattleBack = cave1 @@ -164,6 +173,7 @@ Flags = IceRock Name = Ingido Plateau Outdoor = true ShowArea = true +LocationSign = Pt route MapPosition = 0,13,6 #------------------------------- [036] # Pokémon League entrance @@ -186,6 +196,7 @@ Flags = DisableBoxLink Name = Route 4 Outdoor = true ShowArea = true +LocationSign = Pt route MapPosition = 0,11,6 BattleBack = field MapSize = 2,11 @@ -194,6 +205,7 @@ MapSize = 2,11 Name = Route 4 Outdoor = true ShowArea = true +LocationSign = Pt route BicycleAlways = true MapPosition = 0,11,6 #------------------------------- @@ -201,6 +213,7 @@ MapPosition = 0,11,6 Name = Route 5 Outdoor = true ShowArea = true +LocationSign = Pt route BicycleAlways = true MapPosition = 0,11,7 MapSize = 1,111 @@ -209,6 +222,7 @@ MapSize = 1,111 Name = Route 6 Outdoor = true ShowArea = true +LocationSign = Pt route MapPosition = 0,11,10 BattleBack = field MapSize = 2,11 @@ -217,6 +231,7 @@ MapSize = 2,11 Name = Route 6 Outdoor = true ShowArea = true +LocationSign = Pt route BicycleAlways = true MapPosition = 0,11,10 #------------------------------- @@ -229,6 +244,7 @@ MapPosition = 0,12,6 Name = Route 7 Outdoor = true ShowArea = true +LocationSign = Pt route Weather = Rain,0 MapPosition = 0,15,10 BattleBack = rocky @@ -236,7 +252,9 @@ MapSize = 2,11 Environment = Rock #------------------------------- [049] # Rock Cave 1F -Name = Route 7 +Name = Rock Cave +ShowArea = true +LocationSign = Pt cave Bicycle = true MapPosition = 0,16,10 BattleBack = cave1 @@ -244,7 +262,9 @@ Environment = Cave Flags = Magnetic,DistortionWorld #------------------------------- [050] # Rock Cave B1F -Name = Route 7 +Name = Rock Cave +ShowArea = true +LocationSign = Pt cave Bicycle = true MapPosition = 0,16,10 DarkMap = true @@ -253,7 +273,9 @@ Environment = Cave Flags = Magnetic,DistortionWorld #------------------------------- [051] # Dungeon -Name = Route 7 +Name = Rock Cave +ShowArea = true +LocationSign = Pt cave Bicycle = true MapPosition = 0,16,10 Dungeon = true @@ -265,6 +287,7 @@ Flags = Magnetic,DistortionWorld,ScaleWildEncounterLevels Name = Battle Frontier Outdoor = true ShowArea = true +LocationSign = Pt city MapPosition = 0,17,10 #------------------------------- [053] # Battle Frontier Poké Center @@ -335,6 +358,7 @@ Flags = DisableBoxLink Name = Safari Zone Outdoor = true ShowArea = true +LocationSign = Pt route MapPosition = 0,12,12 BattleBack = field #------------------------------- @@ -346,6 +370,7 @@ MapPosition = 0,12,12 Name = Safari Zone Outdoor = true ShowArea = true +LocationSign = Pt forest MapPosition = 0,12,12 SafariMap = true BattleBack = forest @@ -355,6 +380,7 @@ Environment = Forest Name = Route 8 Outdoor = true ShowArea = true +LocationSign = Pt route MapPosition = 0,13,13 DiveMap = 70 BattleBack = field @@ -373,6 +399,7 @@ MapPosition = 0,13,13 Name = Berth Island Outdoor = true ShowArea = true +LocationSign = Pt lake Weather = Storm,50 MapPosition = 0,18,17 BattleBack = field @@ -382,6 +409,7 @@ Flags = DistortionWorld Name = Faraday Island Outdoor = true ShowArea = true +LocationSign = Pt lake MapPosition = 0,22,16 BattleBack = field Flags = DistortionWorld diff --git a/PBS/town_map.txt b/PBS/town_map.txt index 349e1c279..d75bc9907 100644 --- a/PBS/town_map.txt +++ b/PBS/town_map.txt @@ -3,34 +3,77 @@ [0] Name = Essen Filename = mapRegion0.png -Point = 13,12,Lappet Town,Oak's Lab,2,8,8 +PointSize = 16,16 +Size = 30,20 +Point = 13,12,Lappet Town + Image = image_lappet_town + Description = \PN's house\nProfessor Oak's lab + FlySpot = 2,8,8 Point = 13,11,Route 1 -Point = 13,10,Cedolan City,Cedolan Dept. Store,7,47,11 -Point = 14,10,Cedolan City,,7,47,11 + Description = Kurt's house +Point = 13,10,Cedolan City + Image = image_cedolan_city + Description = Cedolan Dept. Store\nCedolan Gym\nMove Maniac House + FlySpot = 7,47,11 + FlyIconOffset = 8,0 +Point = 14,10,Cedolan City + Image = image_cedolan_city + Description = Game Corner\nPokémon Institute + FlySpot = 7,47,11 + HideFlyIcon = true Point = 14,9,Route 2 + Description = Bridges Point = 14,8,Route 2 -Point = 15,8,Lerucean Town,,23,11,15 + Description = Bridges +Point = 15,8,Lerucean Town + Image = image_lerucean_town + Description = Day Care Center\nPokémon Fan Club\nLerucean Market + FlySpot = 23,11,15 Point = 16,8,Natural Park + Description = A Bug Catching Contest is held here every Tuesday, Thursday and Saturday. Point = 15,7,Route 3 -Point = 15,6,Route 3,Ice Cave +Point = 15,6,Route 3 + Description = Ice Cave Point = 14,6,Route 3 -Point = 13,6,Ingido Plateau,,35,17,7 + Description = Examples of trainer battles. +Point = 13,6,Ingido Plateau + Image = image_ingido_plateau + Description = Pokémon League + FlySpot = 35,17,7 Point = 12,6,Route 4 Point = 11,6,Route 4 -Point = 11,7,Route 5,Cycle Road -Point = 11,8,Route 5,Cycle Road -Point = 11,9,Route 5,Cycle Road + Description = Cycle Road +Point = 11,7,Route 5 + Description = Cycle Road +Point = 11,8,Route 5 + Description = Cycle Road +Point = 11,9,Route 5 + Description = Cycle Road Point = 11,10,Route 6 + Description = Cycle Road Point = 12,10,Route 6 Point = 15,10,Route 7 -Point = 16,10,Route 7,Rock Cave -Point = 17,10,Battle Frontier,,52,17,14 +Point = 16,10,Route 7 + Description = Rock Cave +Point = 17,10,Battle Frontier + Image = image_battle_frontier + Description = Battle Palace\nBattle Tower\nBattle Arena\nBattle Factory + FlySpot = 52,17,14 Point = 12,12,Safari Zone -Point = 13,13,Route 8,Diving area -Point = 18,17,Berth Island,,,,,51 -Point = 22,16,Faraday Island,,,,,52 + Description = Challenge yourself by catching Pokémon without using your own. +Point = 13,13,Route 8 + Image = image_route_8 + Description = Harbor\nDiving area +Point = 18,17,Berth Island + Description = Four mysterious meteorites can be found here. + Switch = 51 +Point = 22,16,Faraday Island + Description = A blue Mew can be found here every so often. + Switch = 52 #------------------------------- [1] Name = Tiall Filename = mapRegion1.png +PointSize = 16,16 +Size = 30,20 Point = 13,16,Here