Commit graph

103 commits

Author SHA1 Message Date
ebbit1q
ca5f1dd434
do some guesswork if cards can't be found (#4131)
modify up the simplifyCardName function to ignore right halves
add guessCard function that prioritises full card names the simple ones
fix imports for misformatted split cards or double faced cards
introduces a small concession: not completely formatted names with a
shared name on the left side will get mixed up, eg "bind" but not "Bind"
this should be fine considering how this would fix a lot more cards
2020-11-22 19:57:51 -05:00
ctrlaltca
ada13f6578 Card Database converter (#3694)
* Database converter

* Fix win compilation and NSIS installer

* Maybe fix windows again

* Re-fix windows
2019-05-31 11:48:30 -04:00
Rob Blanckaert
55c4207182 Fix related cards popup (#3613) 2019-03-04 02:19:37 -05:00
Rob Blanckaert
eb60fec8e2 Filter Strings for Deck Editor search (#3582)
* Add MagicCards.info like fitler parser.

* Use FilterString whenever one of [:=<>] is in the edit box.

* Opts

* Opt

* - Capture errors
- Allow querying any property by full name

* clang format

* Update cockatrice/src/filter_string.cpp

Co-Authored-By: basicer <basicer@basicer.com>

* - Some refactoring for clarity
- More filters
- Add filter help

* Clangify

* Add icon

* Fix test name

* Remove stay debug

* - Add Rarity filter
- Make " trigger filter string mode

* You have to pass both filter types

* clangify

* - Allow filtering by legality
- Import legality into card.xml

* Add format filter to filtertree

* More color search options

* RIP extended

* More fixes

* Fix c:m

* set syntax help parent

* Fix warning

* add additional explanations to syntax help

* Allow multiple ands/ors to be chained

* Cleanup and refactor

Signed-off-by: Zach Halpern <ZaHalpern+github@gmail.com>

* Move utility into guards

Signed-off-by: Zach Halpern <ZaHalpern+github@gmail.com>

* I heard you like refactors so I put a refactor inside your refactor (#3594)

* I heard you like refactors so I put a refactor inside your refactor

so you can refactor while you refactor

* clangify

* Update tab_deck_editor.h
2019-03-01 14:30:32 -05:00
ctrlaltca
ed70099e36 Rework of the card database, xml format and oracle parser (#3511)
* CardDB: merge all card properties in a new structure

* Pre Json parser changes

 * Cockatrice: use qt's builtin json support
 * Move qt-json src dir from cockatrice to oracle
 * Add dummy cockatricexml4 parser (yet to be implemented)

* Implement a new parser and xml format

 * cockatricexml4: new xml parser following the "generic properties hash" pattern;
 * oracleimporter: refactor the parsing code to better adapt to cockatricexml4; rewrote split cards parsing
 * carddb: change "colors" from a stringlist to a string
 * carddb: move the getMainCardType() method to the cockatricexml3 parser
 *

* CardInfo: show all properties (stil missing: nice name + translation)

* Rework the "add related card" feature so that it doesn't change the card name in the carddb

Also, fix token count display

* Picture loader: Added support for transform cards

* Fix side information for flip cards

Mtgjson uses side a/b for flip cards, while scryfall doesn't

* Pictureloader: dynamic tag resolution from card properties

Examples old => new
* !cardid! => !set:muid!
* !uuid!   => !set:uuid!
* !collectornumber! => !set:num!
New examples:
 * !prop:type!
 * !prop:manacost!

* Start moving mtg-related property names to a specific file

* Clangify

* Fix tests

* Make gcc an happy puppy

* Revert "Make gcc an happy puppy"

This reverts commit 446ec5f27516c4d3b32dbfc79557f4827c5c5bdf.

* Some gcc fixes

* Share set list between different db parsers, so they won't overwrite one each other

* All glory to the hypnoclangifier!

* Fix test compilation

* Cleanup edited files in the prior PR. (#3519)

* Cleanup edited files in the prior PR.

Signed-off-by: Zach Halpern <ZaHalpern+github@gmail.com>

* Fix includes

Signed-off-by: Zach Halpern <ZaHalpern+github@gmail.com>

* Update carddatabase.h
2019-01-23 18:17:10 -05:00
ctrlaltca
65f41e520e [WIP] Basic mtgjsonv4 support (#3458)
* Basic mtgjsonv4 support

* Fix set type

* [WIP] Oracle: use zx instead of zip

* clanfigy fixes

* Fix reading last block of xz

* Added back zip support

* [WIP] adding xz on ci + fixes

* typo

* resolve conflict

* Make gcc an happy puppy

* test appveyor build

* appveyor maybe

* Appveyor: add  xz bindir

* Update ssl version (the old one is not available anymore)

* Windows is a really shitty platform to code on.

* test vcpkg

* again

* gosh

* nowarn

* warning 2

* static

* Maybe

* cmake fix

* fsck this pain

* FindWin32SslRuntime: add vcpkg path

* Appveyor: cache support, force usable of openssl from vcpkg

* updated as suggested

* ouch

* Import card uuids and expose this property as !uuid! for card image download

* Minor style fixes

* address changed URL
2018-12-20 18:05:03 -05:00
David Szabo
d36f86c523 Duplicate cards & empty setlist (#3283)
* Card duplicates handled

* clangify

* kinda works, some cards are still duplicated

* separate card entries grouped together

* clangify
2018-06-16 22:42:22 -04:00
ctrlaltca
a7f4aace9c Extract the xml parser from carddatabase (#3223) 2018-05-04 03:46:08 -04:00
Vafthrudnir
a0d6a342d3 Loyalty filter added (#3087) 2018-02-07 11:33:01 -05:00
ctrlaltca
517420cccb Replace CardInfo* and Carset* with smart pointers (#3053)
* Replace CardInfo* and Carset* with smart pointers

* fixes to help memory & c++11 stuff
2018-02-02 12:52:47 -05:00
ctrlaltca
b29bd9e070
Clang-format (#3028)
* 1/3 Add .clang-format file and travis compilation check

* 2/3 Run clang-format

* 3/3 Fix compilation problems due to include reordering

* 3bis/3 AfterControlStatement: false
2018-01-27 10:41:32 +01:00
Zach H
d19744236e
Automatic Spoiler Season (#2991)
* oracle now can be run in spoiler or normal mode

* tests for travis

* only run on relaunch

* spoilers in client (not oracle now) and tray icon shows when done

* spoiler status will be checked before downloading spoiler file

* only download if they care about spoilers

* reload db on spoiler download

* manual update button, code cleanup, and fix enabling sets when new

* cleanup, nullchecks, and fixes to spoiler

* reload DB even if not in spoiler season; necessary as we have a check elsewhere to prevent the reload if spoiler check happens

* Implement changes from 2991#issuecomment-356169374

* Change implicit nullptrs, alert on file deletion, minor changes

* make reload thread safe and minor changes from 2991#issuecomment-356450302

* Fix locking

* Disable update now button while process running
2018-01-10 13:27:43 -05:00
Psithief
b05ed0376a Fixes #2712 (#2797)
When checking unknown sets, consider sets with an empty long name, 
set type and release date as 'incomplete'/'partial' sets.
Do not mark partial sets as known, or ask the user to enable them.
Instead, silently enable partial sets.
When a partial set becomes complete, the user is prompted to enable the
set as before. If they choose not to enable, those partial sets are 
disabled, as we can no longer assume they are disabled by default.
2017-07-07 00:45:46 -04:00
Psithief
ae15f5df06 Handling of tokens/related cards improved. (#2773) 2017-06-20 18:35:06 -04:00
Fabio Bas
ae456a5bc3 Renamed !setnumber! to !collectornumber! 2016-08-20 10:27:23 +02:00
Zach H
1ff98cfcb4 Add set names to dialog 2016-05-31 20:29:00 -04:00
Zach H
829c96673b Add rarity filter to deck editor 2016-05-31 03:33:56 -04:00
Fabio Bas
8c17e2d12a Implemented !setnumber!
fix #1741
2016-04-08 22:22:22 +02:00
Fabio Bas
1e3fb6c6e1 Rework "paths" settings loading and card database loading
* main.cpp: removed path checking and db loading
 * card database: merge card loading methods into a single one
 * settings cache: take care of returning safe paths for decks,
replays, etc..
 * main window: if db loading fails (eg. first run), propose to run
oracle

NSIS: propose to run cockatrice instead of oracle

Rework card database loading

 * Move carddatabase-related method out of deckeditor tab
 * Load cards in another thread and render them progressively
 * Optimize database reload after enabled sets change

Fix deck editor column width

 * removed the noCard hack.
 * getCard() no more creates cards instead of just returning existing
ones
 * Fix the “edit tokens” dialog.
 * PictureLoader: avoid trying to download twice the same card
 * PictureLoader: correct return of card background
 * AbstractCardItem: avoid recalculating card color at every paint

Use a different file to save custom tokens

Misc required improvements

 * Use nullptr;
 * Refactor CardInfoWidget to use CardInfoPicture and CardInfoText
instead of duplicating code;
 * Added CardInfo::getColorChar()
 * Fixed some potential crashes
 * removed dead code related to CardInfoWidget
 * Don't require a restart after adding a new custom sets file
 * Bump CMake requirements to 3.1
2016-03-15 22:27:55 +01:00
Fabio Bas
fddcbb8296 Lazy loading of card database view => faster startup times 2015-12-28 15:26:10 +01:00
Fabio Bas
4b1c59424e Implement reverse-related tag for cards 2015-12-26 19:57:20 +01:00
Fabio Bas
4d7795ca3a Split pictuloader out of carddatabase 2015-12-26 16:40:17 +01:00
Zach
d5adec53a2 Revert "Reimplemented PictureLoader as a singleton" 2015-09-23 03:17:33 -04:00
Fabio Bas
e0383af6dd workaround "Signals are protected in qt4" 2015-09-22 23:57:39 +02:00
Fabio Bas
f6c7f3355f Reimplemented PictureLoader as a singleton
* Removed remaining picture handling from card database and cardinfo
 * removed the “noCard object” hack
2015-09-22 23:09:53 +02:00
Fabio Bas
90655ff631 Prefer enabled sets when loading images; fix #1235 2015-07-22 17:35:44 +02:00
Fabio Bas
872177a5ed Card images blacklist; changed fallback urls 2015-06-23 15:44:43 +02:00
Fabio Bas
518bda8c09 Rotate 180 degrees the art of flipped cards 2015-06-13 16:10:06 +02:00
Fabio Bas
9ca1329cac Fix for gcc compilation (-Werror=reorder) 2015-06-11 13:01:05 +02:00
Fabio Bas
da84bb33e1 Import related cards in the card database 2015-06-11 10:48:50 +02:00
Fabio Bas
b566bf4a19 Load additional xml sets from $userprofile/customsets/ 2015-05-20 18:27:50 +02:00
Fabio Bas
66adeb6d75 Improve sets handling
Move the “check unknown sets” method inside the cards database, so that
it can be executed when the card database gets reloaded after a card
database update.
Additionally, show the user a welcome message the first time they run a
new cockatrice version, so that they know why they get shown the “edit
sets” window and how to hide/disable sets.
2015-05-01 18:55:14 +02:00
Fabio Bas
881cea27f4 Rework the way sets selection/importing works; fix #539 (rebased) 2015-04-18 18:47:09 +02:00
Fabio Bas
eb6d067a21 Speed up deck editor filtering
* card: cache simpleName for each card
 * deck editor: remove double comparation of searched term with card
name when sorting
2015-04-15 23:21:44 +02:00
Fabio Bas
70b047adcb Fix #745 2015-02-16 21:25:56 +01:00
Gavin Bises
e2fe25735b Parse cmc from json and store in cards.xml 2015-01-28 20:28:38 -05:00
Fabio Bas
f88621fd97 Use QPixmapCache for card images
Drop CardInfo’s own pixmap caches; use QPixmapCache instead.
Use QPixmap references instead of pointers.
Being stored in QPixmapCache, all card images are now subjected to
QPixmapCache’s size limit
2014-12-24 16:18:55 +01:00
Fabio Bas
ac43fa23b9 Better handle the TK set used for tokens
Let oracle add a basic TK set in cards.xml
Unify all the code previously using the string literal “TK”
2014-11-19 19:44:54 +01:00
Fabio Bas
cb37073828 Oracle: fetch release date and set type
and save them in cards.xml
2014-11-10 16:22:46 +01:00
Fabio Bas
8ca0b96d10 Rework the picture download behavior
Should fix #412
2014-11-08 15:08:49 +01:00
Gavin Bisesi
a26d4078cc Revert "Find cards by prefix" 2014-10-14 11:28:30 -04:00
Gavin Bisesi
6810ae46d6 Merge pull request #260 from Mawu3n4/master
Find cards by prefix
2014-10-09 11:29:02 -04:00
Gavin Bisesi
006451f402 Merge pull request #238 from arxanas/no-overwrite-tokens-xml
Fix #231: tokens.xml no longer overwritten by cards.xml.
2014-10-06 11:34:58 -04:00
Peng Liu
a83e6cdf48 Removed unused variable, bool stripped, from classes and functions. 2014-08-11 13:47:47 -04:00
Fabio Bas
3bce98e3a9 Fix crashes trying to load the picture of a card with no <set> 2014-08-07 23:14:41 +02:00
Waleed Khan
c0d4669088 Merge remote-tracking branch 'upstream/master' into no-overwrite-tokens-xml
Conflicts:
	cockatrice/src/carddatabase.cpp
2014-08-07 11:06:41 -04:00
Mawu3n4
621a47de9c add: find token cards by prefix 2014-08-06 17:54:47 +02:00
Waleed Khan
9ba5d7968e Stop clobbering tokens.xml tokens; don't let Oracle read tokens into cards.xml. 2014-07-29 23:46:04 -04:00
Fabio Bas
aa225f8df7 Add back support for custom picture urls in cards.xml 2014-07-26 23:36:51 +02:00
Waleed Khan
40e97140d6 Merge remote-tracking branch 'upstream/master'
Conflicts:
	cockatrice/src/carddatabase.cpp
2014-07-23 00:49:13 -04:00