CarlosFdez / world-explorer

Foundry VTT Module for manual hexcrawl revealing
17 stars 5 forks source link

Feature request: Optional button to reveal tile to 50% opacity #14

Open PupperooX opened 2 years ago

PupperooX commented 2 years ago

The main reason for me asking for this is so you can partially reveal a tile, for example if the party hear a rumour about a location I can visibly show the information they've gained by making that location tile partially revealed, leaving a mystery still there without having to fully reveal the tile.

darloth commented 2 years ago

While I am certain this is beyond the scope of the original request, it's hard to differentiate 50% revealed from 100% revealed if, for example, you have some dark revealed tiles but then bright-but-only-50%-revealed tiles near them.

A diagonal hatching system or other pattern display would make this more obvious, like the terrain module's default or what hexkit comes with.

CarlosFdez commented 1 year ago

I think it would be nice to have alternative marks for a hex, such as statuses or overlays. That said, I think the original purpose is now fulfilled with journal pages?

morepurplemorebetter commented 7 months ago

This is really the only feature I'm really missing from this module and why I often consider going back to simple fog (but that has its own issues).

I want to be able to reveal/mark areas that can be seen from when the party reaches a high up viewpoint (e.g. a mountaintop) but are not yet explored.

I found a module to (somewhat) emulate the effect I want: Political Map Overlay.

CarlosFdez commented 7 months ago

This is really the only feature I'm really missing from this module and why I often consider going back to simple fog (but that has its own issues).

I want to be able to reveal/mark areas that can be seen from when the party reaches a high up viewpoint (e.g. a mountaintop) but are not yet explored.

I found a module to (somewhat) emulate the effect I want: Political Map Overlay.

Since I'm reminded of it and I might as well add a new feature when updating for V12 (if its not already working) I might as well ask for more details. I don't like implementing things I don't have a solution for, because doing a bad solution is hard to take back. The module sprouted from a concrete idea, and I'm also going to need concrete to do this.

So basically you want a tri state: unknown, aware, and known. There are many reasons for having this tri-state, but it seems in general we can boil it down to these 3. Anything more complicated would involve copying the hex grid metadata from the pf2e kingmaker module, which I might consider doing something after v12. The issue is, how? Not in terms of the code, the code part is easy. I mean in terms of UI.

I have one bad solution idea: A toggle to change between reveal and half reveal. People are going to forget the current state they're in though and mess up. One idea I have is to render something special for the "brush", like circle vs dotted circle or icon for reveal vs icon for half reveal. Might need a better idea honestly.

The major solution to overcome is that GMs have different visibility than players. While its easy for players to gauge unknown vs aware, the same is not true for the game master. The player may have 0% 50% 100% for opacity, but if the GM has 0% 0.35% 0.7% it'll be hard for them to gauge. If the GM changes their opacity to something lower it'll be even harder to tell. This means that we need a secondary indicator to tell if a hex is half revealed (even if its only for GMs). I have no idea what that secondary indicator should be.

morepurplemorebetter commented 7 months ago

Thank you for your reply and taking the time to look more closely into this.

The major solution to overcome is that GMs have different visibility than players. if the GM has 0% 0.35% 0.7% it'll be hard for them to gauge.

I doubt anyone would use 0.7% as their view as a DM, because then it is practically invisible, but I get what you are saying. I completely agree that something else than just increased transparency for the partly revealed grid tiles is needed.

When using overlay images that are busy and/or have big contrast differences within, it is more likely you want them to be highly transparent while working on the map as a DM. I fear that not being able to see the difference can even be true when using 0% 50% 100% for an overlay image with big contrast differences.

My experience

Below a screenshot of how I currently have it setup for my Tomb of Annihilation campaign. This is the view as a GM with World Explorer at 80% opacity (colour #400040) and Political Map Overlay at 30% opacity (colour #7660d6):

image "Mbala" is a high point from which the party could see the surrounding areas.

Different colours

I experimented with using the same colour for both the hidden and partly revealed tiles, but it didn't look great. Mainly because a darker colour looks best for the hidden tiles, while a brighter colour works best for the partly revealed tiles. Just changing transparency was not enough to produce a nice-looking map. Either the hidden hexes were too bright and distracting, or it was too hard to see the difference between hidden and partly revealed ones.

Thus, I'm all for having a secondary indicator for the partly revealed grid tiles. My suggested solution would be to have them be different colours.

When using an overlay image, this secondary colour could then be used to overlay on the partly revealed tiles, to make them stand out regardless of the image being used.

I'd go the route of effectively making two separate World Explorer overlays that work independently of each other, one that is hidden and another that is partly revealed. But that is the code part, and I don't understand half of what it takes to make a FoundryVTT module, so I'll leave that to you.

 

Settings mock-up

I made a mock-up of how the implementation could look like in the scene settings:

image

As you can tell, I moved some stuff around and grouped stuff together. I feel this will make it easier to understand what stuff does. I also added colour pickers. You can find the HTML for this mock-up here in case you want to use (part of) it.

 

Left-hand tools

I think the tools only really need one additional button, to mark a grid tile as 'partly revealed'. The toggle button can then rotate between the three states Hidden -> Partly Revealed -> Visible -> Hidden -> Partly Revealed -> Etc. Note that I don't go from Visible to Partly Revealed but directly to Hidden, because that's the order that seems most logical for most use cases.

Here is a mock-up for it, nothing spectacular:

image

I changed the icons to something that I find easier to understand at a glance. This uses different versions of the same icon from Font Awesome, namely fa-grid-2-plus.

morepurplemorebetter commented 2 months ago

Have you given this more thought now that you have updated the module to work in v12?