view doc/src/specs/battle.md @ 196:5b0f7ffab962

doc: initial html support
author David Demelier <markand@malikania.fr>
date Tue, 20 Nov 2018 12:14:00 +0100
parents doc/specs/battle.md@0f1f4919792e
children
line wrap: on
line source

# Battle

This document describes the battle system in Malikania's Kingdom.

# Synopsis

Malikania is a 2D MMORPG where battles occur in a different map system. When a
battle starts, a grid is shown where players and ennemies are placed on cells.

Battles usually end once all ennemies or all players are defeated. Once finished
players win random amount of money and optionally ennemy content.

# Terms

- battle: the battle game concept.
- cell: a cell position in the grid.
- grid: the battle grid owning players, ennemies and decorative objects.
- spell: a spell that can be cast on a specific cell.
- player: a human player.
- ennemy: an IA character.
- character: a player or ennemy.

# Battle creation

When the player walks on a map, battle randomly starts after several footsteps,
the number if randomly created and may be different in maps. This can also
disabled as we may need to create maps without battle (e.g. villages).

If the player is in a group, the required footsteps is defined among the number
of players in a group (see below).

The scenario is obviously allowed to spawn battles on different events, such as
after a discussion with an ennemy.

# Grid system

The battle contains a 20x20 size grid where characters move on adjacent cells
when they are ready to play.

The grid may contain up to 16 characters at max (8 players, 8 ennemies). It is
possible to increase this limits in case of dynamic character spawning spells.

# Turn time

Each character must wait to be ready to perform a set of actions which can be to
move into the grid or casting a spell. This time is determined using the agility
level from the character.

The default time is set to 10 seconds, more agility reduces the turn time.

TODO: determine math function.

# Spells

Each character have their own set of spells, those spells objects are recreated
at each battle to store local variables needed to perform the spell correctly.

# Groups

When a group is walking on a map and all players are enough close to each
others, the battle will starts will all players in that group. Anybody else on
the map that is not in the group won't be included in that battle.

When a player does not follow the group quickly enough, a warning will be
emitted on the client to indicate that it will not be included in the battle if
it does not come quickly. It is not removed from the group though.