Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Current change log for Pokémon Essentials v18
- ##### Battle general #################################################
- * Broke basically every third party script that affects battle
- * Renamed a lot of methods and variables
- * Did a lot of unspecified rewriting and rearranging of code to add efficiency/clarity/usefulness/tidiness
- * Rearranged some scripts involved in Bug Catching Contest battles
- * Replaced "attacker"/"opponent" with "user"/"target" in battle scripts for consistency
- * Renamed "battlebox" to "dataBox"
- * Edited some code sections which iterate through battlers to make them use a specific interacting method instead
- * Made all mentions of a battle party, party order or party start indices go through the methods that return them, for tidiness
- * Changed when battlers are created, and made them only be created if they exist
- * Turned the records of a Pokémon's initial item, Recycle item and Belch into battle properties rather than Pokémon properties
- * Improved some code relating to owners in battle
- * Fiddled around with def pbGainExp and related methods
- * Altered how the party orders work, and rewrote def pbLastInTeam (used for Illusion) to account for this
- * Rewrote the method that deletes a Pokémon in battle to make it work properly
- * Merged all "can inflict status" checks into one method
- * A burn now damages the Pokémon by 1/16 of its total HP in the new mechanics as per Gen 7
- * The type parameter of defs physicalMove? and specialMove? are now optional, because it turns out that, apart from the AI, they're only called while in the middle of using a move when calcType is always used
- * Moved code determining a Pokémon's types, which takes Roost into account, into a separate method
- ##### Generalising sizes, triple battles, etc. #######################
- * Generalised the battle code to support any number of trainers/Pokémon per side, allowing triple battles, horde battles and other zany options like the player using 2 Pokémon against 2 trainers who use 3 Pokémon between them
- * The in-battle code that validates the type of battle (i.e. number of battlers on each side) is now more lenient and tries to adjust the battle type to accommodate what it's been given to use
- * Settings/variables/messages only exist to support up to 3 battlers on a side, but more can be added quite easily
- ##### Move/function code-specifics ###################################
- * Created several "generic" battle move classes for some common move effects, which are inherited by some function code classes, to reduce code duplication
- * def pbHiddenPower now takes a Pokémon object rather than an array of IVs (in case you want to change how the calculation works)
- * Moved the charging message for Focus Punch into a move-specific method
- * Moved Toxic's effect of hitting semi-invulnerable Pokémon and skipping accuracy checks when used by a Poison-type Pokémon into a function code def
- * Fixed code of Counter/Mirror Coat/Metal Burst so they can't choose a random target if the countered target doesn't exist, and they do 1 damage if they took 0 damage
- * Tidied up code for Pursuit being used specially during a switch
- * Weather Ball now supports different animations for each of its types
- * Removed PBEffects::EncoreIndex in favour of calculating it when needed
- ##### Ability/item-specifics #########################################
- * Created the BattleHandlers module and moved a load of ability/item effects into handlers within this so that their code is more standalone and modular
- * Parental Bond's second hit now does 25% the damage of the first hit rather than 50%, as per Gen 7
- * Simplified Illusion ability's display of name when switching a little
- * Added Grass Pelt ability effect which had somehow been missed previously
- ##### Command phase ##################################################
- * The player now chooses all of their battle actions in a round before the AI does
- * Added code to prevent the player from choosing to use certain items from the Bag in battle that will have no effect
- * Removed code duplication in checking whether items used from the Bag in battle will work
- * Made display of command menu in battle more efficient
- * Made display of fight menu in battle more efficient
- * Move names in the fight menu in battle are now coloured depending on the move's type
- * Implemented a move target-choosing command menu
- ##### Turn processing ################################################
- * Rewrote and simplified the turn priority calculations
- * Made Poké Balls and Poké Dolls be used at the same time as any other item
- * Made sure Poké Balls use up all your actions in a round
- * Created more "battle usage" numbers for items, and updated items.txt to use them
- * Improved code that forces the use of an Encored move
- * Replaced Mold Breaker code with @battle.moldBreaker toggled at the start and end of a move's usage
- * Tidied up code that adds targets for a move being used
- * Swapped move processing around from "all hits for each target in turn" to "all targets are attacked by each hit in turn"
- * Merged the two instances of "super effective" messages into one
- * Base critical hit rate for new battle mechanics is now 1/24 to match Gen 7
- * Moved the calculations of the additional effect chance and flinching chance of a move into their own methods
- * Shadow Pokémon may now go into Hyper Mode after using any move, not just certain Shadow moves
- ##### Battle appearance, data boxes ##################################
- * Bad poisoning now has its own icon in battle
- * Rewrote the data box code and tweaked its graphics, including making the level and HP numbers graphics instead of text
- * The data box's HP and Exp bars now fill at set rates which are fps-agnostic, and the animations for these changing are now nicer
- * The data box's HP and Exp bars now snap to the nearest two pixels
- * Somewhat altered how the filenames of battle background graphics are determined
- * Made the bar graphic at the bottom of the battle scene depend on the background used
- * Rewrote the code for battler sprites and shadow sprites to give them more functionality
- * Rewrote how a battler sprite's base position is determined/how its metrics are applied
- ##### Animations #####################################################
- * Altered move animation-playing code to perform the correct line transform considering that Pokémon sprites now have different origin coordinates
- * Made move animations FPS agnostic
- * Altered class PictureEx to make it fps agnostic and improve the calculations and general usefulness
- * Created a parent class PokeBattle_Animation for hardcoded animations in battle, which makes use of PictureEx
- * Rewrote various hardcoded battle animations as PokeBattle_Animation ones, such as Poké Ball-throwing, sending out, data box appearing/disappearing, battle intro (with all its sliding around), and so on
- * Rewrote code relating to the showing of animations in battle
- * The battle intro animation now moves the background around as well as the bases and trainers/wild Pokémon
- * Added support for playing a one-off animation when a Pokémon appears in battle (playing its cry is part of this)
- * Tidied up code relating to in-battle weather animations and messages
- * Make new Stealth Rock animations
- ##### AI #############################################################
- * Moved AI code into its own class
- * Rewrote some AI to make use of ability/item effect handlers
- * Rewrote the AI's item usage choice code, and added more items it knows how to use
- * Made the AI using an item from their Bag in battle use the same code as when the player does
- * Rewrote the main move-choosing AI for efficiency and support for any number of battlers
- ##### Non-battle general #############################################
- * Altered the text colours you get with \c[1] through \c[8], made them look nicer for dark windowskins, and added a few new colours
- * Night BGM now has "_n" at the end of the filename rather than just "n"
- * Standardised elapsed time display format to 3h 42m
- * Screenshots taken by pressing F8 are now saved as png files with better filenames, and they include the screen border if it's enabled
- * Added a "noprize" rule for Triple Triad, which means no cards are won or lost in a match that uses it
- * Ensured properties of a trainer's Pokémon remain consistent each time you rebattle them
- * Made the Animation Editor's cel outlines smaller
- * Greatly increased FPS while scrolling through a long list
- * Added a shiny icon to the party screen panels
- * Made HP/Exp bars in the party screen and summary screens snap to the nearest two pixels
- * Added def pkmn.nicknamed?
- * Added defs pbQuantity, pbHasItem?, pbCanStore?, pbStoreItem and pbStoreAllOrNone, which are the same as the $PokemonBag methods of the same names but with less text
- * def pbHasSpecies? now also has an optional form parameter
- * Made a TM/HM inheriting the PP of the move it replaces an old battle mechanics-only feature
- ##### PBS and other files ############################################
- * Replaced shortcut file to the Essentials wiki
- * Slightly shrunk the border graphic so that you can get a larger full screen mode on a 1080p monitor
- * Updated water battle transition graphics with ripped ones
- * Replaced battle background and base graphics with ones personally ripped from Gen 4 (there are now more of them, and some are noticeably recoloured)
- * Optimised all graphics to reduce file sizes
- * Tweaked the layouts of some PBS files, such as adding header comments and separator lines where appropriate
- * Added a new map-specific metadata: "Environment"
- * Allowed the successful wild Pokémon capture ME to be defined in the metadata (both global and per-map) and to be overridden for the next battle
- * Added more sprite positioning metrics to pokemon.txt and pokemonforms.txt
- * Added support for multiple sizes of Pokémon shadows in battle, as well as species-specific shadows
- * Changed sprite position editor to work for all metrics
- * Edited various Pokémon metrics
- * Updated Pokémon colours to Gen 7 standards, including differing colours for different forms
- * Rewrote the trainers.txt compiler and related scripts to add support for another data format
- * Added the ability to set all 6 IVs for a trainer's Pokémon individually, or use a single value for all of them (new trainers.txt format only)
- * Added the ability to edit the EVs of a trainer's Pokémon, with the same functionality as setting IVs (new trainers.txt format only)
- * Made encounter species lines in encounters.txt be indented when the game rewrites that file (e.g. after changing the wild encounters via the editor) for legibility
- * Added support for move targets to be words (enums) as well as numbers, and renamed those enums
- * Updated moves.txt with new move targets (as enums) to support their usability in triple battles
- * Added more available move flags, all the way to z
- ##### People's appearance/movement ###################################
- * Added move route methods move_random_range(xrange=-1,yrange=-1), move_random_LR(range=-1) and move_random_UD(range=-1)
- * Improved the player's movement speed to be completely accurate to Gen 3
- * Event movement speeds are now identical to the player's movement speeds (4=walking, 5=running, 6=cycling rather than double running speed)
- * The player and events moving at cycling speed now animate half as frequently, which isn't true to Gen 3 but is true to Gen 4 and looks nicer
- * The player's fishing-while-surfing charset is now again different to their fishing-while-on-land charset
- ##### FPS agnosticism ################################################
- * Made various things FPS-agnostic, meaning they will play at the same real world rate regardless of the game's frame rate
- * Player/event movement speed and animation, event movement frequency are now fps-agnostic
- * Pokémon icons, icons in the text entry screen and the player's icon in the Continue panel are now fps-agnostic
- * Fading in/out of black is now fps-agnostic
- * Overworld animations (as defined in the Database) are now fps-agnostic, play at a default of 20 fps, and can have a different fps defined by writing "[40]" (or whatever the desired fps is) at the end of the animation's name
- * Made overworld animations update their positions every frame rather than just the frames they change their position in
- ##### Error messages #################################################
- * Prettied up error messages and their logging, now with timestamps!
- * Improved error message when trying to generate a Pokémon with an invalid species symbol
- * Detailed error messages are now shown for Hangup errors (when the game stops responding)
- * Added an explanatory error message when an event has a tile from the tileset as its graphic but the tile lies beyond the bottom of the tileset
- ##### Example maps ###################################################
- * Updated roadblock event outside Ingido Plateau to explain how to properly move events after using Kernel.pbNoticePlayer
- * Tweaked the roadblock event outside Ingido Plateau so that you can no longer talk to the guard from the side, which causes a retriggering bug
- * Clarified Bill's explanation of storage box wallpapers in the example maps
- ##### More technical stuff ###########################################
- * Created script section Ruby Utilities with some useful things
- * Turned gender rates into a module
- * Moved the code which determines the stat modifiers due to a Pokémon's nature into module PBNatures
- * Made helper methods that yield each stat in turn (main/battle/main battle ones)
- * Added a couple of new PBEnvironment values
- * Improved code that shows Pokémon icons
- * Renamed some Settings constants for easier reading
- * Made all references to the maximum level point to a method, to allow easily turning it into a calculation
- * Added some more CSV record types
- * Corrected writing of CSV "enum or integer" properties
- * def prepline (used by some compilers) now also removes whitespace from the beginning of lines
- * drawTextEx now spaces lines automatically depending on the font size
- * Added an optional parameter to drawFormattedTextEx for setting line spacing
- * All "getName" methods can now accept strings and symbols
- * Rewrote the cry-playing methods
- * Prettified the battle-causing methods
- * Removed call to p from def pbIsJsonString
- * Turned a bunch of "return"s in procs into "next"s
- * Moved the code which calls the compiler scripts into the Main script section
- * Rearranged the code that stops off-screen events from updating to simplify things a little
- * The Individual Trainers editor now asks before saving changes rather than automatically saving them, and only does so upon quitting that editor rather than after every change
- * Modified the Individual Trainers editor to work with the new data format and to generally be a bit better
- ##### Bug fixes (battle) #############################################
- * Fixed many bugs in battle that I haven't specifically recorded
- * Pokémon in battle now care about their form when positioning their sprites
- * Fixed Bag contents filter in battle resetting after returning to it from the party screen by cancelling the use of an item
- * You can no longer give/take held items via the Summary screens while in battle
- * You can now choose the target of moves with a target of SingleOpposing
- * You can now only try to run from battle if it is the first action you choose in a round, and you can't choose another action in the same round (i.e. in double battles)
- * Made the battle commands disappear immediately upon moving to the attack phase
- * Fixed crash when capturing a Pokémon whose species has a "getForm" handler
- * Paralysis now only halves Speed in the new battle mechanics
- * Fixed bug with move-specific pbBaseAccuracy methods returning the wrong variable
- * Fixed bug with Conversion 2's AI
- * Beat Up no longer allows the move's user to attack if it has a status problem
- * Heal Blocked moves can no longer be selected for use
- * Moves unusable in gravity can no longer be selected for use while Gravity is in effect
- * Fixed Smack Down/Avalanche erroneously dealing double damage to targets using an airborne multi-turn move
- * Fixed Triple Kick's power starting at double what it should be
- * Fixed Quash and Teeter Dance erroneously being Magic Coatable
- * Fixed bug when using Chatter
- * Hyperspace Fury now lowers the user's Defense by 1 stage rather than the target's
- * The priority of Pokémon Snatching a move is now the order in which they used Snatch, rather than turn order
- * Covet/Thief now steal the target's item even if the move knocked it out
- * Fixed Relic Song having a 100% effect chance rather than 10%
- * Fire Fang and Ice Fang now have the correct additional effect chance
- * The elemental Fangs are now affected by Serene Grace and Rainbow
- * Two layers of Toxic Spikes now badly poisons Pokémon
- * Flatter and Swagger now fail if they will have no effect
- * Protean now changes the bearer's type even if the bearer is already half that type
- * Anger Point no longer triggers if the bearer's substitute took the hit
- * Mold Breaker no longer negates Aftermath's effect
- * Pressure now also applies to moves which target the opponent's side or the whole field
- * Fixed Exp All calculation for Pokémon that didn't participate in the battle
- * Fixed Revival bugs, including it trying to bring a Pokémon into battle immediately rather than at the end of the round
- * Fixed Leftovers/Black Sludge potentially triggering multiple times per round
- ##### Bug fixes (other) ##############################################
- * Fixed several events in the example maps that sell items whose internal names have changed
- * Corrected typo in Dive Ball's description
- * Fixed crash when compiling if pokemonforms.txt is empty
- * Changed Struggle's target to SingleOpposing from SingleNonUser
- * Fixed egg moves listed in pokemonforms.txt not compiling
- * Code now fully supports the unlikely event of having undefined Pokémon sprite position values
- * Tweaked how formspecies.dat is loaded in the hope it fixes a bug when playing a compiled game
- * Fixed crash in summary screen when looking at a hatched Pokémon without a valid hatch map
- * Fixed misalignment of elements in an egg's summary screen
- * You can no longer view the Pokédex entry of a Pokémon from its summary screen if you don't have a Pokédex
- * Fixed the items in the Bag not refreshing after you sell one at the Mart
- * The egg hatching animation now cares about a Pokémon's form when positioning its sprite
- * The trading animation now cares about a Pokémon's form when positioning its sprite
- * Fixed crash related to the LevelRain evolution method
- * Fixed bug in the Day Care debug screen
- * Fixed pressing Tab in the Animation Editor opening the help screen instead of cycling to the next cell
- * When the Compiler creates a new trainer type based on a trainer event, its internal name is now based on the internal name given in the event rather than on the trainer type's name you type in
- * Fixed forcing the form of a trainer's Pokémon which decides its own form not actually forcing that form
- * Bad poisoning now becomes regular poisoning after battle
- * Fixed images displayed via the event command "Show Picture" being cropped in big screen sizes until the screen size is changed
- * Fixed the location signpost appearing behind the darkness in dark maps
- * Fixed player charset positioning error relating to surf bobbing
- * Fixed attempting to surf when a swimming NPC moves in your way causing you to surf on land
- * Fixed accidental changing priorities of various tiles with priority 4
- * def pbSetSelfSwitch now refreshes the appropriate map, rather than the current map regardless of the map specified
- * def addMovedEvent now accepts passing an event as intended
- * Fixed Pokémon of male-only species rarely being female
- * Duplicating a Pokémon now properly duplicates it
- * Fixed typo relating to registered items
- * In new battle mechanics, Repel now checks the first Pokémon in the party even if it's fainted
- * Fixed an error that occurs when the game tries to find the mouse's position but can't
- * Fixed some newline bugs in HTTP utility functions
- * Slight change to def pbImportNewMaps to make it use mapinfos[id] instead of mapinfos.id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement