On the last level, I rapidly got into an unwinnable state after the first checkpoint, where the air bombardment had taken out the chunk of floor directly underneath a spiked wall, and I had to reload the level.
Some comments:
- When an errand fails or succeeds, it doesn't say which errand or who was on it. A player could maybe remember or deduce these things, but it would be very convenient if that were just displayed.
- The help menu explains that quests that belong to Arcs, recognizable by the blue ribbon atop their description, are unusually difficult. This rather important fact should appear in the tutorial--say, the first time the player sees an Arc.
- Hotkeys for menu items would be good.
- Hotkeys to scroll through students, both from the global "Students" menu item and when selecting a party, would be good. Also, spacebar and shift-spacebar or B should scroll down and up by a page in the latter.
- When selecting a party, I always must select level-based sorting. It would be useful if the sorting choice were persistent.
- Memory use gradually increases, and lag with it, until both become intolerable (1 GB, seconds of lag at many clicks). Probably objects accumulating during battles.
PokeJoe: Your solution to #13 is also O(n^2), because IsEmpty is O(n) and you use it O(n) times. (Yes, it counts the number of steps your subroutines take.)
Serious typo: When Socrates is quoted near the end, he should say that the truly wise man "is wise because he knows THAT he does not know", whereas it currently says "he knows WHAT he does not know".
Also, during the debate with the Arbiter and several philosophers, I had one philosopher (Protagoras, I think) just stay onscreen, while the main character stood behind him and talked, even long after Protagoras was done speaking.
Problem. When I buy an upgrade (chassis, drill, battery, cooling liquid) that is more than one step above my current level, I get charged the price for the expensive upgrade but only get the next step of that upgrade. E.g. I just bought a smaragd drill, but ended up with a gold drill.
1. FOR BOARD n x n MOD m, WRITE A MATRIX THAT DESCRIBES THE MAPPING "VECTOR OF THE n^2 SQUARES YOU CLICK ON 0-(m-1) TIMES" -> "VECTOR OF THE n^2 SQUARES THAT HAVE THEIR STATES CHANGED 0-(m-1) STEPS FORWARD. CALL THIS MATRIX M.
2. INVERT THIS MATRIX MOD m.
3. NOW, GIVEN INITIAL POSITION VECTOR V, YOU WANT SOLUTION VECTOR U, SUCH THAT M*U + V = 0. SO YOUR SOLUTION VECTOR IS SIMPLY -V * M^-1.
4. NOW YOU HAVE SOLUTION TO ALL PROBLEMS IN O(n^6) TIME--OR AT ANY RATE THE TIME IT TAKES TO INVERT AN n^2 x n^2 MATRIX.
5. WONDER WHAT TO DO WHEN M DOESN'T HAVE AN INVERSE MOD m.