@@ -314,6 +314,15 @@ bool RLRouletteLayer::init()
314314 errorReasonText->setID (" reason-label" );
315315 error_menu->addChild (errorReasonText);
316316
317+ auto refreshButton = CCMenuItemSpriteExtra::create (
318+ ButtonSprite::create (" Refresh" , 50 , true , " bigFont.fnt" , " GJ_button_01.png" , .0f , .9f ),
319+ this ,
320+ menu_selector (RLRouletteLayer::onRefreshButton)
321+ );
322+ refreshButton->setPosition ({ 50 .f , -70 .f });
323+ refreshButton->setID (" refresh-button" );
324+ error_menu->addChild (refreshButton);
325+
317326 auto errorResetButton = CCMenuItemSpriteExtra::create (
318327 ButtonSprite::create (" Reset" , 50 , true , " bigFont.fnt" , " GJ_button_06.png" , .0f , .8f ),
319328 this ,
@@ -557,6 +566,13 @@ void RLRouletteLayer::onNextButton(CCObject*)
557566 rl::utils::createNotificationToast (this , fmt::format (" You need to get at least {}%!" , g_rouletteManager.currentPercentageGoal ), .5f , 85 .f );
558567}
559568
569+ void RLRouletteLayer::onRefreshButton (CCObject*)
570+ {
571+ g_rouletteManager.gameState .hasReachedGoal = true ;
572+ error_menu->setVisible (false );
573+ onNextButton (nullptr );
574+ }
575+
560576void RLRouletteLayer::onResetButton (CCObject*)
561577{
562578 if (m_list_fetcher.is_fetching )
@@ -589,9 +605,12 @@ void RLRouletteLayer::onSkipButton(CCObject*)
589605 if (m_list_fetcher.is_fetching )
590606 return ;
591607
592- if (g_rouletteManager.gameState .levelPercentage == 100 )
608+ if (g_rouletteManager.gameState .levelPercentage == 100 || g_rouletteManager. gameState . hasReachedGoal )
593609 {
610+ rl::utils::createNotificationToast (this , " Skip not used, you have already reached the goal!" , .5f , 85 .f );
611+
594612 onNextButton (nullptr );
613+
595614 return ;
596615 }
597616
@@ -623,7 +642,6 @@ void RLRouletteLayer::finishLevelRoulette()
623642
624643 playing_menu->setVisible (false );
625644 error_menu->setVisible (true );
626- g_rouletteManager.reset ();
627645
628646 return ;
629647 }
0 commit comments