From 8a3353973b90452bb61490d6523f34e3f27ce799 Mon Sep 17 00:00:00 2001 From: Maruno17 Date: Wed, 8 Feb 2023 23:51:42 +0000 Subject: [PATCH 1/2] =?UTF-8?q?Fixed=20minor=20bug=20in=20sprite=20positio?= =?UTF-8?q?n=20editor,=20made=20trainers'=20Pok=C3=A9mon=20nicknames=20tra?= =?UTF-8?q?nslatable,=20generalised=20code=20for=20optional=20PBS=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../001_Technical/003_Intl_Messages.rb | 1 + Data/Scripts/010_Data/001_GameData.rb | 6 +++- .../Scripts/010_Data/002_PBS data/006_Item.rb | 28 ++++++++++--------- .../002_PBS data/011_ShadowPokemon.rb | 3 +- .../010_Data/002_PBS data/015_Trainer.rb | 4 ++- .../002_Trainer_LoadAndNew.rb | 4 +-- .../001_Editor screens/001_EditorScreens.rb | 14 +++++----- .../004_EditorScreens_SpritePositioning.rb | 1 + Data/Scripts/021_Compiler/001_Compiler.rb | 2 +- .../021_Compiler/002_Compiler_CompilePBS.rb | 17 +++++++---- 10 files changed, 49 insertions(+), 31 deletions(-) diff --git a/Data/Scripts/001_Technical/003_Intl_Messages.rb b/Data/Scripts/001_Technical/003_Intl_Messages.rb index f5e552b36..3a8d01416 100644 --- a/Data/Scripts/001_Technical/003_Intl_Messages.rb +++ b/Data/Scripts/001_Technical/003_Intl_Messages.rb @@ -702,6 +702,7 @@ module MessageTypes STORAGE_CREATOR_NAME = 27 ITEM_PORTION_NAMES = 28 ITEM_PORTION_NAME_PLURALS = 29 + POKEMON_NICKNAMES = 30 @@messages = Translation.new def self.load_default_messages diff --git a/Data/Scripts/010_Data/001_GameData.rb b/Data/Scripts/010_Data/001_GameData.rb index 83263509c..8a278726c 100644 --- a/Data/Scripts/010_Data/001_GameData.rb +++ b/Data/Scripts/010_Data/001_GameData.rb @@ -256,7 +256,11 @@ module GameData ret = [] self.constants.each do |c| next if !self.const_get(c).is_a?(Class) - ret.push(self.const_get(c)::DATA_FILENAME) if self.const_get(c).const_defined?(:DATA_FILENAME) + next if !self.const_get(c).const_defined?(:DATA_FILENAME) + if self.const_get(c).const_defined?(:OPTIONAL) && self.const_get(c)::OPTIONAL + next if !safeExists?(self.const_get(c)::DATA_FILENAME) + end + ret.push(self.const_get(c)::DATA_FILENAME) end return ret 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 dff99bfdc..24083dcc6 100644 --- a/Data/Scripts/010_Data/002_PBS data/006_Item.rb +++ b/Data/Scripts/010_Data/002_PBS data/006_Item.rb @@ -50,19 +50,21 @@ module GameData battle_use_array = [_INTL("Can't use in battle")] self.schema["BattleUse"][2].each { |key, value| battle_use_array[value] = key if !battle_use_array[value] } return [ - ["ID", ReadOnlyProperty, _INTL("ID of this item (used as a symbol like :XXX).")], - ["Name", ItemNameProperty, _INTL("Name of this item as displayed by the game.")], - ["NamePlural", ItemNameProperty, _INTL("Plural name of this item as displayed by the game.")], - ["Pocket", PocketProperty, _INTL("Pocket in the Bag where this item is stored.")], - ["Price", LimitProperty.new(Settings::MAX_MONEY), _INTL("Purchase price of this item.")], - ["SellPrice", LimitProperty2.new(Settings::MAX_MONEY), _INTL("Sell price of this item. If blank, is half the purchase price.")], - ["BPPrice", LimitProperty.new(Settings::MAX_BATTLE_POINTS), _INTL("Purchase price of this item in Battle Points (BP).")], - ["FieldUse", EnumProperty.new(field_use_array), _INTL("How this item can be used outside of battle.")], - ["BattleUse", EnumProperty.new(battle_use_array), _INTL("How this item can be used within a battle.")], - ["Flags", StringListProperty, _INTL("Words/phrases that can be used to group certain kinds of items.")], - ["Consumable", BooleanProperty, _INTL("Whether this item is consumed after use.")], - ["Move", MoveProperty, _INTL("Move taught by this HM, TM or TR.")], - ["Description", StringProperty, _INTL("Description of this item.")] + ["ID", ReadOnlyProperty, _INTL("ID of this item (used as a symbol like :XXX).")], + ["Name", ItemNameProperty, _INTL("Name of this item as displayed by the game.")], + ["NamePlural", ItemNameProperty, _INTL("Plural name of this item as displayed by the game.")], + ["PortionName", ItemNameProperty, _INTL("Name of a portion of this item as displayed by the game.")], + ["PortionNamePlural", ItemNameProperty, _INTL("Name of 2 or more portions of this item as displayed by the game.")], + ["Pocket", PocketProperty, _INTL("Pocket in the Bag where this item is stored.")], + ["Price", LimitProperty.new(Settings::MAX_MONEY), _INTL("Purchase price of this item.")], + ["SellPrice", LimitProperty2.new(Settings::MAX_MONEY), _INTL("Sell price of this item. If blank, is half the purchase price.")], + ["BPPrice", LimitProperty.new(Settings::MAX_BATTLE_POINTS), _INTL("Purchase price of this item in Battle Points (BP).")], + ["FieldUse", EnumProperty.new(field_use_array), _INTL("How this item can be used outside of battle.")], + ["BattleUse", EnumProperty.new(battle_use_array), _INTL("How this item can be used within a battle.")], + ["Flags", StringListProperty, _INTL("Words/phrases that can be used to group certain kinds of items.")], + ["Consumable", BooleanProperty, _INTL("Whether this item is consumed after use.")], + ["Move", MoveProperty, _INTL("Move taught by this HM, TM or TR.")], + ["Description", StringProperty, _INTL("Description of this item.")] ] end diff --git a/Data/Scripts/010_Data/002_PBS data/011_ShadowPokemon.rb b/Data/Scripts/010_Data/002_PBS data/011_ShadowPokemon.rb index 5ef06ab74..dca905398 100644 --- a/Data/Scripts/010_Data/002_PBS data/011_ShadowPokemon.rb +++ b/Data/Scripts/010_Data/002_PBS data/011_ShadowPokemon.rb @@ -9,6 +9,7 @@ module GameData DATA = {} DATA_FILENAME = "shadow_pokemon.dat" PBS_BASE_FILENAME = "shadow_pokemon" + OPTIONAL = true SCHEMA = { "SectionName" => [:id, "e", :Species], @@ -21,7 +22,7 @@ module GameData extend ClassMethodsSymbols include InstanceMethods - alias __orig__load load unless private_method_defined?(:__orig__load) + singleton_class.alias_method(:__orig__load, :load) unless singleton_class.method_defined?(:__orig__load) def self.load __orig__load if safeExists?("Data/#{self::DATA_FILENAME}") end diff --git a/Data/Scripts/010_Data/002_PBS data/015_Trainer.rb b/Data/Scripts/010_Data/002_PBS data/015_Trainer.rb index df301b5de..10a51c3d7 100644 --- a/Data/Scripts/010_Data/002_PBS data/015_Trainer.rb +++ b/Data/Scripts/010_Data/002_PBS data/015_Trainer.rb @@ -167,7 +167,9 @@ module GameData end end pkmn.happiness = pkmn_data[:happiness] if pkmn_data[:happiness] - pkmn.name = pkmn_data[:real_name] if !nil_or_empty?(pkmn_data[:real_name]) + if !nil_or_empty?(pkmn_data[:real_name]) + pkmn.name = pbGetMessageFromHash(MessageTypes::POKEMON_NICKNAMES, pkmn_data[:real_name]) + end if pkmn_data[:shadowness] pkmn.makeShadow pkmn.shiny = false diff --git a/Data/Scripts/015_Trainers and player/002_Trainer_LoadAndNew.rb b/Data/Scripts/015_Trainers and player/002_Trainer_LoadAndNew.rb index c41df0829..d9212f01d 100644 --- a/Data/Scripts/015_Trainers and player/002_Trainer_LoadAndNew.rb +++ b/Data/Scripts/015_Trainers and player/002_Trainer_LoadAndNew.rb @@ -37,7 +37,7 @@ def pbNewTrainer(tr_type, tr_name, tr_version, save_changes = true) if save_changes trainer_hash = { :trainer_type => tr_type, - :name => tr_name, + :real_name => tr_name, :version => tr_version, :pokemon => [] } @@ -50,7 +50,7 @@ def pbNewTrainer(tr_type, tr_name, tr_version, save_changes = true) ) end # Add trainer's data to records - trainer_hash[:id] = [trainer_hash[:trainer_type], trainer_hash[:name], trainer_hash[:version]] + trainer_hash[:id] = [trainer_hash[:trainer_type], trainer_hash[:real_name], trainer_hash[:version]] GameData::Trainer.register(trainer_hash) GameData::Trainer.save pbConvertTrainerData 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 44672a015..748504570 100644 --- a/Data/Scripts/020_Debug/001_Editor screens/001_EditorScreens.rb +++ b/Data/Scripts/020_Debug/001_Editor screens/001_EditorScreens.rb @@ -525,7 +525,7 @@ def pbTrainerBattleEditor else trainer_hash = { :trainer_type => data[0], - :name => data[1], + :real_name => data[1], :version => data[2], :lose_text => data[3], :pokemon => party, @@ -533,7 +533,7 @@ def pbTrainerBattleEditor :pbs_file_suffix => tr_data.pbs_file_suffix } # Add trainer type's data to records - trainer_hash[:id] = [trainer_hash[:trainer_type], trainer_hash[:name], trainer_hash[:version]] + trainer_hash[:id] = [trainer_hash[:trainer_type], trainer_hash[:real_name], trainer_hash[:version]] GameData::Trainer.register(trainer_hash) if data[0] != old_type || data[1] != old_name || data[2] != old_version GameData::Trainer::DATA.delete([old_type, old_name, old_version]) @@ -568,7 +568,7 @@ def pbTrainerBattleEditor if t trainer_hash = { :trainer_type => tr_type, - :name => tr_name, + :real_name => tr_name, :version => tr_version, :pokemon => [] } @@ -581,7 +581,7 @@ def pbTrainerBattleEditor ) end # Add trainer's data to records - trainer_hash[:id] = [trainer_hash[:trainer_type], trainer_hash[:name], trainer_hash[:version]] + trainer_hash[:id] = [trainer_hash[:trainer_type], trainer_hash[:real_name], trainer_hash[:version]] GameData::Trainer.register(trainer_hash) pbMessage(_INTL("The Trainer battle was added.")) modified = true @@ -607,7 +607,7 @@ module TrainerPokemonProperty oldsetting = [ initsetting[:species], initsetting[:level], - initsetting[:name], + initsetting[:real_name], initsetting[:form], initsetting[:gender], initsetting[:shininess], @@ -629,7 +629,7 @@ module TrainerPokemonProperty pkmn_properties = [ [_INTL("Species"), SpeciesProperty, _INTL("Species of the Pokémon.")], [_INTL("Level"), NonzeroLimitProperty.new(max_level), _INTL("Level of the Pokémon (1-{1}).", max_level)], - [_INTL("Name"), StringProperty, _INTL("Name of the Pokémon.")], + [_INTL("Name"), StringProperty, _INTL("Nickname of the Pokémon.")], [_INTL("Form"), LimitProperty2.new(999), _INTL("Form of the Pokémon.")], [_INTL("Gender"), GenderProperty, _INTL("Gender of the Pokémon.")], [_INTL("Shiny"), BooleanProperty2, _INTL("If set to true, the Pokémon is a different-colored Pokémon.")], @@ -655,7 +655,7 @@ module TrainerPokemonProperty ret = { :species => oldsetting[0], :level => oldsetting[1], - :name => oldsetting[2], + :real_name => oldsetting[2], :form => oldsetting[3], :gender => oldsetting[4], :shininess => oldsetting[5], diff --git a/Data/Scripts/020_Debug/001_Editor screens/004_EditorScreens_SpritePositioning.rb b/Data/Scripts/020_Debug/001_Editor screens/004_EditorScreens_SpritePositioning.rb index 110d64a5e..4673ffb94 100644 --- a/Data/Scripts/020_Debug/001_Editor screens/004_EditorScreens_SpritePositioning.rb +++ b/Data/Scripts/020_Debug/001_Editor screens/004_EditorScreens_SpritePositioning.rb @@ -213,6 +213,7 @@ class SpritePositioner break elsif Input.trigger?(Input::USE) pbPlayDecisionSE + @metricsChanged = true if metrics_data.shadow_size != oldval break end end diff --git a/Data/Scripts/021_Compiler/001_Compiler.rb b/Data/Scripts/021_Compiler/001_Compiler.rb index 096dcb591..4b9756948 100644 --- a/Data/Scripts/021_Compiler/001_Compiler.rb +++ b/Data/Scripts/021_Compiler/001_Compiler.rb @@ -889,7 +889,7 @@ module Compiler rescue SystemCallError mustCompile = true end - elsif filename != "shadow_pokemon.dat" + else mustCompile = true break end diff --git a/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb b/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb index 8d4ff7200..1aec8db6f 100644 --- a/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb +++ b/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb @@ -2,6 +2,9 @@ module Compiler module_function def compile_PBS_file_generic(game_data, *paths) + if game_data.const_defined?(:OPTIONAL) && game_data::OPTIONAL + return if paths.none? { |p| safeExists?(p) } + end game_data::DATA.clear schema = game_data.schema # Read from PBS file(s) @@ -214,10 +217,10 @@ module Compiler def validate_compiled_move(hash) if (hash[:category] || 2) == 2 && (hash[:base_damage] || 0) != 0 raise _INTL("Move {1} is defined as a Status move with a non-zero base damage.\r\n{2}", - hash[:name], FileLineData.linereport) + hash[:real_name], FileLineData.linereport) elsif (hash[:category] || 2) != 2 && (hash[:base_damage] || 0) == 0 print _INTL("Warning: Move {1} is defined as Physical or Special but has a base damage of 0. Changing it to a Status move.\r\n{2}", - hash[:name], FileLineData.linereport) + hash[:real_name], FileLineData.linereport) hash[:category] = 2 end end @@ -542,7 +545,6 @@ module Compiler # Compile Shadow Pokémon data #============================================================================= def compile_shadow_pokemon(*paths) - return if !safeExists?("PBS/shadow_pokemon.txt") compile_PBS_file_generic(GameData::ShadowPokemon, *paths) do |final_validate, hash| (final_validate) ? validate_all_compiled_shadow_pokemon : validate_compiled_shadow_pokemon(hash) end @@ -847,9 +849,9 @@ module Compiler pkmn[:level], max_level, FileLineData.linereport) end # Ensure valid name length - if pkmn[:name] && pkmn[:name].length > Pokemon::MAX_NAME_SIZE + if pkmn[:real_name] && pkmn[:real_name].length > Pokemon::MAX_NAME_SIZE raise _INTL("Invalid Pokémon nickname: {1} (must be 1-{2} characters).\r\n{3}", - pkmn[:name], Pokemon::MAX_NAME_SIZE, FileLineData.linereport) + pkmn[:real_name], Pokemon::MAX_NAME_SIZE, FileLineData.linereport) end # Ensure no duplicate moves pkmn[:moves].uniq! if pkmn[:moves] @@ -904,12 +906,17 @@ module Compiler # Get trainer names and lose texts for translating trainer_names = [] lose_texts = [] + pokemon_nicknames = [] GameData::Trainer.each do |trainer| trainer_names.push(trainer.real_name) lose_texts.push(trainer.real_lose_text) + trainer.pokemon.each do |pkmn| + pokemon_nicknames.push(pkmn[:real_name]) if !nil_or_empty?(pkmn[:real_name]) + end end MessageTypes.setMessagesAsHash(MessageTypes::TRAINER_NAMES, trainer_names) MessageTypes.setMessagesAsHash(MessageTypes::TRAINER_SPEECHES_LOSE, lose_texts) + MessageTypes.setMessagesAsHash(MessageTypes::POKEMON_NICKNAMES, pokemon_nicknames) end #============================================================================= From becce85550e90869b645148fb86bdc65c98d52ab Mon Sep 17 00:00:00 2001 From: Maruno17 Date: Fri, 10 Feb 2023 21:18:10 +0000 Subject: [PATCH 2/2] Removed deprecated code, renamed "base_damage"/"baseDamage"/"baseDmg" to "power" --- .../002_Save data/004_Game_SaveValues.rb | 6 +- .../002_Save data/005_Game_SaveConversions.rb | 3 +- .../012_Game_FollowerFactory.rb | 41 +- Data/Scripts/010_Data/001_GameData.rb | 5 +- .../Scripts/010_Data/002_PBS data/005_Move.rb | 451 +----------------- .../002_Battler/006_Battler_AbilityAndItem.rb | 4 +- .../011_Battle/003_Move/001_Battle_Move.rb | 12 +- .../003_Move/003_Move_UsageCalculations.rb | 36 +- .../003_Move/004_Move_BaseEffects.rb | 4 +- .../008_MoveEffects_MoveAttributes.rb | 2 +- .../008_Battle_AbilityEffects.rb | 174 +++---- .../009_Battle_ItemEffects.rb | 204 ++++---- .../001_Overworld_BattleStarting.rb | 100 ---- .../012_Overworld/002_Overworld_Metadata.rb | 4 +- .../012_Overworld/004_Overworld_FieldMoves.rb | 28 -- .../012_Overworld/007_Overworld_DayCare.rb | 57 --- Data/Scripts/013_Items/004_Item_Phone.rb | 4 +- Data/Scripts/013_Items/008_PokemonBag.rb | 95 ---- Data/Scripts/014_Pokemon/001_Pokemon.rb | 8 +- Data/Scripts/014_Pokemon/004_Pokemon_Move.rb | 8 +- Data/Scripts/016_UI/022_UI_MoveRelearner.rb | 4 +- .../002_ChallengeGenerator_Pokemon.rb | 36 +- .../004_ChallengeGenerator_BattleSim.rb | 2 +- .../005_AnimEditor_Functions.rb | 5 +- Data/Scripts/021_Compiler/001_Compiler.rb | 22 +- .../021_Compiler/002_Compiler_CompilePBS.rb | 4 +- 26 files changed, 295 insertions(+), 1024 deletions(-) diff --git a/Data/Scripts/002_Save data/004_Game_SaveValues.rb b/Data/Scripts/002_Save data/004_Game_SaveValues.rb index 0922a453d..33058998a 100644 --- a/Data/Scripts/002_Save data/004_Game_SaveValues.rb +++ b/Data/Scripts/002_Save data/004_Game_SaveValues.rb @@ -3,7 +3,7 @@ SaveData.register(:player) do ensure_class :Player save_value { $player } - load_value { |value| $player = $Trainer = value } + load_value { |value| $player = value } new_game_value { Player.new("Unnamed", GameData::TrainerType.keys.first) } from_old_format { |old_format| old_format[0] } end @@ -69,7 +69,7 @@ end SaveData.register(:map_factory) do ensure_class :PokemonMapFactory save_value { $map_factory } - load_value { |value| $map_factory = $MapFactory = value } + load_value { |value| $map_factory = value } from_old_format { |old_format| old_format[9] } end @@ -100,7 +100,7 @@ end SaveData.register(:bag) do ensure_class :PokemonBag save_value { $bag } - load_value { |value| $bag = $PokemonBag = value } + load_value { |value| $bag = value } new_game_value { PokemonBag.new } from_old_format { |old_format| old_format[13] } end diff --git a/Data/Scripts/002_Save data/005_Game_SaveConversions.rb b/Data/Scripts/002_Save data/005_Game_SaveConversions.rb index f2bb653cd..99fc34813 100644 --- a/Data/Scripts/002_Save data/005_Game_SaveConversions.rb +++ b/Data/Scripts/002_Save data/005_Game_SaveConversions.rb @@ -147,7 +147,8 @@ SaveData.register_conversion(:v20_refactor_follower_data) do display_title "Updating follower data format" to_value :global_metadata do |global| # NOTE: dependentEvents is still defined in class PokemonGlobalMetadata just - # for the sake of this conversion. It will be removed in future. + # for the sake of this conversion. It is deprecated and will be + # removed in v22. if global.dependentEvents && global.dependentEvents.length > 0 global.followers = [] global.dependentEvents.each do |follower| diff --git a/Data/Scripts/004_Game classes/012_Game_FollowerFactory.rb b/Data/Scripts/004_Game classes/012_Game_FollowerFactory.rb index 9fcab0f59..031a27101 100644 --- a/Data/Scripts/004_Game classes/012_Game_FollowerFactory.rb +++ b/Data/Scripts/004_Game classes/012_Game_FollowerFactory.rb @@ -49,7 +49,7 @@ end # Permanently stores data of follower events (i.e. in save files). #=============================================================================== class PokemonGlobalMetadata - attr_accessor :dependentEvents # Deprecated + attr_accessor :dependentEvents # Deprecated - to be removed in v22 attr_writer :followers def followers @@ -387,42 +387,3 @@ module Followers $game_temp.followers.put_followers_on_player end end - -#=============================================================================== -# Deprecated methods -#=============================================================================== -# @deprecated This method is slated to be removed in v21. -def pbAddDependency2(event_id, name, common_event_id) - Deprecation.warn_method("pbAddDependency2", "v21", "Followers.add(event_id, name, common_event_id)") - Followers.add(event_id, name, common_event_id) -end - -# @deprecated This method is slated to be removed in v21. -def pbAddDependency(event) - Deprecation.warn_method("pbAddDependency", "v21", "Followers.add_event(event)") - Followers.add_event(event) -end - -# @deprecated This method is slated to be removed in v21. -def pbRemoveDependency2(name) - Deprecation.warn_method("pbRemoveDependency2", "v21", "Followers.remove(name)") - Followers.remove(name) -end - -# @deprecated This method is slated to be removed in v21. -def pbRemoveDependency(event) - Deprecation.warn_method("pbRemoveDependency", "v21", "Followers.remove_event(event)") - Followers.remove_event(event) -end - -# @deprecated This method is slated to be removed in v21. -def pbRemoveDependencies - Deprecation.warn_method("pbRemoveDependencies", "v21", "Followers.clear") - Followers.clear -end - -# @deprecated This method is slated to be removed in v21. -def pbGetDependency(name) - Deprecation.warn_method("pbGetDependency", "v21", "Followers.get(name)") - Followers.get(name) -end diff --git a/Data/Scripts/010_Data/001_GameData.rb b/Data/Scripts/010_Data/001_GameData.rb index 8a278726c..f413c04e9 100644 --- a/Data/Scripts/010_Data/001_GameData.rb +++ b/Data/Scripts/010_Data/001_GameData.rb @@ -258,9 +258,10 @@ module GameData next if !self.const_get(c).is_a?(Class) next if !self.const_get(c).const_defined?(:DATA_FILENAME) if self.const_get(c).const_defined?(:OPTIONAL) && self.const_get(c)::OPTIONAL - next if !safeExists?(self.const_get(c)::DATA_FILENAME) + ret.push([self.const_get(c)::DATA_FILENAME, false]) + else + ret.push([self.const_get(c)::DATA_FILENAME, true]) end - ret.push(self.const_get(c)::DATA_FILENAME) end return ret 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 eeb0cf4d9..fb07e98b2 100644 --- a/Data/Scripts/010_Data/002_PBS data/005_Move.rb +++ b/Data/Scripts/010_Data/002_PBS data/005_Move.rb @@ -4,8 +4,7 @@ module GameData attr_reader :real_name attr_reader :type attr_reader :category - # TODO: Rename base_damage to power everywhere. - attr_reader :base_damage + attr_reader :power attr_reader :accuracy attr_reader :total_pp attr_reader :target @@ -25,7 +24,7 @@ module GameData "Name" => [:real_name, "s"], "Type" => [:type, "e", :Type], "Category" => [:category, "e", ["Physical", "Special", "Status"]], - "Power" => [:base_damage, "u"], + "Power" => [:power, "u"], "Accuracy" => [:accuracy, "u"], "TotalPP" => [:total_pp, "u"], "Target" => [:target, "e", :Target], @@ -40,12 +39,11 @@ module GameData include InstanceMethods def initialize(hash) - convert_move_data(hash) @id = hash[:id] @real_name = hash[:real_name] || "Unnamed" @type = hash[:type] || :NONE @category = hash[:category] || 2 - @base_damage = hash[:base_damage] || 0 + @power = hash[:power] || 0 @accuracy = hash[:accuracy] || 100 @total_pp = hash[:total_pp] || 5 @target = hash[:target] || :None @@ -58,6 +56,12 @@ module GameData @pbs_file_suffix = hash[:pbs_file_suffix] || "" end + # @deprecated This method is slated to be removed in v22. + def base_damage + Deprecation.warn_method("base_damage", "v22", "power") + return @power + end + # @return [String] the translated name of this move def name return pbGetMessageFromHash(MessageTypes::MOVE_NAMES, @real_name) @@ -73,13 +77,13 @@ module GameData end def physical? - return false if @base_damage == 0 + return false if @power == 0 return @category == 0 if Settings::MOVE_CATEGORY_PER_MOVE return GameData::Type.get(@type).physical? end def special? - return false if @base_damage == 0 + return false if @power == 0 return @category == 1 if Settings::MOVE_CATEGORY_PER_MOVE return GameData::Type.get(@type).special? end @@ -352,7 +356,7 @@ module GameData return 10 if pkmn.item.is_berry? return 80 if pkmn.item.is_mega_stone? if pkmn.item.is_TR? - ret = GameData::Move.get(pkmn.item.move).base_damage + ret = GameData::Move.get(pkmn.item.move).power ret = 10 if ret < 10 return ret end @@ -380,441 +384,12 @@ module GameData return dmgs[ppLeft] end =end - return @base_damage + return @power end def display_category(pkmn, move = nil); return @category; end def display_accuracy(pkmn, move = nil); return @accuracy; end - def convert_move_data(data) - new_code = data[:function_code] - case data[:function_code] - when "000" then new_code = "None" - when "001" then new_code = "DoesNothingUnusableInGravity" - when "002" then new_code = "Struggle" - when "003" - if data[:id] == :RELICSONG - new_code = "SleepTargetChangeUserMeloettaForm" - elsif data[:id] == :DARKVOID && Settings::MECHANICS_GENERATION >= 7 - new_code = "SleepTargetIfUserDarkrai" - else - new_code = "SleepTarget" - end - when "004" then new_code = "SleepTargetNextTurn" - when "005" then new_code = "PoisonTarget" - when "006" then new_code = "BadPoisonTarget" - when "007" - if data[:id] == :THUNDERWAVE - new_code = "ParalyzeTargetIfNotTypeImmune" - else - new_code = "ParalyzeTarget" - end - when "008" then new_code = "ParalyzeTargetAlwaysHitsInRainHitsTargetInSky" - when "009" then new_code = "ParalyzeFlinchTarget" - when "00A" then new_code = "BurnTarget" - when "00B" then new_code = "BurnFlinchTarget" - when "00C" then new_code = "FreezeTarget" - when "00D" then new_code = "FreezeTargetAlwaysHitsInHail" - when "00E" then new_code = "FreezeFlinchTarget" - when "00F", "010" then new_code = "FlinchTarget" - when "011" then new_code = "FlinchTargetFailsIfUserNotAsleep" - when "012" then new_code = "FlinchTargetFailsIfNotUserFirstTurn" - when "013", "014" then new_code = "ConfuseTarget" - when "015" then new_code = "ConfuseTargetAlwaysHitsInRainHitsTargetInSky" - when "016" then new_code = "AttractTarget" - when "017" then new_code = "ParalyzeBurnOrFreezeTarget" - when "018" then new_code = "CureUserBurnPoisonParalysis" - when "019" then new_code = "CureUserPartyStatus" - when "01A" then new_code = "StartUserSideImmunityToInflictedStatus" - when "01B" then new_code = "GiveUserStatusToTarget" - when "01C" then new_code = "RaiseUserAttack1" - when "01D" then new_code = "RaiseUserDefense1" - when "01E" then new_code = "RaiseUserDefense1CurlUpUser" - when "01F" then new_code = "RaiseUserSpeed1" - when "020" then new_code = "RaiseUserSpAtk1" - when "021" then new_code = "RaiseUserSpDef1PowerUpElectricMove" - when "022" then new_code = "RaiseUserEvasion1" - when "023" then new_code = "RaiseUserCriticalHitRate2" - when "024" then new_code = "RaiseUserAtkDef1" - when "025" then new_code = "RaiseUserAtkDefAcc1" - when "026" then new_code = "RaiseUserAtkSpd1" - when "027" then new_code = "RaiseUserAtkSpAtk1" - when "028" then new_code = "RaiseUserAtkSpAtk1Or2InSun" - when "029" then new_code = "RaiseUserAtkAcc1" - when "02A" then new_code = "RaiseUserDefSpDef1" - when "02B" then new_code = "RaiseUserSpAtkSpDefSpd1" - when "02C" then new_code = "RaiseUserSpAtkSpDef1" - when "02D" then new_code = "RaiseUserMainStats1" - when "02E" then new_code = "RaiseUserAttack2" - when "02F" then new_code = "RaiseUserDefense2" - when "030" then new_code = "RaiseUserSpeed2" - when "031" then new_code = "RaiseUserSpeed2LowerUserWeight" - when "032" then new_code = "RaiseUserSpAtk2" - when "033" then new_code = "RaiseUserSpDef2" - when "034" then new_code = "RaiseUserEvasion2MinimizeUser" - when "035" then new_code = "LowerUserDefSpDef1RaiseUserAtkSpAtkSpd2" - when "036" then new_code = "RaiseUserAtk1Spd2" - when "037" then new_code = "RaiseTargetRandomStat2" - when "038" then new_code = "RaiseUserDefense3" - when "039" then new_code = "RaiseUserSpAtk3" - when "03A" then new_code = "MaxUserAttackLoseHalfOfTotalHP" - when "03B" then new_code = "LowerUserAtkDef1" - when "03C" then new_code = "LowerUserDefSpDef1" - when "03D" then new_code = "LowerUserDefSpDefSpd1" - when "03E" then new_code = "LowerUserSpeed1" - when "03F" then new_code = "LowerUserSpAtk2" - when "040" then new_code = "RaiseTargetSpAtk1ConfuseTarget" - when "041" then new_code = "RaiseTargetAttack2ConfuseTarget" - when "042" then new_code = "LowerTargetAttack1" - when "043" then new_code = "LowerTargetDefense1" - when "044" - if data[:id] == :BULLDOZE - new_code = "LowerTargetSpeed1WeakerInGrassyTerrain" - else - new_code = "LowerTargetSpeed1" - end - when "045" then new_code = "LowerTargetSpAtk1" - when "046" then new_code = "LowerTargetSpDef1" - when "047" then new_code = "LowerTargetAccuracy1" - when "048" - if data[:id] == :SWEETSCENT && Settings::MECHANICS_GENERATION >= 6 - new_code = "LowerTargetEvasion2" - else - new_code = "LowerTargetEvasion1" - end - when "049" then new_code = "LowerTargetEvasion1RemoveSideEffects" - when "04A" then new_code = "LowerTargetAtkDef1" - when "04B" then new_code = "LowerTargetAttack2" - when "04C" then new_code = "LowerTargetDefense2" - when "04D" then new_code = "LowerTargetSpeed2" - when "04E" then new_code = "LowerTargetSpAtk2IfCanAttract" - when "04F" then new_code = "LowerTargetSpDef2" - when "050" then new_code = "ResetTargetStatStages" - when "051" then new_code = "ResetAllBattlersStatStages" - when "052" then new_code = "UserTargetSwapAtkSpAtkStages" - when "053" then new_code = "UserTargetSwapDefSpDefStages" - when "054" then new_code = "UserTargetSwapStatStages" - when "055" then new_code = "UserCopyTargetStatStages" - when "056" then new_code = "StartUserSideImmunityToStatStageLowering" - when "057" then new_code = "UserSwapBaseAtkDef" - when "058" then new_code = "UserTargetAverageBaseAtkSpAtk" - when "059" then new_code = "UserTargetAverageBaseDefSpDef" - when "05A" then new_code = "UserTargetAverageHP" - when "05B" then new_code = "StartUserSideDoubleSpeed" - when "05C" then new_code = "ReplaceMoveThisBattleWithTargetLastMoveUsed" - when "05D" then new_code = "ReplaceMoveWithTargetLastMoveUsed" - when "05E" then new_code = "SetUserTypesToUserMoveType" - when "05F" then new_code = "SetUserTypesToResistLastAttack" - when "060" then new_code = "SetUserTypesBasedOnEnvironment" - when "061" then new_code = "SetTargetTypesToWater" - when "062" then new_code = "SetUserTypesToTargetTypes" - when "063" then new_code = "SetTargetAbilityToSimple" - when "064" then new_code = "SetTargetAbilityToInsomnia" - when "065" then new_code = "SetUserAbilityToTargetAbility" - when "066" then new_code = "SetTargetAbilityToUserAbility" - when "067" then new_code = "UserTargetSwapAbilities" - when "068" then new_code = "NegateTargetAbility" - when "069" then new_code = "TransformUserIntoTarget" - when "06A" then new_code = "FixedDamage20" - when "06B" then new_code = "FixedDamage40" - when "06C" then new_code = "FixedDamageHalfTargetHP" - when "06D" then new_code = "FixedDamageUserLevel" - when "06E" then new_code = "LowerTargetHPToUserHP" - when "06F" then new_code = "FixedDamageUserLevelRandom" - when "070" - if data[:id] == :FISSURE - new_code = "OHKOHitsUndergroundTarget" - elsif data[:id] == :SHEERCOLD && Settings::MECHANICS_GENERATION >= 7 - new_code = "OHKOIce" - else - new_code = "OHKO" - end - when "071" then new_code = "CounterPhysicalDamage" - when "072" then new_code = "CounterSpecialDamage" - when "073" then new_code = "CounterDamagePlusHalf" - when "074" then new_code = "DamageTargetAlly" - when "075" then new_code = "DoublePowerIfTargetUnderwater" - when "076" then new_code = "DoublePowerIfTargetUnderground" - when "077" then new_code = "DoublePowerIfTargetInSky" - when "078" then new_code = "FlinchTargetDoublePowerIfTargetInSky" - when "079" then new_code = "DoublePowerAfterFusionFlare" - when "07A" then new_code = "DoublePowerAfterFusionBolt" - when "07B" then new_code = "DoublePowerIfTargetPoisoned" - when "07C" then new_code = "DoublePowerIfTargetParalyzedCureTarget" - when "07D" then new_code = "DoublePowerIfTargetAsleepCureTarget" - when "07E" then new_code = "DoublePowerIfUserPoisonedBurnedParalyzed" - when "07F" then new_code = "DoublePowerIfTargetStatusProblem" - when "080" then new_code = "DoublePowerIfTargetHPLessThanHalf" - when "081" then new_code = "DoublePowerIfUserLostHPThisTurn" - when "082" then new_code = "DoublePowerIfTargetLostHPThisTurn" - when "083" then new_code = "UsedAfterAllyRoundWithDoublePower" - when "084" then new_code = "DoublePowerIfTargetActed" - when "085" then new_code = "DoublePowerIfAllyFaintedLastTurn" - when "086" then new_code = "DoublePowerIfUserHasNoItem" - when "087" then new_code = "TypeAndPowerDependOnWeather" - when "088" then new_code = "PursueSwitchingFoe" - when "089" then new_code = "PowerHigherWithUserHappiness" - when "08A" then new_code = "PowerLowerWithUserHappiness" - when "08B" then new_code = "PowerHigherWithUserHP" - when "08C" then new_code = "PowerHigherWithTargetHP" - when "08D" then new_code = "PowerHigherWithTargetFasterThanUser" - when "08E" then new_code = "PowerHigherWithUserPositiveStatStages" - when "08F" then new_code = "PowerHigherWithTargetPositiveStatStages" - when "090" then new_code = "TypeDependsOnUserIVs" - when "091" then new_code = "PowerHigherWithConsecutiveUse" - when "092" then new_code = "PowerHigherWithConsecutiveUseOnUserSide" - when "093" then new_code = "StartRaiseUserAtk1WhenDamaged" - when "094" then new_code = "RandomlyDamageOrHealTarget" - when "095" then new_code = "RandomPowerDoublePowerIfTargetUnderground" - when "096" then new_code = "TypeAndPowerDependOnUserBerry" - when "097" then new_code = "PowerHigherWithLessPP" - when "098" then new_code = "PowerLowerWithUserHP" - when "099" then new_code = "PowerHigherWithUserFasterThanTarget" - when "09A" then new_code = "PowerHigherWithTargetWeight" - when "09B" then new_code = "PowerHigherWithUserHeavierThanTarget" - when "09C" then new_code = "PowerUpAllyMove" - when "09D" then new_code = "StartWeakenElectricMoves" - when "09E" then new_code = "StartWeakenFireMoves" - when "09F" - case data[:id] - when :MULTIATTACK - new_code = "TypeDependsOnUserMemory" - when :TECHNOBLAST - new_code = "TypeDependsOnUserDrive" - else - new_code = "TypeDependsOnUserPlate" - end - when "0A0" then new_code = "AlwaysCriticalHit" - when "0A1" then new_code = "StartPreventCriticalHitsAgainstUserSide" - when "0A2" then new_code = "StartWeakenPhysicalDamageAgainstUserSide" - when "0A3" then new_code = "StartWeakenSpecialDamageAgainstUserSide" - when "0A4" then new_code = "EffectDependsOnEnvironment" - when "0A5" - new_code = "None" - data[:accuracy] = 0 - when "0A6" then new_code = "EnsureNextMoveAlwaysHits" - when "0A7" then new_code = "StartNegateTargetEvasionStatStageAndGhostImmunity" - when "0A8" then new_code = "StartNegateTargetEvasionStatStageAndDarkImmunity" - when "0A9" then new_code = "IgnoreTargetDefSpDefEvaStatStages" - when "0AA" then new_code = "ProtectUser" - when "0AB" then new_code = "ProtectUserSideFromPriorityMoves" - when "0AC" then new_code = "ProtectUserSideFromMultiTargetDamagingMoves" - when "0AD" then new_code = "RemoveProtections" - when "0AE" then new_code = "UseLastMoveUsedByTarget" - when "0AF" then new_code = "UseLastMoveUsed" - when "0B0" then new_code = "UseMoveTargetIsAboutToUse" - when "0B1" then new_code = "BounceBackProblemCausingStatusMoves" - when "0B2" then new_code = "StealAndUseBeneficialStatusMove" - when "0B3" then new_code = "UseMoveDependingOnEnvironment" - when "0B4" then new_code = "UseRandomUserMoveIfAsleep" - when "0B5" then new_code = "UseRandomMoveFromUserParty" - when "0B6" then new_code = "UseRandomMove" - when "0B7" then new_code = "DisableTargetUsingSameMoveConsecutively" - when "0B8" then new_code = "DisableTargetMovesKnownByUser" - when "0B9" then new_code = "DisableTargetLastMoveUsed" - when "0BA" then new_code = "DisableTargetStatusMoves" - when "0BB" then new_code = "DisableTargetHealingMoves" - when "0BC" then new_code = "DisableTargetUsingDifferentMove" - when "0BD" then new_code = "HitTwoTimes" - when "0BE" then new_code = "HitTwoTimesPoisonTarget" - when "0BF" then new_code = "HitThreeTimesPowersUpWithEachHit" - when "0C0" - if data[:id] == :WATERSHURIKEN - new_code = "HitTwoToFiveTimesOrThreeForAshGreninja" - else - new_code = "HitTwoToFiveTimes" - end - when "0C1" then new_code = "HitOncePerUserTeamMember" - when "0C2" then new_code = "AttackAndSkipNextTurn" - when "0C3" then new_code = "TwoTurnAttack" - when "0C4" then new_code = "TwoTurnAttackOneTurnInSun" - when "0C5" then new_code = "TwoTurnAttackParalyzeTarget" - when "0C6" then new_code = "TwoTurnAttackBurnTarget" - when "0C7" then new_code = "TwoTurnAttackFlinchTarget" - when "0C8" then new_code = "TwoTurnAttackChargeRaiseUserDefense1" - when "0C9" then new_code = "TwoTurnAttackInvulnerableInSky" - when "0CA" then new_code = "TwoTurnAttackInvulnerableUnderground" - when "0CB" then new_code = "TwoTurnAttackInvulnerableUnderwater" - when "0CC" then new_code = "TwoTurnAttackInvulnerableInSkyParalyzeTarget" - when "0CD" then new_code = "TwoTurnAttackInvulnerableRemoveProtections" - when "0CE" then new_code = "TwoTurnAttackInvulnerableInSkyTargetCannotAct" - when "0CF" then new_code = "BindTarget" - when "0D0" then new_code = "BindTargetDoublePowerIfTargetUnderwater" - when "0D1" then new_code = "MultiTurnAttackPreventSleeping" - when "0D2" then new_code = "MultiTurnAttackConfuseUserAtEnd" - when "0D3" then new_code = "MultiTurnAttackPowersUpEachTurn" - when "0D4" then new_code = "MultiTurnAttackBideThenReturnDoubleDamage" - when "0D5" then new_code = "HealUserHalfOfTotalHP" - when "0D6" then new_code = "HealUserHalfOfTotalHPLoseFlyingTypeThisTurn" - when "0D7" then new_code = "HealUserPositionNextTurn" - when "0D8" then new_code = "HealUserDependingOnWeather" - when "0D9" then new_code = "HealUserFullyAndFallAsleep" - when "0DA" then new_code = "StartHealUserEachTurn" - when "0DB" then new_code = "StartHealUserEachTurnTrapUserInBattle" - when "0DC" then new_code = "StartLeechSeedTarget" - when "0DD" then new_code = "HealUserByHalfOfDamageDone" - when "0DE" then new_code = "HealUserByHalfOfDamageDoneIfTargetAsleep" - when "0DF" then new_code = "HealTargetHalfOfTotalHP" - when "0E0" then new_code = "UserFaintsExplosive" - when "0E1" then new_code = "UserFaintsFixedDamageUserHP" - when "0E2" then new_code = "UserFaintsLowerTargetAtkSpAtk2" - when "0E3" then new_code = "UserFaintsHealAndCureReplacement" - when "0E4" then new_code = "UserFaintsHealAndCureReplacementRestorePP" - when "0E5" then new_code = "StartPerishCountsForAllBattlers" - when "0E6" then new_code = "SetAttackerMovePPTo0IfUserFaints" - when "0E7" then new_code = "AttackerFaintsIfUserFaints" - when "0E8" then new_code = "UserEnduresFaintingThisTurn" - when "0E9" then new_code = "CannotMakeTargetFaint" - when "0EA" - if Settings::MECHANICS_GENERATION >= 8 - new_code = "SwitchOutUserStatusMove" - else - new_code = "FleeFromBattle" - end - when "0EB" then new_code = "SwitchOutTargetStatusMove" - when "0EC" then new_code = "SwitchOutTargetDamagingMove" - when "0ED" then new_code = "SwitchOutUserPassOnEffects" - when "0EE" then new_code = "SwitchOutUserDamagingMove" - when "0EF" then new_code = "TrapTargetInBattle" - when "0F0" then new_code = "RemoveTargetItem" - when "0F1" then new_code = "UserTakesTargetItem" - when "0F2" then new_code = "UserTargetSwapItems" - when "0F3" then new_code = "TargetTakesUserItem" - when "0F4" then new_code = "UserConsumeTargetBerry" - when "0F5" then new_code = "DestroyTargetBerryOrGem" - when "0F6" then new_code = "RestoreUserConsumedItem" - when "0F7" then new_code = "ThrowUserItemAtTarget" - when "0F8" then new_code = "StartTargetCannotUseItem" - when "0F9" then new_code = "StartNegateHeldItems" - when "0FA" then new_code = "RecoilQuarterOfDamageDealt" - when "0FB" then new_code = "RecoilThirdOfDamageDealt" - when "0FC" then new_code = "RecoilHalfOfDamageDealt" - when "0FD" then new_code = "RecoilThirdOfDamageDealtParalyzeTarget" - when "0FE" then new_code = "RecoilThirdOfDamageDealtBurnTarget" - when "0FF" then new_code = "StartSunWeather" - when "100" then new_code = "StartRainWeather" - when "101" then new_code = "StartSandstormWeather" - when "102" then new_code = "StartHailWeather" - when "103" then new_code = "AddSpikesToFoeSide" - when "104" then new_code = "AddToxicSpikesToFoeSide" - when "105" then new_code = "AddStealthRocksToFoeSide" - when "106" then new_code = "GrassPledge" - when "107" then new_code = "FirePledge" - when "108" then new_code = "WaterPledge" - when "109" then new_code = "AddMoneyGainedFromBattle" - when "10A" then new_code = "RemoveScreens" - when "10B" then new_code = "CrashDamageIfFailsUnusableInGravity" - when "10C" then new_code = "UserMakeSubstitute" - when "10D" then new_code = "CurseTargetOrLowerUserSpd1RaiseUserAtkDef1" - when "10E" then new_code = "LowerPPOfTargetLastMoveBy4" - when "10F" then new_code = "StartDamageTargetEachTurnIfTargetAsleep" - when "110" then new_code = "RemoveUserBindingAndEntryHazards" - when "111" then new_code = "AttackTwoTurnsLater" - when "112" then new_code = "UserAddStockpileRaiseDefSpDef1" - when "113" then new_code = "PowerDependsOnUserStockpile" - when "114" then new_code = "HealUserDependingOnUserStockpile" - when "115" then new_code = "FailsIfUserDamagedThisTurn" - when "116" then new_code = "FailsIfTargetActed" - when "117" then new_code = "RedirectAllMovesToUser" - when "118" then new_code = "StartGravity" - when "119" then new_code = "StartUserAirborne" - when "11A" then new_code = "StartTargetAirborneAndAlwaysHitByMoves" - when "11B" then new_code = "HitsTargetInSky" - when "11C" then new_code = "HitsTargetInSkyGroundsTarget" - when "11D" then new_code = "TargetActsNext" - when "11E" then new_code = "TargetActsLast" - when "11F" then new_code = "StartSlowerBattlersActFirst" - when "120" then new_code = "UserSwapsPositionsWithAlly" - when "121" then new_code = "UseTargetAttackInsteadOfUserAttack" - when "122" then new_code = "UseTargetDefenseInsteadOfTargetSpDef" - when "123" then new_code = "FailsUnlessTargetSharesTypeWithUser" - when "124" then new_code = "StartSwapAllBattlersBaseDefensiveStats" - when "125" then new_code = "FailsIfUserHasUnusedMove" - when "126" then new_code = "None" - when "127" then new_code = "ParalyzeTarget" - when "128" then new_code = "BurnTarget" - when "129" then new_code = "FreezeTarget" - when "12A" then new_code = "ConfuseTarget" - when "12B" then new_code = "LowerTargetDefense2" - when "12C" then new_code = "LowerTargetEvasion2" - when "12D" then new_code = "DoublePowerIfTargetUnderwater" - when "12E" then new_code = "AllBattlersLoseHalfHPUserSkipsNextTurn" - when "12F" then new_code = "TrapTargetInBattle" - when "130" then new_code = "UserLosesHalfHP" - when "131" then new_code = "StartShadowSkyWeather" - when "132" then new_code = "RemoveAllScreens" - when "133" then new_code = "DoesNothingFailsIfNoAlly" - when "134" then new_code = "DoesNothingCongratulations" - when "135" then new_code = "FreezeTargetSuperEffectiveAgainstWater" - when "136" then new_code = "RaiseUserDefense2" - when "137" then new_code = "RaisePlusMinusUserAndAlliesDefSpDef1" - when "138" then new_code = "RaiseTargetSpDef1" - when "139" then new_code = "LowerTargetAttack1BypassSubstitute" - when "13A" then new_code = "LowerTargetAtkSpAtk1" - when "13B" then new_code = "HoopaRemoveProtectionsBypassSubstituteLowerUserDef1" - when "13C" then new_code = "LowerTargetSpAtk1" - when "13D" then new_code = "LowerTargetSpAtk2" - when "13E" then new_code = "RaiseGroundedGrassBattlersAtkSpAtk1" - when "13F" then new_code = "RaiseGrassBattlersDef1" - when "140" then new_code = "LowerPoisonedTargetAtkSpAtkSpd1" - when "141" then new_code = "InvertTargetStatStages" - when "142" then new_code = "AddGhostTypeToTarget" - when "143" then new_code = "AddGrassTypeToTarget" - when "144" then new_code = "EffectivenessIncludesFlyingType" - when "145" then new_code = "TargetMovesBecomeElectric" - when "146" then new_code = "NormalMovesBecomeElectric" - when "147" then new_code = "RemoveProtectionsBypassSubstitute" - when "148" then new_code = "TargetNextFireMoveDamagesTarget" - when "149" then new_code = "ProtectUserSideFromDamagingMovesIfUserFirstTurn" - when "14A" then new_code = "ProtectUserSideFromStatusMoves" - when "14B" then new_code = "ProtectUserFromDamagingMovesKingsShield" - when "14C" then new_code = "ProtectUserFromTargetingMovesSpikyShield" - when "14D" then new_code = "TwoTurnAttackInvulnerableRemoveProtections" - when "14E" then new_code = "TwoTurnAttackRaiseUserSpAtkSpDefSpd2" - when "14F" then new_code = "HealUserByThreeQuartersOfDamageDone" - when "150" then new_code = "RaiseUserAttack3IfTargetFaints" - when "151" then new_code = "LowerTargetAtkSpAtk1SwitchOutUser" - when "152" then new_code = "TrapAllBattlersInBattleForOneTurn" - when "153" then new_code = "AddStickyWebToFoeSide" - when "154" then new_code = "StartElectricTerrain" - when "155" then new_code = "StartGrassyTerrain" - when "156" then new_code = "StartMistyTerrain" - when "157" then new_code = "DoubleMoneyGainedFromBattle" - when "158" then new_code = "FailsIfUserNotConsumedBerry" - when "159" then new_code = "PoisonTargetLowerTargetSpeed1" - when "15A" then new_code = "CureTargetBurn" - when "15B" then new_code = "CureTargetStatusHealUserHalfOfTotalHP" - when "15C" then new_code = "RaisePlusMinusUserAndAlliesAtkSpAtk1" - when "15D" then new_code = "UserStealTargetPositiveStatStages" - when "15E" then new_code = "EnsureNextCriticalHit" - when "15F" then new_code = "LowerUserDefense1" - when "160" then new_code = "HealUserByTargetAttackLowerTargetAttack1" - when "161" then new_code = "UserTargetSwapBaseSpeed" - when "162" then new_code = "UserLosesFireType" - when "163" then new_code = "IgnoreTargetAbility" - when "164" then new_code = "CategoryDependsOnHigherDamageIgnoreTargetAbility" - when "165" then new_code = "NegateTargetAbilityIfTargetActed" - when "166" then new_code = "DoublePowerIfUserLastMoveFailed" - when "167" then new_code = "StartWeakenDamageAgainstUserSideIfHail" - when "168" then new_code = "ProtectUserBanefulBunker" - when "169" then new_code = "TypeIsUserFirstType" - when "16A" then new_code = "RedirectAllMovesToTarget" - when "16B" then new_code = "TargetUsesItsLastUsedMoveAgain" - when "16C" then new_code = "DisableTargetSoundMoves" - when "16D" then new_code = "HealUserDependingOnSandstorm" - when "16E" then new_code = "HealTargetDependingOnGrassyTerrain" - when "16F" then new_code = "HealAllyOrDamageFoe" - when "170" then new_code = "UserLosesHalfOfTotalHPExplosive" - when "171" then new_code = "UsedAfterUserTakesPhysicalDamage" - when "172" then new_code = "BurnAttackerBeforeUserActs" - when "173" then new_code = "StartPsychicTerrain" - when "174" then new_code = "FailsIfNotUserFirstTurn" - when "175" then new_code = "HitTwoTimesFlinchTarget" - end - data[:function_code] = new_code - return data - end - alias __orig__get_property_for_PBS get_property_for_PBS unless method_defined?(:__orig__get_property_for_PBS) def get_property_for_PBS(key) ret = __orig__get_property_for_PBS(key) diff --git a/Data/Scripts/011_Battle/002_Battler/006_Battler_AbilityAndItem.rb b/Data/Scripts/011_Battle/002_Battler/006_Battler_AbilityAndItem.rb index 69989790f..c377c06df 100644 --- a/Data/Scripts/011_Battle/002_Battler/006_Battler_AbilityAndItem.rb +++ b/Data/Scripts/011_Battle/002_Battler/006_Battler_AbilityAndItem.rb @@ -460,9 +460,9 @@ class Battle::Battler return if move_type != gem_type @effects[PBEffects::GemConsumed] = @item_id if Settings::MECHANICS_GENERATION >= 6 - mults[:base_damage_multiplier] *= 1.3 + mults[:power_multiplier] *= 1.3 else - mults[:base_damage_multiplier] *= 1.5 + mults[:power_multiplier] *= 1.5 end end end 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 9f1598e11..3e5165ce2 100644 --- a/Data/Scripts/011_Battle/003_Move/001_Battle_Move.rb +++ b/Data/Scripts/011_Battle/003_Move/001_Battle_Move.rb @@ -4,7 +4,7 @@ class Battle::Move attr_accessor :id attr_reader :name attr_reader :function - attr_reader :baseDamage + attr_reader :power attr_reader :type attr_reader :category attr_reader :accuracy @@ -22,6 +22,12 @@ class Battle::Move def to_int; return @id; end + # @deprecated This method is slated to be removed in v22. + def baseDamage + Deprecation.warn_method("baseDamage", "v22", "power") + return @power + end + #============================================================================= # Creating a move #============================================================================= @@ -32,7 +38,7 @@ class Battle::Move @name = move.name # Get the move's name # Get data on the move @function = move.function_code - @baseDamage = move.base_damage + @power = move.power @type = move.type @category = move.category @accuracy = move.accuracy @@ -173,7 +179,7 @@ class Battle::Move "PowerHigherWithUserHP", "PowerLowerWithUserHP", "PowerHigherWithUserHappiness", "PowerLowerWithUserHappiness", "PowerHigherWithUserPositiveStatStages", "PowerDependsOnUserStockpile" - return pbBaseType(@baseDamage, battler, nil) + return pbBaseType(@power, battler, nil) end =end return @realMove.display_damage(battler.pokemon) diff --git a/Data/Scripts/011_Battle/003_Move/003_Move_UsageCalculations.rb b/Data/Scripts/011_Battle/003_Move/003_Move_UsageCalculations.rb index f3bbaafbb..fa3eb4cd0 100644 --- a/Data/Scripts/011_Battle/003_Move/003_Move_UsageCalculations.rb +++ b/Data/Scripts/011_Battle/003_Move/003_Move_UsageCalculations.rb @@ -248,7 +248,7 @@ class Battle::Move # Calculate whether this hit deals critical damage target.damageState.critical = pbIsCritical?(user, target) # Calcuate base power of move - baseDmg = pbBaseDamage(@baseDamage, user, target) + baseDmg = pbBaseDamage(@power, user, target) # Calculate user's attack stat atk, atkStage = pbGetAttackStats(user, target) if !target.hasActiveAbility?(:UNAWARE) || @battle.moldBreaker @@ -263,14 +263,14 @@ class Battle::Move end # Calculate all multiplier effects multipliers = { - :base_damage_multiplier => 1.0, + :power_multiplier => 1.0, :attack_multiplier => 1.0, :defense_multiplier => 1.0, :final_damage_multiplier => 1.0 } pbCalcDamageMultipliers(user, target, numTargets, type, baseDmg, multipliers) # Main damage calculation - baseDmg = [(baseDmg * multipliers[:base_damage_multiplier]).round, 1].max + baseDmg = [(baseDmg * multipliers[:power_multiplier]).round, 1].max atk = [(atk * multipliers[:attack_multiplier]).round, 1].max defense = [(defense * multipliers[:defense_multiplier]).round, 1].max damage = ((((2.0 * user.level / 5) + 2).floor * baseDmg * atk / defense).floor / 50).floor + 2 @@ -283,9 +283,9 @@ class Battle::Move if (@battle.pbCheckGlobalAbility(:DARKAURA) && type == :DARK) || (@battle.pbCheckGlobalAbility(:FAIRYAURA) && type == :FAIRY) if @battle.pbCheckGlobalAbility(:AURABREAK) - multipliers[:base_damage_multiplier] *= 2 / 3.0 + multipliers[:power_multiplier] *= 2 / 3.0 else - multipliers[:base_damage_multiplier] *= 4 / 3.0 + multipliers[:power_multiplier] *= 4 / 3.0 end end # Ability effects that alter damage @@ -332,47 +332,47 @@ class Battle::Move end # Parental Bond's second attack if user.effects[PBEffects::ParentalBond] == 1 - multipliers[:base_damage_multiplier] /= (Settings::MECHANICS_GENERATION >= 7) ? 4 : 2 + multipliers[:power_multiplier] /= (Settings::MECHANICS_GENERATION >= 7) ? 4 : 2 end # Other if user.effects[PBEffects::MeFirst] - multipliers[:base_damage_multiplier] *= 1.5 + multipliers[:power_multiplier] *= 1.5 end if user.effects[PBEffects::HelpingHand] && !self.is_a?(Battle::Move::Confusion) - multipliers[:base_damage_multiplier] *= 1.5 + multipliers[:power_multiplier] *= 1.5 end if user.effects[PBEffects::Charge] > 0 && type == :ELECTRIC - multipliers[:base_damage_multiplier] *= 2 + multipliers[:power_multiplier] *= 2 end # Mud Sport if type == :ELECTRIC if @battle.allBattlers.any? { |b| b.effects[PBEffects::MudSport] } - multipliers[:base_damage_multiplier] /= 3 + multipliers[:power_multiplier] /= 3 end if @battle.field.effects[PBEffects::MudSportField] > 0 - multipliers[:base_damage_multiplier] /= 3 + multipliers[:power_multiplier] /= 3 end end # Water Sport if type == :FIRE if @battle.allBattlers.any? { |b| b.effects[PBEffects::WaterSport] } - multipliers[:base_damage_multiplier] /= 3 + multipliers[:power_multiplier] /= 3 end if @battle.field.effects[PBEffects::WaterSportField] > 0 - multipliers[:base_damage_multiplier] /= 3 + multipliers[:power_multiplier] /= 3 end end # Terrain moves terrain_multiplier = (Settings::MECHANICS_GENERATION >= 8) ? 1.3 : 1.5 case @battle.field.terrain when :Electric - multipliers[:base_damage_multiplier] *= terrain_multiplier if type == :ELECTRIC && user.affectedByTerrain? + multipliers[:power_multiplier] *= terrain_multiplier if type == :ELECTRIC && user.affectedByTerrain? when :Grassy - multipliers[:base_damage_multiplier] *= terrain_multiplier if type == :GRASS && user.affectedByTerrain? + multipliers[:power_multiplier] *= terrain_multiplier if type == :GRASS && user.affectedByTerrain? when :Psychic - multipliers[:base_damage_multiplier] *= terrain_multiplier if type == :PSYCHIC && user.affectedByTerrain? + multipliers[:power_multiplier] *= terrain_multiplier if type == :PSYCHIC && user.affectedByTerrain? when :Misty - multipliers[:base_damage_multiplier] /= 2 if type == :DRAGON && target.affectedByTerrain? + multipliers[:power_multiplier] /= 2 if type == :DRAGON && target.affectedByTerrain? end # Badge multipliers if @battle.internalBattle @@ -470,7 +470,7 @@ class Battle::Move multipliers[:final_damage_multiplier] *= 2 end # Move-specific base damage modifiers - multipliers[:base_damage_multiplier] = pbBaseDamageMultiplier(multipliers[:base_damage_multiplier], user, target) + multipliers[:power_multiplier] = pbBaseDamageMultiplier(multipliers[:power_multiplier], user, target) # Move-specific final damage modifiers multipliers[:final_damage_multiplier] = pbModifyDamage(multipliers[:final_damage_multiplier], user, target) end diff --git a/Data/Scripts/011_Battle/003_Move/004_Move_BaseEffects.rb b/Data/Scripts/011_Battle/003_Move/004_Move_BaseEffects.rb index d7081a9a6..7d34efa9d 100644 --- a/Data/Scripts/011_Battle/003_Move/004_Move_BaseEffects.rb +++ b/Data/Scripts/011_Battle/003_Move/004_Move_BaseEffects.rb @@ -27,7 +27,7 @@ class Battle::Move::Confusion < Battle::Move @id = :CONFUSEDAMAGE @name = "" @function = "None" - @baseDamage = 40 + @power = 40 @type = nil @category = 0 @accuracy = 100 @@ -56,7 +56,7 @@ class Battle::Move::Struggle < Battle::Move @id = (move) ? move.id : :STRUGGLE @name = (move) ? move.name : _INTL("Struggle") @function = "Struggle" - @baseDamage = 50 + @power = 50 @type = nil @category = 0 @accuracy = 0 diff --git a/Data/Scripts/011_Battle/003_Move/008_MoveEffects_MoveAttributes.rb b/Data/Scripts/011_Battle/003_Move/008_MoveEffects_MoveAttributes.rb index 500667125..488c2aef4 100644 --- a/Data/Scripts/011_Battle/003_Move/008_MoveEffects_MoveAttributes.rb +++ b/Data/Scripts/011_Battle/003_Move/008_MoveEffects_MoveAttributes.rb @@ -331,7 +331,7 @@ class Battle::Move::PowerHigherWithConsecutiveUse < Battle::Move oldVal = user.effects[PBEffects::FuryCutter] super maxMult = 1 - while (@baseDamage << (maxMult - 1)) < 160 + while (@power << (maxMult - 1)) < 160 maxMult += 1 # 1-4 for base damage of 20, 1-3 for base damage of 40 end user.effects[PBEffects::FuryCutter] = (oldVal >= maxMult) ? maxMult : oldVal + 1 diff --git a/Data/Scripts/011_Battle/006_Other battle code/008_Battle_AbilityEffects.rb b/Data/Scripts/011_Battle/006_Other battle code/008_Battle_AbilityEffects.rb index 46009bde7..901b42ff3 100644 --- a/Data/Scripts/011_Battle/006_Other battle code/008_Battle_AbilityEffects.rb +++ b/Data/Scripts/011_Battle/006_Other battle code/008_Battle_AbilityEffects.rb @@ -185,24 +185,24 @@ module Battle::AbilityEffects #============================================================================= - def self.triggerDamageCalcFromUser(ability, user, target, move, mults, base_damage, type) - DamageCalcFromUser.trigger(ability, user, target, move, mults, base_damage, type) + def self.triggerDamageCalcFromUser(ability, user, target, move, mults, power, type) + DamageCalcFromUser.trigger(ability, user, target, move, mults, power, type) end - def self.triggerDamageCalcFromAlly(ability, user, target, move, mults, base_damage, type) - DamageCalcFromAlly.trigger(ability, user, target, move, mults, base_damage, type) + def self.triggerDamageCalcFromAlly(ability, user, target, move, mults, power, type) + DamageCalcFromAlly.trigger(ability, user, target, move, mults, power, type) end - def self.triggerDamageCalcFromTarget(ability, user, target, move, mults, base_damage, type) - DamageCalcFromTarget.trigger(ability, user, target, move, mults, base_damage, type) + def self.triggerDamageCalcFromTarget(ability, user, target, move, mults, power, type) + DamageCalcFromTarget.trigger(ability, user, target, move, mults, power, type) end - def self.triggerDamageCalcFromTargetNonIgnorable(ability, user, target, move, mults, base_damage, type) - DamageCalcFromTargetNonIgnorable.trigger(ability, user, target, move, mults, base_damage, type) + def self.triggerDamageCalcFromTargetNonIgnorable(ability, user, target, move, mults, power, type) + DamageCalcFromTargetNonIgnorable.trigger(ability, user, target, move, mults, power, type) end - def self.triggerDamageCalcFromTargetAlly(ability, user, target, move, mults, base_damage, type) - DamageCalcFromTargetAlly.trigger(ability, user, target, move, mults, base_damage, type) + def self.triggerDamageCalcFromTargetAlly(ability, user, target, move, mults, power, type) + DamageCalcFromTargetAlly.trigger(ability, user, target, move, mults, power, type) end def self.triggerCriticalCalcFromUser(ability, user, target, crit_stage) @@ -1195,15 +1195,15 @@ Battle::AbilityEffects::AccuracyCalcFromTarget.add(:WONDERSKIN, #=============================================================================== Battle::AbilityEffects::DamageCalcFromUser.add(:AERILATE, - proc { |ability, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if move.powerBoost + proc { |ability, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if move.powerBoost } ) Battle::AbilityEffects::DamageCalcFromUser.copy(:AERILATE, :PIXILATE, :REFRIGERATE, :GALVANIZE, :NORMALIZE) Battle::AbilityEffects::DamageCalcFromUser.add(:ANALYTIC, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| # NOTE: In the official games, if another battler faints earlier in the # round but it would have moved after the user, then Analytic does not # power up the move. However, this makes the determination so much @@ -1213,13 +1213,13 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:ANALYTIC, # "power up the move if all other battlers on the field right now have # already moved". if move.pbMoveFailedLastInRound?(user, false) - mults[:base_damage_multiplier] *= 1.3 + mults[:power_multiplier] *= 1.3 end } ) Battle::AbilityEffects::DamageCalcFromUser.add(:BLAZE, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if user.hp <= user.totalhp / 3 && type == :FIRE mults[:attack_multiplier] *= 1.5 end @@ -1227,25 +1227,25 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:BLAZE, ) Battle::AbilityEffects::DamageCalcFromUser.add(:DEFEATIST, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:attack_multiplier] /= 2 if user.hp <= user.totalhp / 2 } ) Battle::AbilityEffects::DamageCalcFromUser.add(:DRAGONSMAW, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:attack_multiplier] *= 1.5 if type == :DRAGON } ) Battle::AbilityEffects::DamageCalcFromUser.add(:FLAREBOOST, - proc { |ability, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.5 if user.burned? && move.specialMove? + proc { |ability, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.5 if user.burned? && move.specialMove? } ) Battle::AbilityEffects::DamageCalcFromUser.add(:FLASHFIRE, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if user.effects[PBEffects::FlashFire] && type == :FIRE mults[:attack_multiplier] *= 1.5 end @@ -1253,7 +1253,7 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:FLASHFIRE, ) Battle::AbilityEffects::DamageCalcFromUser.add(:FLOWERGIFT, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if move.physicalMove? && [:Sun, :HarshSun].include?(user.effectiveWeather) mults[:attack_multiplier] *= 1.5 end @@ -1261,13 +1261,13 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:FLOWERGIFT, ) Battle::AbilityEffects::DamageCalcFromUser.add(:GORILLATACTICS, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:attack_multiplier] *= 1.5 if move.physicalMove? } ) Battle::AbilityEffects::DamageCalcFromUser.add(:GUTS, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if user.pbHasAnyStatus? && move.physicalMove? mults[:attack_multiplier] *= 1.5 end @@ -1275,7 +1275,7 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:GUTS, ) Battle::AbilityEffects::DamageCalcFromUser.add(:HUGEPOWER, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:attack_multiplier] *= 2 if move.physicalMove? } ) @@ -1283,25 +1283,25 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:HUGEPOWER, Battle::AbilityEffects::DamageCalcFromUser.copy(:HUGEPOWER, :PUREPOWER) Battle::AbilityEffects::DamageCalcFromUser.add(:HUSTLE, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:attack_multiplier] *= 1.5 if move.physicalMove? } ) Battle::AbilityEffects::DamageCalcFromUser.add(:IRONFIST, - proc { |ability, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if move.punchingMove? + proc { |ability, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if move.punchingMove? } ) Battle::AbilityEffects::DamageCalcFromUser.add(:MEGALAUNCHER, - proc { |ability, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.5 if move.pulseMove? + proc { |ability, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.5 if move.pulseMove? } ) Battle::AbilityEffects::DamageCalcFromUser.add(:MINUS, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| next if !move.specialMove? if user.allAllies.any? { |b| b.hasActiveAbility?([:MINUS, :PLUS]) } mults[:attack_multiplier] *= 1.5 @@ -1312,7 +1312,7 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:MINUS, Battle::AbilityEffects::DamageCalcFromUser.copy(:MINUS, :PLUS) Battle::AbilityEffects::DamageCalcFromUser.add(:NEUROFORCE, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if Effectiveness.super_effective?(target.damageState.typeMod) mults[:final_damage_multiplier] *= 1.25 end @@ -1320,7 +1320,7 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:NEUROFORCE, ) Battle::AbilityEffects::DamageCalcFromUser.add(:OVERGROW, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if user.hp <= user.totalhp / 3 && type == :GRASS mults[:attack_multiplier] *= 1.5 end @@ -1328,52 +1328,52 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:OVERGROW, ) Battle::AbilityEffects::DamageCalcFromUser.add(:PUNKROCK, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:attack_multiplier] *= 1.3 if move.soundMove? } ) Battle::AbilityEffects::DamageCalcFromUser.add(:RECKLESS, - proc { |ability, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if move.recoilMove? + proc { |ability, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if move.recoilMove? } ) Battle::AbilityEffects::DamageCalcFromUser.add(:RIVALRY, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if user.gender != 2 && target.gender != 2 if user.gender == target.gender - mults[:base_damage_multiplier] *= 1.25 + mults[:power_multiplier] *= 1.25 else - mults[:base_damage_multiplier] *= 0.75 + mults[:power_multiplier] *= 0.75 end end } ) Battle::AbilityEffects::DamageCalcFromUser.add(:SANDFORCE, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if user.effectiveWeather == :Sandstorm && [:ROCK, :GROUND, :STEEL].include?(type) - mults[:base_damage_multiplier] *= 1.3 + mults[:power_multiplier] *= 1.3 end } ) Battle::AbilityEffects::DamageCalcFromUser.add(:SHEERFORCE, - proc { |ability, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.3 if move.addlEffect > 0 + proc { |ability, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.3 if move.addlEffect > 0 } ) Battle::AbilityEffects::DamageCalcFromUser.add(:SLOWSTART, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:attack_multiplier] /= 2 if user.effects[PBEffects::SlowStart] > 0 && move.physicalMove? } ) Battle::AbilityEffects::DamageCalcFromUser.add(:SOLARPOWER, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if move.specialMove? && [:Sun, :HarshSun].include?(user.effectiveWeather) mults[:attack_multiplier] *= 1.5 end @@ -1381,37 +1381,37 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:SOLARPOWER, ) Battle::AbilityEffects::DamageCalcFromUser.add(:SNIPER, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] *= 1.5 if target.damageState.critical } ) Battle::AbilityEffects::DamageCalcFromUser.add(:STAKEOUT, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:attack_multiplier] *= 2 if target.battle.choices[target.index][0] == :SwitchOut } ) Battle::AbilityEffects::DamageCalcFromUser.add(:STEELWORKER, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:attack_multiplier] *= 1.5 if type == :STEEL } ) Battle::AbilityEffects::DamageCalcFromUser.add(:STEELYSPIRIT, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] *= 1.5 if type == :STEEL } ) Battle::AbilityEffects::DamageCalcFromUser.add(:STRONGJAW, - proc { |ability, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.5 if move.bitingMove? + proc { |ability, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.5 if move.bitingMove? } ) Battle::AbilityEffects::DamageCalcFromUser.add(:SWARM, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if user.hp <= user.totalhp / 3 && type == :BUG mults[:attack_multiplier] *= 1.5 end @@ -1419,22 +1419,22 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:SWARM, ) Battle::AbilityEffects::DamageCalcFromUser.add(:TECHNICIAN, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if user.index != target.index && move && move.id != :STRUGGLE && - baseDmg * mults[:base_damage_multiplier] <= 60 - mults[:base_damage_multiplier] *= 1.5 + power * mults[:power_multiplier] <= 60 + mults[:power_multiplier] *= 1.5 end } ) Battle::AbilityEffects::DamageCalcFromUser.add(:TINTEDLENS, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] *= 2 if Effectiveness.resistant?(target.damageState.typeMod) } ) Battle::AbilityEffects::DamageCalcFromUser.add(:TORRENT, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if user.hp <= user.totalhp / 3 && type == :WATER mults[:attack_multiplier] *= 1.5 end @@ -1442,27 +1442,27 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:TORRENT, ) Battle::AbilityEffects::DamageCalcFromUser.add(:TOUGHCLAWS, - proc { |ability, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 4 / 3.0 if move.contactMove? + proc { |ability, user, target, move, mults, power, type| + mults[:power_multiplier] *= 4 / 3.0 if move.contactMove? } ) Battle::AbilityEffects::DamageCalcFromUser.add(:TOXICBOOST, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if user.poisoned? && move.physicalMove? - mults[:base_damage_multiplier] *= 1.5 + mults[:power_multiplier] *= 1.5 end } ) Battle::AbilityEffects::DamageCalcFromUser.add(:TRANSISTOR, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:attack_multiplier] *= 1.5 if type == :ELECTRIC } ) Battle::AbilityEffects::DamageCalcFromUser.add(:WATERBUBBLE, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:attack_multiplier] *= 2 if type == :WATER } ) @@ -1472,14 +1472,14 @@ Battle::AbilityEffects::DamageCalcFromUser.add(:WATERBUBBLE, #=============================================================================== Battle::AbilityEffects::DamageCalcFromAlly.add(:BATTERY, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| next if !move.specialMove? mults[:final_damage_multiplier] *= 1.3 } ) Battle::AbilityEffects::DamageCalcFromAlly.add(:FLOWERGIFT, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if move.physicalMove? && [:Sun, :HarshSun].include?(user.effectiveWeather) mults[:attack_multiplier] *= 1.5 end @@ -1487,13 +1487,13 @@ Battle::AbilityEffects::DamageCalcFromAlly.add(:FLOWERGIFT, ) Battle::AbilityEffects::DamageCalcFromAlly.add(:POWERSPOT, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] *= 1.3 } ) Battle::AbilityEffects::DamageCalcFromAlly.add(:STEELYSPIRIT, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] *= 1.5 if type == :STEEL } ) @@ -1503,13 +1503,13 @@ Battle::AbilityEffects::DamageCalcFromAlly.add(:STEELYSPIRIT, #=============================================================================== Battle::AbilityEffects::DamageCalcFromTarget.add(:DRYSKIN, - proc { |ability, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.25 if type == :FIRE + proc { |ability, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.25 if type == :FIRE } ) Battle::AbilityEffects::DamageCalcFromTarget.add(:FILTER, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if Effectiveness.super_effective?(target.damageState.typeMod) mults[:final_damage_multiplier] *= 0.75 end @@ -1519,7 +1519,7 @@ Battle::AbilityEffects::DamageCalcFromTarget.add(:FILTER, Battle::AbilityEffects::DamageCalcFromTarget.copy(:FILTER, :SOLIDROCK) Battle::AbilityEffects::DamageCalcFromTarget.add(:FLOWERGIFT, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if move.specialMove? && [:Sun, :HarshSun].include?(target.effectiveWeather) mults[:defense_multiplier] *= 1.5 end @@ -1527,39 +1527,39 @@ Battle::AbilityEffects::DamageCalcFromTarget.add(:FLOWERGIFT, ) Battle::AbilityEffects::DamageCalcFromTarget.add(:FLUFFY, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] *= 2 if move.calcType == :FIRE mults[:final_damage_multiplier] /= 2 if move.pbContactMove?(user) } ) Battle::AbilityEffects::DamageCalcFromTarget.add(:FURCOAT, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:defense_multiplier] *= 2 if move.physicalMove? || move.function == "UseTargetDefenseInsteadOfTargetSpDef" # Psyshock } ) Battle::AbilityEffects::DamageCalcFromTarget.add(:GRASSPELT, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:defense_multiplier] *= 1.5 if user.battle.field.terrain == :Grassy } ) Battle::AbilityEffects::DamageCalcFromTarget.add(:HEATPROOF, - proc { |ability, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] /= 2 if type == :FIRE + proc { |ability, user, target, move, mults, power, type| + mults[:power_multiplier] /= 2 if type == :FIRE } ) Battle::AbilityEffects::DamageCalcFromTarget.add(:ICESCALES, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] /= 2 if move.specialMove? } ) Battle::AbilityEffects::DamageCalcFromTarget.add(:MARVELSCALE, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if target.pbHasAnyStatus? && move.physicalMove? mults[:defense_multiplier] *= 1.5 end @@ -1567,25 +1567,25 @@ Battle::AbilityEffects::DamageCalcFromTarget.add(:MARVELSCALE, ) Battle::AbilityEffects::DamageCalcFromTarget.add(:MULTISCALE, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] /= 2 if target.hp == target.totalhp } ) Battle::AbilityEffects::DamageCalcFromTarget.add(:PUNKROCK, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] /= 2 if move.soundMove? } ) Battle::AbilityEffects::DamageCalcFromTarget.add(:THICKFAT, - proc { |ability, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] /= 2 if [:FIRE, :ICE].include?(type) + proc { |ability, user, target, move, mults, power, type| + mults[:power_multiplier] /= 2 if [:FIRE, :ICE].include?(type) } ) Battle::AbilityEffects::DamageCalcFromTarget.add(:WATERBUBBLE, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] /= 2 if type == :FIRE } ) @@ -1595,7 +1595,7 @@ Battle::AbilityEffects::DamageCalcFromTarget.add(:WATERBUBBLE, #=============================================================================== Battle::AbilityEffects::DamageCalcFromTargetNonIgnorable.add(:PRISMARMOR, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if Effectiveness.super_effective?(target.damageState.typeMod) mults[:final_damage_multiplier] *= 0.75 end @@ -1603,7 +1603,7 @@ Battle::AbilityEffects::DamageCalcFromTargetNonIgnorable.add(:PRISMARMOR, ) Battle::AbilityEffects::DamageCalcFromTargetNonIgnorable.add(:SHADOWSHIELD, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] /= 2 if target.hp == target.totalhp } ) @@ -1613,7 +1613,7 @@ Battle::AbilityEffects::DamageCalcFromTargetNonIgnorable.add(:SHADOWSHIELD, #=============================================================================== Battle::AbilityEffects::DamageCalcFromTargetAlly.add(:FLOWERGIFT, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| if move.specialMove? && [:Sun, :HarshSun].include?(target.effectiveWeather) mults[:defense_multiplier] *= 1.5 end @@ -1621,7 +1621,7 @@ Battle::AbilityEffects::DamageCalcFromTargetAlly.add(:FLOWERGIFT, ) Battle::AbilityEffects::DamageCalcFromTargetAlly.add(:FRIENDGUARD, - proc { |ability, user, target, move, mults, baseDmg, type| + proc { |ability, user, target, move, mults, power, type| mults[:final_damage_multiplier] *= 0.75 } ) @@ -2739,7 +2739,7 @@ Battle::AbilityEffects::OnSwitchIn.add(:FOREWARN, forewarnMoves = [] battle.allOtherSideBattlers(battler.index).each do |b| b.eachMove do |m| - power = m.baseDamage + power = m.power power = 160 if ["OHKO", "OHKOIce", "OHKOHitsUndergroundTarget"].include?(m.function) power = 150 if ["PowerHigherWithUserHP"].include?(m.function) # Eruption # Counter, Mirror Coat, Metal Burst diff --git a/Data/Scripts/011_Battle/006_Other battle code/009_Battle_ItemEffects.rb b/Data/Scripts/011_Battle/006_Other battle code/009_Battle_ItemEffects.rb index 9ae62a8ab..2761d3652 100644 --- a/Data/Scripts/011_Battle/006_Other battle code/009_Battle_ItemEffects.rb +++ b/Data/Scripts/011_Battle/006_Other battle code/009_Battle_ItemEffects.rb @@ -109,12 +109,12 @@ module Battle::ItemEffects #============================================================================= - def self.triggerDamageCalcFromUser(item, user, target, move, mults, base_damage, type) - DamageCalcFromUser.trigger(item, user, target, move, mults, base_damage, type) + def self.triggerDamageCalcFromUser(item, user, target, move, mults, power, type) + DamageCalcFromUser.trigger(item, user, target, move, mults, power, type) end - def self.triggerDamageCalcFromTarget(item, user, target, move, mults, base_damage, type) - DamageCalcFromTarget.trigger(item, user, target, move, mults, base_damage, type) + def self.triggerDamageCalcFromTarget(item, user, target, move, mults, power, type) + DamageCalcFromTarget.trigger(item, user, target, move, mults, power, type) end def self.triggerCriticalCalcFromUser(item, user, target, crit_stage) @@ -724,63 +724,63 @@ Battle::ItemEffects::AccuracyCalcFromTarget.copy(:BRIGHTPOWDER, :LAXINCENSE) #=============================================================================== Battle::ItemEffects::DamageCalcFromUser.add(:ADAMANTORB, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| if user.isSpecies?(:DIALGA) && [:DRAGON, :STEEL].include?(type) - mults[:base_damage_multiplier] *= 1.2 + mults[:power_multiplier] *= 1.2 end } ) Battle::ItemEffects::DamageCalcFromUser.add(:BLACKBELT, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :FIGHTING + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :FIGHTING } ) Battle::ItemEffects::DamageCalcFromUser.copy(:BLACKBELT, :FISTPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:BLACKGLASSES, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :DARK + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :DARK } ) Battle::ItemEffects::DamageCalcFromUser.copy(:BLACKGLASSES, :DREADPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:BUGGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:BUG, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:CHARCOAL, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :FIRE + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :FIRE } ) Battle::ItemEffects::DamageCalcFromUser.copy(:CHARCOAL, :FLAMEPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:CHOICEBAND, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.5 if move.physicalMove? + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.5 if move.physicalMove? } ) Battle::ItemEffects::DamageCalcFromUser.add(:CHOICESPECS, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.5 if move.specialMove? + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.5 if move.specialMove? } ) Battle::ItemEffects::DamageCalcFromUser.add(:DARKGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:DARK, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:DEEPSEATOOTH, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| if user.isSpecies?(:CLAMPERL) && move.specialMove? mults[:attack_multiplier] *= 2 end @@ -788,27 +788,27 @@ Battle::ItemEffects::DamageCalcFromUser.add(:DEEPSEATOOTH, ) Battle::ItemEffects::DamageCalcFromUser.add(:DRAGONFANG, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :DRAGON + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :DRAGON } ) Battle::ItemEffects::DamageCalcFromUser.copy(:DRAGONFANG, :DRACOPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:DRAGONGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:DRAGON, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:ELECTRICGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:ELECTRIC, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:EXPERTBELT, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| if Effectiveness.super_effective?(target.damageState.typeMod) mults[:final_damage_multiplier] *= 1.2 end @@ -816,71 +816,71 @@ Battle::ItemEffects::DamageCalcFromUser.add(:EXPERTBELT, ) Battle::ItemEffects::DamageCalcFromUser.add(:FAIRYGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:FAIRY, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:FIGHTINGGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:FIGHTING, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:FIREGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:FIRE, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:FLYINGGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:FLYING, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:GHOSTGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:GHOST, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:GRASSGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:GRASS, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:GRISEOUSORB, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| if user.isSpecies?(:GIRATINA) && [:DRAGON, :GHOST].include?(type) - mults[:base_damage_multiplier] *= 1.2 + mults[:power_multiplier] *= 1.2 end } ) Battle::ItemEffects::DamageCalcFromUser.add(:GROUNDGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:GROUND, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:HARDSTONE, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :ROCK + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :ROCK } ) Battle::ItemEffects::DamageCalcFromUser.copy(:HARDSTONE, :STONEPLATE, :ROCKINCENSE) Battle::ItemEffects::DamageCalcFromUser.add(:ICEGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:ICE, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:LIFEORB, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| if !move.is_a?(Battle::Move::Confusion) mults[:final_damage_multiplier] *= 1.3 end @@ -888,142 +888,142 @@ Battle::ItemEffects::DamageCalcFromUser.add(:LIFEORB, ) Battle::ItemEffects::DamageCalcFromUser.add(:LIGHTBALL, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| mults[:attack_multiplier] *= 2 if user.isSpecies?(:PIKACHU) } ) Battle::ItemEffects::DamageCalcFromUser.add(:LUSTROUSORB, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| if user.isSpecies?(:PALKIA) && [:DRAGON, :WATER].include?(type) - mults[:base_damage_multiplier] *= 1.2 + mults[:power_multiplier] *= 1.2 end } ) Battle::ItemEffects::DamageCalcFromUser.add(:MAGNET, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :ELECTRIC + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :ELECTRIC } ) Battle::ItemEffects::DamageCalcFromUser.copy(:MAGNET, :ZAPPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:METALCOAT, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :STEEL + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :STEEL } ) Battle::ItemEffects::DamageCalcFromUser.copy(:METALCOAT, :IRONPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:METRONOME, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| met = 1 + (0.2 * [user.effects[PBEffects::Metronome], 5].min) mults[:final_damage_multiplier] *= met } ) Battle::ItemEffects::DamageCalcFromUser.add(:MIRACLESEED, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :GRASS + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :GRASS } ) Battle::ItemEffects::DamageCalcFromUser.copy(:MIRACLESEED, :MEADOWPLATE, :ROSEINCENSE) Battle::ItemEffects::DamageCalcFromUser.add(:MUSCLEBAND, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.1 if move.physicalMove? + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.1 if move.physicalMove? } ) Battle::ItemEffects::DamageCalcFromUser.add(:MYSTICWATER, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :WATER + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :WATER } ) Battle::ItemEffects::DamageCalcFromUser.copy(:MYSTICWATER, :SPLASHPLATE, :SEAINCENSE, :WAVEINCENSE) Battle::ItemEffects::DamageCalcFromUser.add(:NEVERMELTICE, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :ICE + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :ICE } ) Battle::ItemEffects::DamageCalcFromUser.copy(:NEVERMELTICE, :ICICLEPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:NORMALGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:NORMAL, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:PIXIEPLATE, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :FAIRY + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :FAIRY } ) Battle::ItemEffects::DamageCalcFromUser.add(:POISONBARB, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :POISON + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :POISON } ) Battle::ItemEffects::DamageCalcFromUser.copy(:POISONBARB, :TOXICPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:POISONGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:POISON, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:PSYCHICGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:PSYCHIC, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:ROCKGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:ROCK, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:SHARPBEAK, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :FLYING + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :FLYING } ) Battle::ItemEffects::DamageCalcFromUser.copy(:SHARPBEAK, :SKYPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:SILKSCARF, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :NORMAL + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :NORMAL } ) Battle::ItemEffects::DamageCalcFromUser.add(:SILVERPOWDER, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :BUG + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :BUG } ) Battle::ItemEffects::DamageCalcFromUser.copy(:SILVERPOWDER, :INSECTPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:SOFTSAND, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :GROUND + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :GROUND } ) Battle::ItemEffects::DamageCalcFromUser.copy(:SOFTSAND, :EARTHPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:SOULDEW, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| next if !user.isSpecies?(:LATIAS) && !user.isSpecies?(:LATIOS) if Settings::SOUL_DEW_POWERS_UP_TYPES mults[:final_damage_multiplier] *= 1.2 if [:DRAGON, :PSYCHIC].include?(type) @@ -1034,21 +1034,21 @@ Battle::ItemEffects::DamageCalcFromUser.add(:SOULDEW, ) Battle::ItemEffects::DamageCalcFromUser.add(:SPELLTAG, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :GHOST + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :GHOST } ) Battle::ItemEffects::DamageCalcFromUser.copy(:SPELLTAG, :SPOOKYPLATE) Battle::ItemEffects::DamageCalcFromUser.add(:STEELGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:STEEL, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:THICKCLUB, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| if (user.isSpecies?(:CUBONE) || user.isSpecies?(:MAROWAK)) && move.physicalMove? mults[:attack_multiplier] *= 2 end @@ -1056,22 +1056,22 @@ Battle::ItemEffects::DamageCalcFromUser.add(:THICKCLUB, ) Battle::ItemEffects::DamageCalcFromUser.add(:TWISTEDSPOON, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.2 if type == :PSYCHIC + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.2 if type == :PSYCHIC } ) Battle::ItemEffects::DamageCalcFromUser.copy(:TWISTEDSPOON, :MINDPLATE, :ODDINCENSE) Battle::ItemEffects::DamageCalcFromUser.add(:WATERGEM, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| user.pbMoveTypePoweringUpGem(:WATER, move, type, mults) } ) Battle::ItemEffects::DamageCalcFromUser.add(:WISEGLASSES, - proc { |item, user, target, move, mults, baseDmg, type| - mults[:base_damage_multiplier] *= 1.1 if move.specialMove? + proc { |item, user, target, move, mults, power, type| + mults[:power_multiplier] *= 1.1 if move.specialMove? } ) @@ -1083,49 +1083,49 @@ Battle::ItemEffects::DamageCalcFromUser.add(:WISEGLASSES, #=============================================================================== Battle::ItemEffects::DamageCalcFromTarget.add(:ASSAULTVEST, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| mults[:defense_multiplier] *= 1.5 if move.specialMove? } ) Battle::ItemEffects::DamageCalcFromTarget.add(:BABIRIBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:STEEL, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:CHARTIBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:ROCK, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:CHILANBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:NORMAL, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:CHOPLEBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:FIGHTING, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:COBABERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:FLYING, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:COLBURBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:DARK, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:DEEPSEASCALE, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| if target.isSpecies?(:CLAMPERL) && move.specialMove? mults[:defense_multiplier] *= 2 end @@ -1133,7 +1133,7 @@ Battle::ItemEffects::DamageCalcFromTarget.add(:DEEPSEASCALE, ) Battle::ItemEffects::DamageCalcFromTarget.add(:EVIOLITE, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| # NOTE: Eviolite cares about whether the Pokémon itself can evolve, which # means it also cares about the Pokémon's form. Some forms cannot # evolve even if the species generally can, and such forms are not @@ -1145,25 +1145,25 @@ Battle::ItemEffects::DamageCalcFromTarget.add(:EVIOLITE, ) Battle::ItemEffects::DamageCalcFromTarget.add(:HABANBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:DRAGON, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:KASIBBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:GHOST, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:KEBIABERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:POISON, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:METALPOWDER, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| if target.isSpecies?(:DITTO) && !target.effects[PBEffects::Transform] mults[:defense_multiplier] *= 1.5 end @@ -1171,43 +1171,43 @@ Battle::ItemEffects::DamageCalcFromTarget.add(:METALPOWDER, ) Battle::ItemEffects::DamageCalcFromTarget.add(:OCCABERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:FIRE, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:PASSHOBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:WATER, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:PAYAPABERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:PSYCHIC, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:RINDOBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:GRASS, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:ROSELIBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:FAIRY, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:SHUCABERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:GROUND, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:SOULDEW, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| next if Settings::SOUL_DEW_POWERS_UP_TYPES next if !target.isSpecies?(:LATIAS) && !target.isSpecies?(:LATIOS) if move.specialMove? && !user.battle.rules["souldewclause"] @@ -1217,19 +1217,19 @@ Battle::ItemEffects::DamageCalcFromTarget.add(:SOULDEW, ) Battle::ItemEffects::DamageCalcFromTarget.add(:TANGABERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:BUG, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:WACANBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:ELECTRIC, type, mults) } ) Battle::ItemEffects::DamageCalcFromTarget.add(:YACHEBERRY, - proc { |item, user, target, move, mults, baseDmg, type| + proc { |item, user, target, move, mults, power, type| target.pbMoveTypeWeakeningBerry(:ICE, type, mults) } ) diff --git a/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb b/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb index cc2b265be..24df8a9c8 100644 --- a/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb +++ b/Data/Scripts/012_Overworld/002_Battle triggering/001_Overworld_BattleStarting.rb @@ -739,103 +739,3 @@ def pbHoneyGather(pkmn) return unless rand(100) < chance pkmn.item = :HONEY end - -#=============================================================================== -# Deprecated methods -#=============================================================================== -# @deprecated This method is slated to be removed in v21. -def pbNewBattleScene - Deprecation.warn_method("pbNewBattleScene", "v21", "BattleCreationHelperMethods.create_battle_scene") - return BattleCreationHelperMethods.create_battle_scene -end - -# @deprecated This method is slated to be removed in v21. -def pbPrepareBattle(battle) - Deprecation.warn_method("pbPrepareBattle", "v21", "BattleCreationHelperMethods.prepare_battle(battle)") - BattleCreationHelperMethods.prepare_battle(battle) -end - -# @deprecated This method is slated to be removed in v21. -def pbWildBattleCore(*args) - Deprecation.warn_method("pbWildBattleCore", "v21", "WildBattle.start_core(species, level)") - return WildBattle.start_core(*args) -end - -# @deprecated This method is slated to be removed in v21. -def pbWildBattle(species, level, outcomeVar = 1, canRun = true, canLose = false) - Deprecation.warn_method("pbWildBattle", "v21", "WildBattle.start(species, level)") - setBattleRule("outcomeVar", outcomeVar) if outcomeVar != 1 - setBattleRule("cannotRun") if !canRun - setBattleRule("canLose") if canLose - return WildBattle.start(species, level) -end - -# @deprecated This method is slated to be removed in v21. -def pbDoubleWildBattle(species1, level1, species2, level2, - outcomeVar = 1, canRun = true, canLose = false) - Deprecation.warn_method("pbDoubleWildBattle", "v21", "WildBattle.start(pkmn1, pkmn2)") - setBattleRule("outcomeVar", outcomeVar) if outcomeVar != 1 - setBattleRule("cannotRun") if !canRun - setBattleRule("canLose") if canLose - setBattleRule("double") - return WildBattle.start(species1, level1, species2, level2) -end - -# @deprecated This method is slated to be removed in v21. -def pbTripleWildBattle(species1, level1, species2, level2, species3, level3, - outcomeVar = 1, canRun = true, canLose = false) - Deprecation.warn_method("pbTripleWildBattle", "v21", "WildBattle.start(pkmn1, pkmn2, pkmn3)") - setBattleRule("outcomeVar", outcomeVar) if outcomeVar != 1 - setBattleRule("cannotRun") if !canRun - setBattleRule("canLose") if canLose - setBattleRule("triple") - return WildBattle.start(species1, level1, species2, level2, species3, level3) -end - -# @deprecated This method is slated to be removed in v21. -def pbTrainerBattleCore(*args) - Deprecation.warn_method("pbTrainerBattleCore", "v21", "TrainerBattle.start_core(trainer_type, trainer_name, trainer_version)") - return TrainerBattle.start_core(*args) -end - -# @deprecated This method is slated to be removed in v21. -def pbTrainerBattle(trainerID, trainerName, endSpeech = nil, - doubleBattle = false, trainerPartyID = 0, canLose = false, outcomeVar = 1) - Deprecation.warn_method("pbTrainerBattle", "v21", "TrainerBattle.start(trainer_type, trainer_name, trainer_version)") - setBattleRule("outcomeVar", outcomeVar) if outcomeVar != 1 - setBattleRule("canLose") if canLose - setBattleRule("double") if doubleBattle - return TrainerBattle.start(trainerID, trainerName, trainerPartyID) -end - -# @deprecated This method is slated to be removed in v21. -def pbDoubleTrainerBattle(trainerID1, trainerName1, trainerPartyID1, endSpeech1, - trainerID2, trainerName2, trainerPartyID2 = 0, endSpeech2 = nil, - canLose = false, outcomeVar = 1) - Deprecation.warn_method("pbDoubleTrainerBattle", "v21", "TrainerBattle.start(trainer1, trainer2)") - setBattleRule("outcomeVar", outcomeVar) if outcomeVar != 1 - setBattleRule("canLose") if canLose - setBattleRule("double") - return TrainerBattle.start(trainerID1, trainerName1, trainerPartyID1, - trainerID2, trainerName2, trainerPartyID2) -end - -# @deprecated This method is slated to be removed in v21. -def pbTripleTrainerBattle(trainerID1, trainerName1, trainerPartyID1, endSpeech1, - trainerID2, trainerName2, trainerPartyID2, endSpeech2, - trainerID3, trainerName3, trainerPartyID3 = 0, endSpeech3 = nil, - canLose = false, outcomeVar = 1) - Deprecation.warn_method("pbTripleTrainerBattle", "v21", "TrainerBattle.start(trainer1, trainer2, trainer3)") - setBattleRule("outcomeVar", outcomeVar) if outcomeVar != 1 - setBattleRule("canLose") if canLose - setBattleRule("triple") - return TrainerBattle.start(trainerID1, trainerName1, trainerPartyID1, - trainerID2, trainerName2, trainerPartyID2, - trainerID3, trainerName3, trainerPartyID3) -end - -# @deprecated This method is slated to be removed in v21. -def pbAfterBattle(outcome, can_lose) - Deprecation.warn_method("pbAfterBattle", "v21", "BattleCreationHelperMethods.after_battle(outcome, can_lose)") - BattleCreationHelperMethods.after_battle(outcome, can_lose) -end diff --git a/Data/Scripts/012_Overworld/002_Overworld_Metadata.rb b/Data/Scripts/012_Overworld/002_Overworld_Metadata.rb index c9cc8213b..55d842ad4 100644 --- a/Data/Scripts/012_Overworld/002_Overworld_Metadata.rb +++ b/Data/Scripts/012_Overworld/002_Overworld_Metadata.rb @@ -14,8 +14,8 @@ class PokemonGlobalMetadata attr_accessor :stepcount attr_accessor :pcItemStorage attr_accessor :mailbox - attr_accessor :phoneNumbers # Deprecated - attr_accessor :phoneTime # Deprecated + attr_accessor :phoneNumbers # Deprecated - to be removed in v22 + attr_accessor :phoneTime # Deprecated - to be removed in v22 attr_accessor :phone attr_accessor :partner attr_accessor :creditsPlayed diff --git a/Data/Scripts/012_Overworld/004_Overworld_FieldMoves.rb b/Data/Scripts/012_Overworld/004_Overworld_FieldMoves.rb index 07aa9e7cc..8716fdd30 100644 --- a/Data/Scripts/012_Overworld/004_Overworld_FieldMoves.rb +++ b/Data/Scripts/012_Overworld/004_Overworld_FieldMoves.rb @@ -357,20 +357,6 @@ def pbSurfacing return false end -# @deprecated This method is slated to be removed in v21. -def pbTransferUnderwater(mapid, x, y, direction = $game_player.direction) - Deprecation.warn_method("pbTransferUnderwater", "v21", '"Transfer Player" event command') - pbFadeOutIn do - $game_temp.player_new_map_id = mapid - $game_temp.player_new_x = x - $game_temp.player_new_y = y - $game_temp.player_new_direction = direction - $scene.transfer_player(false) - $game_map.autoplay - $game_map.refresh - end -end - EventHandlers.add(:on_player_interact, :diving, proc { if $PokemonGlobal.diving @@ -755,20 +741,6 @@ def pbEndSurf(_xOffset, _yOffset) return false end -# @deprecated This method is slated to be removed in v21. -def pbTransferSurfing(mapid, xcoord, ycoord, direction = $game_player.direction) - Deprecation.warn_method("pbTransferSurfing", "v21", '"Transfer Player" event command') - pbFadeOutIn do - $game_temp.player_new_map_id = mapid - $game_temp.player_new_x = xcoord - $game_temp.player_new_y = ycoord - $game_temp.player_new_direction = direction - $scene.transfer_player(false) - $game_map.autoplay - $game_map.refresh - end -end - EventHandlers.add(:on_player_interact, :start_surfing, proc { next if $PokemonGlobal.surfing diff --git a/Data/Scripts/012_Overworld/007_Overworld_DayCare.rb b/Data/Scripts/012_Overworld/007_Overworld_DayCare.rb index f4ddbddc6..302921c96 100644 --- a/Data/Scripts/012_Overworld/007_Overworld_DayCare.rb +++ b/Data/Scripts/012_Overworld/007_Overworld_DayCare.rb @@ -562,60 +562,3 @@ EventHandlers.add(:on_player_step_taken, :update_day_care, $PokemonGlobal.day_care.update_on_step_taken } ) - -#=============================================================================== -# Deprecated methods -#=============================================================================== -# @deprecated This method is slated to be removed in v21. -def pbDayCareDeposited - Deprecation.warn_method("pbDayCareDeposited", "v21", "DayCare.count") - return DayCare.count -end - -# @deprecated This method is slated to be removed in v21. -def pbDayCareGetDeposited(index, name_var, cost_var) - Deprecation.warn_method("pbDayCareGetDeposited", "v21", "DayCare.get_details(index, name_var, cost_var)") - DayCare.get_details(index, name_var, cost_var) -end - -# @deprecated This method is slated to be removed in v21. -def pbDayCareGetLevelGain(index, name_var, level_var) - Deprecation.warn_method("pbDayCareGetLevelGain", "v21", "DayCare.get_level_gain(index, name_var, level_var)") - DayCare.get_level_gain(index, name_var, level_var) -end - -# @deprecated This method is slated to be removed in v21. -def pbDayCareDeposit(party_index) - Deprecation.warn_method("pbDayCareDeposit", "v21", "DayCare.deposit(party_index)") - DayCare.deposit(party_index) -end - -# @deprecated This method is slated to be removed in v21. -def pbDayCareWithdraw(index) - Deprecation.warn_method("pbDayCareWithdraw", "v21", "DayCare.withdraw(index)") - DayCare.withdraw(index) -end - -# @deprecated This method is slated to be removed in v21. -def pbDayCareChoose(text, choice_var) - Deprecation.warn_method("pbDayCareChoose", "v21", "DayCare.choose(text, choice_var)") - DayCare.choose(text, choice_var) -end - -# @deprecated This method is slated to be removed in v21. -def pbDayCareGetCompatibility(compat_var) - Deprecation.warn_method("pbDayCareGetCompatibility", "v21", "DayCare.get_compatibility(compat_var)") - DayCare.get_compatibility(compat_var) -end - -# @deprecated This method is slated to be removed in v21. -def pbEggGenerated? - Deprecation.warn_method("pbEggGenerated?", "v21", "DayCare.egg_generated?") - return DayCare.egg_generated? -end - -# @deprecated This method is slated to be removed in v21. -def pbDayCareGenerateEgg - Deprecation.warn_method("pbDayCareGenerateEgg", "v21", "DayCare.collect_egg") - DayCare.collect_egg -end diff --git a/Data/Scripts/013_Items/004_Item_Phone.rb b/Data/Scripts/013_Items/004_Item_Phone.rb index df72cca7b..02c61a633 100644 --- a/Data/Scripts/013_Items/004_Item_Phone.rb +++ b/Data/Scripts/013_Items/004_Item_Phone.rb @@ -587,7 +587,8 @@ EventHandlers.add(:on_frame_update, :phone_call_counter, #=============================================================================== # Deprecated. #=============================================================================== -# Called by events. +# Called by events. Make your event look like this instead: +# # @>Conditional Branch: Phone.can_add?(trainer_type, name, start_version) # @>Text: Let me register you. # @>Show Choices: Yes, No @@ -602,6 +603,7 @@ EventHandlers.add(:on_frame_update, :phone_call_counter, # : Branch End # : Branch End # @> +# # @deprecated This method is slated to be removed in v22. def pbPhoneRegisterBattle(message, event, trainer_type, name, versions_count) Deprecation.warn_method("pbPhoneRegisterBattle", "v22", "several scripts and event commands; see def pbPhoneRegisterBattle") diff --git a/Data/Scripts/013_Items/008_PokemonBag.rb b/Data/Scripts/013_Items/008_PokemonBag.rb index 48bb14e44..f850103a4 100644 --- a/Data/Scripts/013_Items/008_PokemonBag.rb +++ b/Data/Scripts/013_Items/008_PokemonBag.rb @@ -328,98 +328,3 @@ module ItemStorageHelper return ret end end - -#=============================================================================== -# Deprecated methods -#=============================================================================== -class PokemonBag - # @deprecated This method is slated to be removed in v21. - def pbQuantity(item) - Deprecation.warn_method("pbQuantity", "v21", "$bag.quantity(item)") - return quantity(item) - end - - # @deprecated This method is slated to be removed in v21. - def pbHasItem?(item) - Deprecation.warn_method("pbHasItem?", "v21", "$bag.has?(item)") - return has?(item) - end - - # @deprecated This method is slated to be removed in v21. - def pbCanStore?(item, quantity = 1) - Deprecation.warn_method("pbCanStore?", "v21", "$bag.can_add?(item, quantity)") - return can_add?(item, quantity) - end - - # @deprecated This method is slated to be removed in v21. - def pbStoreItem(item, quantity = 1) - Deprecation.warn_method("pbStoreItem", "v21", "$bag.add(item, quantity)") - return add(item, quantity) - end - - # @deprecated This method is slated to be removed in v21. - def pbStoreAllOrNone(item, quantity = 1) - Deprecation.warn_method("pbStoreAllOrNone", "v21", "$bag.add_all(item, quantity)") - return add_all(item, quantity) - end - - # @deprecated This method is slated to be removed in v21. - def pbChangeItem(old_item, new_item) - Deprecation.warn_method("pbChangeItem", "v21", "$bag.replace_item(old_item, new_item)") - return replace_item(old_item, new_item) - end - - # @deprecated This method is slated to be removed in v21. - def pbDeleteItem(item, quantity = 1) - Deprecation.warn_method("pbDeleteItem", "v21", "$bag.remove(item, quantity)") - return remove(item, quantity) - end - - # @deprecated This method is slated to be removed in v21. - def pbIsRegistered?(item) - Deprecation.warn_method("pbIsRegistered?", "v21", "$bag.registered?(item)") - return registered?(item) - end - - # @deprecated This method is slated to be removed in v21. - def pbRegisterItem(item) - Deprecation.warn_method("pbRegisterItem", "v21", "$bag.register(item)") - register(item) - end - - # @deprecated This method is slated to be removed in v21. - def pbUnregisterItem(item) - Deprecation.warn_method("pbUnregisterItem", "v21", "$bag.unregister(item)") - unregister(item) - end -end - -# @deprecated This method is slated to be removed in v21. -def pbQuantity(item) - Deprecation.warn_method("pbQuantity", "v21", "$bag.quantity(item)") - return $bag.quantity(item) -end - -# @deprecated This method is slated to be removed in v21. -def pbHasItem?(item) - Deprecation.warn_method("pbHasItem?", "v21", "$bag.has?(item)") - return $bag.has?(item) -end - -# @deprecated This method is slated to be removed in v21. -def pbCanStore?(item, quantity = 1) - Deprecation.warn_method("pbCanStore?", "v21", "$bag.can_add?(item, quantity)") - return $bag.can_add?(item, quantity) -end - -# @deprecated This method is slated to be removed in v21. -def pbStoreItem(item, quantity = 1) - Deprecation.warn_method("pbStoreItem", "v21", "$bag.add(item, quantity)") - return $bag.add(item, quantity) -end - -# @deprecated This method is slated to be removed in v21. -def pbStoreAllOrNone(item, quantity = 1) - Deprecation.warn_method("pbStoreAllOrNone", "v21", "$bag.add_all(item, quantity)") - return $bag.add_all(item, quantity) -end diff --git a/Data/Scripts/014_Pokemon/001_Pokemon.rb b/Data/Scripts/014_Pokemon/001_Pokemon.rb index 23d9364f7..703b84685 100644 --- a/Data/Scripts/014_Pokemon/001_Pokemon.rb +++ b/Data/Scripts/014_Pokemon/001_Pokemon.rb @@ -314,15 +314,15 @@ class Pokemon return species_data.types.clone end - # @deprecated This method is slated to be removed in v21. + # @deprecated This method is slated to be removed in v22. def type1 - Deprecation.warn_method("type1", "v21", "pkmn.types") + Deprecation.warn_method("type1", "v22", "pkmn.types") return types[0] end - # @deprecated This method is slated to be removed in v21. + # @deprecated This method is slated to be removed in v22. def type2 - Deprecation.warn_method("type2", "v21", "pkmn.types") + Deprecation.warn_method("type2", "v22", "pkmn.types") return types[1] || types[0] end diff --git a/Data/Scripts/014_Pokemon/004_Pokemon_Move.rb b/Data/Scripts/014_Pokemon/004_Pokemon_Move.rb index bd36c8ccd..312c53ac2 100644 --- a/Data/Scripts/014_Pokemon/004_Pokemon_Move.rb +++ b/Data/Scripts/014_Pokemon/004_Pokemon_Move.rb @@ -48,7 +48,7 @@ class Pokemon alias totalpp total_pp def function_code; return GameData::Move.get(@id).function_code; end - def base_damage; return GameData::Move.get(@id).base_damage; end + def power; return GameData::Move.get(@id).power; end def type; return GameData::Move.get(@id).type; end def category; return GameData::Move.get(@id).category; end def accuracy; return GameData::Move.get(@id).accuracy; end @@ -60,6 +60,12 @@ class Pokemon def description; return GameData::Move.get(@id).description; end def hidden_move?; return GameData::Move.get(@id).hidden_move?; end + # @deprecated This method is slated to be removed in v22. + def base_damage + Deprecation.warn_method("base_damage", "v22", "power") + return @power + end + 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 diff --git a/Data/Scripts/016_UI/022_UI_MoveRelearner.rb b/Data/Scripts/016_UI/022_UI_MoveRelearner.rb index 5bc1ca067..e50a30adb 100644 --- a/Data/Scripts/016_UI/022_UI_MoveRelearner.rb +++ b/Data/Scripts/016_UI/022_UI_MoveRelearner.rb @@ -84,12 +84,12 @@ 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]) - basedamage = selMoveData.display_damage(@pokemon) + power = selMoveData.display_damage(@pokemon) category = selMoveData.display_category(@pokemon) accuracy = selMoveData.display_accuracy(@pokemon) textpos.push([_INTL("CATEGORY"), 272, 120, 0, Color.new(248, 248, 248), Color.black]) textpos.push([_INTL("POWER"), 272, 152, 0, Color.new(248, 248, 248), Color.black]) - textpos.push([basedamage <= 1 ? basedamage == 1 ? "???" : "---" : sprintf("%d", basedamage), + textpos.push([power <= 1 ? power == 1 ? "???" : "---" : sprintf("%d", power), 468, 152, 2, Color.new(64, 64, 64), Color.new(176, 176, 176)]) textpos.push([_INTL("ACCURACY"), 272, 184, 0, Color.new(248, 248, 248), Color.black]) textpos.push([accuracy == 0 ? "---" : "#{accuracy}%", diff --git a/Data/Scripts/018_Alternate battle modes/003_Battle Frontier generator/002_ChallengeGenerator_Pokemon.rb b/Data/Scripts/018_Alternate battle modes/003_Battle Frontier generator/002_ChallengeGenerator_Pokemon.rb index d94e62edb..6fbc74776 100644 --- a/Data/Scripts/018_Alternate battle modes/003_Battle Frontier generator/002_ChallengeGenerator_Pokemon.rb +++ b/Data/Scripts/018_Alternate battle modes/003_Battle Frontier generator/002_ChallengeGenerator_Pokemon.rb @@ -76,12 +76,12 @@ def pbGetLegalMoves2(species, maxlevel) # If we have a move that always hits, remove all other moves with no # effect of the same type and <= base power if md.accuracy == 0 && move2[1].function_code == "None" && - md.type == move2[1].type && md.base_damage >= move2[1].base_damage + md.type == move2[1].type && md.power >= move2[1].power deleteAll.call(moves, move2[0]) # If we have two status moves that have the same function code, delete the # one with lower accuracy (Supersonic vs. Confuse Ray, etc.) - elsif md.function_code == move2[1].function_code && md.base_damage == 0 && - move2[1].base_damage == 0 && md.accuracy > move2[1].accuracy + elsif md.function_code == move2[1].function_code && md.power == 0 && + move2[1].power == 0 && md.accuracy > move2[1].accuracy deleteAll.call(moves, move2[0]) # Delete poison-causing moves if we have a move that causes toxic elsif md.function_code == "BadPoisonTarget" && move2[1].function_code == "PoisonTarget" @@ -90,11 +90,11 @@ def pbGetLegalMoves2(species, maxlevel) # them is damaging and has 10/15/the same PP as the other move and EITHER # does more damage than the other move OR does the same damage but is more # accurate, delete the other move (Surf, Flamethrower, Thunderbolt, etc.) - elsif md.function_code == move2[1].function_code && md.base_damage != 0 && + elsif md.function_code == move2[1].function_code && md.power != 0 && md.type == move2[1].type && (md.total_pp == 15 || md.total_pp == 10 || md.total_pp == move2[1].total_pp) && - (md.base_damage > move2[1].base_damage || - (md.base_damage == move2[1].base_damage && md.accuracy > move2[1].accuracy)) + (md.power > move2[1].power || + (md.power == move2[1].power && md.accuracy > move2[1].accuracy)) deleteAll.call(moves, move2[0]) end end @@ -107,15 +107,15 @@ def addMove(moves, move, base) return if moves.include?(data.id) return if [:BUBBLE, :BUBBLEBEAM].include?(data.id) # Never add these moves count = base + 1 # Number of times to add move to moves - count = base if data.function_code == "None" && data.base_damage <= 40 - if data.base_damage <= 30 || [:GROWL, :TAILWHIP, :LEER].include?(data.id) + count = base if data.function_code == "None" && data.power <= 40 + if data.power <= 30 || [:GROWL, :TAILWHIP, :LEER].include?(data.id) count = base end - if data.base_damage >= 60 || + if data.power >= 60 || [:REFLECT, :LIGHTSCREEN, :SAFEGUARD, :SUBSTITUTE, :FAKEOUT].include?(data.id) count = base + 2 end - count = base + 3 if data.base_damage >= 80 && data.type == :NORMAL + count = base + 3 if data.power >= 80 && data.type == :NORMAL if [:PROTECT, :DETECT, :TOXIC, :AERIALACE, :WILLOWISP, :SPORE, :THUNDERWAVE, :HYPNOSIS, :CONFUSERAY, :ENDURE, :SWORDSDANCE].include?(data.id) count = base + 3 @@ -127,11 +127,11 @@ end # with a higher base damage than it. def hasMorePowerfulMove(moves, thismove) thisdata = GameData::Move.get(thismove) - return false if thisdata.base_damage == 0 + return false if thisdata.power == 0 moves.each do |move| next if !move moveData = GameData::Move.get(move) - if moveData.type == thisdata.type && moveData.base_damage > thisdata.base_damage + if moveData.type == thisdata.type && moveData.power > thisdata.power return true end end @@ -297,14 +297,14 @@ def pbRandomPokemonFromRule(rules, trainer) !((sketch || !moves.include?(rest)) && rand(100) < 20) next end - totalbasedamage = 0 + total_power = 0 hasPhysical = false hasSpecial = false hasNormal = false newmoves.each do |move| d = GameData::Move.get(move) - next if d.base_damage == 0 - totalbasedamage += d.base_damage + next if d.power == 0 + total_power += d.power hasNormal = true if d.type == :NORMAL hasPhysical = true if d.category == 0 hasSpecial = true if d.category == 1 @@ -318,9 +318,9 @@ def pbRandomPokemonFromRule(rules, trainer) next end r = rand(10) - next if r > 6 && totalbasedamage > 180 - next if r > 8 && totalbasedamage > 140 - next if totalbasedamage == 0 && rand(100) < 95 + next if r > 6 && total_power > 180 + next if r > 8 && total_power > 140 + next if total_power == 0 && rand(100) < 95 ############ # Moves accepted if hasPhysical && !hasSpecial diff --git a/Data/Scripts/018_Alternate battle modes/003_Battle Frontier generator/004_ChallengeGenerator_BattleSim.rb b/Data/Scripts/018_Alternate battle modes/003_Battle Frontier generator/004_ChallengeGenerator_BattleSim.rb index cbe5bc7fd..0d4b7872a 100644 --- a/Data/Scripts/018_Alternate battle modes/003_Battle Frontier generator/004_ChallengeGenerator_BattleSim.rb +++ b/Data/Scripts/018_Alternate battle modes/003_Battle Frontier generator/004_ChallengeGenerator_BattleSim.rb @@ -309,7 +309,7 @@ end #=============================================================================== def pbDecideWinnerEffectiveness(move, otype1, otype2, ability, scores) data = GameData::Move.get(move) - return 0 if data.base_damage == 0 + return 0 if data.power == 0 atype = data.type typemod = 1.0 if ability != :LEVITATE || data.type != :GROUND diff --git a/Data/Scripts/020_Debug/002_Animation editor/005_AnimEditor_Functions.rb b/Data/Scripts/020_Debug/002_Animation editor/005_AnimEditor_Functions.rb index e5604a7d8..10d8dc4e2 100644 --- a/Data/Scripts/020_Debug/002_Animation editor/005_AnimEditor_Functions.rb +++ b/Data/Scripts/020_Debug/002_Animation editor/005_AnimEditor_Functions.rb @@ -534,7 +534,7 @@ def pbSelectSE(canvas, audio) cmdwin.update maxsizewindow.update if maxsizewindow.changed?(3) && animfiles.length > 0 # Play Sound - fname = (cmdwin.index == 0) ? "Cries/001Cry" : "Anim/" + filename + fname = (cmdwin.index == 0) ? "Cries/000" : "Anim/" + filename pbSEPlay(RPG::AudioFile.new(fname, maxsizewindow.value(1), maxsizewindow.value(2))) end pbSEStop if maxsizewindow.changed?(4) && animfiles.length > 0 # Stop Sound @@ -572,7 +572,6 @@ def pbSelectBG(canvas, timing) # animfiles.concat(Dir.glob("*.jpeg")) # animfiles.concat(Dir.glob("*.bmp")) end - animfiles.map! { |f| File.basename(f, ".*") } animfiles.uniq! animfiles.sort! { |a, b| a.downcase <=> b.downcase } cmdwin = pbListWindow(animfiles, 320) @@ -598,7 +597,7 @@ def pbSelectBG(canvas, timing) cmdwin.update maxsizewindow.update if maxsizewindow.changed?(8) # OK - timing.name = filename + timing.name = File.basename(filename, ".*") timing.bgX = maxsizewindow.value(1) timing.bgY = maxsizewindow.value(2) timing.opacity = maxsizewindow.value(3) diff --git a/Data/Scripts/021_Compiler/001_Compiler.rb b/Data/Scripts/021_Compiler/001_Compiler.rb index 4b9756948..e9f6d99ce 100644 --- a/Data/Scripts/021_Compiler/001_Compiler.rb +++ b/Data/Scripts/021_Compiler/001_Compiler.rb @@ -862,9 +862,9 @@ module Compiler # Get all data files and PBS files to be checked for their last modified times data_files = GameData.get_all_data_filenames data_files += [ # Extra .dat files for data that isn't a GameData class - "map_connections.dat", - "regional_dexes.dat", - "trainer_lists.dat" + ["map_connections.dat", true], + ["regional_dexes.dat", true], + ["trainer_lists.dat", true] ] text_files = get_all_pbs_files_to_compile latestDataTime = 0 @@ -880,16 +880,16 @@ module Compiler mustCompile = true end # Check data files for their latest modify time - data_files.each do |filename| - if safeExists?("Data/" + filename) + data_files.each do |filename| # filename = [string, boolean (whether mandatory)] + if safeExists?("Data/" + filename[0]) begin - File.open("Data/#{filename}") do |file| + File.open("Data/#{filename[0]}") do |file| latestDataTime = [latestDataTime, file.mtime.to_i].max end rescue SystemCallError mustCompile = true end - else + elsif filename[1] mustCompile = true break end @@ -911,9 +911,9 @@ module Compiler mustCompile = true if Input.press?(Input::CTRL) # Delete old data files in preparation for recompiling if mustCompile - data_files.length.times do |i| + data_files.each do |filename| begin - File.delete("Data/#{data_files[i]}") if safeExists?("Data/#{data_files[i]}") + File.delete("Data/#{filename[0]}") if safeExists?("Data/#{filename[0]}") rescue SystemCallError end end @@ -924,9 +924,9 @@ module Compiler e = $! raise e if e.class.to_s == "Reset" || e.is_a?(Reset) || e.is_a?(SystemExit) pbPrintException(e) - data_files.length.times do |i| + data_files.each do |filename| begin - File.delete("Data/#{data_files[i]}") + File.delete("Data/#{filename[0]}") if safeExists?("Data/#{filename[0]}") rescue SystemCallError end end diff --git a/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb b/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb index 1aec8db6f..20c6f07a8 100644 --- a/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb +++ b/Data/Scripts/021_Compiler/002_Compiler_CompilePBS.rb @@ -215,10 +215,10 @@ module Compiler end def validate_compiled_move(hash) - if (hash[:category] || 2) == 2 && (hash[:base_damage] || 0) != 0 + if (hash[:category] || 2) == 2 && (hash[:power] || 0) != 0 raise _INTL("Move {1} is defined as a Status move with a non-zero base damage.\r\n{2}", hash[:real_name], FileLineData.linereport) - elsif (hash[:category] || 2) != 2 && (hash[:base_damage] || 0) == 0 + elsif (hash[:category] || 2) != 2 && (hash[:power] || 0) == 0 print _INTL("Warning: Move {1} is defined as Physical or Special but has a base damage of 0. Changing it to a Status move.\r\n{2}", hash[:real_name], FileLineData.linereport) hash[:category] = 2