I have implemented the mask and view capabilities. I’m calling this version 2. Here’s a sample screenshot of how it looks in action:
The first thing you’ll notice about this map is that unexplored areas are colored in black. These will uncover as allied units are moved around the map. The darker areas are areas that are not visible but have been explored. These areas could have enemy units hiding there. Every time an allied unit is moved the view map is recomputed in JavaScript (and a duplicate array is maintained in C# in case the player refreshes their browser). The unexplored areas are initialized at the beginning of the game and are cleared as units are moved. Both the JavaScript and C# code have functions/methods to deal with this mask. The difference is that the JavaScript doesn’t maintain an array of cells that are explored because they are just set to hide the mask whenever a unit passes by and they are never set back during the game.
The two masks are identical and use the same image to paint over top of the entire board. I set the opacity to 0.3 for the view hex pictures so the player can see the terrain under it. I also manually set the display value of each enemy unit to match the value of the view mask.
Here’s the code: Battlefield One Code V2
You can go directly to my website to play the game as is: (temporarily down).
I’ve played the game a few times and it is a bit more challenging than the first version without the masks. I think my next enhancement will be adding a variety of different unit types. I might have to enlarge the playing board to allow more playing pieces.
Stay tuned…