void testReadLevelSettingsFile() { iprint(countKeywords()); sput_fail_unless(countKeywords() == 9,"9 Keywords Should Exist in the level settings queue"); initialQueueReader(); //! Removing set up commands sput_fail_unless(countKeywords() == 3,"Valid: 3 Keywords Should Exist in the level settings queue"); sput_fail_unless(getNumberOfPaths() == 1,"Valid: Number of paths that have been set is 1"); sput_fail_unless(getNumOfTowerPositions() == 4,"Valid: Number of tower positions that have been created is 4"); sput_fail_unless(getTowerPositionX(1) == scaleTowerPos(10,SCREEN_WIDTH_GLOBAL,MAX_TOWER_X),"Valid: Tower position 1 x value is as expected after scaling"); sput_fail_unless(getTowerPositionY(1) == scaleTowerPos(500,SCREEN_HEIGHT_GLOBAL,MAX_TOWER_Y),"Valid: Tower position 1 y value is as expected after scaling"); sput_fail_unless(getTotalWaveNo() == 3,"Valid: Total Waves set to three"); setCurrWaveNum(1); sput_fail_unless(returnPropertyValueFromQueue(1,waveID) == 1,"Valid: First keyword has waveID 1"); sput_fail_unless(returnPropertyValueFromQueue(2,waveID) == 2,"Valid: Second keyword has waveID 2"); sput_fail_unless(returnPropertyValueFromQueue(3,waveID) == 3,"Valid: Third keyword has waveID 3"); sput_fail_unless(waveCreatorCommand(getKeywordFromQueue(1)) ==3,"Valid: Three enemy commands should be placed in the queue"); sput_fail_unless(getKeywordTypeFromQueue(3) == wave,"Valid: Third command is queue should be wave"); sput_fail_unless(getKeywordTypeFromQueue(4) == makeEnemy,"Valid: Fourth command is queue should be makeEnemy"); sput_fail_unless(createEnemyCommand(getKeywordFromQueue(4)) == 0,"Invalid:Cooldown for single enemy creation not yet ready"); delayGame(10); sput_fail_unless(createEnemyCommand(getKeywordFromQueue(4)) == 1,"Valid: Cooldown for single enemy creation is ready"); sput_fail_unless(getKeywordTypeFromQueue(7) == delay,"Valid: Seventh Keyword in queue is delay"); sput_fail_unless(setCreateEnemyGroupDelay(returnPropertyValue(getKeywordFromQueue(7),dTime)) == 30, "group delay is 30"); sput_fail_unless(createEnemyCommand(getKeywordFromQueue(4)) == 0,"Invalid: Cooldown for enemy group creation is not ready"); delayGame(30); sput_fail_unless(createEnemyCommand(getKeywordFromQueue(4)) == 1,"Valid: Cooldown for enemy group creation is ready"); sput_fail_unless(waveCreatorCommand(getKeywordFromQueue(2)) ==10,"Valid: Ten enemy commands should be placed in the queue"); sput_fail_unless(createEnemyCommand(getKeywordFromQueue(9)) == 0,"Invalid: Enemy has wave ID for next wave"); setCurrWaveNum(2); delayGame(ENEMYSPAWNCOOLDOWN); sput_fail_unless(createEnemyCommand(getKeywordFromQueue(9)) == 1,"Valid: Enemy has wave ID for current wave"); //levelQueueReader(); }
void testStartNextWave() { setCurrWaveNum(getGame(NULL)->currWaveNo+1); increaseEnemyNumbersThisWave(10); getGame(NULL)->deathCount = 0; sput_fail_unless(startNextWave() == 0, "Invalid: 10 enemies have not registered as dead yet"); getGame(NULL)->deathCount = 10; sput_fail_unless(startNextWave() == 1, "Valid: 10 enemies have registered as dead"); }
int startNextWave() { if(getTotalCurrentWaveEnemies() == getDeathCnt()) { if(getWave(getGame(NULL)) < getTotalWaveNo()) { resetEnemyCounts(); setCurrWaveNum(getGame(NULL)->currWaveNo+1); } else { //printf("you have won the level\n"); } return 1; } return 0; }