spamguy / dipl.io Goto Github PK
View Code? Open in Web Editor NEWThe modern, responsive Droidippy frontend for Diplomacy games
The modern, responsive Droidippy frontend for Diplomacy games
Map keyboard shortcuts don't trigger any actions. Also, k is the shortcut for hold for whatever reason.
I am unable to figure out how to set my intent through the browser version of the game. I assume that the intents within Diplicity are the same as Droidippy, "Victory", "Surrender", or "Draw". We are at a stalemate within a game as the stalemate lines have been formed and are simply being held. However, we are unable to resolve the game because I am unable to set my intent to "Draw". Can you please advise on how to remedy this issue if possible?
Thanks!
The vast majority of lodash isn't used in dipl.io. A minimal, custom package should be generated that contains only what is needed.
On the web interface there doesn't seem to be an option to cancel or change a unit selected to disband before submitting a move during a fall adjustment. Ran into similar problems on builds during this phase too - you cannot remove a build from a center after you've input the move.
When I open dipl.io I am presented with the login button. I press it, select my account, and get redirected back to the same login button again.
Then I click the login button again, select my account again, and get redirected back. This second time to my list of games.
The blog linked from the README returns a 403 error. Perhaps the link should be removed?
I visited the finished game at https://dipl.io/games/ahJzfmRpcGxpY2l0eS1lbmdpbmVyEQsSBEdhbWUYgICAwOC_kQoM as a non-player. The map didn't load and a JavaScript error greeted me:
TypeError: Cannot read property 'NewestPhaseState' of undefined
at Object.getPhaseState (app.min.js:1)
at a.state.state.state.state.state.resolve.phaseState (app.min.js:1)
at f (vendor.min.js:13)
at i (vendor.min.js:9)
at vendor.min.js:9
at n.$digest (vendor.min.js:9)
at n.$apply (vendor.min.js:9)
at i (vendor.min.js:8)
at r (vendor.min.js:8)
at XMLHttpRequest.w.onload (vendor.min.js:8)
In non-minified terms, this is gameService.getPhaseState()
.
Beyond a certain minimum height, many elements have a tendency to start overlapping. See: press submit button vs. press text, or press list vs. the footer.
This is probably flexbox's fault, but a workaround is needed.
On Diplicity, when adjustment phase begins, the user is told, for example, "you can build 2 units." There is no similar message on the web client. Could one be added?
===========
A group of 7 of us did a live game yesterday around a physical board game map, where we used iphones, ipads, and android devices to play the same game--this is one of a series of issues we opened related to our experience. It was a great overall experience! I'm so impressed at this project's progress.
In the subscribed games page, individual game list items should be coloured according to whatever action is needed from the current user, if any.
The colour should be applied to the left-hand margin and be bright and wide enough to be obvious but not imposing.
A red/yellow/green system might be enough.
As a user, I should be told how many unread press is in a channel from the channel list view. When the channel is opened, the count should reset to 0.
Would be nice to be able to zoom in/out of map in the web browser.
Countless times, I've forgotten what nation I'm playing as, and try messing with another player's units. dipl.io correctly stops me from succeeding, but also silently. Sometimes I think the app is broken because of it.
The user should receive a warning toast when they click on a unit they don't own.
The Ready/Not ready switch in the game tools doesn't persist changes.
I experience the same issue with these far corner seas...
I cannot enter the East Mediterranean. I get the error message, "EME order failed: ErrInvalidDestination"
Thanks!
When phases resolve, the web client doesn't automatically move to the next phase. I had to refresh the browser page. (By contrast, users in Diplicity users received a notification and could open the next phase immediately.)
===========
A group of 7 of us did a live game yesterday around a physical board game map, where we used iphones, ipads, and android devices to play the same game--this is one of a series of issues we opened related to our experience. It was a great overall experience! I'm so impressed at this project's progress.
User should be able to view ordered lists of:
The current medium for navigating the app, the icon in the upper right corner, is not mobile friendly at all, and may in fact be screwing with layout in general.
It should be replaced with a sidebar. In addition to existing functionality, it should efficiently render other details:
Accessing the web client from an ipad or an iphone, none of us playing could find how to set "draw" status to end a game. (We found it in the android app Diplicity inside "phase settings"--but couldn't get there in the web client.)
===========
A group of 7 of us did a live game yesterday around a physical board game map, where we used iphones, ipads, and android devices to play the same game--this is one of a series of issues we opened related to our experience. It was a great overall experience! I'm so impressed at this project's progress.
It would be great if there were instructions on getting this built and served. It looks like you're setup to do something like <buildtool> install
but I'm not familiar enough with the ones I'm picking out at sight from your repo (bower, npm, grunt) to make a guess at where to start.
Cheers.
Currently releases involve me going into my favourite FTP app and dropping files manually.
There needs to be an automated task that does the following:
A circle doesn't communicate army-ness, and a rectangle fleet-ness. These need to be replaced with something more appropriate.
The front page sucks. Really really sucks. Options:
I play via the browser, both on an iPhone, Mac and PC computer. And on all 3 devices I am unable to move into the Mid Atlantic. This has happened with two separate games, one in which I was Italy and the other France [can you imagine the hardship for France not being able to move into Mid Atl...lets hope I can last/survive ;-)].
I keep getting the message "MAO Order Failed: ErrInvalidDestination."
These are my first two games of Diplicity since playing Droidippy for years, so I am hopeful that this issue can be resolved since I love the game (I was a paid subscriber of Droidippy for some time) OR that I either get to play as Turkey and Russia a lot or that I can always get an English/French alliance.
Hopefully my adversaries don't read this post!
After Pure/France vs. Austria, there was a period where dipl.io did not have variant data to match. The variants appeared in dipl.io but triggered errors when trying to interact with them.
If variant data isn't available within dipl.io, the app should fall back to whatever map the API can supply.
The current variant selector is just a dropdown menu. If you are uninformed about what a particular variant might be, you're SOL.
A new selector should be a listbox on the left, with information about the current selection on the right.
When a phase resolved, users accessing the web page through their iphone had to refresh the page, then click "login" then click "info" for the game then click the open game/expand button. Is there an easier way to "refresh" the page without kicking the user back to the dipl.io landing page?
===========
A group of 7 of us did a live game yesterday around a physical board game map, where we used iphones, ipads, and android devices to play the same game--this is one of a series of issues we opened related to our experience. It was a great overall experience! I'm so impressed at this project's progress.
But now the problem is entering the North Atlantic. If you need more info please let me know. Thanks!
Sometimes it's not clear to the user that app actions succeeded. Every successful API interaction should be followed up with an Angular Material toast.
A failed interaction should have a 'sticky' toast and some sort of error CSS.
Swiping left and right on the map should move forward/backward in a game's timeline.
There's no way to predict when Diplicity tokens will expire. The best thing to do is detect 401 errors with a body of token timed out
as they happen, and immediately log off.
It seems as if on the App you can read messages between all players after the game is over. However, when playing through the browser it will show you the index of the different conversations that took place, but when you select a conversation that did not include you it inserts you into the list of the parties involved in such conversation and then it shows you no messages from such conversation.
So initially I could not move to the North Atlantic (please see Issue #34), now unfortunately I am unable to move out of the North Atlantic. When I attempt to input an order for the fleet there, I get the error message, "order failed: You don't own a unit here!"
If you are able to address this as quickly as #34 I would greatly, greatly appreciate it as I have less than 2 hours until the phrase ends. Thank you for any assistance that you can offer!
I don't understand the details, but the web client seemed to record nc/sc in orders more often than the players really needed. This may have created an unintentional misorder when England tried to move an army from FIN to STP.
Throughout, the web client generates nc/sc when an order can succeed with just the province name, and users were confused when some orders they intended to send turned out to fail because of a detailed nc/sc portion that they did not intend to put into the system.
I'm not 100% sure this example was an interface issue, but it seems related. The England player was surprised that Germany was able to move BOT to STP without bouncing from the England move FIN to STP with support from BAR.
Germany:
MOS supports BOT ⇒ STP
BOT ⇒ STP
England:
FIN ⇒ STP/NC
BAR supports FIN ⇒ STP/NC
Russia:
(STP hold)
Using Firefox 54.
The chat ("Press") is slow.
Long, long ago, dipl.io experimented with E2E tests using Protractor. With a whole Node server to mock, it became too complicated and nothing came of it.
Now that dipl.io is front-end only, E2E tests should be much easier to achieve.
Seeing the following in a chrome browser:
vendor.min.js:9 TypeError: Cannot read property 'length' of undefined
at new P (app.min.js:1)
at Object.i [as showDetailsDialog] (app.min.js:2)
at fn (eval at compile (vendor.min.js:11), :4:173)
at e (vendor.min.js:11)
at n.$eval (vendor.min.js:9)
at n.$apply (vendor.min.js:9)
at HTMLButtonElement. (vendor.min.js:11)
at cb (vendor.min.js:7)
at HTMLButtonElement.c (vendor.min.js:7)
(anonymous) @ vendor.min.js:9
(anonymous) @ vendor.min.js:8
$apply @ vendor.min.js:9
(anonymous) @ vendor.min.js:11
cb @ vendor.min.js:7
c @ vendor.min.js:7
Reported by @zond. This error is thrown on page load using an Android phone:
app.min.js:1 Uncaught TypeError: Cannot read property 'onMessage' of undefined
at app.min.js:1
at Object.g [as invoke] (vendor.min.js:7)
at vendor.min.js:7
at d (vendor.min.js:6)
at db (vendor.min.js:7)
at g (vendor.min.js:7)
at ea (vendor.min.js:7)
at da (vendor.min.js:7)
at vendor.min.js:12
at HTMLDocument.c (vendor.min.js:10)
at Wa (vendor.min.js:7)
at HTMLDocument.c (vendor.min.js:7)
(anonymous) @ app.min.js:1
g @ vendor.min.js:7
(anonymous) @ vendor.min.js:7
d @ vendor.min.js:6
db @ vendor.min.js:7
g @ vendor.min.js:7
ea @ vendor.min.js:7
da @ vendor.min.js:7
(anonymous) @ vendor.min.js:12
c @ vendor.min.js:10
Wa @ vendor.min.js:7
c @ vendor.min.js:7
vendor.min.js:8 GET https://dipl.io/app/main/home/home.html 404 ()
(anonymous) @ vendor.min.js:8
q @ vendor.min.js:8
i @ vendor.min.js:8
g @ vendor.min.js:9
(anonymous) @ vendor.min.js:9
$eval @ vendor.min.js:9
$digest @ vendor.min.js:9
(anonymous) @ vendor.min.js:9
f @ vendor.min.js:7
(anonymous) @ vendor.min.js:7
vendor.min.js:8 Error: [$compile:tpload] Failed to load template: app/main/home/home.html (HTTP status: 404 )
http://errors.angularjs.org/1.5.8/$compile/tpload?p0=app%2Fmain%2Fhome%2Fhome.html&p1=404&p2=
at vendor.min.js:6
at i (vendor.min.js:9)
at g (vendor.min.js:9)
at vendor.min.js:9
at o.$eval (vendor.min.js:9)
at o.$digest (vendor.min.js:9)
at o.$apply (vendor.min.js:9)
at i (vendor.min.js:8)
at u (vendor.min.js:8)
at XMLHttpRequest.x.onload (vendor.min.js:8)
(anonymous) @ vendor.min.js:8
(anonymous) @ vendor.min.js:8
g @ vendor.min.js:9
(anonymous) @ vendor.min.js:9
$eval @ vendor.min.js:9
$digest @ vendor.min.js:9
$apply @ vendor.min.js:9
i @ vendor.min.js:8
u @ vendor.min.js:8
x.onload @ vendor.min.js:8
vendor.min.js:14 Error: [$compile:tpload] Failed to load template: app/main/home/home.html (HTTP status: 404 )
http://errors.angularjs.org/1.5.8/$compile/tpload?p0=app%2Fmain%2Fhome%2Fhome.html&p1=404&p2=
at vendor.min.js:6
at i (vendor.min.js:9)
at g (vendor.min.js:9)
at vendor.min.js:9
at o.$eval (vendor.min.js:9)
at o.$digest (vendor.min.js:9)
at o.$apply (vendor.min.js:9)
at i (vendor.min.js:8)
at u (vendor.min.js:8)
at XMLHttpRequest.x.onload (vendor.min.js:8)
_defaultErrorHandler @ vendor.min.js:14
(anonymous) @ vendor.min.js:14
g @ vendor.min.js:9
(anonymous) @ vendor.min.js:9
$eval @ vendor.min.js:9
$digest @ vendor.min.js:9
$apply @ vendor.min.js:9
i @ vendor.min.js:8
u @ vendor.min.js:8
x.onload @ vendor.min.js:8
vendor.min.js:14 Error: [$compile:tpload] Failed to load template: app/main/home/home.html (HTTP status: 404 )
http://errors.angularjs.org/1.5.8/$compile/tpload?p0=app%2Fmain%2Fhome%2Fhome.html&p1=404&p2=
at vendor.min.js:6
at i (vendor.min.js:9)
at g (vendor.min.js:9)
at vendor.min.js:9
at o.$eval (vendor.min.js:9)
at o.$digest (vendor.min.js:9)
at o.$apply (vendor.min.js:9)
at i (vendor.min.js:8)
at u (vendor.min.js:8)
at XMLHttpRequest.x.onload (vendor.min.js:8)
_defaultErrorHandler @ vendor.min.js:14
(anonymous) @ vendor.min.js:14
g @ vendor.min.js:9
(anonymous) @ vendor.min.js:9
$eval @ vendor.min.js:9
$digest @ vendor.min.js:9
$apply @ vendor.min.js:9
i @ vendor.min.js:8
u @ vendor.min.js:8
x.onload @ vendor.min.js:8
It seems that you are unable to play the Ancient Mediterranean Variant through the web browser.
The user should not be allowed to join a game without passing through its info screen first. This is to minimize the likelihood of joining a game with overly taxing deadlines.
Access the detailed and dense list of order resolutions to the web client that you can find in diplicity (see attached comparison). The diplicity version provides more detail about why orders to do not succeed ("ErrBounce:den"). The diplicity version also allows you to see MANY more orders on one screen because it is denser--requiring MUCH less scrolling. Because on the web client this order list scroll bar is already inside a web page which may have its own scroll bar, scrolling is particularly challenging.
===========
A group of 7 of us did a live game yesterday around a physical board game map, where we used iphones, ipads, and android devices to play the same game--this is one of a series of issues we opened related to our experience. It was a great overall experience! I'm so impressed at this project's progress.
Upgrade from Angular 1.5 to 1.6. This migration is not effortless, because 1.6 changes how controllers are initialised.
Feature request?
If I have created a game, it would be helpful to be able to pause the game. I haven't seen this functionality in other clients, but it would be useful. We got to the point where everyone wanted to take a break from the game but the phases kept proceeding relentlessly!
===========
A group of 7 of us did a live game yesterday around a physical board game map, where we used iphones, ipads, and android devices to play the same game--this is one of a series of issues we opened related to our experience. It was a great overall experience! I'm so impressed at this project's progress.
(According to a friend of mine)
He mentioned that it works fine on an iPad though.
I expected Pure to fail because it has a different map, but I can't open France vs Austria games either. (There's a similar bug for Pure games in the Android app too)
Maybe we could display the map from the API if there's no custom map available?
The current order type selector in the map toolbar has an <md-button>
for each order type, filtered out by whether the phase type needs it. This has a few negative consequences.
For example, the Hold order type is considered the default, and it is always auto-selected. Some phase types (Adjustments and Retreats) don't use Hold, but no fallback order type is selected by default.
Secondly, the shortcut cheat sheet lists actions that may not be relevant that phase.
Finally, the mobile action sheet is mostly copy-pasted code, causing it to fall out of sync with the full version if it's not updated simultaneously.
The order type selector in the toolbar needs to be rewritten. An array of actions should be processed in the controller and rendered (with no filtering) in the view. The mobile action sheet should process this array similarly.
Game link: https://dipl.io/games/ahJzfmRpcGxpY2l0eS1lbmdpbmVyEQsSBEdhbWUYgICAwI7KgwoM
This happens after clicking on any province I'm currently holding.
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.