@@ -89,8 +89,9 @@ app.stage.addChild(particle.container);
8989
9090const states = {
9191 start : false ,
92+ requestAllocationRolls : false ,
9293 allocation : false ,
93- life : 6 ,
94+ life : 3 ,
9495 speed : 3 ,
9596 speedMult : 2 ,
9697 jump : 3 ,
@@ -238,7 +239,7 @@ scene.addChild(pauseText);
238239
239240const score = new PIXI . Text ( 0 , textStyle )
240241score . x = app . view . width * 0.5 ;
241- score . y = app . view . height * 0.05 ;
242+ score . y = app . view . height * 0.1 ;
242243score . anchor = { x : 0.5 , y : 0.5 } ;
243244scene . addChild ( score ) ;
244245
@@ -266,15 +267,16 @@ app.ticker.add((deltaTime) => {
266267 scene . visible = false ;
267268 allocationScreen . visible = false ;
268269 particle . container . visible = false ;
269- menu . score . text = "Level " + states . level + " | " + states . score + " points" ;
270+ menu . score . text = "Previous Run: " + states . level + " round" + ( states . level == 1 ? "" : "s" ) + ", " + states . score + " points" ;
270271
271272 bg . tint = bgTint [ 0 ] ;
272273
273274 if ( PIXI . input . getKeyFired ( "a" ) ) {
274275 menu . info . text = "" ;
275276 states . start = true ;
276277 states . allocation = true ;
277- states . life = 6 ;
278+ states . requestAllocationRolls = false ;
279+ states . life = 3 ;
278280 states . speed = 3 ;
279281 states . speedMult = 2 ;
280282 states . jump = 3 ;
@@ -285,6 +287,8 @@ app.ticker.add((deltaTime) => {
285287 states . dangerCount = 0 ;
286288 states . score = 0 ;
287289
290+ newRolls = [ 3 , 3 , 3 , 3 ] ;
291+
288292 player . x = app . view . width * 0.5 ;
289293 player . y = app . view . height ;
290294 player . anchor = { x : 0.5 , y : 1.0 } ;
@@ -309,22 +313,38 @@ app.ticker.add((deltaTime) => {
309313
310314 bg . tint = bgTint [ 0 ] ;
311315
312- if ( rollSprite . length == 0 ) {
316+ if ( states . requestAllocationRolls ) {
317+ if ( rollSprite . length == 0 ) {
318+ for ( let i = 0 ; i < 4 ; i ++ ) {
319+ let num = rand ( 1 , 6 ) ;
320+ rollSprite [ i ] = new PIXI . Sprite . from ( diceImg [ num ] ) ;
321+ rollSprite [ i ] . x = app . view . width * ( i + 1 ) * 0.2 ;
322+ rollSprite [ i ] . y = 0.3 * app . view . height ;
323+ rollSprite [ i ] . anchor = { x : 0.5 , y : 1 } ;
324+ rollSprite [ i ] . facing = num ;
325+ rollSprite [ i ] . tint = dangerTint [ 7 - num ] ;
326+ rollSprite [ i ] . vec = { x : rand ( - 16 , 16 ) , y : rand ( - 16 , 16 ) } ;
327+ rollSprite [ i ] . roll = true ;
328+ rollSprite [ i ] . slot = i ;
329+ allocationScreen . addChild ( rollSprite [ i ] ) ;
330+ }
331+ }
332+ } else if ( rollSprite . length == 0 ) {
313333 for ( let i = 0 ; i < 4 ; i ++ ) {
314- let num = rand ( 1 , 6 ) ;
315- rollSprite [ i ] = new PIXI . Sprite . from ( diceImg [ num ] ) ;
334+ rollSprite [ i ] = new PIXI . Sprite . from ( diceImg [ newRolls [ i ] ] ) ;
316335 rollSprite [ i ] . x = app . view . width * ( i + 1 ) * 0.2 ;
317336 rollSprite [ i ] . y = 0.3 * app . view . height ;
318337 rollSprite [ i ] . anchor = { x : 0.5 , y : 1 } ;
319- rollSprite [ i ] . facing = num ;
320- rollSprite [ i ] . tint = dangerTint [ 7 - num ] ;
321- rollSprite [ i ] . vec = { x : rand ( - 16 , 16 ) , y : rand ( - 16 , 16 ) } ;
322- rollSprite [ i ] . roll = true ;
338+ rollSprite [ i ] . facing = newRolls [ i ] ;
339+ rollSprite [ i ] . tint = dangerTint [ 7 - newRolls [ i ] ] ;
340+ rollSprite [ i ] . vec = { x : 0 , y : 0 } ;
341+ rollSprite [ i ] . roll = false ;
323342 rollSprite [ i ] . slot = i ;
324343 allocationScreen . addChild ( rollSprite [ i ] ) ;
325344 }
326345 }
327346
347+
328348 rollSprite . forEach ( ( danger ) => {
329349 if ( danger . roll ) {
330350 danger . vec . y += deltaTime ;
@@ -369,10 +389,13 @@ app.ticker.add((deltaTime) => {
369389 states . speed = newRolls [ 1 ] ;
370390 states . danger = newRolls [ 2 ] ;
371391 states . life = newRolls [ 3 ] ;
372- for ( let i = 0 ; i < 4 ; i ++ ) {
392+
393+ for ( let i = 0 ; i < rollSprite . length ; i ++ ) {
373394 allocationScreen . removeChild ( rollSprite [ i ] ) ;
395+ rollSprite [ i ] = null ;
374396 }
375397 rollSprite = [ ] ;
398+
376399 newRolls = [ ] ;
377400 directions . visible = false ;
378401
@@ -394,7 +417,7 @@ app.ticker.add((deltaTime) => {
394417 player . texture = diceImg [ t ] ;
395418 player . tint = lifeTint [ t ] ;
396419
397- score . text = "Level " + states . level + " | " + states . score + " points, " + states . dangerCount + " remaining" ;
420+ score . text = "Round " + states . level + ", " + states . score + " points, " + states . dangerCount + " remaining" ;
398421
399422 // X velocity
400423 player . vec . x *= 1 - ( 0.2 * player . allowJump ) ;
@@ -515,6 +538,7 @@ app.ticker.add((deltaTime) => {
515538
516539 if ( states . dangerCount <= 0 ) {
517540 states . allocation = true ;
541+ states . requestAllocationRolls = true ;
518542 }
519543 }
520544
0 commit comments