Change log/v18

Essentials v18 was released on **2nd September 2020**.

Essentials v18.1 was released on **28th September 2020**.

* If a Pokémon changes form mid-battle, the new form is now registered as seen in the Pokédex
* Pokémon whose forms depend on the time (Shaymin, Furfrou, Hoopa, Deerling, Sawsbuck) now cannot change forms because of this during battle
* Fixed crash when capturing a Pokémon whose species has a "getForm" handler
* Paralysis now only halves Speed in the new battle mechanics
* Fixed revival bugs, including it trying to bring a Pokémon into battle immediately rather than at the end of the round
* The player now picks up Pay Day money after catching a Pokémon
* Unused items now get restored to the Bag at the end of battle (e.g. if the battle was ended by a Poké Doll)
* 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
* Poké Balls can no longer be thrown at semi-invulnerable Pokémon
* Snag Balls can no longer be thrown in wild battles while there are multiple unfainted wild Pokémon
* Fixed being able to choose the target of another trainer's Pokémon if they are Encored
* 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
* The wild battle victory music now plays after catching a Pokémon in the Safari Zone
* Fixed bug with move-specific pbBaseAccuracy methods returning the wrong variable
* Ally Switch now properly swaps effects around as appropriate
* Beat Up no longer allows the move's user to attack if it has a status problem
* Made Beat Up only use the Pokémon with the same owner as the user
* Charge now applies until the Charger next uses a move, not until the end of the next round
* Fixed bug when using Chatter
* Fixed bug with Conversion 2's AI
* Covet/Thief now steal the target's item even if the move knocked it out
* Fire Fang and Ice Fang now have the correct additional effect chance
* The elemental Fangs are now affected by Serene Grace and Rainbow
* Flatter and Swagger now fail if they will have no effect
* Focus Punch is now used successfully if it didn't show its charging message at the beginning of a round (e.g. it was Encored into using it)
* Fusion Bolt/Flare now only charge up if the immediately previous move was the other one
* Moves unusable in gravity can no longer be selected for use while Gravity is in effect
* Heal Blocked moves can no longer be selected for use
* Hyperspace Fury now lowers the user's Defense by 1 stage rather than the target's
* Incinerate no longer says it destroyed an Occa Berry that was consumed to weaken Incinerate
* A move copied by Mimic now has full PP rather than 5
* Psych Up can no longer be copied by Mirror Move
* Chatter, Feint, Magic Room, Metal Burst, Trick Room and Wonder Room can now be copied by Mirror Move
* Made Outrage cause confusion if it fails during its last turn because of sleeping/paralysis/being ineffective/etc.
* Both effects of Parting Shot are now reversed if the move is Magic Coated/Magic Bounced
* The Protect failure rate is now reset upon using a non-protecting move, rather than just before using a protecting move if the previous move was a non-protecting one
* Fixed Quash and Teeter Dance erroneously being Magic Coatable
* Quash can now be used on a Quashed Pokémon, but only if another Pokémon was more recently Quashed
* Quashed Pokémon now move in the order they were Quashed
* Rage Powder now doesn't redirect the moves of Pokémon that are immune to powders in the new battle mechanics
* Fixed Relic Song having a 100% effect chance rather than 10%
* Relic Song's effect of changing the user's form now only activates once per move use, rather than once per target put to sleep
* Secret Power's additional effect now only happens once per use, rather than once per hit
* Fixed two Pokémon being able to use Sky Drop on the same target at once
* Fixed a Pokémon getting locked into being Sky Dropped if the Pokémon using that move on it changes position or leaves battle mid-usage
* Fixed Smack Down/Avalanche erroneously dealing double damage to targets using an airborne multi-turn move
* The priority of Pokémon Snatching a move is now the order in which they used Snatch, rather than turn order
* Two layers of Toxic Spikes now badly poisons Pokémon
* Fixed Triple Kick's power starting at double what it should be
* Uproar now wakes up all Pokémon upon its initial use
* Sleeping Pokémon no longer wake up in an uproar immediately before using a move
* Stopped the weather animation showing twice when using a weather-inducing move
* Anger Point no longer triggers if the bearer's substitute took the hit
* An Illusion's species/gender/form are now registered in the Pokédex as seen, rather than the underlying Pokémon's
* Mold Breaker no longer negates Aftermath's effect
* Pressure now also applies to moves which target the opponent's side or the whole field
* Protean now changes the bearer's type even if the bearer is already half that type
* Regenerator no longer animates the HP bar, and is now completely invisible
* Shell Smash now only fails if it can't change any stats at all, rather than failing if it can't raise any stats
* Slow Start now uses a timer rather than the turn count, and so now works properly if the ability is gained later
* Fixed Tangled Feet having a wrong multiplier
* Abilities that trigger upon switching into battle now trigger when acquired by Trace if the bearer couldn't trace an ability immediately upon switching in
* Truant now flip-flops whether it is loafing each time the bearer tries to use a move, rather than at the end of each round
* Primordial weather abilities can now be negated
* Dire Hit now raises the critical hit rate by 2 stages
* Ether/Elixir now only restore the PP of a move if it was known originally, and not ones temporarily known because of Transform/Mimic
* Fixed Exp All calculation for Pokémon that didn't participate in the battle
* Flute items no longer work on Soundproof Pokémon
* Iron Ball no longer lowers the holder's Speed even if its effect is negated
* Fixed Leftovers/Black Sludge potentially triggering multiple times per round
* Life Orb's damaging of the holder is now independent from its damage-boosting effect
* Fixed the Metronome item not working properly
* Fixed rounding error in Nest Ball's multiplier
* Ring Target no longer bypasses being immune to Ground-type moves because of airborne-granting effects
* Ring Target no longer allows a status condition to be inflicted on the holder if it should be immune to that status condition because of its type (e.g. Electric-types are immune to paralysis)
* Shed Shell no longer allows a trapped Pokémon to flee from battle
* Made White Herb also trigger because of stat reduction that happens outside of a move's usage
* Transform and Imposter now copy the weight change caused by Autotomize
* Disable and Cursed Body now only work on the last move that the target normally used (i.e. that wasn't called by another move/other effect)
* Pokémon can now use a disabled move if it was called by another move
* Pokémon affected by Ingrain or other such effects can no longer switch out in single trainer battles when the opponent's fainted Pokémon is replaced
* Made King's Rock/Stench still be able to cause flinching even if the bearer faints while using the move
* Made King's Rock/Stench not apply to Secret Power if it can cause flinching because of the environment
 * Pokémon that Mega Evolve/Primal Revert in a Battle Facility battle now revert to their regular form after battle
* Burmy now only changes its form at the end of a battle, and only if it participated in it
* Breeding a Burmy from a Mothim now always results in the Burmy having a Plant Cloak
* Multitype is now responsible for changing Arceus's type, rather than Arceus's species
* Pokémon that hatch from eggs now start with a happiness of 120
* EVs gained at level 100 now apply to the stats (they previously only would if the Pokémon later changed form)
* When determining a newly generated Pokémon's/egg's moves, duplicate moves are ignored from earlier in the moveset rather than from later
* Traded Shadow Pokémon can no longer evolve because of the trade
* Pokémon that evolve when traded for another Pokémon now only do so if neither Pokémon is holding an Everstone
* Fixed Pokémon of male-only species rarely being female
* Corrected typo in Dive Ball's description
* PP Up and PP Max can no longer be used on Sketch
* Fixed incorrect messages sometimes being shown when using EV-reducing berries
* In new battle mechanics, Repel now checks the first Pokémon in the party even if it's fainted
* Fixed typo relating to registered items
* Fixed opening the Ready Menu in the same frame as a wild encounter occurs causing massive slowdown and a crash
* Fixed bug with searching the Pokédex according to weight using imperial units
* Fixed another bug with searching the Pokédex according to weight using imperial units
* Fixed Pokédex search results not always looking like search results
* Shadow Pokémon no longer say they're "able" to have an evolution stone on them
* Made a Pokémon visibly change form in the party screen before trying to do things triggered by changing form, such as learning a new move
* Fixed the "Able"/"Not able" annotations in the party screen not updating after using an evolution stone on a Pokémon
* Tweaked party screen to make text and panel annotations refresh before fading back into the screen
* Fixed crash when trying to use Chatter's out of battle effect
* Fixed crash in summary screen when looking at a hatched Pokémon without a valid hatch map
* Fixed bug relating to displaying the default map name on which a Pokémon was obtained
* Removed the Give/Take Item and View Pokédex options from the interact menu in the summary screen for eggs
* 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
* Refreshed Bag/item storage lists when items are deposited, withdrawn, tossed or given
* The text box in the Options screen now updates its font if a different one is selected
* PC menus now remember the last option that was selected when you return to them from a submenu/function
* Shaymin's form now resets if it is deposited into storage
* Fixed choosing a Pokémon from storage in the Purify Chamber showing a non-interactive party panel
* The egg hatching animation now cares about a Pokémon's form when positioning its sprite
* Resolved bitmap in egg hatching screen not being disposed
* The trading animation now cares about a Pokémon's form when positioning its sprite
* Fixed crash related to the LevelRain evolution method
* 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 map flickering when continuing a saved game
* Fixed the overworld being positioned not quite correctly
* Fixed events/fogs/etc. juttering around slightly while the screen is moving
* The overworld is no longer frozen while using an item in the overworld, to be consistent with using moves in the same way
* Stopped the player's charset being reloaded every frame if it hasn't changed
* The game map now only refreshes itself due to a change of Game Switch/Game Variable/Self Switch if something was actually changed
* Stopped events checking twice per frame if they should update themselves
* Fixed bug that caused infinite triggering of an event with a name of "Trainer(X)" when interacted with from the side/back if that interaction doesn't change the event's page (e.g. by setting a Self Switch)
* Roaming Pokémon that should be encounterable while fishing can now be encountered by fishing
* Static/Magnet Pull now attract an alternate form of an encounterable species if that form is the appropriate type
* Fixed forcing the form of a trainer's Pokémon which decides its own form not actually forcing that form
* You can no longer have double wild battles in the Safari Zone
* Fixed battle transitions played via common events not displaying any pictures
* Fixed battle intro animations not playing properly at a high FPS
* Fixed the items of Pokémon owned by trainers in the Battle Factory being changed to the items held by the player's Pokémon
* Bad poisoning now becomes regular poisoning after battle
* Fixed crash when compiling if pokemonforms.txt is empty
* 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 form2species.dat is loaded in the hope it fixes a bug when playing a compiled game
* 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
* Slight change to def pbImportNewMaps to make it use mapinfos[id] instead of mapinfos.id
* Changed Struggle's target to SingleOpposing from SingleNonUser
* The Debug Pokémon editor's moveset editor now allows you to set a move to be learnable at level 0 (for evolution moves)
* Fixed pressing Tab in the Animation Editor opening the help screen instead of cycling to the next cell
* Fixed bug in the Day Care debug screen
* Fixed being able to force a Pokémon to have an invalid gender
* Duplicating a Pokémon now properly duplicates it
* Fixed missing parameter in a debug call to map.passableStrict?
* Fixed several events in the example maps that sell items whose internal names have changed
* The colour of the selection arrow in a messagebox now matches its text
* Fixed the code that allows a file named "[num] blah" to animate itself as though it was made of num frames arranged horizontally
* Fixed some newline bugs in HTTP utility functions
* Fixed an error that occurs when the game tries to find the mouse's position but can't

## Essentials v18.1

### Feature changes and additions

* Changed event movement speeds to make walking speed 3 rather than 4, etc.
* Rewrote evolution method code to make it modular
	+ Evolution method parameters can now be of any module (although the in-game data editor won't like new modules)
	+ Added a bunch of new evolution methods to flesh things out
* You can no longer give a Pokémon an item directly from the item storage screen
* Removed unnecessary text drawing in Options screen
* Removed unused constants from class PokemonDataBox
* Grouped all ability blacklists together for tidiness
* Created def isSpecies? for battlers
* Made more use of PokeBattle\_Pokemon#isSpecies? and PokeBattle\_Pokemon#hasItem?
* The Essentials version is now recorded in save files, to make it easier to identify older save files
* Error messages now omit the user's computer username in the file path at the end
* The tileset editor now gives the tileset a bit more space
* Map events are now only compiled during a full compile, not every time the game is started from RMXP
* Compiling now states the name of each file being compiled
* Added error messages if PBS files define the same ID numbers twice
* Split up some script sections and tidied up code
	+ Gave each group of script sections "titles", which help to extract them nicely
* De-indexed lots of graphics because mkxp-z doesn't like the colour black
* Removed mentions of "Kernel." in the roadblock event at Ingido Plateau as this phrase is no longer needed

### Bug fixes

* Fixed bug in Dragon Tail's code
* Fixed missing parameter in check for whether Fling is successful
* Fixed bug in Judgment's type-determining code
* Fixed bug in registering Metal Burst's target
* Fixed error in Mirror Move's code
* Fixed typos in Powder's code
* Fixed Rollout doing maximum damage on its first turn
* Fixed typo in Simple Beam's code
* Fixed Soak affecting the user rather than the target
* Fixed Dancer working on all moves rather than just dance moves
* Fixed typo in Protean's code
* Fixed Regenerator triggering at the end of battle instead of when switching out
* Weather-inducing abilities no longer activate if that weather is already in effect (not even to top off its duration)
* Fixed Flame/Toxic Orb being able to replace another status condition
* Fixed some items not being consumed when they should upon the holder being hit, and made them trigger Cheeck Pouch/Symbiosis where relevant
* Fixed call to a method that doesn't exist in Battle Arena battles
* Fixed swapped parameters in def pbCalcDamageMultiplier
* Fixed error in PokeBattle\_Battler#pbHasMoveType?
* Fixed missing method in PokeBattle\_FakeBattler
* Fixed crash when a roaming Pokémon is caught or knocked out
* A Pokémon that faints in battle now cries at a lower pitch
* Fixed a fainted Pokémon's damage state being reset immediately and stopping certain abilities/effects working properly if they reference it
* Fixed default weather not returning after a primal weather ends
* Fixed not gaining Exp upon catching a Pokémon when you should
* The AI now randomly chooses a move if all move scores end up being 0, rather than going for Struggle
* Fixed AI never using items
 * Fixed Show Animation event command causing the animation to visually glitch
* Fixed error with surfacing check if the dive map you're in has no surface map
* The player now moves at walking speed while diving
* Wild encounters can now also occur when the player turns on the spot
* Fixed inconsistency in expected suffixes for night versions of BGMs
* Fixed inaccurate code in MapFactory#isPassable?
* Fixed Pokémon nicknames being reset/natural names not changing when the species changes
* Shedinja no longer copies the moves the Ninjask learns after evolving
* Fixed party screen icon being slow to refresh after evolving because of using an item (evolution stone/Rare Candy)
* Fixed party screen not animating during certain messages while using items on a Pokémon
* Fixed the default delay value not being set properly for PngAnimatedBitmaps
* Fixed bug with callback procs in class PictureEx
* Fixed prevolution data not being determined for species that don't evolve further
* Fixed bug when compiling the trainer comment "Outcome: X"
* Fixed crashes in debug functions if there's a gap in item ID numbers
* Fixed errant pixels in NPC 16.png charset (the nurse)
* Fixed terrain tag and priority errors for harbour building and jetty leading into it on Route 8
* Fixed Alolan Ninetales being able to evolve into itself
* Fixed Greninja not being available with the Battle Bond ability
* One or two minor bugs fixed