Git Product home page Git Product logo

draftmancer's People

Contributors

aloisdg avatar aritsune avatar dependabot[bot] avatar dgeare avatar itsjustruby avatar jgcallero avatar joshea0 avatar nerdynathan avatar senryoku avatar susucre avatar tooomm avatar wrmacrae 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

draftmancer's Issues

More 2-player draft modes

Several people have asked for more 2-player draft modes. There is now Winston, Grid, and Rochester, and they should be more discoverable. But we're open to hearing requests for others.

Filing and closing this issue in case people come here looking for these formats, since it's come up on Discord and in Survey #1.

Add cube draft

Great news! The app supports cube draft (and actually has for a while, but hopefully it's more discoverable now). Under the "Set(s)" dropdown, click "Upload a Custom Card List..." or click on the Settings button to read a bit more about Custom Card Lists.

Filing and closing this because it's been a frequent point of feedback that players would like to draft cubes in the app, just in case they come here looking for information on that.

Drag&Drop issues on mobile

Drag & Drop is barely usable on mobile:

  • Cards flicker back & forth between their target and origin
  • The last card of a column often can't be moved at all (or only if touching the 25px first pixel and not the overflowed part)
  • It's just inexplicably janky.

Using the adaptative view on Firefox desktop with touch event simulation gives us a similar behaviour so I'm guessing this has to do with how vue-draggable/sortablejs handles touch events.
Also, the problem was not present in earlier versions; looks like it appeared before drag & drop from boosters was implemented.

Add "Sort cards by type"

It would be really helpful sometimes to be able to sort cards by their main type (creature, land, instant etc.)

Add set's icon to each set in the set combobox

Hello,

Some new players aren't may mix set name (e.g. Ravnica block). I think we could enhance the UI by adding set's icon to each set in the set combobox. What do you think?

image

It would take a bit more space though. It could be problematic.

related to #8

Card import to Arena doesn't match what's seen in app.

A bug occurred where the state of the deck, as seen in the app, didn't match what was imported into Arena. The bug can be found in the clip:

https://www.twitch.tv/videos/670645908?t=01h27m20s

A few minutes later in the video it's realized that there are 4 "phantom" cards in the count of the mainboard of the deck. There was a lot of issues with disconnects earlier in the draft, so it's possible that was impactful in the creation of the bug. I have a copy of the JSON for the draft log which I'll add below, though I'm not sure the log was in error.

Improve Mobile UI

I've never looked at the app in Mobile, but on Survey #1 someone indicated it could use some improvement.

Safari (iOS) compatibility

Application doesn't load on Safari (iOS).
I don't own the hardware necessary to debug this. I don't want to officially support Safari or even mobile in general (the typical use case involves a device capable of running MTGA anyway), but better compatibility is always welcomed if someone with the means to look into it can fix it.
State

Uncaught TypeError: data.flat(...) is not a function or its return value is not iterable

Hello,

I cam across a strange behavior. Steps to reproduce:

  • Open mtgadraft
  • New sealed game with bots
  • Valid popup
  • Wait...

image

The snippet in question:

image

data is:

json [["71091","71089","71305","71278","71092","71166","71324","71156","71111","71068","71182","71236","71070","71187"],["71078","71273","71157","71109","71111","71163","71148","71106","71146","71073","71236","71198","71117","71098"],["71274","71305","71102","71193","71169","71072","71198","71129","71224","71135","71167","71146","71243","71087"],["71134","71085","71128","71231","71106","71183","71071","71136","71239","71165","71216","71186","71232","71098"],["71301","71285","71297","71115","71190","71227","71170","71205","71121","71076","71150","71182","71322","71112"],["71134","71241","71099","71218","71239","71197","71069","71104","71144","71216","71204","71201","71165","71123"]] `

What is the purpose of flat()?

Implement Winston draft

Hello everybody,

Senryoku talks about Winston draft in the main readme. Winston draft is the limited draft format for two players. Here is a quick video about it. I didnt find a winston draft simulator ala draftsim or else online. Do you know one? I would love to try it.

I would be really cool to be able to play it with another player. I open this issue so we have a place to talk about it. This is for a distant future, but I hope no so far. Lets do it :)

Disable Foil by default

Hello,

To be closer to draft on Arena, Foil will be disable by default. The feature will still be present. It is a simple unchecked by default.

Related to #13 and #7

Display foils as... foils in front end?

Hello,

This issue will be use to talk about the foil effect.
As far as I know, there is no way to have a foil print image through Scryfall. I hope you can correct me. An alternative would be to rely on a foil effect in the frontend. It is quite easy to achieve and in fact this is how the website archidekt handle it. Lets implement this effect in MTGADraft!

I start working on it and the result works quite well imho:

image

Auto-firing pod queues

This is an enhancement we can survey for interest on Survey 2. If usage and interest supports this, we could have a way for players to queue for a default draft of the current set, and then automatic creation of 8-player drafts once enough users have queued. Along with this we may want some basic community guidelines around timeliness in playing games after the draft, a way to track Arena handles, and the ability to volunteer as a non-player owner ("judge") that verifies results and expedites match setup for new players. Plenty of decisions and unknowns here, but worth seeing how much interest there is.

Trophy leaderboard

This is an enhancement we can survey for interest on Survey 2. While one could certainly abuse this feature, having a basic indications of which users have won which drafts can be really fun and motivating, and might make the app stickier. I have a few thoughts on handling abuse, but when there aren't really many stakes, I think just having an unofficial thing up may get good engagement without too much complexity.

Team Draft

We should have an option for a Team Draft mode, which by default switches to 6 players, visually shows in the seating order what the teams are, and changes the bracket so that you play people on the opposing team.

Set's title mutates with action

Hello,

A screenshot is better than thousand words:

Here selected has no background:

image

Here remove as a background but we clip the set title:

image

Some ideas:

  • Add more space so everyone can have its own space.
  • Use a "check" icon for selected and a "trash" icon for remove

Since we are using font-awesome:

More realistic collation

A common request/question in Discord, on the survey, and on Twitch chat has been about whether we do collation of cards correctly. There are good resources out there for how paper collation worked in recent sets, for example here: https://www.youtube.com/watch?v=kct0tF0qgdk I've never heard an opinion or analysis either way about whether Arena uses the paper collation rules, but imo we should mimic Arena whatever that is.

I pulled up a pack from an Ikoria draft log https://www.17lands.com/draft/67f5818d36ee481bacb3d7eccfde3fbb/3/1 and compared the commons to the print run of Ikoria https://docs.google.com/spreadsheets/d/1cnnB4iPSXsBZNGIa7K5XnQsFAHQtTUVqa_wQ1mfLjq8/edit#gid=0 (English/US in both cases, though I'm not sure if that matters). I think that pack has several things that show Arena does not use the collation rules of paper:

  • Glimmerbell without any of its 3 neighbors in Run A (or the last card, if the runs loop, since it appears at the beginning)
  • Phase Dolphin without any of its 4 neighbors in Run A
  • Rumbling Rockslide without any of its 4 neighbors in C1

If someone has more information on Arena collation, that would be really useful, but for now, based on the logs I've seen and this comparison to the print collation, I think it's best to assume that cards are selected randomly with the same color balance restriction that we default to. Similarly, if anyone has logs of an Arena pack without color balance, that would be important to know. But I'm going to close this issue since I think our collation is as realistic a representation of Arena as we know, and I'm just filing for tracking.

Track multiple drafts for a user

This is an enhancement we can survey for interest on Survey 2. It would be nice to give a user the logs of their past drafts, with basic information about those drafts even after they have completed other drafts.

Share or submit decks once built

This is an enhancement we can survey for interest on Survey 2. If users build their deck inside of the app, they should be able to share the final deck within the app. This would need options like draft logs for who could see it, or to use the same permissions, and an option to lock in submissions (or at least timestamps for when things were submitted). This might eventually allow people outside of the draft to follow better via the bracket page, and could help with tournaments where deck submission is an important step.

Missing alternate art Card when importing collection

In ManageCardData.py, I'm using (CollectorNumber, Set) as a unique ID for each card, but there is some cards with alternate art (Ghalta from RIX or Llanowar Elves from DOM (DAR) for example) that uses a different Arena IDs. These will fail to be imported.

CI failing randomly

Automatic testing randomly fail, mostly when testing reconnection of websockets.
Testing also sometimes fail locally, but very rarely.

My guess is that this has more to do with the way tests are written (poorly) than the actual server code, but I'm don't really know what's going on.

Upload collection not picking up some cards

I and my friends have noticed an issue where some cards (generally white) are not being picked up from the MTGA log when importing a collection.

Using Theros Beyond Death as an example, Captivating Unicorn, Daybreak Chimera and Dreadful Apathy commons are missed, as are a number of uncommons. These are also shown at the bottom of the Collection Statistics as oppose to at the top with the other white cards (after not-in-booster cards).

image

Is it normal that a pack may contains two rares?

Hello,

I got a booster with two rares:

image

This never happened as far as I know in MTGA. I guess the first one is a foil and a foil can be a rare. So two rares or I guess one rare and one mythic rare can be found in a single pack?

related to #7

Make "Glimpse/Burn Draft" easier accessible

Make "Glimpse/Burn Draft" easier accessible and give it a name.

I would like to see "Glimpse/Burn" as an option in the other games modes dropdown menu as well.
Clicking it should ask for the amount of cards to burn (defaulting to 2) and the amount of packs per player (defaulting to 9) just like winston draft ask for the amount of packs in the main pile.

That way this game mode - while already possible - become more visible to the ordinary user.
People that might not be aware of the format just don't get that you can play it as it's a hidden custom setting that needs to get adjusted with the right value in order to play it. The host also needs to add more boosters per person via the advanced settings.

Add non-Arena sets

Several responses in Survey #1 and messages in Discord have asked about supporting sets with cards that aren't in Arena. Using this issue to track that, although the current developer(s) might not have a lot of interest in this or ability to test it. That said, I think this makes sense as a question in Survey #2.

Randomize seating without clicks

I think @Senryoku doesn't want to auto-shuffle seating, because it could be confusing/frustrating if you assign the seats and then they change, and I definitely think we need both an option for random seats and one for assigned seats. 80.9% of respondents in Survey #1 wanted some form of automatic shuffling, but it's possible the question wasn't phrased right. An idea for making progress on this: keep the shuffle button and the ability to assign seats, but have people "sit down" into random seats, so that you're always seeing the seating order that the draft would start with, but even if you don't take any special action you end up with a randomized draft order (versus one where joining time influenced the seating order).

Ability to zoom cards

Currently, cards are not shown bigger when you hover over them. They are only shown in full art.
For sets or cards that you don't know that well the text is still super small and can be difficult to read.

Maybe adding a zoom effect to the hovering as well would work?

Don't limit duplicates by default

In Survey #1, 78.6% of respondents prefer that the default does not limit duplicates in a pod. I think the question was a bit flawed, but regardless we should change the default over.

Land distribution for IKO

I've been loving the app and using it a lot with friends, but noticed how the gainlands are handled is a bit odd.

Maro has reported its a 50% chance to have the land be one of these gainlands

I'm happy to make a PR for this, but can you help point in the direction where I could find this part of the code?

"Restrict to collection" is not properly working

It always shows x have uploaded their collection. and displays the green book for me when I join the site.
It doesn't matter if the "Restrict to Collection" check box is active or not. It correctly remembers its former state on join though.

But I always have to check and uncheck the box again to correctly update its state and make it display the yellow book and ...but are not using it. message.

Using FF 79.0

Discord link is broken

In the free response section of Survey #1, "ur discord has an invalid link and should be on the frontpage, people clearly use this website so u should build a community discord". I tried it and it didn't work for me either. Here's a link that should send people to General and never expire: https://discord.gg/mNJWQTB

Dragging Ghost missing the first time on Firefox

The first a card from the deck or sideboard is dragged in Firefox, the ghost does not appear.
So far the only lead I have is that a "transform: translateY(0px)" style is applied on drag - I guess by vuedraggable - and that it may mess with Firefox.
GIF 23-06-2020 22-08-14
In the gif the card is dragged left and right for the first time since its instantiation: No visible ghost. The second time the ghost works just fine.

Order cards by rarity

Hello,

Is there a specific reason why cards aren't ordered by rarity?

image

Is this a bug to tackle?

Cheers,

No longer works on mobile

While the page still works great on normal browsers...
It stopped working on mobile safari on e.g. my iPad. Could the recent right click zoom change be the issue?

Thoughts about and problems with session concept

MTGADraft allows users to enter games and form parties via unique session ID's.
After changing the ID in any way manually, the user leaves his current "room" and shortly after automatically joins an existing one (or creates a new one) according to the altered ID.
Also, when opening the page you always get automatically assigned a random session ID and join that game if it's your first visit. Otherwise you join the last known ID (saved in a cookie), no matter if that information is outdated or no longer relevant.
There is no check and you might crash a foreign party which e.g. happens to use the same simple name you used a few days ago for your own draft.

The page just doesn't allow you to be not part of a session and the concept of leaving a session on your own will is not known - which feels highly unintuitive. In general, I guess most players might not be aware how things work exactly. They simply use it and work around issues as they arise.

I realized that when I first got newly introduced to the page. (No doubt, I value the service and enjoy it a lot.
Some things are handled differently though and can be quite confusing for players.)
For me, the most natural way to leave a room was to empty the session ID as I saw no other possibility after a draft. That worked fine for the moment. But then, I ended up in another party where somebody else used the invisible session "" too when reconnecting to the page later. Or some random people joined mine in a different case.


I talked with @Senryoku already about that issue. Putting this up here as reminder and for discussion.


I think there are two problems:

  1. Users automatically reconnect to the last known session on page load.
    Just by opening the default mtgadraft main page, a user probably doesn't expect to actively join something.
    I mean, the possibility to rejoin is amazing and a great feature as it makes reconnecting to a draft easy or allows to restore your connection after a browser restart during draft etc.
  2. Users are allowed to empty the id field and by that enter/create a new session "" without knowing.
    The only reason why users empty the field is not to enter an empty string session, but to leave the current session AND possibly end up alone in no session with no persons joining. Like a leave button - they just don't know that it doesn't work like that. :slight_smile:
    In both cases giving a hint to the users can help.

Thoughts regarding those points:

  1. On reconnect you could ask if he likes to a) rejoin last session "abc" or b) create a new one.
    Or redirect to the url "..../?session=x" at lest to show that something is going on. If the URL shows you only "https://mtgadraft.herokuapp.com/" it's really confusing as no session id is shown in the url to give a little hint. But still the user doesn't learns that emptying an sessions is bad practice as he does that 100% with different intention. Once a user changes the session id manually, the url is changed - but not on reconnect! Even though you still join a room.
  2. On emptying the id field you could mark it red and e.g. give a hint "Invalid name. Minimum length is 3." etc. (Maybe you really want some min length as well the same as you have a max length for chat for example)
    That leaves you still with the problem that the user would join the empty string session in between. I feel that allowing an empty string session might be the main issue and you want to prevent that. A min character value could just be that?

Ideas from Senryoku:

  • Maybe the first step would be to only save the id during an actual draft to help reconnecting when it really matters, or restore automatically only if the session is drafting and use the prompt solution otherwise
  • Just never save the empty session in a cookie :)

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.