annotate doc/specs/battle.md @ 187:eaa7f85bfc22

Tests: use BOOST_TEST, closes #917 @1h
author David Demelier <markand@malikania.fr>
date Sat, 20 Oct 2018 21:58:32 +0200
parents 0f1f4919792e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
166
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 # Battle
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
2
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 This document describes the battle system in Malikania's Kingdom.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
4
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 # Synopsis
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
6
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 Malikania is a 2D MMORPG where battles occur in a different map system. When a
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 battle starts, a grid is shown where players and ennemies are placed on cells.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
9
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 Battles usually end once all ennemies or all players are defeated. Once finished
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 players win random amount of money and optionally ennemy content.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
12
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # Terms
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
14
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 - battle: the battle game concept.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 - cell: a cell position in the grid.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 - grid: the battle grid owning players, ennemies and decorative objects.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 - spell: a spell that can be cast on a specific cell.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 - player: a human player.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 - ennemy: an IA character.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 - character: a player or ennemy.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 # Battle creation
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 When the player walks on a map, battle randomly starts after several footsteps,
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 the number if randomly created and may be different in maps. This can also
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 disabled as we may need to create maps without battle (e.g. villages).
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 If the player is in a group, the required footsteps is defined among the number
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 of players in a group (see below).
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
31
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 The scenario is obviously allowed to spawn battles on different events, such as
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 after a discussion with an ennemy.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 # Grid system
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 The battle contains a 20x20 size grid where characters move on adjacent cells
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 when they are ready to play.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 The grid may contain up to 16 characters at max (8 players, 8 ennemies). It is
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 possible to increase this limits in case of dynamic character spawning spells.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 # Turn time
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 Each character must wait to be ready to perform a set of actions which can be to
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 move into the grid or casting a spell. This time is determined using the agility
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 level from the character.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
48
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 The default time is set to 10 seconds, more agility reduces the turn time.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
50
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 TODO: determine math function.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 # Spells
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
54
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 Each character have their own set of spells, those spells objects are recreated
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 at each battle to store local variables needed to perform the spell correctly.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
57
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 # Groups
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
59
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 When a group is walking on a map and all players are enough close to each
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 others, the battle will starts will all players in that group. Anybody else on
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 the map that is not in the group won't be included in that battle.
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
63
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 When a player does not follow the group quickly enough, a warning will be
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 emitted on the client to indicate that it will not be included in the battle if
0f1f4919792e Docs: add battle.md specifications
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 it does not come quickly. It is not removed from the group though.