docs: update the TODO for the rule fixes
Remove the sowing and animation bugs, which are fixed, and add the open question of who gets the remaining stones when a move empties the opponent's side.
This commit is contained in:
parent
3ea2ba18e3
commit
e81e0e0841
12
TODO.md
12
TODO.md
@ -83,12 +83,16 @@ See `docs/specs/web-redesign`.
|
|||||||
- [ ] Validate moves before running them instead of treating every invalid move as a crash: each one writes a
|
- [ ] Validate moves before running them instead of treating every invalid move as a crash: each one writes a
|
||||||
file to `crashes/` and is broadcast to the players (`GameManager.onGameError`)
|
file to `crashes/` and is broadcast to the players (`GameManager.onGameError`)
|
||||||
|
|
||||||
|
## Game rules
|
||||||
|
|
||||||
|
- [ ] Decide who gets the remaining stones when a move empties the opponent's side (e.g. a capture takes their last
|
||||||
|
stones). Now the player whose side is empty always gets the other side's stones (`GRClearBoardAtEnd`), even
|
||||||
|
when the opponent emptied it; some Mangala rules give them only to a player who emptied their own side.
|
||||||
|
Analyse the rule first, then decide
|
||||||
|
|
||||||
## Bugs
|
## Bugs
|
||||||
|
|
||||||
- [ ] `PitAnimator.animatePit`: `previousPitIndex > 0` should be `>= 0`; a one-stone move from pit 0 does not
|
|
||||||
empty that pit during the animation
|
|
||||||
- [ ] `PitAnimator.dispose` removes a newly bound function, so the theme listener is never removed
|
- [ ] `PitAnimator.dispose` removes a newly bound function, so the theme listener is never removed
|
||||||
- [ ] Sowing puts stones into the opponent's store; check against the intended Mangala rules and add a test
|
|
||||||
- [ ] `onGameError` broadcasts an `Error`, which serializes to `{}`
|
- [ ] `onGameError` broadcasts an `Error`, which serializes to `{}`
|
||||||
|
|
||||||
## Maintenance
|
## Maintenance
|
||||||
@ -96,7 +100,7 @@ See `docs/specs/web-redesign`.
|
|||||||
- [ ] The web and mobile apps duplicate components and stores; move shared code into `packages/core`
|
- [ ] The web and mobile apps duplicate components and stores; move shared code into `packages/core`
|
||||||
- [ ] Mixed lockfiles: `packages/*` and `apps/mobile` have both `yarn.lock` and `package-lock.json`
|
- [ ] Mixed lockfiles: `packages/*` and `apps/mobile` have both `yarn.lock` and `package-lock.json`
|
||||||
- [ ] Align TypeScript and Jest versions across packages
|
- [ ] Align TypeScript and Jest versions across packages
|
||||||
- [ ] Tests for `MatchMaker` and `PitAnimator`
|
- [ ] Tests for `MatchMaker`; `PitAnimator` is only tested for the first frame of a move
|
||||||
- [ ] CI that runs the tests
|
- [ ] CI that runs the tests
|
||||||
- [ ] Pre-existing type errors: 4 in the frontend, 11 in mobile; the frontend has no `tsconfig.json`, so nothing
|
- [ ] Pre-existing type errors: 4 in the frontend, 11 in mobile; the frontend has no `tsconfig.json`, so nothing
|
||||||
type-checks it
|
type-checks it
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user