lochemage / infochess Goto Github PK
View Code? Open in Web Editor NEWThis project forked from longhouse-games/infochess
John Arquilla's InfoChess
This project forked from longhouse-games/infochess
John Arquilla's InfoChess
This happens when you try to move a piece like a pawn and it is blocked by an invisible piece owned by the opponent.
Currently can't tell what really happened when IW attack results are displayed.
And other such messages.
The entire tutorial script should be managed here in an easy to use structure that will handle an interactive tutorial without actually effecting the current game.
Currently all 6 piece types "flash" like they're clickable, even though you don't have the points for them.
Maybe un-flash the pieces that aren't available?
Pawns should be able to do an en passant move if possible when Pawn Capture is clicked.
Much the same issue that we had before with Black player board being flipped, except it is now happening on the Observer player.
The squares that appear when a pawn capture don't match other clickable element styles.
When building an army at the beginning, the player must use all points.
Two cases for this:
For example, A1 is black for the black player, while A1 is white for the white player.
Pretty sure the color for each square should be synchronized between players.
Like the "Psyop attack DEFENDED!" message.
When you are attacked and it is showing the defend/ignore option box, the box covers up the attack costs portion of the screen. It may be helpful to know what those costs were so the defender can better decide how to react.
Currently, server will throw an error and shut down the server if any invalid messages were requested by a client. These errors should be handled in a way that does not require the server to be shut down.
Also, if valid, these error messages should be sent to the clients.
When your opponent moves a hidden piece it should say "made a hidden move".
Big red popup message that alerts you the result of an IW attack flashes on the screen too fast. This should be changed so the message stays on the screen until the user manually closes it.
Pawn Capture should show all available captureable pieces first for the player to select and then they select the pawn to capture it (unless only one pawn can capture the selected piece, in which case it should just automatically choose that pawn to move).
Currently, Observer only gets a log message to show an attack was made, but when the defense method is chosen, Observer gets the popup result box.
Both should either be completely done in the log messages, or there should be some other method to show the attack and results.
The squares that appear during a successful pawn capture attempt don't go away after the move is done.
The tooltips for the army selector elements (the elements when placing pieces on the board at the beginning of the game) don't match the other tooltips in the game.
...like the King.
This text should be changed to be clearer about the difference between the attack's effect on the opponent and whether defending it changes that.
When moving a piece, highlight it until the new position is chosen. Similar to when the player is building the board.
The tooltip colors don't match anything else in the game and clash horribly.
Invisible pieces sometimes look 'un-selected' rather than just a piece that is invisible to your opponent.
This issue impacts both the game and the Raven framework. It also impacts the lobby.
(please don't work on raven without first merging Lochemage/raven#1)
The observer role should not be required in order to create a game. There are a few use-cases:
The last case is supported now by the game and by Raven and (in principle) by the lobby. Case 1 must also be supported, but case 2 can be done without (it is tricky and filled with issues because it might create opportunities for cheats and it creates a mountain of conditionals)
Here's one possible approach:
In the raven bridge we currently have
var metadata = {
name: "InfoChess",
slug: "infochess",
roles: [
{ name: "White", slug: ROLES.WHITE },
{ name: "Black", slug: ROLES.BLACK },
{ name: "Observer", slug: ROLES.OBSERVER },
]
};
This could be expanded to include limiting info for the roles; something along these lines
var metadata = {
name: "InfoChess",
slug: "infochess",
roles: [
{ name: "White", slug: ROLES.WHITE , required: 1, optional: 0},
{ name: "Black", slug: ROLES.BLACK , required: 1, optional: 0},
{ name: "Observer", slug: ROLES.OBSERVER , required: 0, optional: 1},
]
};
Then raven would need to act accordingly.
The /new
endpoint would need to be prepared to validate and process query strings in a more general way. Consider, e.g., a game that could have teams of one or two players. The config might look like this:
var metadata = {
name: "teamChess",
slug: "teamchess",
roles: [
{ name: "White", slug: ROLES.WHITE , required: 1, optional: 1},
{ name: "Black", slug: ROLES.BLACK , required: 1, optional: 1 },
{ name: "Observer", slug: ROLES.OBSERVER , required: 0, optional: 1},
]
};
So case 1 is a bug, because it is missing. Case 3 is implemented already, but fixing case 1 will probably cause a re-think of how case 3 is done.
Case 2 is tricky and I think should not be attempted at this time.
To support case 2, the /play
endpoint would need a broader way of thinking about authorization. It would have to check and see if there was an authorized observer in the game setup -- if so, treat it like a regular role. But if the optional role was not specified, then any system user should be allowed to access \play
.
Enforcing limits might be tricky, and the state of such things will need to be added to the info transmitted to the lobby in updates. For example, if there's a game in progress with no specified observer, but someone has taken the observer position after the fact, how does the lobby know not to expose a notional "join as observer" link?
Instead of turn numbers increasing after each opponent takes a turn, it should go Turn 1 White, Turn 1 Black, Turn 2 White, Turn 2 Black, etc. Like baseball innings.
Currently says something like "Black moved from B7 to B5" when it should say the actual piece that was moved: "Black's queen moved from B7 to B5".
The text on the Chat/Notes/Log tabs when not selected look cut off, they need more space under the text.
Options should appear in the empty area on the right panel and should allow for the following options:
Might be clearer if the Ready button put the board into a read-only mode.
If the opponent hasn't clicked ready, the player should be able to "un-ready" and start editing again.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.