ochadenas / cpudefense

A tower defense game for Android based on a microprocessor theme
MIT License
130 stars 8 forks source link

Missing levels in level selection (endless mode) #113

Closed CrsiX closed 9 months ago

CrsiX commented 9 months ago

As seen in the two screenshots below, the list of levels in the endless mode selection stops at 28 (see the scroll bar), even though I am currently playing on level 32 as seen in the main menu (and here). If needed I can provide the safe file, if you tell me where to look for it on a rooted device. Closing the app and opening doesn't resolve the issue, it's also not resolved by going into the level and then back to the main menu.

endless-stored-levels

main-menu-level-32

ochadenas commented 9 months ago

fixed in 1.30.

ochadenas commented 9 months ago

If needed I can provide the safe file, if you tell me where to look for it on a rooted device.

No, it's ok, I have found the bug.

CrsiX commented 9 months ago

Thank you very much. That was a quick fix 👍🏼

Kutabu commented 8 months ago

@ochadenas : The bug is not finally fixed in version 1.30

The level selection of the endless levels is still limited (don't scroll down any further). Due to adding of level 29, the selection of endless levels is also limited to this point. This doesn't matter for new players because they have to play all levels anyway until endless mode is unlocked, but the bug will still occur in the future when more standard levels are added.

Kutabu commented 8 months ago

Found the bug: app/src/main/java/com/example/cpudefense/LevelSelectActivity.kt Line 154 in commit dd4e316

The "won"-condition was reset with adding a new level. Is && (stageSummary[highestLevelInList]?.won == true)) even necessary? Or is this the way to prevent the levels from being displayed until you have finished the standard levelling?

Kutabu commented 8 months ago

I'm sorry for cluttering up this issue. After I didn't do anything to reproduce the error, I played the new levels during my lunch break. In endless mode, the level selection is still limited to 29. So the bug still exists. It must have something to do with the stage.summary not being called correctly. When I click on the level on the main screen, it also tells me that I have reached level 53 in "normal" mode.

grafik

ochadenas commented 8 months ago

Found the bug: app/src/main/java/com/example/cpudefense/LevelSelectActivity.kt Line 154 in commit dd4e316

The "won"-condition was reset with adding a new level. Is && (stageSummary[highestLevelInList]?.won == true)) even necessary? Or is this the way to prevent the levels from being displayed until you have finished the standard levelling?

Yes, the condition is necessary, because otherwise you could reach arbitrary levels by just starting to play and abandoning.

I think I have found the bug, it is some lines below: if (level >= Game.maxLevelAvailable) break This is not needed for "endless".

Also fixed the toast on the welcome screen.