* Fixes some variable damage moves not working with abilities
* Rework as new ability attribute
* Update variable base power check to original location
* formatting
* Add tsdoc comments
* add floor for potential non int multipliers
* Update pokemon.ts
---------
Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
* Add support for Portuguese (Brazil) locale, except for moves and abilities.
* All ptBR translations, names of moves and abilities maintained in english.
* Small fixes
* Updated Frisk and fixed Plus and Minus descriptions
* Changed the settings label to "Português (BR)"
* Added passives to the Summary Screen
Adds the ability to view passives on the Summary screen. Just like in the starter select, you can only see the passive once it is unlocked.
There is a small pixel button prompt which helps indicate you are able to press the button to view the passive. This buttons shows an A when gamepad support is enabled and a Z otherwise.
* Update summary-ui-handler.ts
* Updated for Legacy Support
* changed nonfunctioning rockruff form check to ability check for own tempo for dusk form evos
* testing changes
* rockruff OT uses formIndex for dusk form evolution, removed temporary debug rockruff getFormIndex changes
* reverted overrides
* fixed spacing issue
* evolution times revised
* revised dawn and dusk evos for rockruff
* reordering evo times for consistency
* removed unused imports (abilities, attackTypeBoosterModifierType)
---------
Co-authored-by: James Diefenbach <z5421232@ad.unsw.edu.au>
* Fixes sturdy to stop popping up even if not used
* Made changes to better the code, also added
a check for wonder_guard 1hp
* Refined code, as requested by bennybroseph
* Made a small fix and added better comments in
relation to interaction with Wonder_guard ability
* added more german translations
* added german translation for move.ts
* more german translations
* ability.ts wih german translation updated
* added missing german translation for abilites.ts
* added more missing translations
* changed description of frisk
The Vivillon forms can all be encountered properly now, and Calyrex's forms have since been removed from the wild encounter pool, requiring a form change item to obtain.
If the pokemon species and form is the same as the second fusion component, then skip the logic to make a fused cry and just use the cry of the primary component.
With egg moves factoring in to trainer Pokémon's learnsets now, Oblivion Wing was too problematic for a common egg move. So it has been swapped with V-create to make fights with it more tolerable.
* Heart Swap implementation.
Simply switches the values in 3 arrays.
* Fixed missing space
* Removed some lines.
Removed a for loop.
* Removed an unneccesary line
* TSDoc commentation added
* Changed message method to be more descriptive
* Adjusted message line to be consistent with Pokemon Showdown
* Adjusted priorBoostArray to priorBoost integer
Only one values is relevant at a time, so the array was pointless, woops.
* Redo moveset generation
* Decrease the weight of lower power moves and egg moves
* More weight tweaking
Trainers never get OHKO moves, are less likely to get self KO and multiturn moves, and more likely to get stat buffing moves. All pokemon are less likely to get offstat moves.
* Implemented Snipe Shot and Stalwart/Propeller Tail
* Remove Testing Overrides
I don't know why these got pushed, they are in the gitignore file.
* Snipe Shot also has a high crit rate
* Add Comment
* Add TsDoc documentation to BypassRedirectAttr
* Add ability pop-up for when Propeller Tail/Stalwart proc.
* Fix Formatting
* Tab align comment
* added settings to manage how to display party experience at the end of fight
* added back stats changes support when setting is on but ignored when on skip
* removed a useless parameter
* added new level in the text
* only Lv. UP if level is greated than 200
* cleanup
* added some comment
* TSDoc comment block
* EXP_Party -> EXP_Party_Display, Only Up -> Level Up Notification
* better duration for the level up notification
* typo
Co-authored-by: Samuel H <flashfireex@gmail.com>
---------
Co-authored-by: Samuel H <flashfireex@gmail.com>
* fix "lost focus behaviour" when disabling gamepad and thus repeating RIGHT key
* added some comment
* added full TSDoc, helped by chatGPT, refined every entry manually of course
* Hydro Steam, Spirit Shackle, U-turn fix
Match formatting to project style
Co-authored-by: Samuel H <flashfireex@gmail.com>
* Fix Hydro Steam power up in Sun, even harsh sun if type changes
* Fix issue with Hydro Steam outside sun
* Add comments to IgnoreWeatherTypeDebuffAttr for documentation
* Move U-turn fix to another PR
---------
Co-authored-by: Samuel H <flashfireex@gmail.com>
* adds frame for StatusCureAttr
* heal bell and aromatherapy functioning as intended
* refactor attr to solely handle party cure, party interaction unique enough to justify
* adds header to PartyStatusCureAttr
* code comment
* comment formatting improvement
* checks for passives as well
* code comment
* shows ability bar if immune
* Save battler tags
Also saves the rest of the summonData except for transform specific things.
* Add missing values for type boost tag.
* Add intellisense comments
* Implements healer
* adds an ally check to the condition
* done testing, changes chance back to 30%
* adds comment header for PostTurnResetStatusAbAttr
* adds override to resetStatus to not allow revive
* dont revive
* override revert
* implements cursed body
* 30 percent chance to proc
* check if max
* removes unimplemented tag
* bypasses faint
* un-disable message specifies pokemon name
* adds prefix to un-disable message
* space issue
Each individual token heals 1 percent less, but now stacks to 15 instead of 10, to maintain the current maximum of 30% recovered per turn.
The purpose of this change is to make the healing more gradual, and just generally less painful if you get multiple early on.
* fix scrappy and mindseye working as passive ability
* update apply for ignoretypeimmunityabattr
* simplify logic for ignoretypeimmunityabattr
---------
Co-authored-by: contra1337 <jpbastyr@gmail.com>
* Fixed Crash Moves and Reckless
Added a new MoveFlags flag 'RECKLESS_MOVE' to make crash and recoil moves in line with other move flag boosting attacks.
Modified how flags were defined so they are easier to maintain.
Added the appropriate flag to all mvoes listed as being affected by Reckless. Steel Beam and Mind Blown do not count according to source:
https://bulbapedia.bulbagarden.net/wiki/Reckless_(Ability)
* Update move.ts
* Update abilities.ts
* Added hyperlinks to Moves enum
Yes, I'm aware of what this looks like in the file itself, but it enables a nice neat little hyperlink shown below to the bulbapedia page when you hover over a move. I feel like the added convenience is worth making the file harder to read considering nobody is ever going to touch that file anyway. I plan on adding a python script to finish the rest of them, but didn't want to actually sink time into this if we absolutely despise it.
* Added Python Script
Created a python script to add comments with a url to abilities.ts, moves.ts, and species.ts using regex
* adds the ribbon asset, hooking it up
* works if override. need to add field on server side I imagine
* moves count to starterData, increments on win
* formatting
* increment works properly
* recursively check for prevolution
* cleaned up to use getRootSpeciesId()
* changes ribbon to gold medal version
* adds Akuma's ribbon achievements
* ribbons increment correctly
* missed ui handler update
* reorder achievements
* ribbon correct, vouchers not. currently investigating
* increments properly, but voucher reward phase not appearing
* some cleanup
* works great, need to better reflect who is getting ribbon in message and cry
* plays level fanfare, tabling cry for now
* reran items.bat
* Minor fixes
---------
Co-authored-by: Flashfyre <flashfireex@gmail.com>
* add hazard removal for Rapid Spin, Defog, Tidy Up, Mortal Spin
* Updated templating and fixed some errors
support for either pokemon using it
added better templating
* revert logic, and remove partial tags
---------
Co-authored-by: kenwang <kenwang@umich.edu>
Co-authored-by: Gwen Valentine <gwenvalentine@starshine.dev>
* Updated Learnset of Gen1 to Indigo Disc
Not many changes here for how much time it takes to comb through, but here it is.
Only notable change is Power-Up Punch got removed this gen so it had to be removed from Hitmonchan's learnset. Are we okay with this change? If so, this is good to go for Gen 1.
* Updated Learnset of Gen2 to Indigo Disc
Notable changes:
Porygon 2 loses Magic Coat with no replacement.
Ho-oh loses Burn Up but gains Overheat.
The rest seems better or neutral.
* Update Learnsets for Gen3 to Indigo Disk
A good chunk of these changes is just reordering the moves to match bulbapedia so that it's easier to see what changed in the future. Otherwise, it's really just replacing moves that don't exist anymore.
Also, Zangoose got a ton of new moves that work with a move relearner, but not by level-up. Weird, but good if you like Zangoose.
* Fix Duplicates
* Spanish translations for intro messages and some menus. Added Empty (save file) to lang files
* Spanish translations + new literals in all langs
* Spanish translations, new literals for all langs (starter-select-ui-handler)
* Two translations
* Resolving accidental overwrite in french menu.ts
* New starter-select-ui-handler lang files for all langs
---------
Co-authored-by: rnicar <rj.nieto.car@gmail.com>
* Fixes Struggle Softlock
Fixed an issue where moves marked as (N) would prevent you from being able to Struggle.
Also fixes messaging so that a message shows when you are out of PP, Disabled, or trying to use an unimplemented move consistently.
* Update phases.ts
Mind Blown targets all users and was triggering recoil every time it hit. Changed so that it only applies once after all targets take damage by adding a new MoveEffectTrigger, POST_TARGET. This also fixes an issue where dying to recoil stopped the rest of the damage from hitting the remaining targets.
This change also applies fixes for Steel Beam since they are have the same effect but is single target.
Also added missing messages for Damp and Recoil. All messaging is in line with Pokémon Showdown.
* abilities: implement guard dog, abilities that give intimidate immunity
* abilities: implement rattled's second effect, remove refs to mold breaker
* abilities: fix rattled not giving the attack drop still
* abilities: make ability bars pop in to some success
* abilities: implement suction cups since it has the same effect
* moves: add custom fail text, fix animation issues with Guard Dog/Roar
* abilities: manually show intimidate ability bar to prevent weirdness
* Removing forms names in Italian pokemon.ts
Forms names aren't supposed to be specified in the name of the Pokémon
* Removing forms names in Italian pokemon.ts
* rework of the input handling, including different gamepad and keyboard
* rework of the input handling, including different gamepad and keyboard
* first version of a too complex inputHandler based on phaser3-merged-input
* removed useless control management and kept it simple for our use case, investigating to put out button_XX()
* renamed inputHandler to inputController
* aggregate directions and some action into a same method + fix menu return value
* added back repeated input feature on keeping down a key
* cleanup + return type
* fix submit/action doing two things simultaneously, still same behaviour as before
* extracted UI inputs out of battle-scene
* tab -> spaces
* tab -> spaces what about now github ?
* tab -> spaces final (maybe)
* tried to fix the plugin loading issue on prod
* remove Plugins things as it's too uncertain how it works on prod
* seems old code source is indented with tab
* cleanup
* cleanup
* cleanup
* putting in an enum file the enum buttons
* fix repeating stats button + change message in event when the key is repeating
* added return type for ui-inputs
* added return type for inputs-controller
* adapted the code to integrate changes of bennybroseph
* Add Setting to Swap A and B on Gamepad
Added a new setting to swap the A and B button on controller. Defaults to off which retains the current behavior on live.
* Add comments
* Updated Learnset of Gen1 to Indigo Disc
Not many changes here for how much time it takes to comb through, but here it is.
Only notable change is Power-Up Punch got removed this gen so it had to be removed from Hitmonchan's learnset. Are we okay with this change? If so, this is good to go for Gen 1.
* Updated Learnset of Gen2 to Indigo Disc
Notable changes:
Porygon 2 loses Magic Coat with no replacement.
Ho-oh loses Burn Up but gains Overheat.
The rest seems better or neutral.
* abilities: implement opportunist
* abilities: make it not infinitely loop like a dummy
* abilities: properly ignore only opportunist on opportunist boosts
* abilities: rename some things to make a bit more sense
* Expanding Force Implementation
Added target change attribute based on terrain
* Class change I guess
* Expanding Force Implementation
Added target change attribute based on terrain
Class change I guess
Squashed weird split commit
* Fixed removed commits
My bad
* ACTUALLY fixed removed commits
* Expanding Force Hotfix
Fixes a bug where Expanding Force would not act as a multi-target move in the MoveEffectPhase while in psychic terrain
Not many changes here for how much time it takes to comb through, but here it is.
Only notable change is Power-Up Punch got removed this gen so it had to be removed from Hitmonchan's learnset. Are we okay with this change? If so, this is good to go for Gen 1.
* Expanding Force Implementation
Added target change attribute based on terrain
* Class change I guess
* Expanding Force Implementation
Added target change attribute based on terrain
Class change I guess
Squashed weird split commit
* Fixed removed commits
My bad
* ACTUALLY fixed removed commits
* Add Form Text to Starter UI
Adds text to the starter screen UI which indicates which Form you are currently selecting. This helps with Pokémon who don't have a sprite change for their form because it doesn't affect them until later.
* Make Title Case
The AI couldn't decide who to target with CounterDamageAttr moves which don't need a target. This change makes an exception. Now functions the same as when the player selects one of these moves.
Changes some of the more problematic passives some Pokémon had. As usual, if there's any that you may have a problem with, we are always up for suggestions.
* Spanish translations for intro messages and some menus. Added Empty (save file) to lang files
* Spanish translations + new literals in all langs
---------
Co-authored-by: rnicar <rj.nieto.car@gmail.com>
* abilities: implement anger shell and berserk
* abilities: fix small typo causing berserk to raise speed instead of spatk
* abilities: condense battlestats into an array instead of multiple attrs
* rework of the input handling, including different gamepad and keyboard
* rework of the input handling, including different gamepad and keyboard
* first version of a too complex inputHandler based on phaser3-merged-input
* removed useless control management and kept it simple for our use case, investigating to put out button_XX()
* renamed inputHandler to inputController
* aggregate directions and some action into a same method + fix menu return value
* added back repeated input feature on keeping down a key
* cleanup + return type
* fix submit/action doing two things simultaneously, still same behaviour as before
* extracted UI inputs out of battle-scene
* tab -> spaces
* tab -> spaces what about now github ?
Fixed having Shedinja share PP usage with the Ninjask it evolved from and vice versa.
The solution was to make a deep copy of each move in the moveset array rather than copying the array itself.
* Smack down and thousand arrows should cancel charging fly
* Remove console log
* Update interruptible check to use flying tag instead of move history
* Remove extra comma
Shedinja wasn't taking the luck value from Ninjask so when it calculated its luck it just took the entire fused Pokemon's luck somehow. This has been fixed so it takes both the first and second part of the fusion's luck values instead.
Also fixes an issue where Shedinja crashed the game if it was the second part of a fusion combo. Now the correct pokemon species gets checked against and the correct pokemon evolution occurs to create Shedinja.
Moves that deal half of a target's HP were not able to deal damage if the target had 1 HP. Used Math.max to ensure 1 is the lowest this value ever evaluates to.
* Fix effect spore, tera blast distribution, and IVs shown on catch
* Forgot to add tms
* Unown does not learn any TMs
* Fix some tera blast learns
* delelele whooooop
* Implemented Synchronoise's effect
Tested with Soak, Forest's Curse, and a variety of attacker and defender types.
* Fixed Synchronoise double battle functionality
It now does zero damage only to targets who do not share any types with it, while correctly damaging any who do. It also fails entirely if the user is UNKNOWN type.
* Add color for the IV scanner
add a new color SUMMARY_GREEN in text.js, add the green color if the iv of the pokemon is better than the iv on the starter of that pokemon
Co-authored-by: EmoUsedHM01 <131687820+emousedhm01@users.noreply.github.com>
* fix battle-message-ui-handler.ts formatting
* fix missing similicon battle-message-ui-handler.ts
* modified so it take a boolean instead of doing lot of else if battle-message-ui-handler.ts
* Fix iv scanner only doing color for the right pokemon in double fight
---------
Co-authored-by: EmoUsedHM01 <131687820+emousedhm01@users.noreply.github.com>
* Select move UI shows PP
* Removed testing forced max pp
* PP only shows when using PP restoring items
* Removed testing max pp again
* Update src/phases.ts
* Update src/ui/party-ui-handler.ts
---------
Co-authored-by: Samuel H <flashfireex@gmail.com>
* Add color for the IV scanner
add a new color SUMMARY_GREEN in text.js, add the green color if the iv of the pokemon is better than the iv on the starter of that pokemon
Co-authored-by: EmoUsedHM01 <131687820+emousedhm01@users.noreply.github.com>
* fix battle-message-ui-handler.ts formatting
* fix missing similicon battle-message-ui-handler.ts
* modified so it take a boolean instead of doing lot of else if battle-message-ui-handler.ts
---------
Co-authored-by: EmoUsedHM01 <131687820+emousedhm01@users.noreply.github.com>
* bug fix: updates move description correctly
viewing the description of move slot 1 in a pokemon's move summary UI only updated the first time it was viewed per session, exiting the party UI and re-entering caused the moves in a pokemon's summary screen to not automatically populate the description box unless you moved the cursor down to move 2 and then back up to move 1
* slight logic changes to fix party UI controls
when battlerCount = 2 (double battle), starting in party slot 1 and pressing DOWN -> UP -> RIGHT would move the cursor back down when it should be moving it to the right: these changes fix that
* finalised the minor UI changes
* finalising
* refactor
* removed console logs used for testing
* bug fix: updates move description correctly
viewing the description of move slot 1 in a pokemon's move summary UI only updated the first time it was viewed per session, exiting the party UI and re-entering caused the moves in a pokemon's summary screen to not automatically populate the description box unless you moved the cursor down to move 2 and then back up to move 1
* slight logic changes to fix party UI controls
when battlerCount = 2 (double battle), starting in party slot 1 and pressing DOWN -> UP -> RIGHT would move the cursor back down when it should be moving it to the right: these changes fix that
* finalised the minor UI changes
* finalising
* refactor
* removed console logs used for testing
* implement wish move
* Serene grace implementation idea
* only do the thingy if it actually gets effected.
* Revert "only do the thingy if it actually gets effected."
This reverts commit 4b084658d2.
* Revert "Serene grace implementation idea"
This reverts commit 4dd2504bc7.
* Fixes for Wish implementation
---------
Co-authored-by: Flashfyre <flashfireex@gmail.com>
* Some Fixes
- HP ratio related checks (`getHpRatio`): Added rounding to 2 decimals for non-precise option.
- Hustle (`BattleStatMultiplierAbAttr`): added optional condition; Hustle now works only for physical attacks.
- Imposter (`PostSummonTransformAbAttr`): Switch in a double battle after both foes have been defeated no longer crashes the game.
- Sleep Talk (`RandomMovesetMoveAttr`): Single target moves no longer target allies.
* Formatting changes for consistency
---------
Co-authored-by: Flashfyre <flashfireex@gmail.com>
* Added missing menu translations
* Added missing translations to other languages
---------
Co-authored-by: Raphael van der Woude <raphael.van.der.woude@dias.nl>
Both abilities are still not fully functional yet (Battle Bond does not interact with Water Shuriken yet, Power Construct does not interact with 10% Power Construct Zygarde, and both forms do not revert after a battle yet), but this is a step to having them both completed.
Battle Bond Froakie line and Power Construct 50% Zygardes (as well as Aura Break 10% Zygardes) can now randomly appear in the wild.
Expect Battle Bond to potentially change to its Gen 9 version at some point in the future, rendering Ash-Greninja inaccessible.
...But not all evolution sweets. This way, you can get all the differently colored Alcremies without there being like ~60 different forms.
There currently is an unintended side-effect with Gigantamaxing, where the Alcremie flavor will always switch to Vanilla Cream when reverting to normal, but aside from that, it works fine.