## Levels: - ignore comments in lvl files - check when sphere bounces from one end to the other endlessly w/o any solids in between. this is a game lock and equals game over - Start the game end timer and add a score FIXME: put the actual max reachable score into the level definition along with the minimum steps required to reach it, also add a step counter - Grid Observer: https://github.com/mlange-42/arche/issues/374 - Add some final message when the player reaches the last level, start from scratch or a message to buy me some beer, whatever - Check player-player collisions! - Add player mergers, possibly as an option, so maybe we could have different primary and secondary players: one pair can merge, the other not. Like S + s and M + m or something. - Add shaders for animation (player destruction etc) - Add player HUD + Stats (as hud_system!) ## Collider Rework - do not use the map anymore for collision detection - central collision_system - add Collider component with callback funcs to call on certain events - callback types: - rect intersect (== future collision) - collision resolve (set new position) - pass over foreign rect (to e.g. change sprite while flying over sprite) - pass over done (switch sprite) - check for all moving objects against non-moving ones like moving obstacle, player, bullet, laser - check if executing callbacks within query loop is allowed - callback function needs to be able to modify other components, so possibly use observers for them, e.g.: Collider.IntersectResolve => func(newpos) {player.pos = newpos; player.vel = stop} - in the end it must be possible to add new entities without the need to write a collision check for them, but have collision detection anyway!