More additions to the battle debug menu

This commit is contained in:
Maruno17
2021-12-21 20:50:08 +00:00
parent 6b3fa5e1bf
commit 022dc7aadb
5 changed files with 490 additions and 393 deletions

View File

@@ -238,10 +238,98 @@ module Battle::DebugMixin
viewport.dispose
end
def pbBattleBattlerDebug(battler, show_all = true)
def pbBattleDebugBattlerInfo(battler)
ret = ""
return ret if battler.nil?
# Battler index, name
ret += sprintf("[%d] %s", battler.index, battler.pbThis)
ret += "\r\n"
# Species
ret += _INTL("Species: {1}", GameData::Species.get(battler.species).name)
ret += "\r\n"
# Form number
ret += _INTL("Form: {1}", battler.form)
ret += "\r\n"
# Level, gender, shininess
ret += _INTL("Level {1}, {2}", battler.level,
(battler.pokemon.male?) ? "" : (battler.pokemon.female?) ? "" : _INTL("genderless"))
ret += ", " + _INTL("shiny") if battler.pokemon.shiny?
ret += "\r\n"
# HP
ret += _INTL("HP: {1}/{2} ({3}%)", battler.hp, battler.totalhp, (100.0 * battler.hp / battler.totalhp).to_i)
ret += "\r\n"
# Status
ret += _INTL("Status: {1}", GameData::Status.get(battler.status).name)
case battler.status
when :SLEEP
ret += " " + _INTL("({1} rounds left)", battler.statusCount)
when :POISON
if battler.statusCount > 0
ret += " " + _INTL("(toxic, {1}/16)", battler.effects[PBEffects::Toxic])
end
end
ret += "\r\n"
# Stat stages
stages = []
GameData::Stat.each_battle do |stat|
next if battler.stages[stat.id] == 0
stage_text = ""
stage_text += "+" if battler.stages[stat.id] > 0
stage_text += battler.stages[stat.id].to_s
stage_text += " " + stat.name_brief
stages.push(stage_text)
end
ret += _INTL("Stat stages: {1}", (stages.empty?) ? "-" : stages.join(", "))
ret += "\r\n"
# Ability
ret += _INTL("Ability: {1}", (battler.ability) ? battler.abilityName : "-")
ret += "\r\n"
# Held item
ret += _INTL("Item: {1}", (battler.item) ? battler.itemName : "-")
return ret
end
def pbBattleDebugPokemonInfo(pkmn)
ret = ""
return ret if pkmn.nil?
sp_data = pkmn.species_data
# Name, species
ret += sprintf("%s (%s)", pkmn.name, sp_data.name)
ret += "\r\n"
# Form number
ret += _INTL("Form: {1}", sp_data.form)
ret += "\r\n"
# Level, gender, shininess
ret += _INTL("Level {1}, {2}", pkmn.level,
(pkmn.male?) ? "" : (pkmn.female?) ? "" : _INTL("genderless"))
ret += ", " + _INTL("shiny") if pkmn.shiny?
ret += "\r\n"
# HP
ret += _INTL("HP: {1}/{2} ({3}%)", pkmn.hp, pkmn.totalhp, (100.0 * pkmn.hp / pkmn.totalhp).to_i)
ret += "\r\n"
# Status
ret += _INTL("Status: {1}", GameData::Status.get(pkmn.status).name)
case pkmn.status
when :SLEEP
ret += " " + _INTL("({1} rounds left)", pkmn.statusCount)
when :POISON
ret += " " + _INTL("(toxic)") if pkmn.statusCount > 0
end
ret += "\r\n"
# Ability
ret += _INTL("Ability: {1}", pkmn.ability&.name || "-")
ret += "\r\n"
# Held item
ret += _INTL("Item: {1}", pkmn.item&.name || "-")
return ret
end
def pbBattlePokemonDebug(pkmn, battler = nil)
commands = CommandMenuList.new
BattlerDebugMenuCommands.each do |option, hash|
commands.add(option, hash) if show_all || hash["always_show"]
BattlePokemonDebugMenuCommands.each do |option, hash|
next if battler && hash["usage"] == :pokemon
next if !battler && hash["usage"] == :battler
commands.add(option, hash)
end
viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
viewport.z = 99999
@@ -262,44 +350,11 @@ module Battle::DebugMixin
cmd = 0
loop do
if need_refresh
help_text = ""
help_text += sprintf("[%d] %s", battler.index, battler.pbThis)
help_text += "\r\n"
help_text += _INTL("Species: {1}", GameData::Species.get(battler.species).name)
help_text += "\r\n"
help_text += _INTL("Form: {1}", battler.form)
help_text += "\r\n"
help_text += _INTL("Level {1}, {2}", battler.level,
(battler.pokemon.male?) ? "" : (battler.pokemon.female?) ? "" : "genderless")
help_text += ", " + _INTL("Shiny") if battler.pokemon.shiny?
help_text += "\r\n"
help_text += _INTL("HP: {1}/{2} ({3}%)", battler.hp, battler.totalhp, (100.0 * battler.hp / battler.totalhp).to_i)
help_text += "\r\n"
help_text += _INTL("Status: {1}", GameData::Status.get(battler.status).name)
case battler.status
when :SLEEP
help_text += " " + _INTL("({1} rounds left)", battler.statusCount)
when :POISON
if battler.statusCount > 0
help_text += " " + _INTL("(toxic, {1}/16)", battler.effects[PBEffects::Toxic])
end
if battler
sprites["infowindow"].text = pbBattleDebugBattlerInfo(battler)
else
sprites["infowindow"].text = pbBattleDebugPokemonInfo(pkmn)
end
help_text += "\r\n"
stages = []
GameData::Stat.each_battle do |stat|
next if battler.stages[stat.id] == 0
stage_text = ""
stage_text += "+" if battler.stages[stat.id] > 0
stage_text += battler.stages[stat.id].to_s
stage_text += " " + stat.name_brief
stages.push(stage_text)
end
help_text += _INTL("Stat stages: {1}", (stages.empty?) ? "-" : stages.join(", "))
help_text += "\r\n"
help_text += _INTL("Ability: {1}", (battler.ability) ? battler.abilityName : "-")
help_text += "\r\n"
help_text += _INTL("Item: {1}", (battler.item) ? battler.itemName : "-")
sprites["infowindow"].text = help_text
need_refresh = false
end
# Choose a command
@@ -318,7 +373,7 @@ module Battle::DebugMixin
commands.currentList = real_cmd
cmd = 0
else
BattlerDebugMenuCommands.call("effect", real_cmd, battler, battler.pokemon, battler.battle)
BattlePokemonDebugMenuCommands.call("effect", real_cmd, pkmn, battler, self)
need_refresh = true
end
end

View File

@@ -40,14 +40,14 @@ end
#===============================================================================
# Field options
#===============================================================================
DebugMenuCommands.register("fieldmenu", {
DebugMenuCommands.register("field_menu", {
"parent" => "main",
"name" => _INTL("Field options..."),
"description" => _INTL("Warp to maps, edit switches/variables, use the PC, edit Day Care, etc.")
})
DebugMenuCommands.register("warp", {
"parent" => "fieldmenu",
"parent" => "field_menu",
"name" => _INTL("Warp to Map"),
"description" => _INTL("Instantly warp to another map of your choice."),
"effect" => proc { |sprites, viewport|
@@ -77,8 +77,8 @@ DebugMenuCommands.register("warp", {
}
})
DebugMenuCommands.register("refreshmap", {
"parent" => "fieldmenu",
DebugMenuCommands.register("refresh_map", {
"parent" => "field_menu",
"name" => _INTL("Refresh Map"),
"description" => _INTL("Make all events on this map, and common events, refresh themselves."),
"effect" => proc {
@@ -88,7 +88,7 @@ DebugMenuCommands.register("refreshmap", {
})
DebugMenuCommands.register("switches", {
"parent" => "fieldmenu",
"parent" => "field_menu",
"name" => _INTL("Switches"),
"description" => _INTL("Edit all Game Switches (except Script Switches)."),
"effect" => proc {
@@ -97,7 +97,7 @@ DebugMenuCommands.register("switches", {
})
DebugMenuCommands.register("variables", {
"parent" => "fieldmenu",
"parent" => "field_menu",
"name" => _INTL("Variables"),
"description" => _INTL("Edit all Game Variables. Can set them to numbers or text."),
"effect" => proc {
@@ -105,8 +105,8 @@ DebugMenuCommands.register("variables", {
}
})
DebugMenuCommands.register("usepc", {
"parent" => "fieldmenu",
DebugMenuCommands.register("use_pc", {
"parent" => "field_menu",
"name" => _INTL("Use PC"),
"description" => _INTL("Use a PC to access Pokémon storage and player's PC."),
"effect" => proc {
@@ -114,8 +114,8 @@ DebugMenuCommands.register("usepc", {
}
})
DebugMenuCommands.register("togglewallpapers", {
"parent" => "fieldmenu",
DebugMenuCommands.register("toggle_wallpapers", {
"parent" => "field_menu",
"name" => _INTL("Toggle Storage Wallpapers"),
"description" => _INTL("Unlock and lock special wallpapers used in Pokémon storage."),
"effect" => proc {
@@ -152,8 +152,8 @@ DebugMenuCommands.register("togglewallpapers", {
}
})
DebugMenuCommands.register("daycare", {
"parent" => "fieldmenu",
DebugMenuCommands.register("day_care", {
"parent" => "field_menu",
"name" => _INTL("Day Care"),
"description" => _INTL("View Pokémon in the Day Care and edit them."),
"effect" => proc {
@@ -161,8 +161,8 @@ DebugMenuCommands.register("daycare", {
}
})
DebugMenuCommands.register("skipcredits", {
"parent" => "fieldmenu",
DebugMenuCommands.register("skip_credits", {
"parent" => "field_menu",
"name" => _INTL("Skip Credits"),
"description" => _INTL("Toggle whether credits can be ended early by pressing the Use input."),
"effect" => proc {
@@ -172,8 +172,8 @@ DebugMenuCommands.register("skipcredits", {
}
})
DebugMenuCommands.register("relicstone", {
"parent" => "fieldmenu",
DebugMenuCommands.register("relic_stone", {
"parent" => "field_menu",
"name" => _INTL("Use Relic Stone"),
"description" => _INTL("Shadow Pokémon. Choose a Pokémon to show to the Relic Stone for purification."),
"effect" => proc {
@@ -181,8 +181,8 @@ DebugMenuCommands.register("relicstone", {
}
})
DebugMenuCommands.register("purifychamber", {
"parent" => "fieldmenu",
DebugMenuCommands.register("purify_chamber", {
"parent" => "field_menu",
"name" => _INTL("Use Purify Chamber"),
"description" => _INTL("Shadow Pokémon. Open the Purify Chamber for purification."),
"effect" => proc {
@@ -193,14 +193,14 @@ DebugMenuCommands.register("purifychamber", {
#===============================================================================
# Battle options
#===============================================================================
DebugMenuCommands.register("battlemenu", {
DebugMenuCommands.register("battle_menu", {
"parent" => "main",
"name" => _INTL("Battle options..."),
"description" => _INTL("Start battles, reset this map's trainers, ready rematches, edit roamers, etc.")
})
DebugMenuCommands.register("testwildbattle", {
"parent" => "battlemenu",
DebugMenuCommands.register("test_wild_battle", {
"parent" => "battle_menu",
"name" => _INTL("Test Wild Battle"),
"description" => _INTL("Start a single battle against a wild Pokémon. You choose the species/level."),
"effect" => proc {
@@ -221,8 +221,8 @@ DebugMenuCommands.register("testwildbattle", {
}
})
DebugMenuCommands.register("testwildbattleadvanced", {
"parent" => "battlemenu",
DebugMenuCommands.register("test_wild_battle_advanced", {
"parent" => "battle_menu",
"name" => _INTL("Test Wild Battle Advanced"),
"description" => _INTL("Start a battle against 1 or more wild Pokémon. Battle size is your choice."),
"effect" => proc {
@@ -285,8 +285,8 @@ DebugMenuCommands.register("testwildbattleadvanced", {
}
})
DebugMenuCommands.register("testtrainerbattle", {
"parent" => "battlemenu",
DebugMenuCommands.register("test_trainer_battle", {
"parent" => "battle_menu",
"name" => _INTL("Test Trainer Battle"),
"description" => _INTL("Start a single battle against a trainer of your choice."),
"effect" => proc {
@@ -298,8 +298,8 @@ DebugMenuCommands.register("testtrainerbattle", {
}
})
DebugMenuCommands.register("testtrainerbattleadvanced", {
"parent" => "battlemenu",
DebugMenuCommands.register("test_trainer_battle_advanced", {
"parent" => "battle_menu",
"name" => _INTL("Test Trainer Battle Advanced"),
"description" => _INTL("Start a battle against 1 or more trainers with a battle size of your choice."),
"effect" => proc {
@@ -389,8 +389,8 @@ DebugMenuCommands.register("testtrainerbattleadvanced", {
}
})
DebugMenuCommands.register("togglelogging", {
"parent" => "battlemenu",
DebugMenuCommands.register("toggle_logging", {
"parent" => "battle_menu",
"name" => _INTL("Toggle Battle Logging"),
"description" => _INTL("Record debug logs for battles in Data/debuglog.txt."),
"effect" => proc {
@@ -400,8 +400,8 @@ DebugMenuCommands.register("togglelogging", {
}
})
DebugMenuCommands.register("resettrainers", {
"parent" => "battlemenu",
DebugMenuCommands.register("reset_trainers", {
"parent" => "battle_menu",
"name" => _INTL("Reset Map's Trainers"),
"description" => _INTL("Turn off Self Switches A and B for all events with \"Trainer\" in their name."),
"effect" => proc {
@@ -420,8 +420,8 @@ DebugMenuCommands.register("resettrainers", {
}
})
DebugMenuCommands.register("readyrematches", {
"parent" => "battlemenu",
DebugMenuCommands.register("ready_rematches", {
"parent" => "battle_menu",
"name" => _INTL("Ready All Phone Rematches"),
"description" => _INTL("Make all trainers in the phone ready for rematches."),
"effect" => proc {
@@ -439,7 +439,7 @@ DebugMenuCommands.register("readyrematches", {
})
DebugMenuCommands.register("roamers", {
"parent" => "battlemenu",
"parent" => "battle_menu",
"name" => _INTL("Roaming Pokémon"),
"description" => _INTL("Toggle and edit all roaming Pokémon."),
"effect" => proc {
@@ -447,8 +447,8 @@ DebugMenuCommands.register("roamers", {
}
})
DebugMenuCommands.register("encounterversion", {
"parent" => "battlemenu",
DebugMenuCommands.register("encounter_version", {
"parent" => "battle_menu",
"name" => _INTL("Set Encounters Version"),
"description" => _INTL("Choose which version of wild encounters should be used."),
"effect" => proc {
@@ -466,14 +466,14 @@ DebugMenuCommands.register("encounterversion", {
#===============================================================================
# Item options
#===============================================================================
DebugMenuCommands.register("itemsmenu", {
DebugMenuCommands.register("items_menu", {
"parent" => "main",
"name" => _INTL("Item options..."),
"description" => _INTL("Give and take items.")
})
DebugMenuCommands.register("additem", {
"parent" => "itemsmenu",
DebugMenuCommands.register("add_item", {
"parent" => "items_menu",
"name" => _INTL("Add Item"),
"description" => _INTL("Choose an item and a quantity of it to add to the Bag."),
"effect" => proc {
@@ -494,8 +494,8 @@ DebugMenuCommands.register("additem", {
}
})
DebugMenuCommands.register("fillbag", {
"parent" => "itemsmenu",
DebugMenuCommands.register("fill_bag", {
"parent" => "items_menu",
"name" => _INTL("Fill Bag"),
"description" => _INTL("Empties the Bag and then fills it with a certain number of every item."),
"effect" => proc {
@@ -523,8 +523,8 @@ DebugMenuCommands.register("fillbag", {
}
})
DebugMenuCommands.register("emptybag", {
"parent" => "itemsmenu",
DebugMenuCommands.register("empty_bag", {
"parent" => "items_menu",
"name" => _INTL("Empty Bag"),
"description" => _INTL("Remove all items from the Bag."),
"effect" => proc {
@@ -536,14 +536,14 @@ DebugMenuCommands.register("emptybag", {
#===============================================================================
# Pokémon options
#===============================================================================
DebugMenuCommands.register("pokemonmenu", {
DebugMenuCommands.register("pokemon_menu", {
"parent" => "main",
"name" => _INTL("Pokémon options..."),
"description" => _INTL("Give Pokémon, heal party, fill/empty PC storage, etc.")
})
DebugMenuCommands.register("addpokemon", {
"parent" => "pokemonmenu",
DebugMenuCommands.register("add_pokemon", {
"parent" => "pokemon_menu",
"name" => _INTL("Add Pokémon"),
"description" => _INTL("Give yourself a Pokémon of a chosen species/level. Goes to PC if party is full."),
"effect" => proc {
@@ -559,8 +559,8 @@ DebugMenuCommands.register("addpokemon", {
}
})
DebugMenuCommands.register("demoparty", {
"parent" => "pokemonmenu",
DebugMenuCommands.register("give_demo_party", {
"parent" => "pokemon_menu",
"name" => _INTL("Give Demo Party"),
"description" => _INTL("Give yourself 6 preset Pokémon. They overwrite the current party."),
"effect" => proc {
@@ -602,8 +602,8 @@ DebugMenuCommands.register("demoparty", {
}
})
DebugMenuCommands.register("healparty", {
"parent" => "pokemonmenu",
DebugMenuCommands.register("heal_party", {
"parent" => "pokemon_menu",
"name" => _INTL("Heal Party"),
"description" => _INTL("Fully heal the HP/status/PP of all Pokémon in the party."),
"effect" => proc {
@@ -612,8 +612,8 @@ DebugMenuCommands.register("healparty", {
}
})
DebugMenuCommands.register("quickhatch", {
"parent" => "pokemonmenu",
DebugMenuCommands.register("quick_hatch_party_eggs", {
"parent" => "pokemon_menu",
"name" => _INTL("Quick Hatch"),
"description" => _INTL("Make all eggs in the party require just one more step to hatch."),
"effect" => proc {
@@ -622,8 +622,8 @@ DebugMenuCommands.register("quickhatch", {
}
})
DebugMenuCommands.register("fillboxes", {
"parent" => "pokemonmenu",
DebugMenuCommands.register("fill_boxes", {
"parent" => "pokemon_menu",
"name" => _INTL("Fill Storage Boxes"),
"description" => _INTL("Add one Pokémon of each species (at Level 50) to storage."),
"effect" => proc {
@@ -669,8 +669,8 @@ DebugMenuCommands.register("fillboxes", {
}
})
DebugMenuCommands.register("clearboxes", {
"parent" => "pokemonmenu",
DebugMenuCommands.register("clear_boxes", {
"parent" => "pokemon_menu",
"name" => _INTL("Clear Storage Boxes"),
"description" => _INTL("Remove all Pokémon in storage."),
"effect" => proc {
@@ -683,8 +683,8 @@ DebugMenuCommands.register("clearboxes", {
}
})
DebugMenuCommands.register("openstorage", {
"parent" => "pokemonmenu",
DebugMenuCommands.register("open_storage", {
"parent" => "pokemon_menu",
"name" => _INTL("Access Pokémon Storage"),
"description" => _INTL("Opens the Pokémon storage boxes in Organize Boxes mode."),
"effect" => proc {
@@ -699,14 +699,14 @@ DebugMenuCommands.register("openstorage", {
#===============================================================================
# Player options
#===============================================================================
DebugMenuCommands.register("playermenu", {
DebugMenuCommands.register("player_menu", {
"parent" => "main",
"name" => _INTL("Player options..."),
"description" => _INTL("Set money, badges, Pokédexes, player's appearance and name, etc.")
})
DebugMenuCommands.register("setbadges", {
"parent" => "playermenu",
DebugMenuCommands.register("set_badges", {
"parent" => "player_menu",
"name" => _INTL("Set Badges"),
"description" => _INTL("Toggle possession of each Gym Badge."),
"effect" => proc {
@@ -732,8 +732,8 @@ DebugMenuCommands.register("setbadges", {
}
})
DebugMenuCommands.register("setmoney", {
"parent" => "playermenu",
DebugMenuCommands.register("set_money", {
"parent" => "player_menu",
"name" => _INTL("Set Money"),
"description" => _INTL("Edit how much money you have."),
"effect" => proc {
@@ -745,8 +745,8 @@ DebugMenuCommands.register("setmoney", {
}
})
DebugMenuCommands.register("setcoins", {
"parent" => "playermenu",
DebugMenuCommands.register("set_coins", {
"parent" => "player_menu",
"name" => _INTL("Set Coins"),
"description" => _INTL("Edit how many Game Corner Coins you have."),
"effect" => proc {
@@ -758,8 +758,8 @@ DebugMenuCommands.register("setcoins", {
}
})
DebugMenuCommands.register("setbp", {
"parent" => "playermenu",
DebugMenuCommands.register("set_bp", {
"parent" => "player_menu",
"name" => _INTL("Set Battle Points"),
"description" => _INTL("Edit how many Battle Points you have."),
"effect" => proc {
@@ -771,8 +771,8 @@ DebugMenuCommands.register("setbp", {
}
})
DebugMenuCommands.register("toggleshoes", {
"parent" => "playermenu",
DebugMenuCommands.register("toggle_running_shoes", {
"parent" => "player_menu",
"name" => _INTL("Toggle Running Shoes"),
"description" => _INTL("Toggle possession of running shoes."),
"effect" => proc {
@@ -782,8 +782,8 @@ DebugMenuCommands.register("toggleshoes", {
}
})
DebugMenuCommands.register("togglepokegear", {
"parent" => "playermenu",
DebugMenuCommands.register("toggle_pokegear", {
"parent" => "player_menu",
"name" => _INTL("Toggle Pokégear"),
"description" => _INTL("Toggle possession of the Pokégear."),
"effect" => proc {
@@ -793,8 +793,8 @@ DebugMenuCommands.register("togglepokegear", {
}
})
DebugMenuCommands.register("dexlists", {
"parent" => "playermenu",
DebugMenuCommands.register("toggle_pokedex", {
"parent" => "player_menu",
"name" => _INTL("Toggle Pokédex and Dexes"),
"description" => _INTL("Toggle possession of the Pokédex, and edit Regional Dex accessibility."),
"effect" => proc {
@@ -822,8 +822,8 @@ DebugMenuCommands.register("dexlists", {
}
})
DebugMenuCommands.register("setplayer", {
"parent" => "playermenu",
DebugMenuCommands.register("set_player_character", {
"parent" => "player_menu",
"name" => _INTL("Set Player Character"),
"description" => _INTL("Edit the player's character, as defined in \"metadata.txt\"."),
"effect" => proc {
@@ -847,8 +847,8 @@ DebugMenuCommands.register("setplayer", {
}
})
DebugMenuCommands.register("changeoutfit", {
"parent" => "playermenu",
DebugMenuCommands.register("change_outfit", {
"parent" => "player_menu",
"name" => _INTL("Set Player Outfit"),
"description" => _INTL("Edit the player's outfit number."),
"effect" => proc {
@@ -861,8 +861,8 @@ DebugMenuCommands.register("changeoutfit", {
}
})
DebugMenuCommands.register("renameplayer", {
"parent" => "playermenu",
DebugMenuCommands.register("rename_player", {
"parent" => "player_menu",
"name" => _INTL("Set Player Name"),
"description" => _INTL("Rename the player."),
"effect" => proc {
@@ -881,8 +881,8 @@ DebugMenuCommands.register("renameplayer", {
}
})
DebugMenuCommands.register("randomid", {
"parent" => "playermenu",
DebugMenuCommands.register("random_id", {
"parent" => "player_menu",
"name" => _INTL("Randomize Player ID"),
"description" => _INTL("Generate a random new ID for the player."),
"effect" => proc {
@@ -894,15 +894,15 @@ DebugMenuCommands.register("randomid", {
#===============================================================================
# Information editors
#===============================================================================
DebugMenuCommands.register("editorsmenu", {
DebugMenuCommands.register("editors_menu", {
"parent" => "main",
"name" => _INTL("Information editors..."),
"description" => _INTL("Edit information in the PBS files, terrain tags, battle animations, etc."),
"always_show" => true
})
DebugMenuCommands.register("setmetadata", {
"parent" => "editorsmenu",
DebugMenuCommands.register("set_metadata", {
"parent" => "editors_menu",
"name" => _INTL("Edit Metadata"),
"description" => _INTL("Edit global metadata and player character metadata."),
"always_show" => true,
@@ -911,8 +911,8 @@ DebugMenuCommands.register("setmetadata", {
}
})
DebugMenuCommands.register("setmapmetadata", {
"parent" => "editorsmenu",
DebugMenuCommands.register("set_map_metadata", {
"parent" => "editors_menu",
"name" => _INTL("Edit Map Metadata"),
"description" => _INTL("Edit map metadata."),
"always_show" => true,
@@ -921,8 +921,8 @@ DebugMenuCommands.register("setmapmetadata", {
}
})
DebugMenuCommands.register("mapconnections", {
"parent" => "editorsmenu",
DebugMenuCommands.register("set_map_connections", {
"parent" => "editors_menu",
"name" => _INTL("Edit Map Connections"),
"description" => _INTL("Connect maps using a visual interface. Can also edit map encounters/metadata."),
"always_show" => true,
@@ -931,8 +931,8 @@ DebugMenuCommands.register("mapconnections", {
}
})
DebugMenuCommands.register("terraintags", {
"parent" => "editorsmenu",
DebugMenuCommands.register("set_terrain_tags", {
"parent" => "editors_menu",
"name" => _INTL("Edit Terrain Tags"),
"description" => _INTL("Edit the terrain tags of tiles in tilesets. Required for tags 8+."),
"always_show" => true,
@@ -941,8 +941,8 @@ DebugMenuCommands.register("terraintags", {
}
})
DebugMenuCommands.register("setencounters", {
"parent" => "editorsmenu",
DebugMenuCommands.register("set_encounters", {
"parent" => "editors_menu",
"name" => _INTL("Edit Wild Encounters"),
"description" => _INTL("Edit the wild Pokémon that can be found on maps, and how they are encountered."),
"always_show" => true,
@@ -951,8 +951,8 @@ DebugMenuCommands.register("setencounters", {
}
})
DebugMenuCommands.register("trainertypes", {
"parent" => "editorsmenu",
DebugMenuCommands.register("set_trainer_types", {
"parent" => "editors_menu",
"name" => _INTL("Edit Trainer Types"),
"description" => _INTL("Edit the properties of trainer types."),
"always_show" => true,
@@ -961,8 +961,8 @@ DebugMenuCommands.register("trainertypes", {
}
})
DebugMenuCommands.register("edittrainers", {
"parent" => "editorsmenu",
DebugMenuCommands.register("set_trainers", {
"parent" => "editors_menu",
"name" => _INTL("Edit Individual Trainers"),
"description" => _INTL("Edit individual trainers, their Pokémon and items."),
"always_show" => true,
@@ -971,8 +971,8 @@ DebugMenuCommands.register("edittrainers", {
}
})
DebugMenuCommands.register("edititems", {
"parent" => "editorsmenu",
DebugMenuCommands.register("set_items", {
"parent" => "editors_menu",
"name" => _INTL("Edit Items"),
"description" => _INTL("Edit item data."),
"always_show" => true,
@@ -981,8 +981,8 @@ DebugMenuCommands.register("edititems", {
}
})
DebugMenuCommands.register("editpokemon", {
"parent" => "editorsmenu",
DebugMenuCommands.register("set_species", {
"parent" => "editors_menu",
"name" => _INTL("Edit Pokémon"),
"description" => _INTL("Edit Pokémon species data."),
"always_show" => true,
@@ -991,8 +991,8 @@ DebugMenuCommands.register("editpokemon", {
}
})
DebugMenuCommands.register("editdexes", {
"parent" => "editorsmenu",
DebugMenuCommands.register("set_pokedex_lists", {
"parent" => "editors_menu",
"name" => _INTL("Edit Regional Dexes"),
"description" => _INTL("Create, rearrange and delete Regional Pokédex lists."),
"always_show" => true,
@@ -1001,8 +1001,8 @@ DebugMenuCommands.register("editdexes", {
}
})
DebugMenuCommands.register("positionsprites", {
"parent" => "editorsmenu",
DebugMenuCommands.register("position_sprites", {
"parent" => "editors_menu",
"name" => _INTL("Edit Pokémon Sprite Positions"),
"description" => _INTL("Reposition Pokémon sprites in battle."),
"always_show" => true,
@@ -1015,8 +1015,8 @@ DebugMenuCommands.register("positionsprites", {
}
})
DebugMenuCommands.register("autopositionsprites", {
"parent" => "editorsmenu",
DebugMenuCommands.register("auto_position_sprites", {
"parent" => "editors_menu",
"name" => _INTL("Auto-Position All Sprites"),
"description" => _INTL("Automatically reposition all Pokémon sprites in battle. Don't use lightly."),
"always_show" => true,
@@ -1031,8 +1031,8 @@ DebugMenuCommands.register("autopositionsprites", {
}
})
DebugMenuCommands.register("animeditor", {
"parent" => "editorsmenu",
DebugMenuCommands.register("animation_editor", {
"parent" => "editors_menu",
"name" => _INTL("Battle Animation Editor"),
"description" => _INTL("Edit the battle animations."),
"always_show" => true,
@@ -1041,8 +1041,8 @@ DebugMenuCommands.register("animeditor", {
}
})
DebugMenuCommands.register("animorganiser", {
"parent" => "editorsmenu",
DebugMenuCommands.register("animation_organiser", {
"parent" => "editors_menu",
"name" => _INTL("Battle Animation Organiser"),
"description" => _INTL("Rearrange/add/delete battle animations."),
"always_show" => true,
@@ -1051,8 +1051,8 @@ DebugMenuCommands.register("animorganiser", {
}
})
DebugMenuCommands.register("importanims", {
"parent" => "editorsmenu",
DebugMenuCommands.register("import_animations", {
"parent" => "editors_menu",
"name" => _INTL("Import All Battle Animations"),
"description" => _INTL("Import all battle animations from the \"Animations\" folder."),
"always_show" => true,
@@ -1061,8 +1061,8 @@ DebugMenuCommands.register("importanims", {
}
})
DebugMenuCommands.register("exportanims", {
"parent" => "editorsmenu",
DebugMenuCommands.register("export_animations", {
"parent" => "editors_menu",
"name" => _INTL("Export All Battle Animations"),
"description" => _INTL("Export all battle animations individually to the \"Animations\" folder."),
"always_show" => true,
@@ -1074,15 +1074,15 @@ DebugMenuCommands.register("exportanims", {
#===============================================================================
# Other options
#===============================================================================
DebugMenuCommands.register("othermenu", {
DebugMenuCommands.register("other_menu", {
"parent" => "main",
"name" => _INTL("Other options..."),
"description" => _INTL("Mystery Gifts, translations, compile data, etc."),
"always_show" => true
})
DebugMenuCommands.register("mysterygift", {
"parent" => "othermenu",
DebugMenuCommands.register("mystery_gift", {
"parent" => "other_menu",
"name" => _INTL("Manage Mystery Gifts"),
"description" => _INTL("Edit and enable/disable Mystery Gifts."),
"always_show" => true,
@@ -1091,8 +1091,8 @@ DebugMenuCommands.register("mysterygift", {
}
})
DebugMenuCommands.register("extracttext", {
"parent" => "othermenu",
DebugMenuCommands.register("extract_text", {
"parent" => "other_menu",
"name" => _INTL("Extract Text"),
"description" => _INTL("Extract all text in the game to a single file for translating."),
"always_show" => true,
@@ -1101,8 +1101,8 @@ DebugMenuCommands.register("extracttext", {
}
})
DebugMenuCommands.register("compiletext", {
"parent" => "othermenu",
DebugMenuCommands.register("compile_text", {
"parent" => "other_menu",
"name" => _INTL("Compile Text"),
"description" => _INTL("Import text and converts it into a language file."),
"always_show" => true,
@@ -1111,8 +1111,8 @@ DebugMenuCommands.register("compiletext", {
}
})
DebugMenuCommands.register("compiledata", {
"parent" => "othermenu",
DebugMenuCommands.register("compile_data", {
"parent" => "other_menu",
"name" => _INTL("Compile Data"),
"description" => _INTL("Fully compile all data."),
"always_show" => true,
@@ -1124,8 +1124,8 @@ DebugMenuCommands.register("compiledata", {
}
})
DebugMenuCommands.register("createpbs", {
"parent" => "othermenu",
DebugMenuCommands.register("create_pbs_files", {
"parent" => "other_menu",
"name" => _INTL("Create PBS File(s)"),
"description" => _INTL("Choose one or all PBS files and create it."),
"always_show" => true,
@@ -1185,8 +1185,8 @@ DebugMenuCommands.register("createpbs", {
}
})
DebugMenuCommands.register("invalidtiles", {
"parent" => "othermenu",
DebugMenuCommands.register("fix_invalid_tiles", {
"parent" => "other_menu",
"name" => _INTL("Fix Invalid Tiles"),
"description" => _INTL("Scans all maps and erases non-existent tiles."),
"always_show" => true,
@@ -1195,8 +1195,8 @@ DebugMenuCommands.register("invalidtiles", {
}
})
DebugMenuCommands.register("renamefiles", {
"parent" => "othermenu",
DebugMenuCommands.register("rename_files", {
"parent" => "other_menu",
"name" => _INTL("Rename Outdated Files"),
"description" => _INTL("Check for files with outdated names and rename/move them. Can alter map data."),
"always_show" => true,
@@ -1208,8 +1208,8 @@ DebugMenuCommands.register("renamefiles", {
}
})
DebugMenuCommands.register("reloadsystemcache", {
"parent" => "othermenu",
DebugMenuCommands.register("reload_system_cache", {
"parent" => "other_menu",
"name" => _INTL("Reload System Cache"),
"description" => _INTL("Refreshes the system's file cache. Use if you change a file while playing."),
"always_show" => true,

View File

@@ -40,14 +40,14 @@ end
#===============================================================================
# HP/Status options
#===============================================================================
PokemonDebugMenuCommands.register("hpstatusmenu", {
PokemonDebugMenuCommands.register("hp_status_menu", {
"parent" => "main",
"name" => _INTL("HP/Status..."),
"always_show" => true
})
PokemonDebugMenuCommands.register("sethp", {
"parent" => "hpstatusmenu",
PokemonDebugMenuCommands.register("set_hp", {
"parent" => "hp_status_menu",
"name" => _INTL("Set HP"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -69,8 +69,8 @@ PokemonDebugMenuCommands.register("sethp", {
}
})
PokemonDebugMenuCommands.register("setstatus", {
"parent" => "hpstatusmenu",
PokemonDebugMenuCommands.register("set_status", {
"parent" => "hp_status_menu",
"name" => _INTL("Set status"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -123,8 +123,8 @@ PokemonDebugMenuCommands.register("setstatus", {
}
})
PokemonDebugMenuCommands.register("fullheal", {
"parent" => "hpstatusmenu",
PokemonDebugMenuCommands.register("full_heal", {
"parent" => "hp_status_menu",
"name" => _INTL("Fully heal"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -139,8 +139,8 @@ PokemonDebugMenuCommands.register("fullheal", {
}
})
PokemonDebugMenuCommands.register("makefainted", {
"parent" => "hpstatusmenu",
PokemonDebugMenuCommands.register("make_fainted", {
"parent" => "hp_status_menu",
"name" => _INTL("Make fainted"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -154,8 +154,8 @@ PokemonDebugMenuCommands.register("makefainted", {
}
})
PokemonDebugMenuCommands.register("setpokerus", {
"parent" => "hpstatusmenu",
PokemonDebugMenuCommands.register("set_pokerus", {
"parent" => "hp_status_menu",
"name" => _INTL("Set Pokérus"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -193,14 +193,14 @@ PokemonDebugMenuCommands.register("setpokerus", {
#===============================================================================
# Level/stats options
#===============================================================================
PokemonDebugMenuCommands.register("levelstats", {
PokemonDebugMenuCommands.register("level_stats", {
"parent" => "main",
"name" => _INTL("Level/stats..."),
"always_show" => true
})
PokemonDebugMenuCommands.register("setlevel", {
"parent" => "levelstats",
PokemonDebugMenuCommands.register("set_level", {
"parent" => "level_stats",
"name" => _INTL("Set level"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -223,8 +223,8 @@ PokemonDebugMenuCommands.register("setlevel", {
}
})
PokemonDebugMenuCommands.register("setexp", {
"parent" => "levelstats",
PokemonDebugMenuCommands.register("set_exp", {
"parent" => "level_stats",
"name" => _INTL("Set Exp"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -253,8 +253,8 @@ PokemonDebugMenuCommands.register("setexp", {
}
})
PokemonDebugMenuCommands.register("hiddenvalues", {
"parent" => "levelstats",
PokemonDebugMenuCommands.register("hidden_values", {
"parent" => "level_stats",
"name" => _INTL("EV/IV/pID..."),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -367,8 +367,8 @@ PokemonDebugMenuCommands.register("hiddenvalues", {
}
})
PokemonDebugMenuCommands.register("sethappiness", {
"parent" => "levelstats",
PokemonDebugMenuCommands.register("set_happiness", {
"parent" => "level_stats",
"name" => _INTL("Set happiness"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -386,14 +386,14 @@ PokemonDebugMenuCommands.register("sethappiness", {
}
})
PokemonDebugMenuCommands.register("conteststats", {
"parent" => "levelstats",
PokemonDebugMenuCommands.register("contest_stats", {
"parent" => "level_stats",
"name" => _INTL("Contest stats..."),
"always_show" => true
})
PokemonDebugMenuCommands.register("setbeauty", {
"parent" => "conteststats",
PokemonDebugMenuCommands.register("set_beauty", {
"parent" => "contest_stats",
"name" => _INTL("Set Beauty"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -411,8 +411,8 @@ PokemonDebugMenuCommands.register("setbeauty", {
}
})
PokemonDebugMenuCommands.register("setcool", {
"parent" => "conteststats",
PokemonDebugMenuCommands.register("set_cool", {
"parent" => "contest_stats",
"name" => _INTL("Set Cool"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -430,8 +430,8 @@ PokemonDebugMenuCommands.register("setcool", {
}
})
PokemonDebugMenuCommands.register("setcute", {
"parent" => "conteststats",
PokemonDebugMenuCommands.register("set_cute", {
"parent" => "contest_stats",
"name" => _INTL("Set Cute"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -449,8 +449,8 @@ PokemonDebugMenuCommands.register("setcute", {
}
})
PokemonDebugMenuCommands.register("setsmart", {
"parent" => "conteststats",
PokemonDebugMenuCommands.register("set_smart", {
"parent" => "contest_stats",
"name" => _INTL("Set Smart"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -468,8 +468,8 @@ PokemonDebugMenuCommands.register("setsmart", {
}
})
PokemonDebugMenuCommands.register("settough", {
"parent" => "conteststats",
PokemonDebugMenuCommands.register("set_tough", {
"parent" => "contest_stats",
"name" => _INTL("Set Tough"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -487,8 +487,8 @@ PokemonDebugMenuCommands.register("settough", {
}
})
PokemonDebugMenuCommands.register("setsheen", {
"parent" => "conteststats",
PokemonDebugMenuCommands.register("set_sheen", {
"parent" => "contest_stats",
"name" => _INTL("Set Sheen"),
"always_show" => true,
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|
@@ -515,7 +515,7 @@ PokemonDebugMenuCommands.register("moves", {
"always_show" => true
})
PokemonDebugMenuCommands.register("teachmove", {
PokemonDebugMenuCommands.register("teach_move", {
"parent" => "moves",
"name" => _INTL("Teach move"),
"always_show" => true,
@@ -529,7 +529,7 @@ PokemonDebugMenuCommands.register("teachmove", {
}
})
PokemonDebugMenuCommands.register("forgetmove", {
PokemonDebugMenuCommands.register("forget_move", {
"parent" => "moves",
"name" => _INTL("Forget move"),
"always_show" => true,
@@ -545,7 +545,7 @@ PokemonDebugMenuCommands.register("forgetmove", {
}
})
PokemonDebugMenuCommands.register("resetmoves", {
PokemonDebugMenuCommands.register("reset_moves", {
"parent" => "moves",
"name" => _INTL("Reset moves"),
"always_show" => true,
@@ -557,7 +557,7 @@ PokemonDebugMenuCommands.register("resetmoves", {
}
})
PokemonDebugMenuCommands.register("setmovepp", {
PokemonDebugMenuCommands.register("set_move_pp", {
"parent" => "moves",
"name" => _INTL("Set move PP"),
"always_show" => true,
@@ -621,7 +621,7 @@ PokemonDebugMenuCommands.register("setmovepp", {
}
})
PokemonDebugMenuCommands.register("setinitialmoves", {
PokemonDebugMenuCommands.register("set_initial_moves", {
"parent" => "moves",
"name" => _INTL("Reset initial moves"),
"always_show" => true,
@@ -636,7 +636,7 @@ PokemonDebugMenuCommands.register("setinitialmoves", {
#===============================================================================
# Other options
#===============================================================================
PokemonDebugMenuCommands.register("setitem", {
PokemonDebugMenuCommands.register("set_item", {
"parent" => "main",
"name" => _INTL("Set item"),
"always_show" => true,
@@ -674,7 +674,7 @@ PokemonDebugMenuCommands.register("setitem", {
}
})
PokemonDebugMenuCommands.register("setability", {
PokemonDebugMenuCommands.register("set_ability", {
"parent" => "main",
"name" => _INTL("Set ability"),
"always_show" => true,
@@ -723,7 +723,7 @@ PokemonDebugMenuCommands.register("setability", {
}
})
PokemonDebugMenuCommands.register("setnature", {
PokemonDebugMenuCommands.register("set_nature", {
"parent" => "main",
"name" => _INTL("Set nature"),
"always_show" => true,
@@ -766,7 +766,7 @@ PokemonDebugMenuCommands.register("setnature", {
}
})
PokemonDebugMenuCommands.register("setgender", {
PokemonDebugMenuCommands.register("set_gender", {
"parent" => "main",
"name" => _INTL("Set gender"),
"always_show" => true,
@@ -804,7 +804,7 @@ PokemonDebugMenuCommands.register("setgender", {
}
})
PokemonDebugMenuCommands.register("speciesform", {
PokemonDebugMenuCommands.register("species_and_form", {
"parent" => "main",
"name" => _INTL("Species/form..."),
"always_show" => true,
@@ -873,7 +873,7 @@ PokemonDebugMenuCommands.register("cosmetic", {
"always_show" => true
})
PokemonDebugMenuCommands.register("setshininess", {
PokemonDebugMenuCommands.register("set_shininess", {
"parent" => "cosmetic",
"name" => _INTL("Set shininess"),
"always_show" => true,
@@ -905,7 +905,7 @@ PokemonDebugMenuCommands.register("setshininess", {
}
})
PokemonDebugMenuCommands.register("setpokeball", {
PokemonDebugMenuCommands.register("set_pokeball", {
"parent" => "cosmetic",
"name" => _INTL("Set Poké Ball"),
"always_show" => true,
@@ -933,7 +933,7 @@ PokemonDebugMenuCommands.register("setpokeball", {
}
})
PokemonDebugMenuCommands.register("setribbons", {
PokemonDebugMenuCommands.register("set_ribbons", {
"parent" => "cosmetic",
"name" => _INTL("Set ribbons"),
"always_show" => true,
@@ -969,7 +969,7 @@ PokemonDebugMenuCommands.register("setribbons", {
}
})
PokemonDebugMenuCommands.register("setnickname", {
PokemonDebugMenuCommands.register("set_nickname", {
"parent" => "cosmetic",
"name" => _INTL("Set nickname"),
"always_show" => true,
@@ -1044,7 +1044,7 @@ PokemonDebugMenuCommands.register("ownership", {
#===============================================================================
# Can store/release/trade
#===============================================================================
PokemonDebugMenuCommands.register("setdiscardable", {
PokemonDebugMenuCommands.register("set_discardable", {
"parent" => "main",
"name" => _INTL("Set discardable"),
"always_show" => true,
@@ -1074,7 +1074,7 @@ PokemonDebugMenuCommands.register("setdiscardable", {
#===============================================================================
# Other options
#===============================================================================
PokemonDebugMenuCommands.register("setegg", {
PokemonDebugMenuCommands.register("set_egg", {
"parent" => "main",
"name" => _INTL("Set egg"),
"always_show" => true,
@@ -1116,7 +1116,7 @@ PokemonDebugMenuCommands.register("setegg", {
}
})
PokemonDebugMenuCommands.register("shadowpkmn", {
PokemonDebugMenuCommands.register("shadow_pkmn", {
"parent" => "main",
"name" => _INTL("Shadow Pkmn..."),
"always_show" => true,
@@ -1158,7 +1158,7 @@ PokemonDebugMenuCommands.register("shadowpkmn", {
}
})
PokemonDebugMenuCommands.register("mysterygift", {
PokemonDebugMenuCommands.register("mystery_gift", {
"parent" => "main",
"name" => _INTL("Mystery Gift"),
"effect" => proc { |pkmn, pkmnid, heldpoke, settingUpBattle, screen|

View File

@@ -4,7 +4,6 @@
Positions (Battle::ActivePosition)
PBEffects::HealingWish
PBEffects::LunarDance
backdrop, backdropBase
turnCount
items (of foe trainers)
initialItems - Array of two arrays, each with one value per party index
@@ -92,7 +91,7 @@ BattleDebugMenuCommands.register("list_player_battlers", {
loop do
cmd = pbMessage("\\ts[]" + _INTL("Choose a Pokémon."), cmds, -1, nil, cmd)
break if cmd < 0
battle.pbBattleBattlerDebug(battlers[cmd])
battle.pbBattlePokemonDebug(battlers[cmd].pokemon, battlers[cmd])
end
}
})
@@ -113,7 +112,7 @@ BattleDebugMenuCommands.register("list_foe_battlers", {
loop do
cmd = pbMessage("\\ts[]" + _INTL("Choose a Pokémon."), cmds, -1, nil, cmd)
break if cmd < 0
battle.pbBattleBattlerDebug(battlers[cmd])
battle.pbBattlePokemonDebug(battlers[cmd].pokemon, battlers[cmd])
end
}
})
@@ -293,6 +292,31 @@ BattleDebugMenuCommands.register("environment", {
}
})
BattleDebugMenuCommands.register("backdrop", {
"parent" => "field",
"name" => _INTL("Backdrop Names"),
"description" => _INTL("Set the names of the backdrop and base graphics."),
"always_show" => true,
"effect" => proc { |battle|
loop do
cmd = pbMessage("\\ts[]" + _INTL("Set which backdrop name?"),
[_INTL("Backdrop"),
_INTL("Base modifier")], -1)
break if cmd < 0
case cmd
when 0 # Backdrop
text = pbMessageFreeText("\\ts[]" + _INTL("Set the backdrop's name."),
battle.backdrop, false, 100, Graphics.width)
battle.backdrop = (nil_or_empty?(text)) ? "Indoor1" : text
when 1 # Base modifier
text = pbMessageFreeText("\\ts[]" + _INTL("Set the base modifier text."),
battle.backdropBase, false, 100, Graphics.width)
battle.backdropBase = (nil_or_empty?(text)) ? nil : text
end
end
}
})
BattleDebugMenuCommands.register("set_field_effects", {
"parent" => "field",
"name" => _INTL("Other Field Effects..."),

View File

@@ -11,7 +11,7 @@ Actual stats? @attack, @defense, etc.
#===============================================================================
#
#===============================================================================
module BattlerDebugMenuCommands
module BattlePokemonDebugMenuCommands
@@commands = HandlerHashBasic.new
def self.register(option, hash)
@@ -50,39 +50,40 @@ end
#===============================================================================
# HP/Status options
#===============================================================================
BattlerDebugMenuCommands.register("hpstatusmenu", {
"parent" => "main",
"name" => _INTL("HP/Status..."),
"always_show" => true
BattlePokemonDebugMenuCommands.register("hp_status_menu", {
"parent" => "main",
"name" => _INTL("HP/Status..."),
"usage" => :both
})
BattlerDebugMenuCommands.register("sethp", {
"parent" => "hpstatusmenu",
"name" => _INTL("Set HP"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_hp", {
"parent" => "hp_status_menu",
"name" => _INTL("Set HP"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
if pkmn.egg?
pbMessage("\\ts[]" + _INTL("{1} is an egg.", pkmn.name))
next
elsif battler.totalhp == 1
elsif pkmn.totalhp == 1
pbMessage("\\ts[]" + _INTL("Can't change HP, {1}'s maximum HP is 1.", pkmn.name))
next
end
params = ChooseNumberParams.new
params.setRange(1, battler.totalhp)
params.setDefaultValue(battler.hp)
params.setRange(1, pkmn.totalhp)
params.setDefaultValue(pkmn.hp)
new_hp = pbMessageChooseNumber(
"\\ts[]" + _INTL("Set {1}'s HP (1-{2}).", battler.pbThis(true), battler.totalhp), params
"\\ts[]" + _INTL("Set {1}'s HP (1-{2}).", (battler) ? battler.pbThis(true) : pkmn.name, pkmn.totalhp), params
)
battler.hp = new_hp if new_hp != battler.hp
next if new_hp == pkmn.hp
(battler || pkmn).hp = new_hp
}
})
BattlerDebugMenuCommands.register("setstatus", {
"parent" => "hpstatusmenu",
"name" => _INTL("Set status"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_status", {
"parent" => "hp_status_menu",
"name" => _INTL("Set status"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
if pkmn.egg?
pbMessage("\\ts[]" + _INTL("{1} is an egg.", pkmn.name))
next
@@ -99,77 +100,95 @@ BattlerDebugMenuCommands.register("setstatus", {
ids.push(s.id)
end
loop do
msg = _INTL("Current status: {1}", GameData::Status.get(battler.status).name)
if battler.status == :SLEEP
msg += " " + _INTL("(turns: {1})", battler.statusCount)
elsif battler.status == :POISON && battler.statusCount > 0
msg += " " + _INTL("(toxic, count: {1})", battler.statusCount)
msg = _INTL("Current status: {1}", GameData::Status.get(pkmn.status).name)
if pkmn.status == :SLEEP
msg += " " + _INTL("(turns: {1})", pkmn.statusCount)
elsif pkmn.status == :POISON && pkmn.statusCount > 0
if battler
msg += " " + _INTL("(toxic, count: {1})", battler.statusCount)
else
msg += " " + _INTL("(toxic)")
end
end
cmd = pbMessage("\\ts[]" + msg, commands, -1, nil, cmd)
break if cmd < 0
case cmd
when 0 # Cure
battler.status = :NONE
if battler
battler.status = :NONE
else
pkmn.heal_status
end
else # Give status problem
pkmn_name = (battler) ? battler.pbThis(true) : pkmn.name
case ids[cmd]
when :SLEEP
params = ChooseNumberParams.new
params.setRange(0, 99)
params.setDefaultValue((battler.status == :SLEEP) ? battler.statusCount : 3)
params.setDefaultValue((pkmn.status == :SLEEP) ? pkmn.statusCount : 3)
params.setCancelValue(-1)
count = pbMessageChooseNumber("\\ts[]" + _INTL("Set {1}'s sleep count (0-99).", battler.pbThis(true)), params)
count = pbMessageChooseNumber("\\ts[]" + _INTL("Set {1}'s sleep count (0-99).", pkmn_name), params)
next if count < 0
battler.statusCount = count
(battler || pkmn).statusCount = count
when :POISON
if pbConfirmMessage("\\ts[]" + _INTL("Make {1} badly poisoned (toxic)?", battler.pbThis(true)))
params = ChooseNumberParams.new
params.setRange(0, 15)
params.setDefaultValue(0)
params.setCancelValue(-1)
count = pbMessageChooseNumber(
"\\ts[]" + _INTL("Set {1}'s toxic count (0-15).", battler.pbThis(true)), params
)
next if count < 0
battler.statusCount = 1
battler.effects[PBEffects::Toxic] = count
if pbConfirmMessage("\\ts[]" + _INTL("Make {1} badly poisoned (toxic)?", pkmn_name))
if battler
params = ChooseNumberParams.new
params.setRange(0, 15)
params.setDefaultValue(0)
params.setCancelValue(-1)
count = pbMessageChooseNumber(
"\\ts[]" + _INTL("Set {1}'s toxic count (0-15).", pkmn_name), params
)
next if count < 0
battler.statusCount = 1
battler.effects[PBEffects::Toxic] = count
else
pkmn.statusCount = 1
end
else
battler.statusCount = 0
(battler || pkmn).statusCount = 0
end
end
battler.status = ids[cmd]
(battler || pkmn).status = ids[cmd]
end
end
}
})
BattlerDebugMenuCommands.register("fullheal", {
"parent" => "hpstatusmenu",
"name" => _INTL("Heal HP and status"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("full_heal", {
"parent" => "hp_status_menu",
"name" => _INTL("Heal HP and status"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
if pkmn.egg?
pbMessage("\\ts[]" + _INTL("{1} is an egg.", pkmn.name))
next
end
battler.hp = battler.totalhp
battler.status = :NONE
if battler
battler.hp = battler.totalhp
battler.status = :NONE
else
pkmn.heal_HP
pkmn.heal_status
end
}
})
#===============================================================================
# Level/stats options
#===============================================================================
BattlerDebugMenuCommands.register("levelstats", {
"parent" => "main",
"name" => _INTL("Stats/level..."),
"always_show" => true
BattlePokemonDebugMenuCommands.register("level_stats", {
"parent" => "main",
"name" => _INTL("Stats/level..."),
"usage" => :both
})
BattlerDebugMenuCommands.register("setstatstages", {
"parent" => "levelstats",
"name" => _INTL("Set stat stages"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_stat_stages", {
"parent" => "level_stats",
"name" => _INTL("Set stat stages"),
"usage" => :battler,
"effect" => proc { |pkmn, battler, battle|
if pkmn.egg?
pbMessage("\\ts[]" + _INTL("{1} is an egg.", pkmn.name))
next
@@ -204,11 +223,11 @@ BattlerDebugMenuCommands.register("setstatstages", {
}
})
BattlerDebugMenuCommands.register("setlevel", {
"parent" => "levelstats",
"name" => _INTL("Set level"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_level", {
"parent" => "level_stats",
"name" => _INTL("Set level"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
if pkmn.egg?
pbMessage("\\ts[]" + _INTL("{1} is an egg.", pkmn.name))
next
@@ -222,16 +241,16 @@ BattlerDebugMenuCommands.register("setlevel", {
if level != pkmn.level
pkmn.level = level
pkmn.calc_stats
battler.pbUpdate
battler.pbUpdate if battler
end
}
})
BattlerDebugMenuCommands.register("setexp", {
"parent" => "levelstats",
"name" => _INTL("Set Exp"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_exp", {
"parent" => "level_stats",
"name" => _INTL("Set Exp"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
if pkmn.egg?
pbMessage("\\ts[]" + _INTL("{1} is an egg.", pkmn.name))
next
@@ -252,11 +271,11 @@ BattlerDebugMenuCommands.register("setexp", {
}
})
BattlerDebugMenuCommands.register("hiddenvalues", {
"parent" => "levelstats",
"name" => _INTL("EV/IV..."),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("hidden_values", {
"parent" => "level_stats",
"name" => _INTL("EV/IV..."),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
cmd = 0
loop do
persid = sprintf("0x%08X", pkmn.personalID)
@@ -296,7 +315,7 @@ BattlerDebugMenuCommands.register("hiddenvalues", {
if f != pkmn.ev[ev_id[cmd2]]
pkmn.ev[ev_id[cmd2]] = f
pkmn.calc_stats
battler.pbUpdate
battler.pbUpdate if battler
end
else # (Max) Randomise all
evTotalTarget = Pokemon::EV_LIMIT
@@ -315,7 +334,7 @@ BattlerDebugMenuCommands.register("hiddenvalues", {
evTotalTarget -= addVal
end
pkmn.calc_stats
battler.pbUpdate
battler.pbUpdate if battler
end
end
when 1 # Set IVs
@@ -346,12 +365,12 @@ BattlerDebugMenuCommands.register("hiddenvalues", {
if f != pkmn.iv[iv_id[cmd2]]
pkmn.iv[iv_id[cmd2]] = f
pkmn.calc_stats
battler.pbUpdate
battler.pbUpdate if battler
end
else # Randomise all
GameData::Stat.each_main { |s| pkmn.iv[s.id] = rand(Pokemon::IV_STAT_LIMIT + 1) }
pkmn.calc_stats
battler.pbUpdate
battler.pbUpdate if battler
end
end
end
@@ -359,11 +378,11 @@ BattlerDebugMenuCommands.register("hiddenvalues", {
}
})
BattlerDebugMenuCommands.register("sethappiness", {
"parent" => "levelstats",
"name" => _INTL("Set happiness"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_happiness", {
"parent" => "level_stats",
"name" => _INTL("Set happiness"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
params = ChooseNumberParams.new
params.setRange(0, 255)
params.setDefaultValue(pkmn.happiness)
@@ -375,11 +394,11 @@ BattlerDebugMenuCommands.register("sethappiness", {
#===============================================================================
# Types
#===============================================================================
BattlerDebugMenuCommands.register("settypes", {
"parent" => "main",
"name" => _INTL("Set types"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_types", {
"parent" => "main",
"name" => _INTL("Set types"),
"usage" => :battler,
"effect" => proc { |pkmn, battler, battle|
max_main_types = 2 # The most types a Pokémon can have normally
cmd = 0
loop do
@@ -424,17 +443,17 @@ BattlerDebugMenuCommands.register("settypes", {
#===============================================================================
# Moves options
#===============================================================================
BattlerDebugMenuCommands.register("moves", {
"parent" => "main",
"name" => _INTL("Moves..."),
"always_show" => true
BattlePokemonDebugMenuCommands.register("moves", {
"parent" => "main",
"name" => _INTL("Moves..."),
"usage" => :both
})
BattlerDebugMenuCommands.register("teachmove", {
"parent" => "moves",
"name" => _INTL("Teach move"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("teach_move", {
"parent" => "moves",
"name" => _INTL("Teach move"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
if pkmn.numMoves >= Pokemon::MAX_MOVES
pbMessage("\\ts[]" + _INTL("{1} already knows {2} moves. It needs to forget one first.",
pkmn.name, pkmn.numMoves))
@@ -448,16 +467,16 @@ BattlerDebugMenuCommands.register("teachmove", {
next
end
pkmn.learn_move(new_move)
battler.moves.push(Move.from_pokemon_move(self, pkmn.moves.last)) if battler
battler.moves.push(Battle::Move.from_pokemon_move(self, pkmn.moves.last)) if battler
pbMessage("\\ts[]" + _INTL("{1} learned {2}!", pkmn.name, move_name))
}
})
BattlerDebugMenuCommands.register("forgetmove", {
"parent" => "moves",
"name" => _INTL("Forget move"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("forget_move", {
"parent" => "moves",
"name" => _INTL("Forget move"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
move_names = []
move_indices = []
pkmn.moves.each_with_index do |move, index|
@@ -478,11 +497,11 @@ BattlerDebugMenuCommands.register("forgetmove", {
}
})
BattlerDebugMenuCommands.register("setmovepp", {
"parent" => "moves",
"name" => _INTL("Set move PP"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_move_pp", {
"parent" => "moves",
"name" => _INTL("Set move PP"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
cmd = 0
loop do
move_names = []
@@ -546,7 +565,7 @@ BattlerDebugMenuCommands.register("setmovepp", {
elsif cmd == commands.length - 1 # Restore all PP
pkmn.heal_PP
if battler
battler.moves.each { |move| move.pp = move.total_pp }
battler.moves.each { |m| m.pp = m.total_pp }
end
end
end
@@ -556,11 +575,11 @@ BattlerDebugMenuCommands.register("setmovepp", {
#===============================================================================
# Other options
#===============================================================================
BattlerDebugMenuCommands.register("setitem", {
"parent" => "main",
"name" => _INTL("Set item"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_item", {
"parent" => "main",
"name" => _INTL("Set item"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
cmd = 0
commands = [
_INTL("Change item"),
@@ -574,14 +593,14 @@ BattlerDebugMenuCommands.register("setitem", {
when 0 # Change item
item = pbChooseItemList(pkmn.item_id)
if item && item != pkmn.item_id
battler.item = item
(battler || pkmn).item = item
if GameData::Item.get(item).is_mail?
pkmn.mail = Mail.new(item, _INTL("Text"), $player.name)
end
end
when 1 # Remove item
if pkmn.hasItem?
battler.item = nil
(battler || pkmn).item = nil
pkmn.mail = nil
end
else
@@ -591,48 +610,52 @@ BattlerDebugMenuCommands.register("setitem", {
}
})
BattlerDebugMenuCommands.register("setability", {
"parent" => "main",
"name" => _INTL("Set ability"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_ability", {
"parent" => "main",
"name" => _INTL("Set ability"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
cmd = 0
commands = [
_INTL("Set ability for battler"),
_INTL("Set ability for Pokémon"),
_INTL("Reset")
]
commands = []
commands.push(_INTL("Set ability for Pokémon"))
commands.push(_INTL("Set ability for battler")) if battler
commands.push(_INTL("Reset"))
loop do
msg = _INTL("Battler's ability is {1}. Pokémon's ability is {2}.",
battler.abilityName, pkmn.ability.name)
cmd = pbMessage("\\ts[]" + msg, commands, -1, nil, cmd)
break if cmd < 0
cmd = 2 if cmd >= 1 && !battler # Correct command for Pokémon (no battler)
case cmd
when 0 # Set ability for battler
new_ability = pbChooseAbilityList(pkmn.ability_id)
if new_ability && new_ability != battler.ability_id
battler.ability = new_ability
end
when 1 # Set ability for Pokémon
when 0 # Set ability for Pokémon
new_ability = pbChooseAbilityList(pkmn.ability_id)
if new_ability && new_ability != pkmn.ability_id
pkmn.ability = new_ability
battler.ability = pkmn.ability
battler.ability = pkmn.ability if battler
end
when 1 # Set ability for battler
if battler
new_ability = pbChooseAbilityList(battler.ability_id)
if new_ability && new_ability != battler.ability_id
battler.ability = new_ability
end
else
pbMessage(_INTL("This Pokémon isn't in battle."))
end
when 2 # Reset
pkmn.ability_index = nil
pkmn.ability = nil
battler.ability = pkmn.ability
battler.ability = pkmn.ability if battler
end
end
}
})
BattlerDebugMenuCommands.register("setnature", {
"parent" => "main",
"name" => _INTL("Set nature"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_nature", {
"parent" => "main",
"name" => _INTL("Set nature"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
commands = []
ids = []
GameData::Nature.each do |nature|
@@ -665,16 +688,16 @@ BattlerDebugMenuCommands.register("setnature", {
elsif cmd == commands.length - 1 # Reset
pkmn.nature = nil
end
battler.pbUpdate
battler.pbUpdate if battler
end
}
})
BattlerDebugMenuCommands.register("setgender", {
"parent" => "main",
"name" => _INTL("Set gender"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_gender", {
"parent" => "main",
"name" => _INTL("Set gender"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
if pkmn.singleGendered?
pbMessage("\\ts[]" + _INTL("{1} is single-gendered or genderless.", pkmn.speciesName))
next
@@ -699,11 +722,11 @@ BattlerDebugMenuCommands.register("setgender", {
}
})
BattlerDebugMenuCommands.register("speciesform", {
"parent" => "main",
"name" => _INTL("Set form"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("form", {
"parent" => "main",
"name" => _INTL("Set form"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
cmd = 0
formcmds = [[], []]
GameData::Species.each do |sp|
@@ -730,19 +753,17 @@ BattlerDebugMenuCommands.register("speciesform", {
pkmn.forced_form = f
end
pkmn.form_simple = f
battler.form = pkmn.form if battler
end
end
}
})
#===============================================================================
# Shininess
#===============================================================================
BattlerDebugMenuCommands.register("setshininess", {
"parent" => "main",
"name" => _INTL("Set shininess"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_shininess", {
"parent" => "main",
"name" => _INTL("Set shininess"),
"usage" => :both,
"effect" => proc { |pkmn, battler, battle|
cmd = 0
loop do
msg_idx = pkmn.shiny? ? (pkmn.super_shiny? ? 1 : 0) : 2
@@ -770,14 +791,11 @@ BattlerDebugMenuCommands.register("setshininess", {
}
})
#===============================================================================
# Set effects
#===============================================================================
BattlerDebugMenuCommands.register("set_effects", {
"parent" => "main",
"name" => _INTL("Set effects"),
"always_show" => true,
"effect" => proc { |battler, pkmn, battle|
BattlePokemonDebugMenuCommands.register("set_effects", {
"parent" => "main",
"name" => _INTL("Set effects"),
"usage" => :battler,
"effect" => proc { |pkmn, battler, battle|
editor = Battle::DebugSetEffects.new(battle, :battler, battler.index)
editor.update
editor.dispose