diff --git a/headers/game.h b/headers/game.h index b91761b..153081a 100644 --- a/headers/game.h +++ b/headers/game.h @@ -221,10 +221,10 @@ private: bool invadersTouchPlayer() const; /*! - * @brief change god's state to awake - * @fn void awakeGod(); + * @brief Try to awake god, if not already awaken + * @fn void tryAwakeGod(); */ - void awakeGod(); + void tryAwakeGod(); /*! * @brief make god behave diff --git a/src/game/gameBasics.cpp b/src/game/gameBasics.cpp index 76b0341..bdcf93b 100644 --- a/src/game/gameBasics.cpp +++ b/src/game/gameBasics.cpp @@ -108,10 +108,7 @@ WinValue Game::enterGameLoop(){ // returns when game is finished managePlayers(); if(manageInvaders()) { // if they went down if (invadersTouchPlayer())return WinValue::INVADERS; - // TODO abstract this ? - if (basePos.getY() > 100 /*lambda value*/ && god.state==GodState::NONE) { - awakeGod(); - } + tryAwakeGod(); } if(manageGod())return WinValue::PLAYERS; diff --git a/src/game/godManager.cpp b/src/game/godManager.cpp index a4dd6c4..15ef8a8 100644 --- a/src/game/godManager.cpp +++ b/src/game/godManager.cpp @@ -10,9 +10,11 @@ #include "game.h" -void Game::awakeGod() { - god.counter = 0; - god.state = GodState::AWAKE; +void Game::tryAwakeGod() { + if (basePos.getY() > 100 /*lambda value*/ && god.state==GodState::NONE) { + god.counter = 0; + god.state = GodState::AWAKE; + } } /**