Commit Graph

198 Commits

Author SHA1 Message Date
Adrian T
65ddd49d64
[Enhancement] Move event files to a central directory (#1918)
* Move events to a central directory

* Update modifier import

Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>

* remove old battle-scene-events

* Move to field events

* Update battle-scene.ts

---------

Co-authored-by: flx-sta <50131232+flx-sta@users.noreply.github.com>
Co-authored-by: Benjamin Odom <bennybroseph@gmail.com>
2024-06-10 20:19:07 -05:00
Xavion3
696ff6eae3
Add Challenges (#1459)
* Initial challenge framework

* Add type localisation

* Change how challenges are tracked

Also fixes the difficulty total text

* MVP

Renames challenge types, temporarily hides difficulty, and implements challenge saving.

* Attempt to fix one legal pokemon in a double battle

* Make monotype ignore type changing effects

* Make isOfType correctly detect normal types

* Try to fix double battles again

* Make challenge function more like classic

* Add helper function for fainted or not allowed

* Add framework for fresh start challenge and improve comments

* Try to fix evolution issues

* Make form changing items only usable from rewards screen

* Update localisation

* Additional localisation change

* Add achievements for completing challenges

* Fix initialisation bug with challenge achievements

* Add support for gamemode specific fixed battles

Also make monogen challenges face the e4 of their generation

* Add better support for mobile in challenges

* Localise illegal evolution/form change message

* Update achievement names

* Make alternate forms count for monogen

* Update monotype achievement icons

* Add more comments

* Improve comments

* Fix mid battle form changes

* Reorder mode list

* Remove currently unused localisation entry

* Add type overrides for monotype challenges

Meloetta always counts for psychic and castform always counts for normal

* Change how form changes are handled

Now attempts a switch at the start of each turn instead of immediately

* Add start button to challenge select screen

* Make starter select back out to challenge screen if using challenges

* Fix daily runs

* Update tests to new game mode logic
2024-06-08 01:07:23 -04:00
Greenlamp2
1a149bfa04
[Testing] Flexible Testing Wrapper for Phaser-Based Battle-Scenes (#1908)
* refactor executed code while importing and initializing all of these in loading-scene

* reset to main

* fix server url

* added rule no-trailing-spaces

* made progress

* test somme data from a session save is working

* trying to launch a battle

* added fetch wrapper to load data locally

* trying to mockAllSettled

* pushPhase & shiftPhase

* check integrity of exported session

* set toke + loggedInUser in tests

* progress on starting new battle

* tring to test phase but it's async

* mocking fetch

* working mock fetch

* need to handle pile of data

* attempt to use real phaser classes

* reorder overrides

* refactored to use some real classes from phaser

* removed useless things

* started to work on some container mock

* finished the mockContainer time to add some logic

* some more mock containers

* removed addMethods since there is the mock classes now

* commented issues

* attempt to create mockTextureManager

* fix tests

* mockSprite & mockText

* yes but not really

* yes but not really

* fix tutorial callback

* reached mode title

* added achievement tests

* fix test achievements with current state of mock

* correct sequence loading for BattleScene with mockLoader !

* deep dive into next step

* working wait until starter selection screen

* added newGame method into wrapper

* expect to save_slot

* trying to manage pokemon sprite for getAll without success yet

* added test for egg output

* fixed egg test for June

* fix tests + locate next issue to fix

* we are in battle baby

* added new game in one-line

* export is working but export only what's in the fetch

* fix start game as guest

* refactored how we start a battle + cleanup

* overrided mewtwo but issue with currentBattle

* refactor: rename InitAchievements to initAchievements

* added missing mock method

* override level and pokemon forms working as intended

* bringToTop Obj

* remove launch battle in achivement test

* fix getIndex when same pokemon

* can run all tests

* first attack, faint, and shop modifiers, MockClock

* on method for container

* added doAttack one-liner

* one-line export data

* removed throw error

* feat: Make `scenes` property of `GameWrapper` class public

The `scenes` property of the `GameWrapper` class was changed from private to public. This change allows external access to the `scenes` map, which is used to store Phaser scenes. This modification was made to enable easier manipulation and interaction with the scenes in the game.

* correction

* removed CanvasRenderer

* added a param to remove console.log and added a param to preven scene create call

* fix encounter wave 30 when it's a trainer

* test double-battle

* test fight without KO

* test double fight no ko

* fix crashing texture + added Text wrapper to log fight

* fix tests on boss - trainer - rival

* chore: Refactor BattleScene initialization and add new phases

Refactor the BattleScene initialization code to remove unnecessary delay and improve performance. Also, add new phases for the title and unavailable states to enhance the game experience.

* rework of Game tests

* skipFn is working

* added onNextPrompt and restore Og Start

* better newGame

* added skipFN in remove

* not yet working test but updated interceptors

* do attack work but not on PostSummonPhase phase when there is mention of silcoon and wurmple

* error located, it's just a double fight, i was not there yet

* single OHKO & double no OHKO

* added expirationFn into next prompt

* all tests are passing

* working test on non damaging move from opponent

* cleaned a bit

* removed phaser initialisation on every tests

* renamed test file

* added load system data

* added some ability support

* added onKill & onSummon abilities test

* removed useless test + cleanup

* removed useless test + cleanup

* fixed tests after merge main

* added itemHeld endTurn trigger test (toxic orb)

* added runFrom..To

* added mustRun to assert currentPhase

* added no-miss move to test things

* cleaner restore mock

* fix test

* fix moxie test + game speed

* improve test speed

* added onOurself and onOpponent mvoe test

* added onDamage test for tackle

* removed timeout in intervals to run tests faster

* cleanup

* added never crit override + separate file per test + remove randomness in randBattleSeedInt

* move folders

* better org

* renamed itemHeld folder to items

* fix deploy.yml

* cleanup

* simplified the gameManager start battle and allow single pokemon in party

* remove the need of mode development

* added input handler to test inputs + remove time from phaser into inputController

* added keyboard support

* added fakeMobile support

* added details

* removed a console.log + added logUp

* move test to folder

* fixed canvas issue

* added starter select tests

* added some more test on starter-select

* added battle-order tests

* added battle-order tests

* fixing Phaser RNG

* ordering stats for better reading

* fix tests for main

* adapt battle-order test to be more readable

* fix merge

* fix some errors and silent all errors from gameWrapper since it's not possible to avoid them

* fix mocks to manage childs & stuffs

* added some docs

* fix achievement test

* removed an unused file

* separate misc tests to clean battle.test file

* added a basic french lokalization test

* added i18n where it needs to be used only

* revers extracted method

* removed unused method

* removed handler fetch since we do not test anything server related

* fix test with handlers removed

* added intrepid sword test

* fix enum exp party

---------

Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
2024-06-07 18:33:45 -04:00
flx-sta
283714bd0f
[Refactor] Move enums from game-data into their respective files in src/data/enums (#1837)
* move PlayerGender enum into src/data/enums/player-gender.ts

this is necessary to avoid circular dependencies which did crash tests in the past (in PRs)

* Update settings.ts

* Update game-data.ts

* Update summary-ui-handler.ts

* Update ui.ts

* move Passive & GameDataType enums into own files
2024-06-05 19:11:07 -05:00
AJ Fontaine
eecad0fdc4
Balance endless tokens (#1733)
* Balanced tokens

* Remove existing tokens, all 10 stack limit

* Linter complained

* Sorry Mr. Lint I’ll do better next time

* Removed redundant min

* Used a version system to update tokens

* The linter has peculiar tastes

* See if this works

* I'm at my limit omg wtf Sam

* Call me Swoobat the way I keep it Simple

* Clean up some log statements

* Adjust token weights to make up for removal of sleep and freeze

* Be so fr GitHub that’s not a real merge conflict
2024-06-04 16:39:22 -05:00
Matthew
69da96d543
Settings Refactor (#1771) 2024-06-03 19:57:47 -04:00
Xavion3
ff0e4fbdf0
Implement Pity System (#1752)
* Implement Pity System

* Add comments and optimised worst case slightly
2024-06-03 15:43:52 -04:00
Frede
12bd22f2ca
Added "Skip Seen Dialogues" option (#1431)
* Added "Skip Dialogues" option (if at least 1 classic win)

* Removed error sound and hide option instead when classic wins = 0

* Add skip dialogues option to Unlockables and show unlocked message on first classic win

* Only skips seen dialogues, removed dialogue option from unlockables, seen dialogues get saved to local storage

* oops

* dont show charSprite when skipping a dialogue, small fixes

---------

Co-authored-by: Frederik Hobein <frederik.hobein@nterra.com>
2024-06-03 11:49:13 +01:00
Greenlamp2
060b1b2ccc
Menu - Controls Rebind - Gamepad & Keyboard (Cleaner git log) (#1666)
* squased merge rebind_menu

* azerty to qwerty

* add a check to preven a crash in firefox

* reset navigation menu on quit

* removed dual lock mekanism

* navigation display update icons on new bind

* added submit binding

* removed attribute no longer used

* change protected to abstract

* remove last bind protection since action and cancel are protected + renamed default controller to controller

* removed default alt qwerty keys in config

* fix some errors for doc

* fix tests

* fix some more errors for docs

* fix some more errors for docs final ?

* added alt bind for menu navigation + update icons on delete/home
2024-06-01 13:56:32 +01:00
Benjamin Odom
19885e0558
Add Arena Events (#1627)
* Add Arena Events

* Update arena-events.ts
2024-05-31 17:52:16 -05:00
Greenlamp2
622885767d
Enforce Consistent Spacing with ESLint's space-before-blocks and keyword-spacing Rules (#1308)
* added rule no-trailing-spaces

* added rule space-before-block

* added rule keyword spacing
2024-05-23 19:19:20 -05:00
Greenlamp2
e2be6ba002
added rule no-trailing-spaces (#1307) 2024-05-23 18:45:04 -05:00
Matthew
f7a7b23dd1
Update README and package, re-add money formatter (#1286) 2024-05-23 12:29:18 -04:00
Greenlamp2
bac6c22973
ESLint - The Essential Linter and Formatter for JavaScript and TypeScript (#1224)
* eslint config + packages

* updated eslint config

* fix the issue eslint adding ;;;; at interfaces

* first round with eslint --fix .

* removed config for unused export

* Revert "first round with eslint --fix ."

This reverts commit 77a88e0895.

* removed config for camelCase

* for real this time, first round of eslint --fix .

* halfway to manual eslint fix

* eslint done

* added "how to setup" the hook to eslint --fix each new file before commit (if wanted)

* removed eslintrc config file duplicat

* fix human error + ignore build folder + merge overrides

* added curly brace style + eslint

* applied double quote linter rule

* added lefthook

* test precommit

* test precommit

* test precommit

* test precommit

* test precommit

* test precommit

* test precommit

* github action to run eslint

* added node_modules to ignore eslint

* different action for typescript

* no need for different glob (default src)

* node 20

* node 20

* removed no longer needed install file

* remove hooks part from README

* eslint fixes

---------

Co-authored-by: Frederico Santos <frederico.f.santos@tecnico.ulisboa.pt>
2024-05-23 11:03:10 -04:00
Benjamin Odom
f93f2bfca6
Reduce EXP Balance (#1128)
* Set max to 4
2024-05-20 19:06:20 +10:00
Flashfyre
ac2e78129e Add Save and Quit option to replace Return to Title 2024-05-15 11:42:18 -04:00
Flashfyre
adf5690383 Migrate data for offline users 2024-05-15 10:55:17 -04:00
Flashfyre
4a7da3e5f6 Fix export not working 2024-05-15 02:01:30 -04:00
Flashfyre
70ecc51f50 Don't clear local data in offline mode 2024-05-15 01:54:15 -04:00
Samuel H
67c18a15e2
Implement client session and re-implement hybrid saving (#888)
* Implement client session and re-implement hybrid saving (WiP)

* Fixes for hybrid saving

* Add local data clears where applicable

* Include client session ID in system update

* Change save threshold from 5 waves to 10 waves or 5 minutes
2024-05-15 00:52:06 -04:00
Nexllon
df499e2f71
offline mode - adds daily run and fixes clear freezes (#834)
* offline mode - adds daily run and fixes clear freezes

* removed unused import
2024-05-14 15:42:30 -04:00
Flashfyre
7943633481 Revert "Implement hybrid saving for optimization"
This reverts commit b45cd2f7e7.
2024-05-13 20:56:28 -04:00
Flashfyre
ab92bc61ba Revert "Only show save icon on server sync"
This reverts commit 5d0dbfff98.
2024-05-13 20:56:19 -04:00
Flashfyre
5d0dbfff98 Only show save icon on server sync 2024-05-13 18:37:48 -04:00
Flashfyre
b45cd2f7e7 Implement hybrid saving for optimization 2024-05-13 18:17:57 -04:00
Matthew
21a0a0276d
add pokeball override (#793) 2024-05-13 03:40:53 -05:00
Samuel H
2b9b63e3f3
Add combined save between waves (#777) 2024-05-12 23:01:05 -04:00
Flashfyre
f540b7d17f Fix always clearing first slot in offline mode 2024-05-11 20:33:03 -04:00
Flashfyre
9cfc09f673 Restructure game over logic to save before clear 2024-05-10 18:12:33 -04:00
maru
7f0362e124
Fix it for real this time 2024-05-09 07:30:19 -04:00
maru
c1cff02a18
Fix bug with accounts being unable to create new saves 2024-05-09 06:22:33 -04:00
Flashfyre
e993bf9945 Fix session slot always saving to first slot in offline mode 2024-05-08 16:36:44 -04:00
Flashfyre
72b4552b01 Don't update user info on save for optimization 2024-05-07 13:36:52 -04:00
alpaca
36cde21ce3
Adds ribbon in starter screen if mon has beat classic mode (#370)
* 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>
2024-05-07 00:44:41 -04:00
Flashfyre
6a3ca62490 Add separate sub-legendary stats 2024-05-05 17:11:29 -04:00
Flashfyre
437cb87df9 Add separate achievements for sub-legendaries and rename pseudoLegendary field 2024-05-05 11:05:22 -04:00
Xavion3
bc319a8eda Fix eggs during dailies 2024-05-03 10:28:40 -04:00
Flashfyre
991f097e9e Rebalance friendship and add starter friendship with candy reward 2024-05-02 17:48:08 -04:00
Flashfyre
bf2a83993c Make luck independent from shininess and variant 2024-04-26 17:32:28 -04:00
Flashfyre
4a703c938d Add load message handler for too many connections 2024-04-25 14:47:32 -04:00
Flashfyre
daba4e9482 Fix not updating legendary and mythical Pokemon seen stats 2024-04-25 13:20:32 -04:00
Flashfyre
1d25935aa0 Enforce trainer IDs on write requests for data integrity 2024-04-25 09:17:48 -04:00
Flashfyre
97218be59c Add back missing authorization headers 2024-04-24 19:26:04 -04:00
Flashfyre
cf3a7dca35 Comment out variant data fix to prevent ability data corruption 2024-04-24 09:26:46 -04:00
Flashfyre
e2effee43d Fix typo 2024-04-23 22:32:04 -04:00
Flashfyre
1376ea4e87 Fix initial starters not having first ability unlocked 2024-04-23 22:16:49 -04:00
Flashfyre
26b1bb5f03 Don't increment seen shiny count for trainers 2024-04-22 11:28:13 -04:00
Flashfyre
3d9f5fb157 Protect against cross-session overwrites 2024-04-21 16:19:11 -04:00
Flashfyre
c8a9069e8b Add outdated session support and fix older migrations 2024-04-21 10:59:50 -04:00
Flashfyre
17eddd7b02 Consolidate broken variant data for players who missed 1.0.1 2024-04-20 22:30:28 -04:00
Flashfyre
fc06c4d9e1 Fix title querying with placeholder save slot 2024-04-20 18:46:36 -04:00
Flashfyre
706a85ed5b Add missing pipeline data for shiny recolors in certain screens 2024-04-19 23:37:23 -04:00
Flashfyre
0ecc46ab97 Exclude authorization header where unnecessary 2024-04-19 17:35:49 -04:00
Flashfyre
e17aee5d48 Fix default starter hidden ability for new accounts 2024-04-19 12:24:52 -04:00
Flashfyre
5c367db8a3 Fix ability edge case when saving starter ability data 2024-04-19 11:01:22 -04:00
Flashfyre
b546203118 Fix shiny eggs corrupting candy count 2024-04-19 01:01:57 -04:00
Flashfyre
c76f8c5e7e Add tiered shiny variants 2024-04-18 22:52:26 -04:00
Flashfyre
0692a343a0 Fix duplicate candy count key for local 2024-04-15 19:47:12 -04:00
Flashfyre
6e59b4dd77 Prevent saving on an outdated client 2024-04-15 10:09:51 -04:00
Flashfyre
824a73ef71 Add candy system for passives and value reductions 2024-04-13 18:59:58 -04:00
Flashfyre
75075c6fab Update missing save data handling 2024-04-11 00:18:16 -04:00
Flashfyre
eb5bdb07a8 Add outage handling 2024-04-10 01:32:49 -04:00
Flashfyre
5ebc351e4f Add a long-term goal 2024-04-05 22:58:40 -04:00
Flashfyre
3e99ed6bb6 Level up sound no longer pauses BGM 2024-04-04 17:43:37 -04:00
Flashfyre
075db8ae0c Show icon when saving data 2024-04-04 10:16:29 -04:00
Flashfyre
a3e09ee5cc Fix game not loading if save data is not found 2024-04-01 15:18:15 -04:00
Flashfyre
366e3e5120 Fix battle RNG varying when loading a game 2024-04-01 12:48:35 -04:00
Flashfyre
7ca5cdc21b Revert "Revert "Fix strong trainer party members often not evolving due to dividing by 0""
This reverts commit baaa00656e.
2024-03-29 20:11:52 -04:00
Flashfyre
baaa00656e Revert "Fix strong trainer party members often not evolving due to dividing by 0"
This reverts commit c59c5ca413.
2024-03-29 13:52:21 -04:00
Flashfyre
c59c5ca413 Fix strong trainer party members often not evolving due to dividing by 0 2024-03-29 13:42:54 -04:00
Flashfyre
26bef151f4 Update starter value reduction thresholds to be per-cost 2024-03-28 17:29:31 -04:00
Flashfyre
892d99a4f9 Add 50% chance to offset gym leader wave by 10 in classic 2024-03-25 11:00:42 -04:00
Flashfyre
cf959c6e1b Add proper title screen and logo 2024-03-21 13:12:05 -04:00
Flashfyre
7189258095 Actually fix single battle summoning issue 2024-03-21 12:34:19 -04:00
Flashfyre
b201cf0abc Fix trainer-related crash when loading data 2024-03-21 01:05:46 -04:00
Flashfyre
a76f795cd5 Trainer updates including names and double battle pairs
Add dynamic trainer pairs; add trainer names with Bulbapedia scraping logic; add Hex Maniac trainer; make namebox stretch to fit name
2024-03-21 00:57:28 -04:00
Flashfyre
88e050581e Add score to daily run mode 2024-03-19 00:03:41 -04:00
Flashfyre
0701598be6 Add session scores 2024-03-17 11:36:19 -04:00
Flashfyre
56f4a71ca6 Add daily runs (WiP) 2024-03-16 22:06:56 -04:00
Flashfyre
81f9e2da36 Add WiP logic for daily run and fix some performance issues 2024-03-15 21:59:34 -04:00
Flashfyre
7946938828 Fix errors when loading empty slots in local mode 2024-03-15 15:56:07 -04:00
Flashfyre
00255cb09a Fully implement save slots and ""title"" screen changes
Fully implement save slots and ""title"" screen changes; fix issues with slots including clear data not working on game over and export/import not working; fix session play time not being recorded correctly
2024-03-15 15:13:32 -04:00
Flashfyre
879971ae2b Add ""title"" screen and save data slots 2024-03-14 21:49:49 -04:00
Flashfyre
623d600e13 Add wrapper for game mode 2024-03-14 16:26:57 -04:00
Flashfyre
1fed59837b Fix RNG issues with egg moves 2024-03-01 22:18:39 -05:00
Flashfyre
ce60d46fd1 Fix egg move data not initializing properly 2024-03-01 19:37:32 -05:00
Flashfyre
0e0fe95d4c Fix being unable to clear boss segment without bypass 2024-03-01 12:41:47 -05:00
Flashfyre
f48464d48d Minor refactoring 2024-02-29 20:08:58 -05:00
Flashfyre
8bee927e08 Remove some legacy features and fix a crash
Remove legacy autoplay and quick start features; fix crash related to leech seed on missing source
2024-02-27 15:16:06 -05:00
Flashfyre
649717a3cd Add egg moves logic 2024-02-25 12:45:41 -05:00
Flashfyre
b054992ffa Allow selecting and ordering starter moves 2024-02-21 01:03:34 -05:00
Flashfyre
09e7fab141 Implement solution to data loss issue 2024-02-19 20:36:10 -05:00
Flashfyre
2f8df43db8 Fix some bugs and add seen Pokemon to starter screen 2024-02-18 22:21:57 -05:00
Flashfyre
b47f7b7ad2 Try rebalancing final boss by removing items 2024-02-17 11:18:53 -05:00
Flashfyre
27c09989b6 Fix crash when generated trainer battle levels mismatch with loaded data 2024-02-17 09:22:51 -05:00
Flashfyre
dadc08d16e Add Terestallization mechanics
Add Terestallization mechanics; implement Stellar type; fix bug with held item weights
2024-02-17 00:40:03 -05:00
Flashfyre
bf18b1ceb1 Add tutorial framework (WiP) 2024-02-13 18:42:11 -05:00
Flashfyre
e72ede26d8 Implement catch count based starter value decreases 2024-02-12 16:38:46 -05:00
Flashfyre
05f114c8a4 Minor UI changes 2024-02-06 23:11:00 -05:00
Flashfyre
e62bb6e225 Add female trainer and male rival 2024-02-06 16:15:35 -05:00