Code Monkey home page Code Monkey logo

web-client's Introduction

Web Client for Encounter+ App

This project was generated with Angular CLI version 9.0.1.

Installing

Run npm ci to install all locale packages, then npm install -g @angular/cli to provide the ng command line tool used elsewhere.

Development server

Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Code scaffolding

Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

Build

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.

Running unit tests

Run ng test to execute the unit tests via Karma.

Running end-to-end tests

Run ng e2e to execute the end-to-end tests via Protractor.

Further help

To get more help on the Angular CLI use ng help or go check out the Angular CLI README.

web-client's People

Contributors

jurex avatar rrgeorge avatar rycochet avatar schemen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

web-client's Issues

Player - Notifications For Unread Messages

As a player, I would like to be able to keep the chat closed until I need it, but be able to see overlay notifications like the DM and a notification counter on the chat icon in the toolbar.

Need more UX changes when disconnected

Currently it just shows the Websocket Disconnected text on the screen, but if it was previously connected it will still show the map and allow you to interact.

I feel it should probably also disable all mouse input, and grey-out the display slightly (ie, treat that warning as a modal)

Show where damage is coming from

This can't be perfect due to reactions, but when there is an active creature / player, and another one takes damage, then show a relatively brief arrow heading from the source to the target.

If the Effect internals on the App gets updated to include damage rolls, then that would also be good for a source.

Putting in here even though I feel that it's probably more on the App itself, since it's more for players who aren't listening / watching as much as the DM who really needs to know what's going on :-P

Button to sync external screen to 1 inch

Client side version of encounterplus/encounterplus#27

Add a button to set to external screen to 1 inch squares and lock the external screen from zooming in and out.

Allow the user to adjust the scale, and then remember that for future. When active it will prevent permanent zooming, but potentially allow snap zoom (ie, zoom in / out with pinch, but when releasing fingers go back to the normal zoom, same for scroll, then a few seconds later zoom back out).

[Bug] Daylight Non-Functional

When line of sight is being used on a map, daylight setting displays on web-client as if it were set to "0" regardless of the value set in the app. It works correctly using AirPlay, so this is isolated to the web-client.

Show aura to players

The aura only shows up in the App, it doesn't get seen by the players.

  • Colour aura
  • Asset aura

Changing token to/from DM layer does not affect visibility

If you edit a tile and change it to the DM layer, it is still visible.
Likewise, if you change it from the DM layer it says hidden.
In both cases, a refresh is required to display correctly.
I thought this was part of #8, but it’s different.

Dice roller

Would be great to have a dice roller - however, for security (ie, no cheating), it should just be a UI, that sends a requests (in the form of a dice string maybe?) to the app, and then displays the result.

Text chat

This is relatively simple to add in the client, but would also need display in the App.

Just a simple text chat for people, require people to not be Unknown for it. Option in the App to allow for spectators (non-Unknown still).

Allow very basic bold / italic / underline modifiers as standard in other text chats.

Links should be auto-linked with text-overflow on the length, and target="_blank" to ensure a new tab.

Potential questions:

  • Rate limiting?
  • Mute people?
  • Inline dice roller?

[Feature Request] Show names of PCs on web view

My players often glance at the screen to see everyone's names. It really helps everyone remember our PC's names, or if we forget them, at least be able to look at them and use it. :) I'd be happy with just 1.) but though 2.) could be cool also.

1.) Show full name of PCs & friendlies (not enemies) during initiative on the web view. (It already does this on the second screen.)

2.) It'd be cool to have an option that shows the PC names / portraits on the second screen / web view even when not in combat. Could be an option in the settings.

Grid is too "heavy"

The grid looks a bit strong compared to the App, maybe change it to 1/2 pixel thickness instead (or semi-transparent?)

Show edge of screen arrows to other characters / creatures

Needs a simple shallow arrowhead pointing in the direction to other creatures that are off-screen and visible.

Could be be treated as horizontal / vertical alignment, or as direction from centre (needs either a decision or an options - but better to have fewer options)

Easy way to run a local "server"

Currently you pass a link to your players, but for more advancers DMs it might be useful to be able to say "just head over to 'https://example.com' to play"

Given this, there's a definite use-case for an easy way to run it.

Thinking about making a docker image for this, there's been a bit of discussion on Discord, and maybe using a small apache server (httpd:2.4-alpine) using mod_rewrite, or a small nginx server (nginx:1.18-alpine) using a proxy.

Unsure if this should also include creating a letEncrypt certificate (possibly)

Unsure if this should include the external-screen web pages too (probably)

LOS not showing when dynamically turning on

Possibly related to #1

If enabling LOS on the app, then everything goes black on the web-view, but moving the creatures causes the web-view to update and recalculate for the moved creature only.

[Feature Request] Graphical "calculator" roller in web view, 3d dice, and honor dice appearance from app.

From GCMartins: https://discordapp.com/channels/565243968858751027/634387773872275466/735641902657044610

As an user (PC), on the web version, I wish to have a graphical calculator (pop-up maybe) to run my dices for attack, damage, saves and checks. This will then show the dices rolling considering the colours defined in the configuration for the E+. The die should appear for the PC not for the DM (for the DM the results only is enough).

[Feature Request] Option to show names on 2nd screen / webivew out of initiative.

It'd be cool to have an option that shows the PC names / portraits on the second screen / web view even when not in combat. Could be an option in the 2nd screen settings, maybe an option for the "default theme" to include names/portraits.

Ues case - many of my players like being able to see a reference of the other player's names so they don't forget the PC names. :)
Thanks!

Creature sort order mismatch with ui

The sort order is inconsistent between the ui and the web-view.

While it could be that the web-ui is having a consistent sort order, if you have two overlapping creatures in the normal ui, then the most recent one moved is "on top" - drawing highlight to it, and the web-view should probably maintain this visual order to make it easier for the DM to describe things.

Allow an optional battleships style overlay on screen share

Client side version of encounterplus/encounterplus#93

Only valid when the map has a grid, and visible-screen-only coordinates (not global to the map).

ABC on the side, 123 along the top.

Useful for when sharing the screen without a form of annotation (also not needing anything beyond voice interaction). Would let the players / dm indicate specific monsters, positions to move to, things found etc

As the players can use the sparkle tool to show something they want, this is low priority - however for accessibility / people with limited mobility it would be far easier for them to just say something verbally rather than having to use a pointing device.

[Bug] LoS not updating until token clicked

Mac OS.
When "only update on drop" is selected, then when a token is moved on the external screen, the LOS only updates when the token is clicked after it has been dropped to its new location.

Allow URLs to be clicked in chat

As a user, if a url is posted in chat I would like the ability to click it. To prevent disruption for the DM, it may be valuable to offer a web view for the page to load in or provide a prompt before opening that it will open in Safari.

Show connected Players

Like the initiative panel on the right, a panel on the left that shows the connected players. Once encounterplus/encounterplus#165 is implemented then only those that are linked to a character should show in the list (ie, allows for a spectator mode - nice for streaming etc).

Potential tasks after this would be:

  • Video / audio chat using MediaDevices (relatively easy for pure client, but needs display in the app too)
  • Dice roller view of other players #22

Dragging token only shows path when there is a path

It should show the square for where the token was picked up from immediately, even if there's no path for movement (currently you just need to move over another square to see it, but that's an inconsistent experience)

Auto-zoom on new connection / first load

When first connecting it needs to make sure that the party is in-view.

Currently it appears to show the scale of the entire map, and whenever reloading it will reset to that (see #32), but when loading the client should make sure that 1. the party is all on screen and 2. it's at a sensible resolution.

Ie - if they're very spread out, then choose one party member to be central at a normal resolution, but only if it's already known that the player + character are linked (encounterplus/encounterplus#165)

Two-button mouse support

There's a small toolbar to swap between Move and Pointer modes, with a two button mouse allowing the Right Mouse button to do the opposite mode, or perhaps to always act as a Pointer sparkle, would improve the user experience slightly

Authenticated users

More of a question, but adds a little bit of extra security.

Support OAuth authentication with Google / Facebook / etc. Needs to have a server side component to this (because of OAuth), and limited to "yes, this is their email address" (ie, a unique ID that can be saved).

This would allow an option to requiring players to authenticate, but spectator mode can be turned on without that (and easy to prevent them from doing anything).

Primarily this would be a way of permanently linking the players to their characters in the App, and meaning that they wouldn't need to change settings per-game etc.

Display to other players should never show an email address, as their Name is chosen by them directly (and not related to the email).

initiative display color mismatch

If an enemy is added to the encounter and then manually changed to "friendly," the icon on the initiative tracker on the web external screen remains red instead of changing to blue.

Add support for TLS/SSL

Add support for using ssl with client connections.
I understand there are some technical challenges to this, but I think one way this can be accomplished using a wildcard certificates using letsencrypt dns based verification. Plex does this with wildcard certificates in the form of *.(hex string, possibly a form of uuid).plex.direct, then uses a host name like 192-168-1-123.hex-string.plex.direct
EncounterPlus could request its certificates from the client.encounter.plus server when doing remote is discovery.
There are probably other solutions that could work too.

Creature rotation not showing

From Discord:

Dusk_Lite: So I noticed today that when using the web client, if I rotate a token of a player or monster on my end it does not show it on theirs
Dusk_Lite: Which isn't a huge deal but I assume is a bug.

initiative display dead "ally/companion"

If you add a creature to the encounter that is labelled as an ally or companion in the compendium, the initiative order on the web external screen displays the creature as dead.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.