It is currently 22 Oct 2017, 18:53
   
Text Size

Mtgdb.Gui: search MTG cards, build decks, manage collection

Discuss Card Scans and Other Artwork Here

Moderator: CCGHQ Admins

Mtgdb.Gui: search MTG cards, build decks, manage collection

Postby hidalgo » 18 Oct 2016, 19:12

Hi all! Using the pictures found in this site, data from mtgjson.com and Gatherer extractor I made a nice application Mtgdb.Gui to build my decks for Magic The Gathering.
I invite everyone to use it, it is free and open source.

Ixalan.jpg
Cards from Ixalan

Download current version. Works with most Microsoft Windows versions - Windows XP or newer.

Wiki

Source code

Major features

  • Contains all MTG sets up to Ixalan and Commander 2017
  • Import collection from Magic The Gathering Online. See wiki page on importging collection from MTGO.
    You can also load and save decks in MTGO-compatible format. See also MTGO website.
  • Drag-n-drop and copy-paste deck to instantly import deck from websites and external applications. For examples check wiki page on the subject.
  • Built-in update capabilites. Updating images, data and the program itself can be done from whithin 'Update' window. From there you can
    • Download card images and/or artworks
    • Download and install new version of Mtgdb.Gui
    • Download latest cards data from mtgjson.com
  • Card search by text. Searching by text is implemented using Lucene query language as specified here.
    The search string supports syntax highlighting and intellisense.
    The intellisense by value uses fuzzy text matching. So if you type in search string nevinira and press Ctrl+SPACE the first suggested variant will be Nevinyrral.
    Search-example.jpg

    • Search by specific field Name:Ooze or by all fields "Llanowar elves". Quotes " are used to search the entire phrase
    • You can construct arbitrarily nested boolean queries like Type:((angel OR demon) AND legendary)
      When no operators are specified, OR is applied: Type:(Rogue Rat) matches either type
    • Using wildcard syntax you can control whether you search by word's prefix, suffix or you need exact word Subtype:(*ngel OR dem* OR human NOT rogue)
    • Fuzzy search nevniniral~ will return Nevinyrral's Disk and other cards mentioning Nevinyrral in text.
      You can refine your search by changing desired minimum similarity: nevniniral~0.2 or nevniniral~0.9
      Default similarity is 0.5, min is 0, max is 1
    • Proximity search "Mana color"~2 searches for text where words mana and color have 2 or less words between them.
    • You can correctly filter number fields like powerNum:[1 TO 4]
      The numbers are indexed as numbers, not as text so no power 11 cards will appear between 1 and 4.
      PricingMid:{100 TO *} will search cards with price strictly > than 100$
      You can also use range search with text fields: Name:[a TO ced] matches card with names containing any word which lies between 'a' and 'ced' in alphanumerical order
    • Term boosting is not supported because there is no sorting by relevance to search text.
      Angel^3 OR Demon such query is parsed and executed correctly but ^3 booster to Angel term is just ignored
  • Deck editor
    • Supported deck formats are Forge, Magarena, XMage and Magic The Gathering Online. By the way, Cockatrice also supports the deck format used by Magarena.
      To enable compatibility with Riiak's DotP 2014 Deck Builder v1.5.0.3 I posted a patched version of it here. The patched version supports Forge deck format.
      Some deck format details | Open
      To export deck to Forge
      • Select Forge format when saving your deck in Mtgdb.Gui
      • [Optionally] Save to
        Code: Select all
        C:\Users\<Username>\AppData\Roaming\Forge\decks\constructed
        Then you will see your deck in deck list immediately after opening Forge's deck editor tab.
      • If skipped previous step, use button "Open Deck" in Forge's deck editor tab, then press "Save Deck".
      To export deck to Magarena
      • Select Magarena format when saving your deck in Mtgdb.Gui
      • Save your deck to
        Code: Select all
        \Magarena\decks
        subdirectory of Magarena application.
      • In magarena threre are 3 groups of decks - "Prebuilt", "Player" and "Firemind top decks". As you may have guessed, your deck will be in "Player" group.
    • Use deck area tab headers to switch between main deck and sideboard a.k.a side deck.
    • Drag-n-drop card to deck area or use mouse buttons (right and middle) to add/remove 1 card.
    • Dragging card to deck area tab header allows switching between deck areas. This way you can drag from main deck and drop to sideboard.
    • Dragging card to window tab header switches between open tabs allowing you to drag-n-drop cards between different open tabs.
    • Dragging card to '+' button in main tabs area opens a new tab allowing you to create a new tab where you can drop dragged card.
    • Use Ctrl+drag-n-drop or Ctrl+right/middle mouse click to add/remove 4 cards.
  • Collection editor to track which cards you own
    • Use Alt+right/middle mouse click to add/remove 1 card from collection.
    • Use Ctrl+Alt+right/middle mouse click to add/remove 4 cards from collections.
  • One-click filter buttons let you instantly filter cards by common properties.
    The filter selectors are organized in two rows. When you check the value in top row, it is included to the filter by AND operator. When you check the value in bottom row operator OR is used.

    Consider an example. You checked Flying in top row and Vigilance and First Strike in the bottom. The result is showing only the cards that meet the following criterion:
    has Flying AND (has Vigilance OR has First Strike)
    Filter_example.jpg

    • One-click filter by Keyword abilities (such as Flying)
    • One-click filter by Rarity
    • One-click filter by Type
    • One-click filter by Mana cost. Filtering by mana cost considers cost semantics. Consider another example.
      You checked White and Blue mana in top row and Red mana in bottom row. Other mana colors were made unchecked. The resulting criterion is:
      has White AND has Blue AND (may have Red)
      Cards with colors other than White, Blue, Red are excluded from result.
      Filter_mana_example.jpg

      The above examples show both general approach and nuances. General approach is that top row means AND; and the bottom row means OR.
      Nuance is that Mana has a meaning of cost. So when you say "Red OR Blue" you really mean "Can be paid by Red OR Blue". In terms of applied criterion this means "has no other colors in cost than Red or Blue". So if the card doesn't require any specific color of mana it meets the criterion "Red or Blue".
    • One-click filter by Converted mana cost
    • One-click filter by Mana symbol in card's text
    • One-click filter by Generated mana. It filters card by color of generated mana and also by possibility to generate engergy. It is more pricise and subtle than just looking at mana symbols in card's text. A simple example: Paradise bird will be matched when you check {W}, while it's text doesn't mention {W}. It tells {T}: Add one mana of any color to your mana pool
  • Filter by Legality. Illegal cards are marked visually in deck. They are also marked visually in search result in case when not filtered out after setting filtering mode to ignore legality.
    Legality.jpg
  • Possibility to either show or hide card duplicates in search result. Namesakes can be confusing when creating a deck or building some statistics. But sometimes you want to put into your deck a specific version of a beautiful island. Check 'Show duplicates' button to show all variants of a card.

  • Inplace sort buttons.
    You can hover the mouse over a field and click a sort button.
    inplace_filter.jpg

  • A graphical diagram to show deck statistics. By default shows a breakdown of deck by Converted mana cost and card Type, but can be customized in many ways.
    Report_example_p2.jpg
  • Card pricing information. It is shown both in search result and deck statistics window.
    Price statistics.jpg
Minor features
  • Zoom in card image by left-clicking it. Zoom out by left-clicking zoomed image.
  • Showing card back for flipped cards or meld pair/melded card for meld cards. Can be done by mouse scroll on zoomed card image.
  • Undo/redo changes in deck, filters and so on. Works even after closing the program and starting it again.
  • Card texts localization to all languages supported by Gatherer (including russian, spanish, portugal and etc.)
  • Printing proxies is supported by exporting deck to images printable on A4 paper
    proxy.jpg
  • Tooltips on most buttons since v1.3.3
  • Illustrated help
    help.jpg
  • Mana cost filter usability.
    1. By default all mana colors are allowed therefore they are checked in bottom row. If you click a color in bottom row then all other colors become unchecked. It lets you make only 1 color allowed by 1 click.
    2. The previous point would lead to difficulties trying to undo unchecking all colors except selected. Of cource you could undo using Ctrl+Z or use undo button in form's header, but there is even a faster solution. Click the same button again and all colors in the bottom row will become checked again.
    3. As phyrexian mana color requirement is weaker than normal mana color requirement, therefore checking a color in bottom row also checks phyrexian mana of the same color. Because if you agree to pay a white mana, then you would agree to pay white phyrexian mana too. Thus you will not be missing a card of desired color by accident.
    4. All the previous points make one-click filter's behaviour quite complex especially in case of mana color filters. To make things more predictable to you the one-click filter interface shows you a previw of what is going to happen if you click a value when you hover the mouse over it.
    5. Resetting one-click filter to it's default state is done by clicking it with mouse middle button. Useful when you have checked a lot of things and want to start a new search from scratch
  • Highlighting matched text in card. One-click filter values and search text values are highlighted when found in card's text.
  • Using images from Mtgdb.Gui in Forge. You can export images downloaded for Mtgdb.Gui to Forge directory using Mtgdb.Integration.Forge.exe. With High Quality images enything gets prettier :)
  • Using card images you already have with Mtgdb.Gui. If you already have images since you downloaded them for Forge or any other purpose, you can configure Mtgdb.Gui to use images from those directories. To do it edit etc\Mtgdb.Gui.xml the section <ImageLocations>
  • Showing the last card added/removed to deck in card's list. Even if it doesn't matches card's filter. The people who used Magic Duel's online deck builder will understand me. It is such an annoying thing when you have a filter, then you remove a card, and you cannot quickly undo as the card is not shown in card's list due to filter criterion. This is not going to happen in Mtgdb.Gui!
Last edited by hidalgo on 22 Oct 2017, 06:02, edited 187 times in total.
User avatar
hidalgo
 
Posts: 187
Joined: 17 Oct 2016, 21:51
Location: Russia, Moscow
Has thanked: 15 times
Been thanked: 35 times

Re: Mtgdb.Gui - Windows app to search MTG cards and build de

Postby skibulk » 18 Oct 2016, 19:14

This belongs in the DotP forum: viewforum.php?f=62
User avatar
skibulk
HQ Team Member
 
Posts: 990
Joined: 19 Jul 2010, 20:34
Location: Northeast USA
Has thanked: 379 times
Been thanked: 302 times

Re: Mtgdb.Gui - Windows app to search MTG cards and build de

Postby Huggybaby » 18 Oct 2016, 20:34

I don't think this app is specific to DotP is it?
User avatar
Huggybaby
Administrator
 
Posts: 3052
Joined: 15 Jan 2006, 19:44
Location: Finally out of Atlanta
Has thanked: 562 times
Been thanked: 567 times

Re: Mtgdb.Gui - Windows app to search MTG cards and build de

Postby hidalgo » 18 Oct 2016, 22:51

It is only Magic The Gathering specific :)
User avatar
hidalgo
 
Posts: 187
Joined: 17 Oct 2016, 21:51
Location: Russia, Moscow
Has thanked: 15 times
Been thanked: 35 times

Re: Mtgdb.Gui - Windows app to search MTG cards and build de

Postby skibulk » 18 Oct 2016, 22:54

hidalgo wrote:Using the pictures found in this site and data from mtgjson.com I was able to build a nice application which I use to build my decks for Magic Duels online game.
Okay I read this and I thought it was only for Magic Duels. My mistake.
User avatar
skibulk
HQ Team Member
 
Posts: 990
Joined: 19 Jul 2010, 20:34
Location: Northeast USA
Has thanked: 379 times
Been thanked: 302 times

Re: Mtgdb.Gui - Windows app to search MTG cards and build de

Postby hidalgo » 02 Nov 2016, 17:30

I made some minor improvements/fixes

  • Changing cards language is undo/redo -able
  • Search result / keywords highlighting was slightly mispositioned in some rare cases
  • Renamed fields to use in filter and search: Name -> NameEn, NameLocal -> Name.
    E.g. now to search by name you type just Name:死灵式渴求 instead of "Name local":"死灵式渴求"
Last edited by hidalgo on 09 Jan 2017, 05:38, edited 1 time in total.
User avatar
hidalgo
 
Posts: 187
Joined: 17 Oct 2016, 21:51
Location: Russia, Moscow
Has thanked: 15 times
Been thanked: 35 times

Mtgdb.Gui v1.2.1

Postby hidalgo » 29 Dec 2016, 01:05

List of changes:
  • TDI - tabbed document interface. Before I had this tabs feature I had to keep several open instances of Mtgdb.Gui.exe, which was undesirable for several reasons:
    -Slow program startup - around 15 seconds in my PC to load all sets.
    -High memory consumption - multiplied by N where N is the number of opened instances.
    -File access concurrency for undo/redo history files.
    Now you can open some tabs, work with them in parallel - no problem.
    Multitab.jpg
  • Improved printing - more precise card size, white guidelines between the cards to help cutting.
    proxy.jpg
  • Minor improvment of mana buttons behavior
Last edited by hidalgo on 09 Jan 2017, 05:38, edited 2 times in total.
User avatar
hidalgo
 
Posts: 187
Joined: 17 Oct 2016, 21:51
Location: Russia, Moscow
Has thanked: 15 times
Been thanked: 35 times

Mtgdb.Gui v1.2.2

Postby hidalgo » 08 Jan 2017, 07:04

Deck reordering - as suggested by aidscoi168 here deck reordering is now possible. Implemented via drag-n-drop.
Last edited by hidalgo on 09 Jan 2017, 05:39, edited 1 time in total.
User avatar
hidalgo
 
Posts: 187
Joined: 17 Oct 2016, 21:51
Location: Russia, Moscow
Has thanked: 15 times
Been thanked: 35 times

Mtgdb.Gui v1.2.4.3

Postby hidalgo » 08 Jan 2017, 13:36

Deck reordering improved - now you can scroll the deck while dragging the card.
User avatar
hidalgo
 
Posts: 187
Joined: 17 Oct 2016, 21:51
Location: Russia, Moscow
Has thanked: 15 times
Been thanked: 35 times

Mtgdb.Gui v1.2.5

Postby hidalgo » 20 Jan 2017, 19:37

Now supporting Forge deck format.
You can actually play the deck you've built with Mtgdb.Gui. To do this
  • Select Forge format when saving your deck in Mtgdb.Gui
  • In Forge deck editor load the deck from previously saved file.

HINT
To skip importing deck in Forge you may save the deck to C:\Users\<Username>\AppData\Roaming\Forge\decks\constructed
This is somewhat riskier than manually loading the deck from file in Forge and then saving it, because Forge makes some adjustments when saving the imported deck, like assigning particular card image variants to the cards in your deck.
Last edited by hidalgo on 21 Jan 2017, 03:12, edited 2 times in total.
User avatar
hidalgo
 
Posts: 187
Joined: 17 Oct 2016, 21:51
Location: Russia, Moscow
Has thanked: 15 times
Been thanked: 35 times

Re: Mtgdb.Gui - Windows app to search MTG cards and build de

Postby Xitax » 20 Jan 2017, 22:39

This is very interesting. I'll have to check it out.

Will this program have the ability to use my card images kept separately?
Xitax
 
Posts: 798
Joined: 16 May 2010, 17:19
Has thanked: 126 times
Been thanked: 103 times

Mtgdb.Gui v1.2.6

Postby hidalgo » 21 Jan 2017, 02:53

Will this program have the ability to use my card images kept separately?
Configurable location of directories with card images. You may store images separately from Mtgdb.Gui directory. To tell the program where to find your images edit the configuration file \etc\Mtgdb.Gui.xml
To prevent your edit from accidental loss I recommend copying \etc directory to a location higher than Mtgdb.Gui directory in directories tree. Mtgdb.Gui will find and use the copied config.
Note that the entire \etc directory must be copied, not just the config file lying inside.

Particularely you may use images from Forge cache located at C:\Users\<Username>\AppData\Local\Forge\Cache\pics
User avatar
hidalgo
 
Posts: 187
Joined: 17 Oct 2016, 21:51
Location: Russia, Moscow
Has thanked: 15 times
Been thanked: 35 times

Mtgdb.Gui v1.2.7

Postby hidalgo » 22 Jan 2017, 01:47

  • Aether Revolt set included.
  • Better support for manually updating data from mtgjson.com
    Just replace \Resources\AllSets-x.json by current version from mtgjson.com
  • Reduced download size from ~70MB to ~60MB
User avatar
hidalgo
 
Posts: 187
Joined: 17 Oct 2016, 21:51
Location: Russia, Moscow
Has thanked: 15 times
Been thanked: 35 times

Mtgdb.Gui v1.2.8

Postby hidalgo » 22 Jan 2017, 19:32

  • Supporting Magarena deck format.
    To export deck to Magarena
    • Select Magarena format when saving your deck in Mtgdb.Gui
    • Save your deck to
      Code: Select all
      \Magarena\decks
      subdirectory of Magarena application.
    • In magarena threre are 3 groups of decks - "Prebuilt", "Player" and "Firemind top decks". As you may have guessed, your deck will be in "Player" group.
  • Translations to non-english languages for new sets Aether Revolt and Commander 2016
User avatar
hidalgo
 
Posts: 187
Joined: 17 Oct 2016, 21:51
Location: Russia, Moscow
Has thanked: 15 times
Been thanked: 35 times

Re: Mtgdb.Gui v 1.2.9

Postby hidalgo » 28 Jan 2017, 09:22

  • Faster startup and scrolling.
    • The startup delay decreased from ~12 seconds to ~4 seconds.
    • Previously the scroll was fast only when scrolling up after scrolled down or vice-versa. Now to get the scroll slowdown you have to scroll fast during several seconds. When scrolling normally the speed is ok from the very beggining.
  • Possibility to replace pictures in Forge by those you use with Mtgdb.Gui. See \ets\Mtgdb.Gui.xml <ForgeIntegration/> tag for instruction.
  • Scroll on zoomed card to see other variants of card image.
  • Fixed compatibilty issue when importing some decks from Forge.
  • Fixed some minor usability issues of intellisense in search textbox.
  • Minor visual enhancements e.g
    • Prettier visualization of dragged card
    • Partially showing the word that doesn't fit the last line.
User avatar
hidalgo
 
Posts: 187
Joined: 17 Oct 2016, 21:51
Location: Russia, Moscow
Has thanked: 15 times
Been thanked: 35 times

Next

Return to Pictures

Who is online

Users browsing this forum: Bing [Bot] and 13 guests


Who is online

In total there are 14 users online :: 1 registered, 0 hidden and 13 guests (based on users active over the past 10 minutes)
Most users ever online was 279 on 11 Jul 2013, 22:03

Users browsing this forum: Bing [Bot] and 13 guests

Login Form