Global Property (?) Help needed

I am working on a basketball module that contains both a scoresheet and a scoreboard. I have individual an individual piece that has layers for the players quarter field goals, free throws, and 3 pt play attempts. When the player makes a basket, you hit Cntl-M and it applies a transparent mask over the number. All good there. The problem is I want to have the module recognize a value for the layer that was masked and then, only if masked, change and show the value on the scoreboard (increasing as the game goes on of course) I have little or no experience with global properties and can’t seem to figure out how to use them or display them on game pieces.Any help at all would be greatly appreciated.

Have you found the reference manual yet?

I just looked and there’s an introductory Concepts section that includes this on Properties.

Take a look and see what you can make of it.

To display a Global Property directly on a piece, look at the Text Label trait. The label field will accept HTML of an archaic sort, so you can get quite far with that. If you want to have more, graphics can be displayed with the Layer trait, and made to vary with the value of a property, including Global Properties.

I looked at the reference manual, been through a million manipulations and have no idea where I am lol. At this point I don’t even know if I’m changing the value or not. Still can get it to display on the piece.

Ok, let’s start w/ some basics…

  1. Define a global property with a name of BBScore (note caps matter) (set the initial value to something recognizable like 999 - you can reset it to zero later)
  2. Define a “SCORE” piece in an “At-Start-Stack” (this locates it on a map).
    2a) Add the trait “Does Not Stack” to the SCORE piece , with MOVE = NEVER
    2b) Add the trait “Text Label” to the SCORE piece - change the Text Label to equal $BBScore$

If you did it right, you will now see 999 in the score location.

Now you need to add logic to change BBScore however you need.

1 Like

It doesn’t work if the property is set at the map level for some reason but I did get it to work by setting it at the module level. Now on to the main problem, getting a piece to change the value.
Have I got the syntax right on this
It is intended to check to see if the 2nd Layer is active but masked
Then I have the conditions
{Global property name}=={Global property name}+2 for a field goal, +1 for a free throw and +3 for a 3pt play changing the Level number to the corresponding Level
I guess I should mention I am trying this by Set Global Property on a different piece

There is a Global Properties folder at Module level and again one for each Map. Zone properties are always possible - these don’t have a folder but are defined within the Zone.

It sounds here as if your property is defined within the Module level folder. Nothing wrong with that - it’s often the simpler way and it means that the Global Property will work across all maps and zones without using special Get…Property() functions.

Aside - one reason to specify Map-level properties is if you have logic replicated between Maps (e.g. Player Hand windows) - each Map can then have a set of duplicate but independent Global Properties.

Please paste in screenshots of the traits showing the full expressions that you are recounting above.

These 2 pieces are on different zones of the same map

This shows the formula better

Your Set Global Property trait has neither a Named Command nor a Keystroke Command set. It must have one of these to function. So none of the three expressions you set in the prompts can ever execute as it stands right now.

The property set when a Mask is active is called ObscuredToOthers (you currently just have Obscured).

It might be simpler to just start with the “Increment numeric value” setting you already have and just set them to 1, 2, and 3. Maybe Ctrl+1 increments by 1, and so on. Then use Trigger Actions with property match expressions to determine when each of those should fire.

1 Like

I’ve tried this before and it didn’t work

Probably did that wrong too lol

Make the contents of your prompts just 1, 2, and 3, not {V1stQtr+1} and so on.

The user must be doing something to determine when the score should go up by one of these numbers. What is that thing? Your Trigger Action with the adjustment above should then operate the Set Global Property trait, but as it stands the piece would have to be selected and the user hit Ctrl+T or right-clicked and they choose the word “Trigger” from the context menu that appears. You can just as easily have this Trigger piggyback silently on something else they’re already doing to choose between values 1, 2, or 3. The Ctrl+M operates the Mask, I see–but what are you having the user do to determine which of 1, 2, or 3 gets added to the score? I see an Action Button that’s linked to activating the Layer on Ctrl+A, but no other key commands in that Layer that can get you to and from the 4 different levels defined. Can you show a picture of the actual piece in question or mark up what players are going to do with it?

Ok the way I want this to work is

The game comes in with the grid areas filled by either an At Start stack or Default saved game file.
The user simply clicks on the box and the levels advance from most to least common (2,1,3)
If the shot was made, the invoke the mask showing the made shot on the scoresheet.
I want that action alone to increase the scoreboard and display
So I guess I would need for it to fire on Cntl-M?
That almost works but adds more to the score than it should. It seems to read all of the boxes in the grid.

EUREKA! I got it. I switched back to the Set Global and Fired on the Cntl-M for all 3 conditional checks and changed from Level number to Level name and it worked

I would like to send a gigantic THANK YOU to all who helped. You guys are wonderful.

1 Like