@@ -46,14 +46,15 @@ export class TetrisService {
4646 this . _setCurrentPiece ( this . _next ) ;
4747 this . _setNext ( ) ;
4848 }
49- let { initLine, speed } = this . _query . raw ;
49+ let { initLine, initSpeed } = this . _query . raw ;
5050 this . _store . update ( {
5151 points : 0 ,
5252 gameState : GameState . Started ,
53- matrix : MatrixUtil . getStartBoard ( initLine )
53+ matrix : MatrixUtil . getStartBoard ( initLine ) ,
54+ speed : initSpeed
5455 } ) ;
5556 this . _unsubscribe ( ) ;
56- this . auto ( MatrixUtil . getSpeedDelay ( speed ) ) ;
57+ this . auto ( MatrixUtil . getSpeedDelay ( initSpeed ) ) ;
5758 this . _setLocked ( false ) ;
5859 }
5960
@@ -153,18 +154,18 @@ export class TetrisService {
153154 }
154155
155156 decreaseLevel ( ) {
156- let { speed } = this . _query . raw ;
157- let newSpeed = ( speed - 1 < 1 ? 6 : speed - 1 ) as Speed ;
157+ let { initSpeed } = this . _query . raw ;
158+ let newSpeed = ( initSpeed - 1 < 1 ? 6 : initSpeed - 1 ) as Speed ;
158159 this . _store . update ( {
159- speed : newSpeed
160+ initSpeed : newSpeed
160161 } ) ;
161162 }
162163
163164 increaseLevel ( ) {
164- let { speed } = this . _query . raw ;
165- let newSpeed = ( speed + 1 > 6 ? 1 : speed + 1 ) as Speed ;
165+ let { initSpeed } = this . _query . raw ;
166+ let newSpeed = ( initSpeed + 1 > 6 ? 1 : initSpeed + 1 ) as Speed ;
166167 this . _store . update ( {
167- speed : newSpeed
168+ initSpeed : newSpeed
168169 } ) ;
169170 }
170171
@@ -313,10 +314,10 @@ export class TetrisService {
313314 return ;
314315 }
315316 this . _soundManager . clear ( ) ;
316- let { points, clearedLines, speed } = this . _query . raw ;
317+ let { points, clearedLines, speed, initSpeed } = this . _query . raw ;
317318 let newLines = clearedLines + numberOfClearedLines ;
318319 let newPoints = this . _getPoints ( numberOfClearedLines , points ) ;
319- let newSpeed = this . _getSpeed ( newLines ) ;
320+ let newSpeed = this . _getSpeed ( newLines , initSpeed ) ;
320321
321322 this . _store . update ( {
322323 points : newPoints ,
@@ -330,9 +331,11 @@ export class TetrisService {
330331 }
331332 }
332333
333- private _getSpeed ( totalLines : number ) : Speed {
334- let newSpeed = Math . floor ( totalLines / MatrixUtil . Height ) ;
335- return < Speed > ( newSpeed > 6 ? 6 : newSpeed ) ;
334+ private _getSpeed ( totalLines : number , initSpeed : number ) : Speed {
335+ let addedSpeed = Math . floor ( totalLines / MatrixUtil . Height ) ;
336+ let newSpeed = < Speed > ( initSpeed + addedSpeed ) ;
337+ newSpeed = newSpeed > 6 ? 6 : newSpeed ;
338+ return newSpeed ;
336339 }
337340
338341 private _getPoints ( numberOfClearedLines : number , points : number ) : number {
0 commit comments