Git Product home page Git Product logo

nikolayxhd / mtgdb Goto Github PK

View Code? Open in Web Editor NEW
62.0 6.0 10.0 48.43 MB

Mtgdb.Gui - desktop app to search MTG cards and build decks

Home Page: https://www.slightlymagic.net/forum/viewtopic.php?f=62&t=19299

License: Other

C# 99.05% HTML 0.07% Batchfile 0.28% VBScript 0.03% Shell 0.04% Python 0.52%
tabs winforms tooltips album-gallery lucene-net tabbedpage charts tooltip-helper search-mtg-cards mtg-collection-manager mtg-deck-builder pivot-chart cross-platform dark-theme

mtgdb's Introduction

Mtgdb.Gui Overview

Mtgdb.Gui is a free and opensource desktop application to build Magic the Gathering decks with collection tracking and card prices. Supported operating systems are Windows and GNU/Linux desktops.

Search related features are well-thought and powerful. Search can be limited in scope to the cards from the collection owned by user. Search for similar cards lets user find cards with resembling text and / or generated mana.

Mtgdb.Gui offers several ways to input decks and collections. The fastest are drag-n-drop and copy / paste from a website or another application.

Decks can be saved in various formats compatible with other MTG-related applications such as Magic the Gathering Online, Forge or XMage.

Graphical diagrams give you a high-level understanding of what is your current workset like. The simplest example of a diagram is mana curve.

You can analyze your deck or collection from different angles by building your own diagram. It is conceptually the same as building pivot table or pivot diagram in Excel.

User interface

Mtgdb.Gui user interface

Links

Download
Support & feedback
Wiki

Mtgdb.Controls project

Most non-standard WinForms controls used in Mtgdb.Gui were separated into a project Mtgdb.Controls with no external dependencies. Thus you can copy-paste it and reuse in your projects. What's there:

  • Draggable tab headers control
  • Tooltips with selectable text
  • Album like data viewer
  • Boolean filter buttons

screenshot

To get an idea of what these controls look like and what they can I suggest seeing wiki for screenshots.

Search bar

The search functionality in Mtgdb.Gui is quite advanced. You type a search query in Lucene query language. The query editor highlights query syntax and gives you intellisense when hitting Ctrl+Space

search intellisense

SEO phrases

The phrases below are to make this page more visible to search engines
Mtgdb.Gui is a free windows gnu/linux desktop application software for Magic the Gathering (MTG) advanced card search in card database
Mtgdb.Gui is a free windows gnu/linux desktop application software for Magic the Gathering (MTG) deck building and deck analisys
Mtgdb.Gui is a free windows gnu/linux desktop application software for Magic the Gathering (MTG) inventory tracking collection management

mtgdb's People

Contributors

aaronls avatar maforget avatar nikolayxhd 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mtgdb's Issues

Card matching settings for deck list

In order for the aggregates to be useful, deck should be transformed before calculating the aggregate, e.g. non-owned cards should be replaced by owned namesakes when available.

This leads to a notion of deck-to-collection and deck-to-market matching settings that influence how the deck aggregates are calculated.

UI fails to display cards after a cardlist update

issue description, importance statement

Version: v4.0.1.1

I launched the application (which displayed the cards fine) and went into the update menu, updated the card list from mtgjson.com and restarted the application. Nothing appears in the card window. I checked the logs and found this log:

2019-02-26 16:02:50.3482	11	Error	Mtgdb.Ui.Loader	"System.ArgumentException: An item with the same key has already been added.
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Mtgdb.Ui.Loader.<>c__DisplayClass4_0.<<wrap>b__0>d.MoveNext()"	"System.ArgumentException: An item with the same key has already been added.
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Mtgdb.Ui.Loader.<>c__DisplayClass4_0.<<wrap>b__0>d.MoveNext()"

I deleted the bundle that's extracted from the release zip and unzipped again (to return to the default state) and it correctly launched with the cards in view, so I think that confirms something in the updated card list is breaking the UI.

Expected Result: Able to update with the latest card json and have the UI continue to work.

Do not ship megatools

it can be hosted in gdrive and downloaded when it's usage is required

  • to upgrade the app
  • to download artworks

Customizable tab system

This is more of a suggestion than an issue, and I believe it can be quite challenging to pull off. However, I believe it can make the app stand out among the other collection manager apps.

Instead of the "TDI system" that's being used today, I'm thinking of making the app as like a big white board in which you can bring multiple windows, to maximize user customization (and boost practicality).

It would work something like the Fruity Loops UI: when you open the app, it would be empty, with just the superior row for tab selection and other options. From there, you could prompt the app to open windows specifically for the things you want to work on (a Deck window, a Collection window, a Search window, a Selected Card Details window, etc).
Those windows would be each scalable and customizable on their own (this way, the user could choose how he wants his interface to look like, both to enhance aesthetics and boost usability).
The tabs would be used to manage multiple "white boards".

Regular Settings Window

When you click on "General Settings", it brings up a browser window with an XML code. The user is supposed to rewrite such code to change the settings in his/her app.

Having a regular Settings Window pop-up is a lot more user friendly (as well as more visually pleasing)

Binder management

extend deck concept to MTGO-like binder

binders should be editable like deck

add hashtag-like UI to use binders as tags

allow binders to be referenced in queries e.g. binder: wishlist AND price: [0 TO 10]

Tag cards within decks

The cards inside deck can be assigned one or several user-defined tags, e.g. 'creature_removal', 'counterspell'.

The filter by tags is added to the deck panel to show or hide cards with specific tags.

Import collection from mtga

(found in C:\Program Files (x86)\Wizards of the Coast\MTGA\MTGA_Data\Downloads\downloads.manifest)

C:\Program Files (x86)\Wizards of the Coast\MTGA\MTGA_Data\Downloads\AssetBundle\arenasup_mdnassetlibrary_974cf4730a4eee7bd102281a1b2f50a3.mtga

C:\Users\Kolia\AppData\LocalLow\Wizards Of The Coast\MTGA\output_log.txt
<== PlayerInventory.GetPlayerCardsV3(732)

Search Bar history

using Undo does not solve it, is too slow and inconvenient

  • add possibility to pick query from history menu
  • menu should allow alphabetical and chronological sorting
  • possibility to add to favorites
    • current query
    • query from history
  • optionally show only favorites in history
  • possibility to filter history items by Window / Tab Id
  • 'search as you type' in history menu

Interrupted Selection from right to left in Search Bar

Reproduce:

  • paste into Search Bar
ManaCost: (\{w\} AND \{r\} AND NOT /.*[gbuc123456789x].*/) AND Cmc: 2
  • With mouse try select text from rightmost to leftmost character

Result:
Selection range is interruted and starts with some intermediate position

Does not reproduce if first click of selection is done when window is not focused

Don't ship pdb files

Never used your app (and will probably never use it as it's Windows-only, that's the "like:" feature that brought it to my attention), but I downloaded it, and browsed through the directories. You ship pdb files, and this only makes sense for developers, not users, so unless you target a developer audience, you should probably not ship them in your releases.

New UI

You see, the app has quite a lot of issues in regards to UI. The filter system is badly optimized (takes the whole window and is kinda incomplete), the setting tab and the search engine requires you to have knowledge of coding (something not everyone have), card images are not scalable and the inability to see both your collection and the full catalog at the same time is quite annoying. It's a good app, but has a lot of room for improvement

Print tokens

Let user add tokens to deck so he can print them

"Filter button"

So, in my experience, the way the filtering tool is just takes up a lot of space, which could be better used. Also, in smaller screens, it could actually be a nuisance.

My suggestion is that, instead of having it as multiple rows in the raw UI, you could have a "Filter button", which would bring up an extra window with the filtering options.

Improve deck editor help

or use Right and Middle mouse buttons

vague, hard to understand

dragging a card to main deck / sideboard tab

dragging a card to a tab in window header

hard to understand what tabs are referred to without an illustration

failed Import / export split cards in MTGO format

Importing and exporting some cards, I could find that there is something weird going on with these split cards like:

1 Appeal/Authority
1 Turn/Burn

If added to a deck and exported as MTG_Online format, they simply despear, well, depending on the selected side of the split card.

Examples:
as mtgdb.gui format all good but
test_deck_json.txt

as MTG_Online format some of the cards are missing
test_deck.txt

Phrase query

Text: "\+ ? \+"

matches

[+1]: You gain 1 life.

Make Search Bar multiline-friendly

  • add line break on Shift + Enter or Ctrl+Enter
  • handle Tab key
  • extend search bar height to fit all rows, until certain maximum is reached
  • collapse multiline to single-line
    • when
      • changes applied by Enter
      • search bar loses focus
    • preserve text editor state when collapsing
    • restore collapsed to multiline if text editing keyboard button is pressed while focus at search bar
    • show full multiline query in tooltip of collapsed to single-line search bar
  • make auto-collapse optional, add button to collapse manually

Deck organizer

Forum post

I'm looking for something that searches for a deck based on the cards you have (or on a list you provide).

The idea is to show a GUI where

  • you see your decks
  • can somehow mass-import decks
  • can sort / filter by aggregated properties of decks

The problem user was trying to solve would be answered by aggregated properties like Missing Cards Count, Missing Cards Price

In order for the aggregates to be useful, deck should be transformed before calculating the aggregate, e.g. non-owned cards should be replaced by owned namesakes when available.

This leads to a notion of deck-to-collection and deck-to-market matching settings that influence how the deck aggregates are calculated.

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.