You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
andretchen0 opened this issue
Aug 8, 2023
· 3 comments
Labels
codingThis issue requires some programmingeasyGood place to start if you're a new developerinputDeals with hotkeys, interaction & accessibilityvisualsVarious things that easily catch the eye
Below, "Uncle Fungus" is the "active" grid element.
Using arrow keys does not move the "active" element in the grid, leading to a mismatch like this:
Here, the "active" grid element is "Uncle Fungus", but "Scavenger" is shown on the left.
To Reproduce
Start a new game
Click on the Priest's summon ability
In the creature dash, hover over a creature thumbnail – it will become "active"
Use arrow keys – the creature shown on the right of the screen will change, but the "active" grid element will not
Expected behavior
The "active" grid element should match what's shown on the right side of the screen.
The text was updated successfully, but these errors were encountered:
DreadKnight
added
coding
This issue requires some programming
visuals
Various things that easily catch the eye
easy
Good place to start if you're a new developer
input
Deals with hotkeys, interaction & accessibility
labels
Aug 8, 2023
I was thinking that this wasn't easily fixable at the time.
The whole thing is in need of a rethink/refactor, I think. To give you an idea:
The Creature Grid / Dash isn't isolated, either as a module or otherwise. It's a collection of attributes and methods in interface.js and there's a fair amount of leakage. E.g., the Dash system works by setting an attribute on interface that's picked up during button presses, to then be sent to the Priest's materialize method.
// Ask the creature to summon
G.UI.materializeToggled = true;
G.UI.toggleDash('randomize');
... so it's got to muck around with UI internals, despite not having a direct reference to UI. And then it doesn't even get a direct reference back. Some part of interface has to in turn muck around in the ability like so:
Not pointing fingers, but just to walk you through what's going on: here are the assumptions behind and code brittleness introduced with just that single line:
activeCreaturehas to have a field called abilities.
That field has to be an array that has at least 4 slots.
The 3 slot in the array has to have a materialize method.
And that doesn't include how it is that interface decides that this activeCreature is a creature who can summon.
The whole thing could be a lot less brittle and a lot less complicated if it were called like this:
// Ask the creature to summon
G.chooseCreatureTypeFrom(this.creature.getSummonableCreatureTypes()).then(type => this.materialize(type));
No special interface code to figure out if the current creature can summon and is currently summoning.
codingThis issue requires some programmingeasyGood place to start if you're a new developerinputDeals with hotkeys, interaction & accessibilityvisualsVarious things that easily catch the eye
Below, "Uncle Fungus" is the "active" grid element.
Using arrow keys does not move the "active" element in the grid, leading to a mismatch like this:
Here, the "active" grid element is "Uncle Fungus", but "Scavenger" is shown on the left.
To Reproduce
Expected behavior
The "active" grid element should match what's shown on the right side of the screen.
The text was updated successfully, but these errors were encountered: