Map, Cell and Tile Properties

Most tags may additionally have properties specified as:

<property [type=""] name="" value="" />

Where type is one of "unicode", "int", "float" or "bool". The property will be a unicode string by default if no type is specified.

Properties are accessed on the map, cell or tile using common dict operations with some extensions. Accessing a property on a cell will fall back to look on the tile if it's not found on the cell.

If a cell has a property player-spawn (boolean) and the tile that the cell uses has a property move-cost=1 (int) then the following are true:

'player-spawn' in cell == True
cell.get('player-spawn') == True
cell['player-spawn'] == True

'player-spawn' in tile == False
tile.get('player-spawn') == None
tile['player-spawn'] --> raises KeyError

cell['move-cost'] == 1

You may additionally set properties on cells and tiles:

cell['player-postion'] = True
cell['burnt-out'] = True

and when the map is exported to XML these properties will also be exported.