3 releases (breaking)
0.2.0 | Jul 14, 2023 |
---|---|
0.1.0 | Jul 13, 2023 |
0.0.0 | Jul 2, 2023 |
#17 in #story
44KB
807 lines
This crate allows you to create maps/levels for Mission to Teegarden b.
It can be used instead of the game binary mission2teegarden-b
.
Every feature provided by this crate is also provided by the game itself.
The only benefits is that this crate is much smaller.
Mapeditor
Mission to Teegarden b allow creating custom maps, by using the Tiled Map editor. This does include support for available instructions and story.
Limitaions
There exist some conditions and limitation how the map is structured:
- The map must be finite.
- All layers must be finite.
- No custom Tileset can be used. So only the Tilesets available at Github
(
BaseTiles.tsx
,ObjectTiles.tsx
,Player.tsx
) can be used. - All layers must be a Tile layer.
- The 1. Layer must only use Tiles from the
BaseTiles
set. - The 2. Layer must only use Tiles from the
ObjectTiles
set. - The 3. Layer must only use Tiles from the
Player
set. - If a field at layer 1. is not set
Grass
is used as default. - If player
i
have a start position. All player<i
must also have a start position. - At least player 1 must have a start position.
- If a global goal was not set, each player (which have a start position), must have a player goal.
Available Instructions
Available instruction can be added, by adding a "Custom properties" with type int
to the Map.
The properties must be named like the fields of the AvailableCards
struct.
If no properties for an instruction is set, 0
is used as default.
Keep in mind that the player can only use 12
cards in total.
Story
An optional story can be added by creating a map property called story
from type string
As decoding the toml format is used.
Currently, only story elements before and after the level are supported.
Take a look at this example story:
[[pre_level]]
text = "hi, I am the captain ..."
profil = "Captain"
background = "OuterSpace"
[[pre_level]]
text = "now it is you turn!"
[[after_level]]
text = "You have mastered the challenge!"
profil = "Captain"
The story exist out two lists pre_level
and after_level
, both are optional.
Each list include zero or more Speech
s.
The Speech
s from pre_level
are shown before the level starts.
The ones from after_level
are show, after the level was finish successfully.
A Speech
exist out of a text
, a profil
picture and a background
.
The last two are optional.
profil
defined the picture, which is show left from the text.
All variants of Character
can be used for this.
If profil
is not set, no picture will be shown.
background
define the background with is show above the text.
All variants of Background
can be used for this.
If background
is not set, the level will be shown.
For more informations see the Story
struct.
Map validation
The map can be validated by using the game or this crate, by exectuing one of the following commands.
mission2teegarden-b validate-map <FILE>
mission2teegarden-b-map validate <FILE>
Map export
Map exporting works similary to validation:
mission2teegarden-b export-map <FILE>
mission2teegarden-b-map export <FILE>
Executing one of the commands creates a file with the same basename as the original file and the extension .m2tb_map
inside the current working directory.
Since the map format is not stable yet and can not be editet after exporting, it is strongly recommanded to keep the original .tmx
file
Play Map
To play a map start the game and navigate to
Play -> Import Level
.
Alternatvie the command line interface can be used:
mission2teegarden-b play [FILE]
Dependencies
~10MB
~174K SLoC