This is the last problem I have to solve for my “Hey That’s my Fish” module.
When a player gets a tile that is one, two, or three fish (1, 2, or 3 victory points) it is placed in a stack on the players board. I currently use the Mouse Over Stack Viewer in the players board to display the sum of victory points. Each Fish tile has a marker with a name of value. That value is set to 1, 2, or 3 depending on how many fish that tile has. I then use $sum(Value)$ to get the total value of all the fish tiles a player has acquired. Instead of requiring the player to mouse over to see their Victory Points is it possible to display that $sum(Value)$ of that stack somewhere else like a label for the stack, on the button toolbar, or text on the players board or on the main game board?
If you have the values set up as Global Properties, you can display a GP just about anywhere you like with a Text Label trait. …like, for instance, you can have something like a transparent 80x30 tile on the board and it would have a Text Label trait that displays
So to achieve that would I do the following:
(1) Create global property called playerVictoryPoints.
(2) When I send a piece to the player board I would also increment the playerVictoryPoints
I have a couple questions.
The tiles that give victory points have a value of 1,2, or 3. If a tile has a value of 2 or 3 how do I increment the global property by that amount? I thought I can only increment by 1.
When I put a tile into a players board I use the PlayerSide variable in the map section of the SendToLocation command. That way whatever player acquired the piece it would be sent to the appropriate players board. How can I do the same thing for incrementing the GP? I would have to have four GP’s for each player side (blue, red, green, and black).
Alternatively can I assign the $sum(value)$ of the stack of victory point tiles in the players board to the global property? That would make it very easy
You can increment a Global property by as much as you want. In fact, what you can do is apply a Dynamic Property to each of the fish cards
FishValue = 1, 2 or 3 depending on the card.
Then you can have a prototype that increments a Global Property by $FishValue$ …which would be the value of the fish card.
Clever use of the $playerSide$ variable. Hadn’t thought of that.
Correct. You would need 4 Global Properties - BlueVictoryPoints, RedVictoryPoints, etc.
I see in your module that you’re using a CTRL 7 to send the fish to the player’s window. You can use the CTRL 7 to set off a Trigger Action that would fire off a CTRL 8 (Send to Location), to send it to the player’s window, and a CTRL 9 (Set Global Property) to increment $playerSide$VictoryPoints by $FishValue$.
Just to note, this is right, but there is also no need to assign different key commands to every trait action unless the timing sequence is critical.
i.e in the above example the timing of trait events is not important and the 2 traits work as different parts of the same game rule being interpretated so the CTRL 9 for Set GP can also be a CTRL 8 like STL.
You might be using it in the wrong spot. Using a GKC is proper for sending a command to another piece. The Trigger Action trait would be used on that piece to receive the hotkey sent by the GKC and use it to perform multiple functions.
For example, your OneFish prototype would have a Trigger Action with the following: