@@ -113,57 +113,26 @@ export default {
113113vscode . window . showWarningMessage ( 'FAIL' )
114114} ,
115115//@ts -ignore
116- stepComplete :assign ( {
116+ progressUpdate :assign ( {
117117progress :( context :CR . MachineContext ) :CR . Progress => {
118- const nextProgress = {
119- ...context . progress ,
120- steps :{
121- ...context . progress . steps ,
122- [ context . position . stepId ] :true ,
123- }
124- }
125- console . log ( 'progress update' , nextProgress )
126- storage . setProgress ( nextProgress )
127- return nextProgress
128- }
129- } ) ,
130- //@ts -ignore
131- stageComplete :assign ( {
132- progress :( context :CR . MachineContext ) :CR . Progress => {
133- const nextProgress = {
134- ...context . progress ,
135- stages :{
136- ...context . progress . stages ,
137- [ context . position . stageId ] :true ,
138- }
139- }
140- console . log ( 'progress update' , nextProgress )
141- storage . setProgress ( nextProgress )
142- return nextProgress
143- }
144- } ) ,
145- //@ts -ignore
146- levelComplete :assign ( {
147- progress :( context :CR . MachineContext ) :CR . Progress => {
148- const nextProgress = {
149- ...context . progress ,
150- levels :{
151- ...context . progress . levels ,
152- [ context . position . levelId ] :true ,
153- }
154- }
155- console . log ( 'progress update' , nextProgress )
156- storage . setProgress ( nextProgress )
157- return nextProgress
118+ const { progress, position, data} = context
119+ const nextProgress = progress
158120
159- }
160- } ) ,
161- //@ts -ignore
162- tutorialComplete :assign ( {
163- progress :( context :CR . MachineContext ) :CR . Progress => {
164- const nextProgress = {
165- ...context . progress ,
166- complete :true ,
121+ nextProgress . steps [ position . stepId ] = true
122+ const { stepList} = data . stages [ position . stageId ]
123+ const stageComplete = stepList [ stepList . length - 1 ] === position . stepId
124+ if ( stageComplete ) {
125+ nextProgress . stages [ position . stageId ] = true
126+ const { stageList} = data . levels [ position . levelId ]
127+ const levelComplete = stageList [ stageList . length - 1 ] === position . stageId
128+ if ( levelComplete ) {
129+ nextProgress . levels [ position . levelId ] = true
130+ const { levelList} = data . summary
131+ const tutorialComplete = levelList [ levelList . length - 1 ] === position . levelId
132+ if ( tutorialComplete ) {
133+ nextProgress . complete = true
134+ }
135+ }
167136}
168137console . log ( 'progress update' , nextProgress )
169138storage . setProgress ( nextProgress )