Added Readme

This commit is contained in:
Darks 2020-10-24 10:48:32 +02:00
parent 8e833b8c74
commit e4ce291776
Signed by: Darks
GPG Key ID: 7515644268BE1433
1 changed files with 55 additions and 0 deletions

55
Readme.md Normal file
View File

@ -0,0 +1,55 @@
# Gameplay
## Witches
Before the game starts, the player can choose two witches between the 8 available. The first one is used on normal mode, the second on focused mode. Each witch has unique properties and sometimes a special effect.
## Modes
There are two gameplay modes:
1. Normal
2. Focused
The "focus" mode is triggered by pressing `KEY_OPTN`. The effect disapears when the key is released. Focus mode with speed divided by two, some bullets are ineffective, and usually a fire power focused on a single stream. They may have a special effect
Speeds are in px/s (play area is 270×224).
| Id | Name | Spe | Pow |Special |
|----|-----------------|-----|-----|-----------------------------------------|
| 0 | Reimu Hakurei | 194 | 130 | +10% power when focused |
| 1 | Marisa Kirisame | 208 | 130 | Attract bonus when on top of the screen |
| 2 | Sariel | 241 | | Do not attract bullets when not focused |
| 3 | Koakuma | | | +15% chance of getting a powerup |
| 4 | Iku Nagae | | | Start with 4 bombs instead of 3 |
| 5 | Sumireko Usami | | | Wider fire angle when not focused |
| 6 | Hina Kagiyama | | | +10% power when not focused |
| 7 | Kurumi | | | |
## Power & fire
Power can go from 1 to
A `bullet_t` is always launched by the player. Else it's an `enemy_t` (even if it's an enemy bullet)
## Powerups
There are 2 kinds of powerups: small ones and big ones. Small ones increase power by 1, big ones by 5.
# Code architecture
## Global vars
- `uint32_t us_elapsed`: μs elapsed during the last frame
- `uint32_t frame`: number of frames elapsed since the beginning of the game
- `player_t *player`: general information about player
- `difficulty_t difficulty`: the chosen difficulty of the game
- `bullet_t *bullets`: the bullets sent by player
## Objects
`object_t` is an object linked to physic or an updater. This means that an enemy as well as a bullet can be objects.
### Object updater
An object updater is a function applied to an object. Its protoype must follow this: `void f(object_t*)`. Due to the complexity of the game, it may use `frame`, `us_elapsed`; but it could also use `player`, `difficulty` or other global variables.