I have a palace map with several rooms. Each room has an action button that players can click to read a full description of the room. Here’s the problem:
When the rooms are originally placed in the palace, they are flipped over (masked) and no one knows what the room is until it’s entered. Then the room is flipped for all to see. However, the action button works on both the masked and flipped side - you can’t see it on the masked side, but if you know where the button is, you can click that spot and it will work. Is there a way to supress the action button from working on the masked side?
I’ve tried placing the Action Button above and below the mask in the trait list but it doesn’t seem to make a difference.
Lets say your Action button execute using CTRL A as the key command to do whatever it does.
Add a restricted command trait to your room pieces that will would restrict CTRL A and fill in the property field filter with:
ObscuredToOthers = true
This will prevent the action button from working as long as the piece is masked
Excellent. Since I won’t be releasing the game publicly till probably at least June, I won’t bother with the “Obscured” restrictions as that will probably be fixed by then.
Quick question: Once this is fixed, will it be possible to have an action button in the exact same location on both the masked side and displayed side of the piece but the button will trigger different events depending on whether the room is masked or displayed?
Note that one of the players has to have masked the counter in the first place. That player will still activate the Action Button under the Mask unless you stop it somewhere by suppress the command when Obscured=true
Action Buttons are searched for and activated from the ‘top’ of the counter (The last trait in the list) down until the bottom (BasicPiece) is reached, or until a Mask that is Obscured to the player clicking (or an Invisible trait that is invisible) is reached. The top, unmasked trait will always be executed.
These sort of situations I would approach differently. For each room, I would define a Global property (either Map or Module) and use the state of the global property to define the current state of the room. It is easy to manipulate global properties using the ‘Set Global’ trait.
I would then use the ‘Action Button’ to fire off ‘Trigger Actions’ that check the current state of the room, and in turn fire off appropriate actions (Global Key Commands) to activate counter layers to reveal the room.
I would not use the Mask feature as you always have this problem of someone having to ‘own’ the masking and that player has access to the information you are trying to hide.
One of the beauties (and curses?) of Vassal is that there are a number of ways to approach any given problem.
Speaking of masking and being Obscured, I thought I had things working properly but our playtesting showed otherwise last night.
When I create a world for a new game, there’s a set of Object tiles that I randomly place in a palace map. The players explore the map attempting to find a particular Object they need to find. The Objects (they’re set up as cards, btw, and are drawn for a deck) are placed in a face down (masked) condition.
What is supposed to happen is, when a player gets to look at an Object, they right-click it and select “Peek” (CTRL-P). They should be the only one to see it. However, if the other player does this, I can see it and vice versa and I can’t seem to figure out how to keep it hidden from other players when a player peeks at it. Ive tried different things but I can’t seem to get it right.
We’re having the same problem with lock and key chits, each having a number on the bottom so that a player must have a matching key and lock to open it. This number should be visible only to the player looking at it but, at this point, everyone can see it.
Could you give a step-by-step on how to resolve this? Thanx
a) First be sure that players draw cards from a “deck” .
b) The deck must be “cards drawn are always face down”.
c) Then the owner is the player who has taken the card first when a mask trait is used.
d) When you define the Mask trait define “player side” instead of “player” and plain.
e) If you do not feed the Peek line with a keyboard key like CTRLP and just put “nothing” like a blank line… the cards is peek when you click on it (faster way to glance at a card…)
If you want a sample go into the Vassal Project Forge and Download the Warrior Knights module … The Battle window use cards masked for other sides …
The player that is going to draw the cards is always going to be me (or the host). These are the Object chits that are placed in the palace and they are all placed face down before the game begins. I guess that would mean that I would own all of them. But I want anyone, either me or another player, to be able to peek at the card without it being revealed to anyone else …regardless of who owns it.
It just occured to me that perhaps no one my own the cards, depending on how it’s set up. Before game play, a host creates the world the players will be playing in, including distributing the Objects randomly in the palace. If the host wishes to pass along this created world to others (for example, I have a pre-created world file site where hosts may download worlds already built), they have to change player sides from the Host side to an Observer before saving the built world. Otherwise, the Host side will be locked out to whomever downloaded the pre-created world. So, if you load one of these worlds and change from Observer back to Host, I would assume the cards in the palace would no longer be owned by anyone. Is that a correct assumption?
Let’s make this simple. I have a deck with 3 cards. A player (any player), lays the three cards, face down, on the tabletop. How do I insure that any player may look at any card without any other player seeing what they are looking at?
I’ve made this even easier. I’ve attached a sample mod with a map window called Card Deck with a stack of 3 cards and a second window called Tabletop.
Anyone, regardless of player side, should be able to spread out the cards on the Tabletop face down. After that, any player should be able to peek at one of those cards without it being revealed to any other player.
If someone could make the adjustments to the mod to accomplish that, I’d greatly appreciate it. Apperently, the only way I’m going to figure this stuff out is to see how it works. The more I delve into the tutorials and read people explanations on how to do things, the more like I feel I’m reading something in a foreign language.
I have only changed your card prototype : Mask trait
-the main action is reveal / Mask not peek !
the peek line is empty (because i want to peek on a mouse selection on it … instead replace with CTRL V for example)
Here what it does
When a player draw a card on the main map he’s the one you can “glance at it” (peek) when the selection is done on the card by the mouse.
To reveal to other players just right click and Reveal/Mask. A player who now Mask (Reveal/Mask) the card will be the only player who can “glance at it”.
A player who does not have drawn the card could only Reveal doing a right click and Reveal/Mask. But he can’t “glance at it”.
That didn’t work. As soon as I move the card from the deck to the tabletop, the card shows me what it is. It should remain face down and only be revealed to a player who enters the room where the card is and looks at it without anyone else seeing what they are looking at.