4 lives per game. For every 1000pts a UFO comes. Rewards for asteroids: large - 20pts, medium - 50pts, small - 100pts; UFO - 200pts.
entry point with the only Awake() method in the project. Handles game state, reloads project on every scene reload.
keeps pixels to world units Math, spaceship game object link and main camera links. Static.
handles controls, produces bullets, die/respawn logic, calls Player.LoseLife(). Publics for editor: spaceship velocity and torque multipliers, bullet speed and lifetime. Is teleportable.
handles asteroids collisions, movement, produces children after death. Publics: velocity bounds, max torque. Is teleportable, is exploadable.
auxilary static class. Basic asteroid info.
produces asteroids of random types and sizes (stages in project names), keeps duration before next spawn and decreases it with PointsOverSecond speed.
keeps score and remainig lives in top left screen corner, has game over panel. Static
more likely structs. Only purpose - keeping whether the player is alive and the game is ongoing or not.
keeps info about it's lives and points. Every 1000pts calls a UFO to spawn. Keeps immortality duration. Static.
produces and keeps settings of UFOs. Has 2 phases in player pursuit - horizontal and straight. Is teleportable, is exploadable.
keeps singletons of resources that are needed to be loaded on fly, e.g. asteroids, explosions or spaceship different texture. Static.
calculates and runs teleportation logic for onscreen objects. Moves them to the opposite side of the screen. Owners: SpaceshipController, AsteroidsController, UfoController.
checks if the collision should destroy the asset and if needed does it. Owners: UfoController, AsteroidController.