Giter Site home page Giter Site logo

draftpod's People

Contributors

dependabot[bot] avatar jjallaire avatar optidox avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

draftpod's Issues

layout changes for mobile devices

Now that we are specifying that the site is responsive on mobile devices (4378f90) we need to update our bootstrap html for the home and guide pages to behave properly on phones.

find more storage efficient way to display bot colors

We used to clear out all of the pick piles (at least when not running under the simulator) however changed this in order to able to show bot colors:

f19bfb7

It seems like we should be able to just compute the bot colors once and just store that.

evaluate optimistic local commits

When we have sketchy connectivity and allow multiple pick transactions to be in flight at once we might be opening ourselves up to inconsistency (as the first transaction could fail and roll back, whereas subsequent transactions succeed).

We may need a more conservative model visa-vi the optimistic local writes of picks. Perhaps we actually need to put glass on the UI until the transaction completes? (with a suitable progress indicator).

support for importing from deckbox

It would be great to be able to import from Deckbox as well as Decked Builder. From what I can see the standard CSV export from Deckbox has the info we need to match up to Scryfall data:

screen shot 2019-01-29 at 9 29 22 am

We will need the "Count", "Edition", and "Card Number" fields to do the import. I'll polk around a bit to see if anything in our current code needs to change significantly to accommodate this.

Handle Split/Transform cards in preview (.card-viewer)

screen shot 2019-01-17 at 10 10 54 pm
For non-mobile: can we elegantly identify split/multi-faced cards from:

  1. Scryfall (card-faces array=populated, card_faces.image_uris[] not set indicating split, set indicating transform)
  2. MTGJSON (card.layout = 'transform' or 'split'). If so, we can rotate the split cards and display both faces for transform cards. The former will save some head turning for those who don't have the card text memorized.

Trigger for the onMouseOver would need updating.

We would need to set the transform, transform-origin, and margin-left properties programatically. The below achieved the proper orientation for regular split cards.

<div class="card-viewer" style="transform: rotate(90deg); transform-origin: left top; margin-left: 100%;"><img src="https://img.scryfall.com/cards/normal/front/8/f/8f1801f2-ea6e-4196-858e-2afc456cf6a0.jpg?1538879984"></div>

Note, this may result in some overlap in the pick area, but retains the placement of the stats info box.

Planar cards (from planechase) would require rotation handling, but nobody's going to be drafting those. Other card types should not require special handling. Meld could be handled just like transform.

For Mobile: Don't bother rotating splits. Layouts need working on for phones/tablets for the base cases first, then review to see about mods for double faced cards.

should updateTable reject the promise on failure

Need to see which clients actually subscribe to the promise.

Currently, NavigatorStart.startDraft doesn't listen to the promise resolution and as a result can create a draft that can never be joined (b/c the packs aren't distributed).

Perhaps the solution to unjoinability is to just filter out drafts that have current_pack === 0 from the list (or even drafts with no start time)

use remote images by default

So that development configurations work by default.

We should add another environment variable that turns on local images.

user discussion forum

If we don't open-source the repo, we still need some way to have dialog w/ users about bugs, features, etc.

second pack contents shifts after first pick

Sometimes in multiplayer mode the second pack comes in and then blinks out (with one card being different). This can be repro'd with only a single-player at the table.

Investigate why this occurs.

automated integration tests

At a minimum we should setup automated tests that run through several drafts end-to-end (single and multi-player ideally).

Auto generate set specific data/classes from external data source

Looking at the sets-xxx.js, it seems this should be able to be generated on the fly and not require hard coding. The main point seems to generate the booster pack content. Scryfall doesn’t offer this data but this site does:

docs.magicthegathering.io

There is a JS api for this site: mtg-sdk-javascript

{ "set":{ "code":"KTK", "name":"Khans of Tarkir", "type":"expansion", "border":"black", "mkm_id":1495, "booster":[ [ "rare", "mythic rare" ], "uncommon", "uncommon", "uncommon", "common", "common", "common", "common", "common", "common", "common", "common", "common", "common", "land", "marketing" ], "mkm_name":"Khans of Tarkir", "releaseDate":"2014-09-26", "magicCardsInfoCode":"ktk", "block":"Khans of Tarkir" } }

This should be readily parsed into the existing data forms.

Should this be persisted in our firebase store, or just st generated on first call? The overhead should be tiny thus storing might be overkill.

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.