Apologies ahead of time for the huge post - got started and couldn't stop!
friarsol wrote:What are you planning on doing about the Input boxes? They've been a struggle to work with for a year and a half now.
Interpretation 1Do you mean the "Input", "Stack", and "Combat" areas? The input will remain, since it's important for yes/no/ok/cancel stuff. The stack and combat areas are placed in a vertical tabber with some other non-critical-but-still-important elements. This tabber has six tabs at present: Stack, Combat, Console, Player information (for multiplayer), Map (also for multiplayer), and Dev Mode. When new input is delivered to any of these areas, the tab will show itself and highlight the new information.
Interpretation 2If you mean the phase marker checkbox inputs in the menu, there's a graphical phase monitor/toggle area with each player field.
Interpretation 3If you want them gone altogether, this can happen too, but later. Right now, I'm building an MVC architecture for the entire UI, which encompasses the whole operation in a single JFrame with a top-level controller for each display state (home, match, deck editor, Shandalar, etc.) and child controllers for various components (player fields, user hand, input area, etc.)
The current codebase is fairly well split between model and view, but view controllers are mixed in with the swing, resulting in convoluted piles of enormous undocumented files 1500 lines long. Hellish to work with and debug. So, soon enough, the "input boxes" of which you speak can be easily sliced out of control and view, if that is the goal.
In other news...While I'm writing this long post, I might as well mention the UI structure for multiplayer will be in place when people need it. I've got a standard playing field for each player, one of whom is the user, with mana, keywords, and card management info visible, and a controller to access each field (or global control from the top level). Any number of these fields can be instantiated as necessary, and a scrolling/jumping functionality can be added to the battlefield to move around the fields (visible on the Map tab, summarized in the Player Info tab).
Also, toying with the idea of having a tabber in the hand area, allowing the user to see the hands of teammates, but this would happen much, much later.
Documentation whingeAlso, could I make a general request for better documentation, specifically, please explain what the heck a method does. For example, I'll be on line 1234, looking at
- Code: Select all
new VeryImportantSomething.VagueCriticalAction(); // critical for game operation - don't screw this up
and hover for more information about this class, only to get
- Code: Select all
<b>VeryImportantSomething().</b> The VeryImportantSomething class.
and
- Code: Select all
<b>VagueCriticalAction</b> Does vague critical actions.
which usually means I frown, curse under my breath, kick my dog, and start a hunt to find what's so important, which instance it's using (arcane? forge? a different package?), why it's child code is important, blah blah blah. Anyway, the final result is obfuscated code, which sucks for the next guy... </complain>
(I don't really kick my dog, that was just an instance of DramaticLicense.)
CardPrinted?A quick question too: I'm using instances of Card whenever a card is displayed. Should I be using CardPrinted since it's lighter?
Arcane?Could someone fill me in on the history and future of the Arcane packages? What it looks like to me is that the Forge and Arcane packages hold old stuff, waiting to be transitioned into the multiple package structure endorsed by Maven. What's the deal there?
Incidentally, as I go, I'll be phasing out the UI parts of these packages, in favor of the architecture described above, and a more unified organization.
Lowest screen resolution?The UI fully supports resizing, tested for resolutions down to a minimumSize of 800W x 600H. If someone needs lower, or for vertically-oriented screens, shout it out and I'll work it in now.
Screenshot?When I have enough progress on the graphical side, I'll post a screenshot. Right now still in the code trenches.
