Terrain should have a type with it. For the present terrain should be one of:
A wall: Impossible to move or see through.
An obstacle: Like a wall but only prevents movement through it (i.e. a pillar or a tree). We may need two types to determine which result in cover and which don't.
Difficult terrain: Movement cost onto this tile is doubled.
Open: Tile is open for movement and sight.
Concealment: Tiles provide cover / concealment.
Water: Have to regularly make athletic checks in water to stay afloat.
This is definitely a larger piece of work and will eventually require a new UI section to edit details.
Implementation
We could have each square of the map have both a tile and a terrain type or we could define terrain types for tiles. Either approach should work fine although we may want to support loading large background images and just defining terrain types for each square later. Whichever approach we use we will still want tile types to have an automatic terrain type to avoid having to effectively draw a map twice.
This will require changing the format of the map generated initially in dungeon-common.js and saved out to files. The map save file should include all of the tile definitions as it does with textures currently.
Summary
Terrain should have a type with it. For the present terrain should be one of:
This is definitely a larger piece of work and will eventually require a new UI section to edit details.
Implementation
We could have each square of the map have both a tile and a terrain type or we could define terrain types for tiles. Either approach should work fine although we may want to support loading large background images and just defining terrain types for each square later. Whichever approach we use we will still want tile types to have an automatic terrain type to avoid having to effectively draw a map twice.
This will require changing the format of the map generated initially in dungeon-common.js and saved out to files. The map save file should include all of the tile definitions as it does with textures currently.