Advertisement
Guest User

Essentials v18 change log

a guest
Jul 31st, 2019
9,777
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.14 KB | None | 0 0
  1. Current change log for Pokémon Essentials v18
  2.  
  3.  
  4. ##### Battle general #################################################
  5.  
  6. * Broke basically every third party script that affects battle
  7. * Renamed a lot of methods and variables
  8. * Did a lot of unspecified rewriting and rearranging of code to add efficiency/clarity/usefulness/tidiness
  9. * Rearranged some scripts involved in Bug Catching Contest battles
  10. * Replaced "attacker"/"opponent" with "user"/"target" in battle scripts for consistency
  11. * Renamed "battlebox" to "dataBox"
  12. * Edited some code sections which iterate through battlers to make them use a specific interacting method instead
  13. * Made all mentions of a battle party, party order or party start indices go through the methods that return them, for tidiness
  14. * Changed when battlers are created, and made them only be created if they exist
  15. * Turned the records of a Pokémon's initial item, Recycle item and Belch into battle properties rather than Pokémon properties
  16. * Improved some code relating to owners in battle
  17. * Fiddled around with def pbGainExp and related methods
  18. * Altered how the party orders work, and rewrote def pbLastInTeam (used for Illusion) to account for this
  19. * Rewrote the method that deletes a Pokémon in battle to make it work properly
  20. * Merged all "can inflict status" checks into one method
  21. * A burn now damages the Pokémon by 1/16 of its total HP in the new mechanics as per Gen 7
  22. * 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
  23. * Moved code determining a Pokémon's types, which takes Roost into account, into a separate method
  24.  
  25.  
  26. ##### Generalising sizes, triple battles, etc. #######################
  27.  
  28. * 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
  29. * 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
  30. * Settings/variables/messages only exist to support up to 3 battlers on a side, but more can be added quite easily
  31.  
  32.  
  33. ##### Move/function code-specifics ###################################
  34.  
  35. * Created several "generic" battle move classes for some common move effects, which are inherited by some function code classes, to reduce code duplication
  36. * def pbHiddenPower now takes a Pokémon object rather than an array of IVs (in case you want to change how the calculation works)
  37. * Moved the charging message for Focus Punch into a move-specific method
  38. * 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
  39. * 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
  40. * Tidied up code for Pursuit being used specially during a switch
  41. * Weather Ball now supports different animations for each of its types
  42. * Removed PBEffects::EncoreIndex in favour of calculating it when needed
  43.  
  44.  
  45. ##### Ability/item-specifics #########################################
  46.  
  47. * 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
  48. * Parental Bond's second hit now does 25% the damage of the first hit rather than 50%, as per Gen 7
  49. * Simplified Illusion ability's display of name when switching a little
  50. * Added Grass Pelt ability effect which had somehow been missed previously
  51.  
  52.  
  53. ##### Command phase ##################################################
  54.  
  55. * The player now chooses all of their battle actions in a round before the AI does
  56. * Added code to prevent the player from choosing to use certain items from the Bag in battle that will have no effect
  57. * Removed code duplication in checking whether items used from the Bag in battle will work
  58. * Made display of command menu in battle more efficient
  59. * Made display of fight menu in battle more efficient
  60. * Move names in the fight menu in battle are now coloured depending on the move's type
  61. * Implemented a move target-choosing command menu
  62.  
  63.  
  64. ##### Turn processing ################################################
  65.  
  66. * Rewrote and simplified the turn priority calculations
  67. * Made Poké Balls and Poké Dolls be used at the same time as any other item
  68. * Made sure Poké Balls use up all your actions in a round
  69. * Created more "battle usage" numbers for items, and updated items.txt to use them
  70. * Improved code that forces the use of an Encored move
  71. * Replaced Mold Breaker code with @battle.moldBreaker toggled at the start and end of a move's usage
  72. * Tidied up code that adds targets for a move being used
  73. * Swapped move processing around from "all hits for each target in turn" to "all targets are attacked by each hit in turn"
  74. * Merged the two instances of "super effective" messages into one
  75. * Base critical hit rate for new battle mechanics is now 1/24 to match Gen 7
  76. * Moved the calculations of the additional effect chance and flinching chance of a move into their own methods
  77. * Shadow Pokémon may now go into Hyper Mode after using any move, not just certain Shadow moves
  78.  
  79.  
  80. ##### Battle appearance, data boxes ##################################
  81.  
  82. * Bad poisoning now has its own icon in battle
  83. * Rewrote the data box code and tweaked its graphics, including making the level and HP numbers graphics instead of text
  84. * 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
  85. * The data box's HP and Exp bars now snap to the nearest two pixels
  86. * Somewhat altered how the filenames of battle background graphics are determined
  87. * Made the bar graphic at the bottom of the battle scene depend on the background used
  88. * Rewrote the code for battler sprites and shadow sprites to give them more functionality
  89. * Rewrote how a battler sprite's base position is determined/how its metrics are applied
  90.  
  91.  
  92. ##### Animations #####################################################
  93.  
  94. * Altered move animation-playing code to perform the correct line transform considering that Pokémon sprites now have different origin coordinates
  95. * Made move animations FPS agnostic
  96. * Altered class PictureEx to make it fps agnostic and improve the calculations and general usefulness
  97. * Created a parent class PokeBattle_Animation for hardcoded animations in battle, which makes use of PictureEx
  98. * 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
  99. * Rewrote code relating to the showing of animations in battle
  100. * The battle intro animation now moves the background around as well as the bases and trainers/wild Pokémon
  101. * Added support for playing a one-off animation when a Pokémon appears in battle (playing its cry is part of this)
  102. * Tidied up code relating to in-battle weather animations and messages
  103. * Make new Stealth Rock animations
  104.  
  105.  
  106. ##### AI #############################################################
  107.  
  108. * Moved AI code into its own class
  109. * Rewrote some AI to make use of ability/item effect handlers
  110. * Rewrote the AI's item usage choice code, and added more items it knows how to use
  111. * Made the AI using an item from their Bag in battle use the same code as when the player does
  112. * Rewrote the main move-choosing AI for efficiency and support for any number of battlers
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119. ##### Non-battle general #############################################
  120.  
  121. * 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
  122. * Night BGM now has "_n" at the end of the filename rather than just "n"
  123. * Standardised elapsed time display format to 3h 42m
  124. * Screenshots taken by pressing F8 are now saved as png files with better filenames, and they include the screen border if it's enabled
  125. * Added a "noprize" rule for Triple Triad, which means no cards are won or lost in a match that uses it
  126. * Ensured properties of a trainer's Pokémon remain consistent each time you rebattle them
  127. * Made the Animation Editor's cel outlines smaller
  128. * Greatly increased FPS while scrolling through a long list
  129. * Added a shiny icon to the party screen panels
  130. * Made HP/Exp bars in the party screen and summary screens snap to the nearest two pixels
  131. * Added def pkmn.nicknamed?
  132. * Added defs pbQuantity, pbHasItem?, pbCanStore?, pbStoreItem and pbStoreAllOrNone, which are the same as the $PokemonBag methods of the same names but with less text
  133. * def pbHasSpecies? now also has an optional form parameter
  134. * Made a TM/HM inheriting the PP of the move it replaces an old battle mechanics-only feature
  135.  
  136.  
  137. ##### PBS and other files ############################################
  138.  
  139. * Replaced shortcut file to the Essentials wiki
  140. * Slightly shrunk the border graphic so that you can get a larger full screen mode on a 1080p monitor
  141. * Updated water battle transition graphics with ripped ones
  142. * Replaced battle background and base graphics with ones personally ripped from Gen 4 (there are now more of them, and some are noticeably recoloured)
  143. * Optimised all graphics to reduce file sizes
  144. * Tweaked the layouts of some PBS files, such as adding header comments and separator lines where appropriate
  145. * Added a new map-specific metadata: "Environment"
  146. * 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
  147. * Added more sprite positioning metrics to pokemon.txt and pokemonforms.txt
  148. * Added support for multiple sizes of Pokémon shadows in battle, as well as species-specific shadows
  149. * Changed sprite position editor to work for all metrics
  150. * Edited various Pokémon metrics
  151. * Updated Pokémon colours to Gen 7 standards, including differing colours for different forms
  152. * Rewrote the trainers.txt compiler and related scripts to add support for another data format
  153. * 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)
  154. * 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)
  155. * 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
  156. * Added support for move targets to be words (enums) as well as numbers, and renamed those enums
  157. * Updated moves.txt with new move targets (as enums) to support their usability in triple battles
  158. * Added more available move flags, all the way to z
  159.  
  160.  
  161. ##### People's appearance/movement ###################################
  162.  
  163. * Added move route methods move_random_range(xrange=-1,yrange=-1), move_random_LR(range=-1) and move_random_UD(range=-1)
  164. * Improved the player's movement speed to be completely accurate to Gen 3
  165. * Event movement speeds are now identical to the player's movement speeds (4=walking, 5=running, 6=cycling rather than double running speed)
  166. * 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
  167. * The player's fishing-while-surfing charset is now again different to their fishing-while-on-land charset
  168.  
  169.  
  170. ##### FPS agnosticism ################################################
  171.  
  172. * Made various things FPS-agnostic, meaning they will play at the same real world rate regardless of the game's frame rate
  173. * Player/event movement speed and animation, event movement frequency are now fps-agnostic
  174. * Pokémon icons, icons in the text entry screen and the player's icon in the Continue panel are now fps-agnostic
  175. * Fading in/out of black is now fps-agnostic
  176. * 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
  177. * Made overworld animations update their positions every frame rather than just the frames they change their position in
  178.  
  179.  
  180. ##### Error messages #################################################
  181.  
  182. * Prettied up error messages and their logging, now with timestamps!
  183. * Improved error message when trying to generate a Pokémon with an invalid species symbol
  184. * Detailed error messages are now shown for Hangup errors (when the game stops responding)
  185. * 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
  186.  
  187.  
  188. ##### Example maps ###################################################
  189.  
  190. * Updated roadblock event outside Ingido Plateau to explain how to properly move events after using Kernel.pbNoticePlayer
  191. * 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
  192. * Clarified Bill's explanation of storage box wallpapers in the example maps
  193.  
  194.  
  195. ##### More technical stuff ###########################################
  196.  
  197. * Created script section Ruby Utilities with some useful things
  198. * Turned gender rates into a module
  199. * Moved the code which determines the stat modifiers due to a Pokémon's nature into module PBNatures
  200. * Made helper methods that yield each stat in turn (main/battle/main battle ones)
  201. * Added a couple of new PBEnvironment values
  202. * Improved code that shows Pokémon icons
  203. * Renamed some Settings constants for easier reading
  204. * Made all references to the maximum level point to a method, to allow easily turning it into a calculation
  205. * Added some more CSV record types
  206. * Corrected writing of CSV "enum or integer" properties
  207. * def prepline (used by some compilers) now also removes whitespace from the beginning of lines
  208. * drawTextEx now spaces lines automatically depending on the font size
  209. * Added an optional parameter to drawFormattedTextEx for setting line spacing
  210. * All "getName" methods can now accept strings and symbols
  211. * Rewrote the cry-playing methods
  212. * Prettified the battle-causing methods
  213. * Removed call to p from def pbIsJsonString
  214. * Turned a bunch of "return"s in procs into "next"s
  215. * Moved the code which calls the compiler scripts into the Main script section
  216. * Rearranged the code that stops off-screen events from updating to simplify things a little
  217. * 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
  218. * Modified the Individual Trainers editor to work with the new data format and to generally be a bit better
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225. ##### Bug fixes (battle) #############################################
  226.  
  227. * Fixed many bugs in battle that I haven't specifically recorded
  228. * Pokémon in battle now care about their form when positioning their sprites
  229. * Fixed Bag contents filter in battle resetting after returning to it from the party screen by cancelling the use of an item
  230. * You can no longer give/take held items via the Summary screens while in battle
  231. * You can now choose the target of moves with a target of SingleOpposing
  232. * 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)
  233. * Made the battle commands disappear immediately upon moving to the attack phase
  234. * Fixed crash when capturing a Pokémon whose species has a "getForm" handler
  235. * Paralysis now only halves Speed in the new battle mechanics
  236. * Fixed bug with move-specific pbBaseAccuracy methods returning the wrong variable
  237. * Fixed bug with Conversion 2's AI
  238. * Beat Up no longer allows the move's user to attack if it has a status problem
  239. * Heal Blocked moves can no longer be selected for use
  240. * Moves unusable in gravity can no longer be selected for use while Gravity is in effect
  241. * Fixed Smack Down/Avalanche erroneously dealing double damage to targets using an airborne multi-turn move
  242. * Fixed Triple Kick's power starting at double what it should be
  243. * Fixed Quash and Teeter Dance erroneously being Magic Coatable
  244. * Fixed bug when using Chatter
  245. * Hyperspace Fury now lowers the user's Defense by 1 stage rather than the target's
  246. * The priority of Pokémon Snatching a move is now the order in which they used Snatch, rather than turn order
  247. * Covet/Thief now steal the target's item even if the move knocked it out
  248. * Fixed Relic Song having a 100% effect chance rather than 10%
  249. * Fire Fang and Ice Fang now have the correct additional effect chance
  250. * The elemental Fangs are now affected by Serene Grace and Rainbow
  251. * Two layers of Toxic Spikes now badly poisons Pokémon
  252. * Flatter and Swagger now fail if they will have no effect
  253. * Protean now changes the bearer's type even if the bearer is already half that type
  254. * Anger Point no longer triggers if the bearer's substitute took the hit
  255. * Mold Breaker no longer negates Aftermath's effect
  256. * Pressure now also applies to moves which target the opponent's side or the whole field
  257. * Fixed Exp All calculation for Pokémon that didn't participate in the battle
  258. * Fixed Revival bugs, including it trying to bring a Pokémon into battle immediately rather than at the end of the round
  259. * Fixed Leftovers/Black Sludge potentially triggering multiple times per round
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266. ##### Bug fixes (other) ##############################################
  267.  
  268. * Fixed several events in the example maps that sell items whose internal names have changed
  269. * Corrected typo in Dive Ball's description
  270. * Fixed crash when compiling if pokemonforms.txt is empty
  271. * Changed Struggle's target to SingleOpposing from SingleNonUser
  272. * Fixed egg moves listed in pokemonforms.txt not compiling
  273. * Code now fully supports the unlikely event of having undefined Pokémon sprite position values
  274. * Tweaked how formspecies.dat is loaded in the hope it fixes a bug when playing a compiled game
  275. * Fixed crash in summary screen when looking at a hatched Pokémon without a valid hatch map
  276. * Fixed misalignment of elements in an egg's summary screen
  277. * 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
  278. * Fixed the items in the Bag not refreshing after you sell one at the Mart
  279. * The egg hatching animation now cares about a Pokémon's form when positioning its sprite
  280. * The trading animation now cares about a Pokémon's form when positioning its sprite
  281. * Fixed crash related to the LevelRain evolution method
  282. * Fixed bug in the Day Care debug screen
  283. * Fixed pressing Tab in the Animation Editor opening the help screen instead of cycling to the next cell
  284. * 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
  285. * Fixed forcing the form of a trainer's Pokémon which decides its own form not actually forcing that form
  286. * Bad poisoning now becomes regular poisoning after battle
  287. * Fixed images displayed via the event command "Show Picture" being cropped in big screen sizes until the screen size is changed
  288. * Fixed the location signpost appearing behind the darkness in dark maps
  289. * Fixed player charset positioning error relating to surf bobbing
  290. * Fixed attempting to surf when a swimming NPC moves in your way causing you to surf on land
  291. * Fixed accidental changing priorities of various tiles with priority 4
  292. * def pbSetSelfSwitch now refreshes the appropriate map, rather than the current map regardless of the map specified
  293. * def addMovedEvent now accepts passing an event as intended
  294. * Fixed Pokémon of male-only species rarely being female
  295. * Duplicating a Pokémon now properly duplicates it
  296. * Fixed typo relating to registered items
  297. * In new battle mechanics, Repel now checks the first Pokémon in the party even if it's fainted
  298. * Fixed an error that occurs when the game tries to find the mouse's position but can't
  299. * Fixed some newline bugs in HTTP utility functions
  300. * 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