Skip to content

Commit

Permalink
fix(core): Fix EndPhase deltalog (#812)
Browse files Browse the repository at this point in the history
A side effect of calling EndPhase() is an automatic call to EndTurn().

Both endPhase and endTurn log entries are added to deltalog.

When the user mouses over LogEntries in the Debug Panel,
the state is regenerated/reduced from the deltalogs.
EndPhase() *again* makes an automatic call to EndTurn(), and
then the endTurn in the deltalog is also called, resulting in
one-too-many calls to EndTurn().

This issue affects games using DEFAULT turn order and
causes playback fail when using the Debug:Log Panel.
This error is generated to the browser console:

   ERROR: disallowed move: MYMOVENAME

where MYMOVENAME is the name of the move that fails.

Appears to correct issue #810

Issue also reported:

* 2020-06-23 07:05 - https://gitter.im/boardgame-io/General?at=5ef1f017b8152d34845bace8

* 2020-07-08 02:16 - https://gitter.im/boardgame-io/General?at=5f05778fc7d15f7d0f7b1e01
  • Loading branch information
jimu authored Sep 27, 2020
1 parent dc8b21f commit 0f8882a
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/core/flow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ export function Flow({

function EndPhase(state: State, { arg, next, turn, automatic }: any): State {
// End the turn first.
state = EndTurn(state, { turn, force: true });
state = EndTurn(state, { turn, force: true, automatic: true });

let G = state.G;
let ctx = state.ctx;
Expand Down

0 comments on commit 0f8882a

Please sign in to comment.