Support passing "method-less" objects and rethink the playAgainstAI object - UPDATE #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
All things described below were changed. Take a look at this for more information.
The problems that was solved in 2124faa, wasn't actually solved. We're replacing the
game.boardwithgameState.board, but if it's passed from AI, worker or backend it won't contain the importantgetValidMovesmethods.So instead of replacing the
game.boardobject we can usegame.pieceinside theChessAIto create the right pieces with workinggameprototype andgetValidMovesmethod.Also it will be really helpful to rethink the
playAgainstAIobject.At the moment we track if we has AI mode and do all AI stuff if it's true. But in some cases (like in RSG Chess mobile) we want to customize the AI movement but keep the pawn promotion or keep the default movement but change the promotion and check simulating. We can add these additional values to the
playAgainstAIobject, as well as moving thecomingAIargument inside.The object will look similar to this: