I need an option either in the “Report Changes” trait, or the “Invisible” trait that allows movements to be reported even while invisible. Right now I have it set up to report changes of the piece, simply indicating that the piece is being moved (on it’s own map), but when the Hide/Reveal option is engaged to make the piece invisible, the “Report Changes” doesn’t say the piece is being moved.
Having a checkbox to toggle “Report Changes always” on or off (even while invisible) would be great!
Right now I have it set up to report changes of the piece,
simply indicating that the piece is being moved (on it’s own map), but
when the Hide/Reveal option is engaged to make the piece invisible, the
“Report Changes” doesn’t say the piece is being moved. Having a checkbox
to toggle “Report Changes always” on or off (even
while invisible) would be great!
I haven’t done anything with the invisible trait, so I’m not certain just how it works, but could the following work for your module?
Instead of using report action, set global properties with the OldLocationName, LocationName, and BasicName (or anything else you want for the report), then fire a global key command to a reporter piece to submit the report on your invisible piece’s behalf? Be sure that ‘suppress individual reports’ is unchecked.
Not exactly sure what I’m supposed to do in the trigger action box. I tried a few things based on what I could understand from your suggestion, but nothing seems to work. Maybe if I explain what I need done more clearly, it will help.
I have a pointer that pivots around a dial, and I’m using “space” as the key command to pivot the pointer. I can set up “report action” to report on the “space” key command, but when I make the pointer invisible (so others can’t see what your pivoting to) the “report action” does nothing. So, to set up “trigger action” that reports the “space” keystroke while the pointer is invisible, I tried putting “InvisibleToOthers=true” in the property, but I’m not sure what goes in the “Watch for these keystrokes” and “Perform these keystrokes” boxes. I’m not even sure I’m actually doing what you’re suggesting! I’m not a master of Vassal by any means, so some of what you said went right over my head. Hopefully you can help me get the right setting to fix this!
Thanks a lot for taking the time to help me out!
p.s. the reason behind reporting movement of the pointer while invisible is to guard against someone selecting a new action after they have seen what other players are doing, and before they have revealed their own selection.
Thanks for attempting to help me out Seth! I’m not super knowledgeable about Vassal, although I have programmed about 15 games, they have all been relatively simple. Unfortunately, I could not figure out how to implement your suggestion! I tried looking at “set global properties” in the traits window, but I couldn’t figure out how to use it. I didn’t see “OldLocationName, LocationName, and BasicName” anywhere in there. “Fire a global key command to a reporter piece” went right over my head! I have no idea what that means or how to do that! Sorry for my ignorance in this area! Any further clarification would be greatly appreciated!!
I’ve played with this a little bit and it looks like, as you said, the trait order doesn’t fix this, though I was hoping it would. The easiest way to do it, though perhaps not the most elegant, is to use a Global Hotkey trait. Pick something obscure, like, oh, CTRL-ALT-NUM2, whatever.
Add a Global Hotkey with Keyboard Command: SPACE and Global Hotkey: CTRL-ALT-NUM2. Actually, I recommend not using ‘SPACE’ as a key command ever, but in any case it should be your pivot command.
Add an action button to your module. Right-click on the module, select ‘Add Action Button’. Don’t give it a Button Text - this way it stays hidden - but it can have a description. The ‘Hot key’ should, again, but your obscure key combination; have it ‘Display message’ with whatever you want to report.
Now, if you want it to be able to report properties like $locationName$ or $selectedAction$, you will need to set those as global properties prior to triggering the Global Hotkey. But if all you need is a message like ‘Player 1 has selected an action’, just do:
$playerName$ ($playerSide$) has selected an action.