Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Donald Haase
Cockatrice
Commits
0e371172
Commit
0e371172
authored
Mar 29, 2015
by
Gavin Bisesi
Browse files
Merge pull request #890 from ctrlaltca/fix_633
Fix 633
parents
19cdc65c
28ec1a71
Changes
2
Hide whitespace changes
Inline
Side-by-side
oracle/src/oracleimporter.cpp
View file @
0e371172
...
@@ -69,7 +69,8 @@ CardInfo *OracleImporter::addCard(const QString &setName,
...
@@ -69,7 +69,8 @@ CardInfo *OracleImporter::addCard(const QString &setName,
const
QString
&
cardType
,
const
QString
&
cardType
,
const
QString
&
cardPT
,
const
QString
&
cardPT
,
int
cardLoyalty
,
int
cardLoyalty
,
const
QString
&
cardText
)
const
QString
&
cardText
,
const
QStringList
&
colors
)
{
{
QStringList
cardTextRows
=
cardText
.
split
(
"
\n
"
);
QStringList
cardTextRows
=
cardText
.
split
(
"
\n
"
);
bool
splitCard
=
false
;
bool
splitCard
=
false
;
...
@@ -99,23 +100,6 @@ CardInfo *OracleImporter::addCard(const QString &setName,
...
@@ -99,23 +100,6 @@ CardInfo *OracleImporter::addCard(const QString &setName,
if
(
cardTextRows
[
i
].
contains
(
"{T}"
)
&&
cardTextRows
[
i
].
contains
(
"to your mana pool"
))
if
(
cardTextRows
[
i
].
contains
(
"{T}"
)
&&
cardTextRows
[
i
].
contains
(
"to your mana pool"
))
mArtifact
=
true
;
mArtifact
=
true
;
QStringList
colors
;
QStringList
allColors
=
QStringList
()
<<
"W"
<<
"U"
<<
"B"
<<
"R"
<<
"G"
;
for
(
int
i
=
0
;
i
<
allColors
.
size
();
i
++
)
if
(
cardCost
.
contains
(
allColors
[
i
]))
colors
<<
allColors
[
i
];
if
(
cardTextRows
.
contains
(
cardName
+
" is white."
))
colors
<<
"W"
;
if
(
cardTextRows
.
contains
(
cardName
+
" is blue."
))
colors
<<
"U"
;
if
(
cardTextRows
.
contains
(
cardName
+
" is black."
))
colors
<<
"B"
;
if
(
cardTextRows
.
contains
(
cardName
+
" is red."
))
colors
<<
"R"
;
if
(
cardTextRows
.
contains
(
cardName
+
" is green."
))
colors
<<
"G"
;
bool
cipt
=
cardText
.
contains
(
cardName
+
" enters the battlefield tapped"
)
&&
bool
cipt
=
cardText
.
contains
(
cardName
+
" enters the battlefield tapped"
)
&&
!
cardText
.
contains
(
cardName
+
" enters the battlefield tapped unless"
);
!
cardText
.
contains
(
cardName
+
" enters the battlefield tapped unless"
);
...
@@ -137,6 +121,25 @@ CardInfo *OracleImporter::addCard(const QString &setName,
...
@@ -137,6 +121,25 @@ CardInfo *OracleImporter::addCard(const QString &setName,
return
card
;
return
card
;
}
}
void
OracleImporter
::
extractColors
(
const
QStringList
&
in
,
QStringList
&
out
)
{
foreach
(
QString
c
,
in
)
{
if
(
c
==
"White"
)
out
<<
"W"
;
else
if
(
c
==
"Blue"
)
out
<<
"U"
;
else
if
(
c
==
"Black"
)
out
<<
"B"
;
else
if
(
c
==
"Red"
)
out
<<
"R"
;
else
if
(
c
==
"Green"
)
out
<<
"G"
;
else
qDebug
()
<<
"error: unknown color:"
<<
c
;
}
}
int
OracleImporter
::
importTextSpoiler
(
CardSet
*
set
,
const
QVariant
&
data
)
int
OracleImporter
::
importTextSpoiler
(
CardSet
*
set
,
const
QVariant
&
data
)
{
{
int
cards
=
0
;
int
cards
=
0
;
...
@@ -149,6 +152,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
...
@@ -149,6 +152,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
QString
cardType
;
QString
cardType
;
QString
cardPT
;
QString
cardPT
;
QString
cardText
;
QString
cardText
;
QStringList
colors
;
int
cardId
;
int
cardId
;
int
cardLoyalty
;
int
cardLoyalty
;
bool
cardIsToken
=
false
;
bool
cardIsToken
=
false
;
...
@@ -200,6 +204,12 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
...
@@ -200,6 +204,12 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
cardType
+=
card2
->
contains
(
"type"
)
?
QString
(
" // "
)
+
card2
->
value
(
"type"
).
toString
()
:
QString
(
""
);
cardType
+=
card2
->
contains
(
"type"
)
?
QString
(
" // "
)
+
card2
->
value
(
"type"
).
toString
()
:
QString
(
""
);
cardPT
+=
card2
->
contains
(
"power"
)
||
card2
->
contains
(
"toughness"
)
?
QString
(
" // "
)
+
card2
->
value
(
"power"
).
toString
()
+
QString
(
'/'
)
+
card2
->
value
(
"toughness"
).
toString
()
:
QString
(
""
);
cardPT
+=
card2
->
contains
(
"power"
)
||
card2
->
contains
(
"toughness"
)
?
QString
(
" // "
)
+
card2
->
value
(
"power"
).
toString
()
+
QString
(
'/'
)
+
card2
->
value
(
"toughness"
).
toString
()
:
QString
(
""
);
cardText
+=
card2
->
contains
(
"text"
)
?
QString
(
"
\n\n
---
\n\n
"
)
+
card2
->
value
(
"text"
).
toString
()
:
QString
(
""
);
cardText
+=
card2
->
contains
(
"text"
)
?
QString
(
"
\n\n
---
\n\n
"
)
+
card2
->
value
(
"text"
).
toString
()
:
QString
(
""
);
colors
.
clear
();
extractColors
(
card1
->
value
(
"colors"
).
toStringList
(),
colors
);
extractColors
(
card2
->
value
(
"colors"
).
toStringList
(),
colors
);
colors
.
removeDuplicates
();
}
else
{
}
else
{
// first card of a pair; enqueue for later merging
// first card of a pair; enqueue for later merging
// Conditional on cardId because promo prints have no muid - see #640
// Conditional on cardId because promo prints have no muid - see #640
...
@@ -219,6 +229,9 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
...
@@ -219,6 +229,9 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
cardLoyalty
=
map
.
contains
(
"loyalty"
)
?
map
.
value
(
"loyalty"
).
toInt
()
:
0
;
cardLoyalty
=
map
.
contains
(
"loyalty"
)
?
map
.
value
(
"loyalty"
).
toInt
()
:
0
;
cardIsToken
=
map
.
value
(
"layout"
)
==
"token"
;
cardIsToken
=
map
.
value
(
"layout"
)
==
"token"
;
colors
.
clear
();
extractColors
(
map
.
value
(
"colors"
).
toStringList
(),
colors
);
// Distinguish Vanguard cards from regular cards of the same name.
// Distinguish Vanguard cards from regular cards of the same name.
if
(
map
.
value
(
"layout"
)
==
"vanguard"
)
{
if
(
map
.
value
(
"layout"
)
==
"vanguard"
)
{
cardName
+=
" Avatar"
;
cardName
+=
" Avatar"
;
...
@@ -226,7 +239,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
...
@@ -226,7 +239,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
}
}
if
(
!
cardIsToken
)
{
if
(
!
cardIsToken
)
{
CardInfo
*
card
=
addCard
(
set
->
getShortName
(),
cardName
,
cardIsToken
,
cardId
,
cardCost
,
cmc
,
cardType
,
cardPT
,
cardLoyalty
,
cardText
);
CardInfo
*
card
=
addCard
(
set
->
getShortName
(),
cardName
,
cardIsToken
,
cardId
,
cardCost
,
cmc
,
cardType
,
cardPT
,
cardLoyalty
,
cardText
,
colors
);
if
(
!
set
->
contains
(
card
))
{
if
(
!
set
->
contains
(
card
))
{
card
->
addToSet
(
set
);
card
->
addToSet
(
set
);
...
...
oracle/src/oracleimporter.h
View file @
0e371172
...
@@ -32,7 +32,7 @@ private:
...
@@ -32,7 +32,7 @@ private:
QVariantMap
setsMap
;
QVariantMap
setsMap
;
QString
dataDir
;
QString
dataDir
;
CardInfo
*
addCard
(
const
QString
&
setName
,
QString
cardName
,
bool
isToken
,
int
cardId
,
QString
&
cardCost
,
QString
&
cmc
,
const
QString
&
cardType
,
const
QString
&
cardPT
,
int
cardLoyalty
,
const
QString
&
cardText
);
CardInfo
*
addCard
(
const
QString
&
setName
,
QString
cardName
,
bool
isToken
,
int
cardId
,
QString
&
cardCost
,
QString
&
cmc
,
const
QString
&
cardType
,
const
QString
&
cardPT
,
int
cardLoyalty
,
const
QString
&
cardText
,
const
QStringList
&
colors
);
signals:
signals:
void
setIndexChanged
(
int
cardsImported
,
int
setIndex
,
const
QString
&
setName
);
void
setIndexChanged
(
int
cardsImported
,
int
setIndex
,
const
QString
&
setName
);
void
dataReadProgress
(
int
bytesRead
,
int
totalBytes
);
void
dataReadProgress
(
int
bytesRead
,
int
totalBytes
);
...
@@ -43,6 +43,8 @@ public:
...
@@ -43,6 +43,8 @@ public:
int
importTextSpoiler
(
CardSet
*
set
,
const
QVariant
&
data
);
int
importTextSpoiler
(
CardSet
*
set
,
const
QVariant
&
data
);
QList
<
SetToDownload
>
&
getSets
()
{
return
allSets
;
}
QList
<
SetToDownload
>
&
getSets
()
{
return
allSets
;
}
const
QString
&
getDataDir
()
const
{
return
dataDir
;
}
const
QString
&
getDataDir
()
const
{
return
dataDir
;
}
protected:
void
extractColors
(
const
QStringList
&
in
,
QStringList
&
out
);
};
};
#endif
#endif
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment