Skip to content

Commit

Permalink
fix(core): State merging order invalid
Browse files Browse the repository at this point in the history
When chains of game states were merged, the last merge state was often lost.
  • Loading branch information
oliversalzburg committed Dec 4, 2023
1 parent dd784d7 commit 80b52ef
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion packages/kitten-scientists/source/state/StateMerger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class StateMerger {
}

merge<T extends Record<string, unknown>>(base: T): T {
let stateSubject = deepMergeLeft(base, mustExist(this.state.state)) as T;
let stateSubject = base;

for (const child of this.state.children) {
let childState = mustExist(child.state);
Expand All @@ -21,6 +21,8 @@ export class StateMerger {
stateSubject = deepMergeLeft(stateSubject, childState) as T;
}

stateSubject = deepMergeLeft(stateSubject, mustExist(this.state.state)) as T;

// Clean up merged state.
(stateSubject as Record<string, string>).$schema =
"https://schema.kitten-science.com/working-draft/settings-profile.schema.json";
Expand Down

0 comments on commit 80b52ef

Please sign in to comment.