Compare commits
1225 Commits
AndroidRel
...
travis-ci
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d7838829ad | ||
|
|
cea45370a6 | ||
|
|
2234a508c3 | ||
|
|
37ce334688 | ||
|
|
2abb218164 | ||
|
|
c8f763173d | ||
|
|
81d4b3d84f | ||
|
|
8d740c6bc1 | ||
|
|
d3379c9c08 | ||
|
|
89cdeead88 | ||
|
|
17d6860505 | ||
|
|
bc9142ad6e | ||
|
|
6c9c770f2d | ||
|
|
ed330fa70c | ||
|
|
7bce2a19e2 | ||
|
|
60ca9e05c0 | ||
|
|
f383d0b8a5 | ||
|
|
b17eb2c870 | ||
|
|
d3c0e397b6 | ||
|
|
a72c35a693 | ||
|
|
d0d7554b1d | ||
|
|
cf9f6ed474 | ||
|
|
eb8da4d4b2 | ||
|
|
a858ed405f | ||
|
|
8f432718cf | ||
|
|
f1ee227b84 | ||
|
|
8c031585cf | ||
|
|
74ddb33239 | ||
|
|
a00919cc02 | ||
|
|
6fe1e4d351 | ||
|
|
f6274dc914 | ||
|
|
783bcf1142 | ||
|
|
b9d6410aba | ||
|
|
b35e503a0f | ||
|
|
024e015dfc | ||
|
|
dd844fc25e | ||
|
|
c60f8787d1 | ||
|
|
4bdc1fdfe1 | ||
|
|
f6199719fd | ||
|
|
2b7baf7fc8 | ||
|
|
5184132e8b | ||
|
|
3a38e7f4ab | ||
|
|
17fdc5bc9f | ||
|
|
0b5f375df6 | ||
|
|
f982124209 | ||
|
|
177541b30c | ||
|
|
2ff2d4ac79 | ||
|
|
77c48dc1d5 | ||
|
|
91d19e2852 | ||
|
|
69885cf90a | ||
|
|
6229de7c55 | ||
|
|
7c8b634086 | ||
|
|
7a6c4b2c15 | ||
|
|
eaaa4d783b | ||
|
|
4c00dfb3b6 | ||
|
|
fe1a89e67a | ||
|
|
5dbe6f8c9c | ||
|
|
0fce1c591f | ||
|
|
d9e3101212 | ||
|
|
21b5308420 | ||
|
|
0d31ec5b21 | ||
|
|
65bf650868 | ||
|
|
e3aff3c23a | ||
|
|
1444ed6b7c | ||
|
|
1f98173197 | ||
|
|
b7c6725b44 | ||
|
|
f9e0746e1c | ||
|
|
b2c55e307c | ||
|
|
99033e3fb2 | ||
|
|
053f202f32 | ||
|
|
991625dea4 | ||
|
|
0ca310da54 | ||
|
|
d40d6f319e | ||
|
|
3a8d70ff27 | ||
|
|
1aed1c1517 | ||
|
|
a801069a3a | ||
|
|
e67078355a | ||
|
|
0d2e4af2a3 | ||
|
|
3e7ef8c77c | ||
|
|
b09763d89e | ||
|
|
bf3d35463f | ||
|
|
a753bb0c1b | ||
|
|
d2ea81bdbc | ||
|
|
d4b663220f | ||
|
|
f4353fb0e9 | ||
|
|
3ec955bf2c | ||
|
|
68d21ddd23 | ||
|
|
16e6df9503 | ||
|
|
7c696ac213 | ||
|
|
d18232df10 | ||
|
|
d6a1a8eda8 | ||
|
|
ced2c85076 | ||
|
|
6ef9ecc147 | ||
|
|
c704dfbfb2 | ||
|
|
d751ed3540 | ||
|
|
1202ea609e | ||
|
|
252e66736a | ||
|
|
42f2c34a46 | ||
|
|
c78e90a5b5 | ||
|
|
a52cd305b7 | ||
|
|
6a00c0ad1d | ||
|
|
e6c1f652db | ||
|
|
48bdc6c951 | ||
|
|
939dc20855 | ||
|
|
8c39eac856 | ||
|
|
272199dced | ||
|
|
cab90b8fe2 | ||
|
|
d5a8b80f5a | ||
|
|
4f3a179be4 | ||
|
|
519c90dd9d | ||
|
|
3d46b41efc | ||
|
|
fbf1f9e1e0 | ||
|
|
d0cd6e8b21 | ||
|
|
90c51fbb2d | ||
|
|
edf7714f0c | ||
|
|
77241ee496 | ||
|
|
ad0e8383e4 | ||
|
|
795debeb0d | ||
|
|
b7a7efd9db | ||
|
|
d005aefdc7 | ||
|
|
30647615f2 | ||
|
|
3ee3aaf7d8 | ||
|
|
a2403e4eee | ||
|
|
3e618c062a | ||
|
|
b1bc13cb0d | ||
|
|
fe60f5fe81 | ||
|
|
7bf463c7ea | ||
|
|
e1df4e5072 | ||
|
|
1b860218e0 | ||
|
|
75347a2f37 | ||
|
|
29985718a7 | ||
|
|
8cf2b7ab69 | ||
|
|
a99eaac35d | ||
|
|
c4eb931192 | ||
|
|
a6a053e10e | ||
|
|
ad26450151 | ||
|
|
e4f5d7784a | ||
|
|
023816aa65 | ||
|
|
bf6439db00 | ||
|
|
1b320d5325 | ||
|
|
6d872ed176 | ||
|
|
00ce669edb | ||
|
|
61dc3013f4 | ||
|
|
c4ba879382 | ||
|
|
495e5f1429 | ||
|
|
827f5a71bc | ||
|
|
573c72f72d | ||
|
|
612be9737d | ||
|
|
4bc339e82b | ||
|
|
668fc41862 | ||
|
|
457b8c3bf2 | ||
|
|
135f2a1e45 | ||
|
|
2d9cab915a | ||
|
|
22d8d16b71 | ||
|
|
453906e350 | ||
|
|
5e16e0d1ba | ||
|
|
1c09918225 | ||
|
|
251e1634f7 | ||
|
|
727d4579a0 | ||
|
|
52e3177ef2 | ||
|
|
fc40971dc7 | ||
|
|
ccc26f400d | ||
|
|
210a250dce | ||
|
|
a2594f1fb7 | ||
|
|
587155353c | ||
|
|
2b398b425d | ||
|
|
67c7102687 | ||
|
|
6212af0f48 | ||
|
|
5688b28981 | ||
|
|
c162eff8cf | ||
|
|
60e6d314e0 | ||
|
|
7cf722114b | ||
|
|
8645cb9e1e | ||
|
|
275eb9e06e | ||
|
|
60b4bb31f5 | ||
|
|
a5eb2eba37 | ||
|
|
a00cf2a1d1 | ||
|
|
b863188c3c | ||
|
|
21778de9fb | ||
|
|
c81eecf6d2 | ||
|
|
402323a990 | ||
|
|
75b335e59c | ||
|
|
9f69336c94 | ||
|
|
331e54a732 | ||
|
|
3d25630dd6 | ||
|
|
5b652ba688 | ||
|
|
c60df6c99d | ||
|
|
8bef671a70 | ||
|
|
9df8e90ab6 | ||
|
|
45d7cecaf3 | ||
|
|
730c8479f9 | ||
|
|
1dca08a33b | ||
|
|
233cec7a9f | ||
|
|
08f69dc832 | ||
|
|
464a6ff1b8 | ||
|
|
c664760359 | ||
|
|
f180b8cc56 | ||
|
|
044bbb3d4b | ||
|
|
c4884e4715 | ||
|
|
253be9e9bd | ||
|
|
db517858fa | ||
|
|
923a8e8fd9 | ||
|
|
8d395620a1 | ||
|
|
a547591608 | ||
|
|
601a4432dc | ||
|
|
ca7c8f5cf9 | ||
|
|
f44ad43413 | ||
|
|
1ec448daef | ||
|
|
adee84d60f | ||
|
|
a46786eb28 | ||
|
|
5c7b4b7618 | ||
|
|
bdcb10a54f | ||
|
|
6083ad76d6 | ||
|
|
b66674492b | ||
|
|
0f0e627cf5 | ||
|
|
83e7bfffd0 | ||
|
|
28b1c0e86f | ||
|
|
d0e4aa635b | ||
|
|
a82a2e3571 | ||
|
|
68161b2aaa | ||
|
|
4e7463c77e | ||
|
|
8ab7212aa2 | ||
|
|
16d989e8ca | ||
|
|
0c8e51693a | ||
|
|
9f4e7fb7b2 | ||
|
|
9dd5807cae | ||
|
|
7441ae2e8b | ||
|
|
c8869f4048 | ||
|
|
21440c977d | ||
|
|
06ccc923ea | ||
|
|
c82fc3b5ce | ||
|
|
7a19ae8f40 | ||
|
|
43be15e832 | ||
|
|
4ce2a5c36e | ||
|
|
82e53a8c39 | ||
|
|
dcc7e23b84 | ||
|
|
54e4d881a7 | ||
|
|
83f8d1c5d7 | ||
|
|
cf738e76d3 | ||
|
|
744e380df9 | ||
|
|
8970fa673b | ||
|
|
88e09bbd05 | ||
|
|
7d86578152 | ||
|
|
6fd6f9061c | ||
|
|
ba918b27ee | ||
|
|
0b90a471d6 | ||
|
|
24fd17ecf8 | ||
|
|
06ec97676e | ||
|
|
4e4752856b | ||
|
|
bc79115985 | ||
|
|
6ecd762d18 | ||
|
|
0fa1f04e71 | ||
|
|
225be4d9aa | ||
|
|
29b89ba562 | ||
|
|
7d51b985a6 | ||
|
|
91bfa11a4f | ||
|
|
46834a6ee9 | ||
|
|
07119b88f6 | ||
|
|
95af76a3b2 | ||
|
|
0132f7aa5e | ||
|
|
4df34c82c2 | ||
|
|
50d49e47e7 | ||
|
|
b29c37eb25 | ||
|
|
c7d09d8389 | ||
|
|
87ce6df145 | ||
|
|
f5a20110c4 | ||
|
|
264183a42a | ||
|
|
af0de566fe | ||
|
|
480adfe83a | ||
|
|
ce5b07b5b1 | ||
|
|
09098893e6 | ||
|
|
414d99525d | ||
|
|
4f42ddadb5 | ||
|
|
901a7ca984 | ||
|
|
d3feccff75 | ||
|
|
ccd17d32d0 | ||
|
|
5c67d11aa6 | ||
|
|
7a529bac6d | ||
|
|
2c62cfd487 | ||
|
|
a27216c317 | ||
|
|
8315acbe86 | ||
|
|
7a2f23db45 | ||
|
|
711f52e5ce | ||
|
|
91f50009e1 | ||
|
|
0cf8c1a970 | ||
|
|
2750b34b4f | ||
|
|
b023dd89b6 | ||
|
|
9504027fdc | ||
|
|
5c7528dbcf | ||
|
|
e856538259 | ||
|
|
1749330e8a | ||
|
|
893e64e4f7 | ||
|
|
169467158a | ||
|
|
ab0a5496b0 | ||
|
|
0c4deea3ed | ||
|
|
dd785a872e | ||
|
|
c8603204ac | ||
|
|
ae81568463 | ||
|
|
2fe9924fe5 | ||
|
|
818233213e | ||
|
|
d9019c0808 | ||
|
|
fdaed6503a | ||
|
|
e10213a373 | ||
|
|
34732a5f54 | ||
|
|
d8d6025652 | ||
|
|
01117f4cb7 | ||
|
|
a25448cde7 | ||
|
|
ef4b18b394 | ||
|
|
683b2fbed8 | ||
|
|
cdfadec38b | ||
|
|
7b434f33e8 | ||
|
|
29f1420abc | ||
|
|
39884d9711 | ||
|
|
a5c9f877f7 | ||
|
|
c603765908 | ||
|
|
a0b4a1f77c | ||
|
|
e0a2a45037 | ||
|
|
4c6f5126a6 | ||
|
|
50da2fef42 | ||
|
|
9dfd513ad3 | ||
|
|
30622010df | ||
|
|
f4d9de9490 | ||
|
|
1092d4121a | ||
|
|
2ec4b78a8a | ||
|
|
1b88f7d3f9 | ||
|
|
2ac3ec6f09 | ||
|
|
73138d2176 | ||
|
|
7cb0d8b843 | ||
|
|
1dc5c48ff6 | ||
|
|
42754fd83c | ||
|
|
301de0f6f7 | ||
|
|
9be1d44788 | ||
|
|
7328c45013 | ||
|
|
3d9526a1dd | ||
|
|
1b8157ef0e | ||
|
|
8d20fd6483 | ||
|
|
66741957c3 | ||
|
|
eb7d8850f4 | ||
|
|
934b9d2856 | ||
|
|
0af443b753 | ||
|
|
41e160ae34 | ||
|
|
8b620627d9 | ||
|
|
d943778309 | ||
|
|
06cb835a5b | ||
|
|
f1a529576e | ||
|
|
1af3cff419 | ||
|
|
5db6b807ba | ||
|
|
1c6b0bdfd5 | ||
|
|
3dfcc65fa6 | ||
|
|
c3937ce517 | ||
|
|
ab1fbaa806 | ||
|
|
6eca5bea2f | ||
|
|
e4d73d95ec | ||
|
|
363383df6d | ||
|
|
0d05804376 | ||
|
|
cdd36a404b | ||
|
|
64c509980c | ||
|
|
46ba018201 | ||
|
|
0cb931e6e2 | ||
|
|
58af6f73d9 | ||
|
|
e81f1299cb | ||
|
|
9b5f9684b0 | ||
|
|
d934c0948c | ||
|
|
917a3a88df | ||
|
|
dc5b8a8c52 | ||
|
|
d2b44e652b | ||
|
|
1ce3b469e7 | ||
|
|
07e6d90c98 | ||
|
|
85231cda01 | ||
|
|
8549b7b1b4 | ||
|
|
9f58ef9916 | ||
|
|
c734ee9fd1 | ||
|
|
77d87902d9 | ||
|
|
b5c8656ac9 | ||
|
|
28f6b73da6 | ||
|
|
521b505543 | ||
|
|
c5a3310103 | ||
|
|
0c053c713a | ||
|
|
bc06f93aae | ||
|
|
8e919aeeb1 | ||
|
|
6bd09e42e0 | ||
|
|
1f670b9919 | ||
|
|
c805a58fb0 | ||
|
|
34517004df | ||
|
|
b0506bcd96 | ||
|
|
7a3a6c04a6 | ||
|
|
54e4b08e1f | ||
|
|
67c22c5186 | ||
|
|
87aba86fa8 | ||
|
|
28ea300f42 | ||
|
|
858c26b46a | ||
|
|
70a6c7149c | ||
|
|
b4a34216c8 | ||
|
|
3868f4eb98 | ||
|
|
44304ee5b3 | ||
|
|
9f4b8d65c8 | ||
|
|
665f8ce755 | ||
|
|
e1d5348f23 | ||
|
|
b596dc9eea | ||
|
|
eb8370b86b | ||
|
|
fa69686f0a | ||
|
|
3fe5372d28 | ||
|
|
3058d42b49 | ||
|
|
4975ee0028 | ||
|
|
d4e1d809f3 | ||
|
|
44cb0d995e | ||
|
|
c73d08187b | ||
|
|
4382c34539 | ||
|
|
cb173b7bf9 | ||
|
|
b5d4674471 | ||
|
|
be1803dfb6 | ||
|
|
417c1af21e | ||
|
|
00bccd02da | ||
|
|
8596443da5 | ||
|
|
a2eda76a26 | ||
|
|
b4e25838bd | ||
|
|
44d703887c | ||
|
|
29fd3e4c96 | ||
|
|
0778b13e2b | ||
|
|
bef1f6d8b8 | ||
|
|
d6a0b04930 | ||
|
|
87ae60f323 | ||
|
|
85df061701 | ||
|
|
4ed44c638f | ||
|
|
54f0cd7864 | ||
|
|
4f523b1b9b | ||
|
|
d492481a4f | ||
|
|
3975a45858 | ||
|
|
5f2fbb370c | ||
|
|
d9bd6bbb32 | ||
|
|
31814bda37 | ||
|
|
8f61b590f8 | ||
|
|
37642c1f78 | ||
|
|
8ea7b4d4cb | ||
|
|
245f5c6e93 | ||
|
|
88d1c29621 | ||
|
|
44926393ac | ||
|
|
5d790c9406 | ||
|
|
66261b0f51 | ||
|
|
e99a9abacd | ||
|
|
b01c1455f5 | ||
|
|
650d794eec | ||
|
|
acf74e7f6e | ||
|
|
53f0c2421d | ||
|
|
01d46615a7 | ||
|
|
57f55e4270 | ||
|
|
5c159e86d7 | ||
|
|
fb03037923 | ||
|
|
ff6e4aec9a | ||
|
|
c78db0eb26 | ||
|
|
324e206b74 | ||
|
|
030dca051a | ||
|
|
24e3fd3267 | ||
|
|
a28f6b1194 | ||
|
|
38e97aa79f | ||
|
|
8adfd1b10b | ||
|
|
ffda7a53fe | ||
|
|
20ddd9157f | ||
|
|
a3f329bd7a | ||
|
|
13c6837b60 | ||
|
|
84fe9fbc74 | ||
|
|
e5ec92ac2a | ||
|
|
12155f9390 | ||
|
|
00da0bd0d1 | ||
|
|
4bf5943ac5 | ||
|
|
f205de7205 | ||
|
|
f782c535f9 | ||
|
|
030d6bc4bb | ||
|
|
9c10574e49 | ||
|
|
9512e5c3db | ||
|
|
8686fef96a | ||
|
|
06285c11c7 | ||
|
|
3b58790c96 | ||
|
|
a8b494f960 | ||
|
|
72c6f448d0 | ||
|
|
ce3c75817c | ||
|
|
56c943d6d1 | ||
|
|
21b0b4c524 | ||
|
|
51daf691b3 | ||
|
|
e889aff42c | ||
|
|
df07b6dc9e | ||
|
|
63c15b54d6 | ||
|
|
b76a231083 | ||
|
|
e0f58e1916 | ||
|
|
78bfa604e2 | ||
|
|
dcbe0c40b0 | ||
|
|
f384d75de8 | ||
|
|
cf6084071b | ||
|
|
0150796064 | ||
|
|
f91186ffa4 | ||
|
|
ba73da321b | ||
|
|
8ae3e1ea98 | ||
|
|
fa5b075af5 | ||
|
|
a66fced2f7 | ||
|
|
33492602fb | ||
|
|
b7dae1025b | ||
|
|
7627a00dce | ||
|
|
d761bac85c | ||
|
|
3bf1cca118 | ||
|
|
cdb056e8ba | ||
|
|
e47256eae7 | ||
|
|
5f1874edae | ||
|
|
22376e873e | ||
|
|
02d882a7c3 | ||
|
|
d878e0c450 | ||
|
|
1430cfd6b4 | ||
|
|
5a3493c0c9 | ||
|
|
911f8f6de6 | ||
|
|
fe8fbd058b | ||
|
|
c4529a0949 | ||
|
|
6ec3a68f0a | ||
|
|
458731778d | ||
|
|
64547271dc | ||
|
|
9e584951ac | ||
|
|
c859fdd08e | ||
|
|
1380ee6f20 | ||
|
|
2da2272a53 | ||
|
|
17b6996ae4 | ||
|
|
0f82b6efba | ||
|
|
178fcb9717 | ||
|
|
19f0c653d1 | ||
|
|
7dc76876e4 | ||
|
|
60457886cc | ||
|
|
ec078b6ccc | ||
|
|
ec730a4383 | ||
|
|
b2b3255f59 | ||
|
|
df925cfcb0 | ||
|
|
5b96f30b1a | ||
|
|
8feb870c8f | ||
|
|
d0b2340a73 | ||
|
|
efac298eb0 | ||
|
|
453c5b0d6e | ||
|
|
816010582a | ||
|
|
a260eb11a8 | ||
|
|
b1d271f1c2 | ||
|
|
3faa959c09 | ||
|
|
a12a5e1637 | ||
|
|
7c6d59a292 | ||
|
|
9836d8595c | ||
|
|
c9d5dfaf1b | ||
|
|
028f6cbb4e | ||
|
|
c56d1b0bec | ||
|
|
2e61f6c13d | ||
|
|
8437467320 | ||
|
|
039be43c2b | ||
|
|
a1af7d9b9f | ||
|
|
4ce37964f4 | ||
|
|
c1cdfa78d3 | ||
|
|
ff4911116c | ||
|
|
bb9d98cc0c | ||
|
|
2d93d9b3cc | ||
|
|
1c60ba6e7f | ||
|
|
11b3989615 | ||
|
|
c9f26a48c7 | ||
|
|
75cbaf0f06 | ||
|
|
de1dc6828d | ||
|
|
e6bf23e536 | ||
|
|
5b16ff4a69 | ||
|
|
ed42c3fd29 | ||
|
|
9cd67eedc1 | ||
|
|
acc589bdb6 | ||
|
|
2d78512ca2 | ||
|
|
84023a5f66 | ||
|
|
443f378d1b | ||
|
|
d4989d7576 | ||
|
|
860b0b64e3 | ||
|
|
ba40253a46 | ||
|
|
95b81b6425 | ||
|
|
b664c2bed1 | ||
|
|
c6c4c17b30 | ||
|
|
5e46016c4d | ||
|
|
da874738d6 | ||
|
|
0a68a056d8 | ||
|
|
5a3a32462d | ||
|
|
c70762f871 | ||
|
|
6c28496dd8 | ||
|
|
90ed6e1fdd | ||
|
|
60d7675a36 | ||
|
|
a9b42127d1 | ||
|
|
01fdcfdfec | ||
|
|
2d383e237f | ||
|
|
143b3d98b1 | ||
|
|
6f4377de76 | ||
|
|
722056e78a | ||
|
|
21710ddfb3 | ||
|
|
13f590c6a2 | ||
|
|
d604ae2d77 | ||
|
|
7a35c253cb | ||
|
|
b5129f702e | ||
|
|
6b1e51b4f6 | ||
|
|
3776bff594 | ||
|
|
3afcc7fdf9 | ||
|
|
e74921cbdf | ||
|
|
e9c33e3bea | ||
|
|
36d4db49ca | ||
|
|
2c40c77403 | ||
|
|
15febaf851 | ||
|
|
02dce1af2e | ||
|
|
5915ceb0a5 | ||
|
|
d6f666d9a0 | ||
|
|
37fa69fc39 | ||
|
|
8e47927805 | ||
|
|
f1c1161da5 | ||
|
|
392382e3e3 | ||
|
|
d6403918b6 | ||
|
|
fc9b0b233c | ||
|
|
f16755b86b | ||
|
|
f45e975b14 | ||
|
|
b3de6a283d | ||
|
|
7fa204fc9c | ||
|
|
f284a9691b | ||
|
|
9bb63a68f5 | ||
|
|
77d20e89c8 | ||
|
|
66f664207a | ||
|
|
bac69f95d8 | ||
|
|
75e372ac9b | ||
|
|
ef31192f33 | ||
|
|
fde707b726 | ||
|
|
e158e95245 | ||
|
|
5b23cc2e33 | ||
|
|
c72cdff0f1 | ||
|
|
831c8f73b0 | ||
|
|
2dc6c62acb | ||
|
|
9e1d1a056c | ||
|
|
9a32ae2c6d | ||
|
|
b1a2003a84 | ||
|
|
e2c1d62552 | ||
|
|
db0f6d6c0b | ||
|
|
bc44ee8056 | ||
|
|
65a9bd55d8 | ||
|
|
2aa0668c28 | ||
|
|
9f5e37a03c | ||
|
|
f27763870c | ||
|
|
ab22e02db8 | ||
|
|
257afd3525 | ||
|
|
eec38de558 | ||
|
|
35de677999 | ||
|
|
8b9dfdf96d | ||
|
|
c830ef88ca | ||
|
|
ba0daed776 | ||
|
|
f37d946b4e | ||
|
|
477419cc32 | ||
|
|
70e8d1c4b3 | ||
|
|
732f795be4 | ||
|
|
00536fa3d9 | ||
|
|
042f00cc58 | ||
|
|
acef89ea03 | ||
|
|
d7770d285f | ||
|
|
7932941a01 | ||
|
|
c4eac5e62b | ||
|
|
763bd60e74 | ||
|
|
3fa52e7ac5 | ||
|
|
9104afdef7 | ||
|
|
942c95e736 | ||
|
|
dc696a0f45 | ||
|
|
d26e9da6c4 | ||
|
|
ea09b1f6bc | ||
|
|
da033eb28e | ||
|
|
b2a0ccba05 | ||
|
|
3f146c94e5 | ||
|
|
9d92bdcd75 | ||
|
|
6354d8ccca | ||
|
|
1d0237f15d | ||
|
|
c535d033ec | ||
|
|
fcf900c5e0 | ||
|
|
c265ce8222 | ||
|
|
658b90067a | ||
|
|
80b6496780 | ||
|
|
711934a249 | ||
|
|
ea5e397595 | ||
|
|
c8dc416071 | ||
|
|
30026fc307 | ||
|
|
7b0fdcd721 | ||
|
|
c0afb3b95e | ||
|
|
5504bf23d1 | ||
|
|
28b51d3335 | ||
|
|
fb91726c35 | ||
|
|
a97a7edca6 | ||
|
|
92b4909fc8 | ||
|
|
3998c21178 | ||
|
|
41d925d7c9 | ||
|
|
7029636291 | ||
|
|
a916c1067f | ||
|
|
7322d4da8b | ||
|
|
31f15b12cb | ||
|
|
4d3e463aba | ||
|
|
166526dbbe | ||
|
|
348ada3f0d | ||
|
|
2c5f6d8332 | ||
|
|
e128d548f4 | ||
|
|
bb2ab1c1fe | ||
|
|
715bedb71a | ||
|
|
8fed9e47d1 | ||
|
|
89f8f7e25e | ||
|
|
7bbba293a6 | ||
|
|
d57a694d3c | ||
|
|
f31d5c04c8 | ||
|
|
85f66a8fec | ||
|
|
48ec606bc5 | ||
|
|
75cc809b16 | ||
|
|
2a27a491e7 | ||
|
|
3e75d70632 | ||
|
|
cf2d094df6 | ||
|
|
18a7955240 | ||
|
|
22ebc27997 | ||
|
|
c53ee24b5b | ||
|
|
25e681c04a | ||
|
|
365e0b49ae | ||
|
|
e3dc78b28e | ||
|
|
e3319f6fe4 | ||
|
|
0a9b006a94 | ||
|
|
5692be3b66 | ||
|
|
6ea5dea849 | ||
|
|
8debcf0fa2 | ||
|
|
1cf4845cb2 | ||
|
|
b9d1292add | ||
|
|
19063fd8db | ||
|
|
76cf732100 | ||
|
|
30a7eef611 | ||
|
|
99f0020583 | ||
|
|
f2e0da47ed | ||
|
|
ca66a428d8 | ||
|
|
f077a4e074 | ||
|
|
e46631a960 | ||
|
|
2da1957c70 | ||
|
|
ad6c48688d | ||
|
|
71da7fb384 | ||
|
|
0159e0e41e | ||
|
|
457a3fdc7a | ||
|
|
8507c0138d | ||
|
|
4f7901b946 | ||
|
|
e239dc039b | ||
|
|
1428eeba06 | ||
|
|
adcf6fb86d | ||
|
|
de2d663968 | ||
|
|
60f6c683a3 | ||
|
|
f8009672e9 | ||
|
|
9fe5ac1994 | ||
|
|
58efb51c07 | ||
|
|
5c3a064746 | ||
|
|
94aefa6dba | ||
|
|
7f6e96459c | ||
|
|
6fe57be115 | ||
|
|
37b3f28065 | ||
|
|
0b9468da1b | ||
|
|
e558f21ebc | ||
|
|
71c1512ef2 | ||
|
|
d03ebdace8 | ||
|
|
d86b9119a4 | ||
|
|
0ab872e152 | ||
|
|
5e7f81678d | ||
|
|
ff510248e9 | ||
|
|
bba5d4380d | ||
|
|
39ad95d4db | ||
|
|
e9adde8ac6 | ||
|
|
8fc120d9f9 | ||
|
|
7f8339aedf | ||
|
|
d2183f3b91 | ||
|
|
11b4aa7308 | ||
|
|
51481daf03 | ||
|
|
1bdd0f6e26 | ||
|
|
1de492973e | ||
|
|
eea96dac73 | ||
|
|
ebc378a620 | ||
|
|
3d08ca0cc1 | ||
|
|
f11cc41df8 | ||
|
|
19ce59b1b4 | ||
|
|
5101ac9d8e | ||
|
|
5149882bb5 | ||
|
|
26222ee853 | ||
|
|
0394e2cda9 | ||
|
|
501b310efa | ||
|
|
53e0b1b81c | ||
|
|
81be616847 | ||
|
|
b9b2c9afb0 | ||
|
|
848cd9a485 | ||
|
|
75921e1130 | ||
|
|
0b14639c66 | ||
|
|
5c54f85de4 | ||
|
|
0202313bc8 | ||
|
|
2671826b19 | ||
|
|
7dc89ad090 | ||
|
|
c54f0ea329 | ||
|
|
d90f3ce309 | ||
|
|
bcc6ced47c | ||
|
|
1b5c61a285 | ||
|
|
ca95192de3 | ||
|
|
c2e04443e3 | ||
|
|
f4f8c94c6a | ||
|
|
f957fca162 | ||
|
|
9671711bf5 | ||
|
|
ea3d4c67f8 | ||
|
|
cab1f59181 | ||
|
|
8c01611850 | ||
|
|
d6b682ab88 | ||
|
|
d2beaa0ab9 | ||
|
|
ce0fafd45b | ||
|
|
c0dbd00b74 | ||
|
|
a556aed34f | ||
|
|
8d19ee8ab3 | ||
|
|
8c4c80731c | ||
|
|
de6619b383 | ||
|
|
941dc253fb | ||
|
|
25705a6b02 | ||
|
|
4d56269130 | ||
|
|
96236df293 | ||
|
|
f447482e32 | ||
|
|
401b8fc496 | ||
|
|
2e2a2aaf03 | ||
|
|
66c2ab38ed | ||
|
|
6e0b7e2c23 | ||
|
|
f335623f69 | ||
|
|
f8369ee39a | ||
|
|
2a1bacdfa4 | ||
|
|
a93dd6586d | ||
|
|
f3dd1be125 | ||
|
|
5b49530df9 | ||
|
|
00555e3c75 | ||
|
|
972746d388 | ||
|
|
db3aaf96c7 | ||
|
|
e12c87b869 | ||
|
|
ad80b000c9 | ||
|
|
9bcc54c56c | ||
|
|
3e6d207bf0 | ||
|
|
6c836e0fde | ||
|
|
5f9e123571 | ||
|
|
20ba624de2 | ||
|
|
12426cf8a7 | ||
|
|
1cd6f00c59 | ||
|
|
365d5784b7 | ||
|
|
a90cddf589 | ||
|
|
5f71017142 | ||
|
|
c81402b8ce | ||
|
|
6122410db1 | ||
|
|
42e240c9ab | ||
|
|
01459b7759 | ||
|
|
cd2f4480f4 | ||
|
|
ce92679be0 | ||
|
|
e9705b2cc5 | ||
|
|
a2007dd59e | ||
|
|
d6052b718e | ||
|
|
6bfc79fb03 | ||
|
|
e9a5f30c71 | ||
|
|
9a61b7f13b | ||
|
|
2073f3d7ed | ||
|
|
774cd46892 | ||
|
|
f593ee7c9f | ||
|
|
47d35446e2 | ||
|
|
3e16969808 | ||
|
|
3e95f5cd05 | ||
|
|
15a8437d79 | ||
|
|
6a213bffa6 | ||
|
|
5be01a7577 | ||
|
|
89b8eabe0c | ||
|
|
3cecc34a9c | ||
|
|
9e76214be8 | ||
|
|
5b059f974f | ||
|
|
ecb4f64f91 | ||
|
|
992121c659 | ||
|
|
cbc41214d8 | ||
|
|
53c7a81666 | ||
|
|
a63065b44f | ||
|
|
cec4494ce6 | ||
|
|
60411027ca | ||
|
|
8d7b9293b5 | ||
|
|
2133dfd80c | ||
|
|
1a75f51aa6 | ||
|
|
2a8c036c63 | ||
|
|
c90f357bff | ||
|
|
4d381452b5 | ||
|
|
087b53c1c5 | ||
|
|
58a2769f2b | ||
|
|
ce38c3e5c5 | ||
|
|
12f7d5e4b6 | ||
|
|
fd703dd4d1 | ||
|
|
3ef4c1f6e0 | ||
|
|
0e95444552 | ||
|
|
aca90db2c2 | ||
|
|
09edd055e6 | ||
|
|
892ef6b1b3 | ||
|
|
ed838815ef | ||
|
|
8d8c4d1a95 | ||
|
|
debdf917ea | ||
|
|
f03961bc19 | ||
|
|
fb4572264d | ||
|
|
d7445a70f9 | ||
|
|
78bcf9a738 | ||
|
|
d71c85412f | ||
|
|
f5c9ab72ef | ||
|
|
5c4cd74c39 | ||
|
|
5a1daf5dc9 | ||
|
|
4de2a45195 | ||
|
|
91d3a6ecb7 | ||
|
|
763918e129 | ||
|
|
525c166f62 | ||
|
|
6b2ed24fc3 | ||
|
|
1eae3a032f | ||
|
|
755cfe19d5 | ||
|
|
559331cf82 | ||
|
|
18fddb1537 | ||
|
|
861620cb6e | ||
|
|
568f3ae94f | ||
|
|
0af00a313e | ||
|
|
ff52f020e2 | ||
|
|
55bf7bcbda | ||
|
|
bccb740c45 | ||
|
|
b7307adc10 | ||
|
|
edb71dcef0 | ||
|
|
7ddf232615 | ||
|
|
a7cdb0a514 | ||
|
|
7157e571c8 | ||
|
|
d073b7b3c0 | ||
|
|
27d67398fb | ||
|
|
cc6ced9197 | ||
|
|
712e42c71f | ||
|
|
53efc96e30 | ||
|
|
5b2ac0f022 | ||
|
|
b5cdcc29bc | ||
|
|
df3e6e5fb7 | ||
|
|
27145bdabe | ||
|
|
71aedfd96d | ||
|
|
8530292fef | ||
|
|
f1bc268f58 | ||
|
|
2e79f5a369 | ||
|
|
1427b1709a | ||
|
|
960d4d35fb | ||
|
|
7a467ce860 | ||
|
|
cd46314b4e | ||
|
|
9c81acff53 | ||
|
|
d8b2e2873b | ||
|
|
98cd6675d9 | ||
|
|
002085ad32 | ||
|
|
2e525dfdcc | ||
|
|
a378e3a72d | ||
|
|
7e14b2fc5a | ||
|
|
51016f9258 | ||
|
|
adad723110 | ||
|
|
a10e7ab279 | ||
|
|
0c124327de | ||
|
|
6c5f706064 | ||
|
|
2422e72713 | ||
|
|
e49e4a5e67 | ||
|
|
14d8d65de0 | ||
|
|
d3305cadb6 | ||
|
|
17c28ca584 | ||
|
|
151905c5f3 | ||
|
|
ab49ea07e8 | ||
|
|
8e436e6b55 | ||
|
|
de5414ec19 | ||
|
|
e5d71579af | ||
|
|
5ec4c9714c | ||
|
|
eafb2558c2 | ||
|
|
4cefcb26c2 | ||
|
|
8a86e7d0f7 | ||
|
|
b20fb61e1c | ||
|
|
feeed99c62 | ||
|
|
aa5008f865 | ||
|
|
c4ce2aa977 | ||
|
|
7cc31a473c | ||
|
|
a8193012aa | ||
|
|
eb0ecedecf | ||
|
|
de44abd529 | ||
|
|
9807ca99f9 | ||
|
|
8c9d2d6f1d | ||
|
|
65ef1f384c | ||
|
|
bf2cc36719 | ||
|
|
34ffe7eefa | ||
|
|
b756c8b9ec | ||
|
|
19a98c9ad6 | ||
|
|
e159025ebb | ||
|
|
05e81ad923 | ||
|
|
8e1a0eb20f | ||
|
|
a881b8fa5a | ||
|
|
6982030013 | ||
|
|
01da4c6af5 | ||
|
|
a42805d4cc | ||
|
|
01145c4581 | ||
|
|
4d1dfb58ff | ||
|
|
43f44a4142 | ||
|
|
b314d3cafe | ||
|
|
9bbf28e44b | ||
|
|
d995d25f69 | ||
|
|
1f58b8e6a7 | ||
|
|
eeb881cdc2 | ||
|
|
807874ce5d | ||
|
|
213d11c8e9 | ||
|
|
dfd0761506 | ||
|
|
4c30086896 | ||
|
|
1efdca399e | ||
|
|
4f27c8051a | ||
|
|
d43693fef0 | ||
|
|
88f0202b16 | ||
|
|
be98e0b543 | ||
|
|
8a907bb3f3 | ||
|
|
1b34a478a1 | ||
|
|
cda0bba555 | ||
|
|
dae1b10de1 | ||
|
|
0c4e72ece2 | ||
|
|
77dfd51b28 | ||
|
|
b601a549d0 | ||
|
|
c4907edd76 | ||
|
|
dcf4148d75 | ||
|
|
8afeef568f | ||
|
|
dd5635d9cd | ||
|
|
62a6ddf3ca | ||
|
|
195daa97f3 | ||
|
|
b1c5c87443 | ||
|
|
1ab88940f9 | ||
|
|
8ba97b8a74 | ||
|
|
e7f5442a64 | ||
|
|
066dd866b1 | ||
|
|
fa0722a9e2 | ||
|
|
5f276f6b22 | ||
|
|
c45b5751af | ||
|
|
161802cf9d | ||
|
|
0679832b04 | ||
|
|
b20d6f8820 | ||
|
|
52fb40d543 | ||
|
|
067279d2e8 | ||
|
|
a0bbed6c6c | ||
|
|
9371125eb0 | ||
|
|
0a0f6cdce9 | ||
|
|
fc350be3a1 | ||
|
|
be731a99c0 | ||
|
|
c65fd1d7ae | ||
|
|
be899159f3 | ||
|
|
2400e6578b | ||
|
|
1aac2b8e75 | ||
|
|
c7581220b8 | ||
|
|
f3968215e0 | ||
|
|
56a8011b78 | ||
|
|
adccae7937 | ||
|
|
1c63c1937a | ||
|
|
4753f7bb51 | ||
|
|
d7fec7d10a | ||
|
|
3c90a29b1e | ||
|
|
98de361bf4 | ||
|
|
c1df10e064 | ||
|
|
3743e0bc03 | ||
|
|
12e6a4d0ae | ||
|
|
969511953a | ||
|
|
223e2e04b0 | ||
|
|
0b0368ffcc | ||
|
|
9e4684b524 | ||
|
|
d825c7e4ea | ||
|
|
c38c996773 | ||
|
|
71a9ef00ee | ||
|
|
89a30ae5ee | ||
|
|
94bd0e057b | ||
|
|
0efc6338bb | ||
|
|
3b98da1d86 | ||
|
|
6927c68811 | ||
|
|
f0909ba3a0 | ||
|
|
2f7d2873f7 | ||
|
|
7a6b6aa335 | ||
|
|
2861ef0c73 | ||
|
|
059fc06f3a | ||
|
|
a971576de0 | ||
|
|
a4e059e3ec | ||
|
|
07408b7bc3 | ||
|
|
9722f7b71e | ||
|
|
45d8413d59 | ||
|
|
5c400457a9 | ||
|
|
3e9ee5890f | ||
|
|
1acdb40498 | ||
|
|
1dc0b00133 | ||
|
|
f2208389bd | ||
|
|
ab92c3e15b | ||
|
|
018e35295a | ||
|
|
2c9e90eee0 | ||
|
|
847f21f7dc | ||
|
|
b90dfbe3b0 | ||
|
|
c230794c82 | ||
|
|
7f83aa7253 | ||
|
|
1039815017 | ||
|
|
2c43eac80d | ||
|
|
4aa6ad3203 | ||
|
|
730b05ad1b | ||
|
|
5a7b2c5029 | ||
|
|
7ae551de9d | ||
|
|
96dd3faef0 | ||
|
|
ffdc8cd9ff | ||
|
|
8256ac3bee | ||
|
|
037ab83519 | ||
|
|
a56e77310d | ||
|
|
5350fb7f5d | ||
|
|
9161f89057 | ||
|
|
1d2abeb20b | ||
|
|
833c21192a | ||
|
|
86168e454f | ||
|
|
a20c2ce29a | ||
|
|
874b27c56d | ||
|
|
a7dc44e4e1 | ||
|
|
047d08882e | ||
|
|
52df1ad963 | ||
|
|
c2cec37928 | ||
|
|
239a186b36 | ||
|
|
5aeb2ebc05 | ||
|
|
a7e87aaae5 | ||
|
|
eb545eca57 | ||
|
|
44ab1827bf | ||
|
|
96b4f024b4 | ||
|
|
b070035770 | ||
|
|
1b0c3d8c00 | ||
|
|
2e71cb08d0 | ||
|
|
3da5d12bee | ||
|
|
e8019bbb92 | ||
|
|
30dab27202 | ||
|
|
cc7077d783 | ||
|
|
fda7e9f39d | ||
|
|
e178533493 | ||
|
|
e3ad9296bc | ||
|
|
01042a62ae | ||
|
|
7bd940ddb3 | ||
|
|
f168702aad | ||
|
|
2a33c0c375 | ||
|
|
eea240d7f2 | ||
|
|
afb98a374c | ||
|
|
ed0d28eaf6 | ||
|
|
50345101e5 | ||
|
|
c0e4010c88 | ||
|
|
193d7accb4 | ||
|
|
a9be34c627 | ||
|
|
0e14226968 | ||
|
|
068b03a0bb | ||
|
|
b99f9ae752 | ||
|
|
3519871f80 | ||
|
|
e9db853f28 | ||
|
|
a6fdd89e1d | ||
|
|
b8bfe7acc1 | ||
|
|
dd5d5589ff | ||
|
|
7d460e093c | ||
|
|
54e86915b0 | ||
|
|
ab2effd776 | ||
|
|
4f0da67a83 | ||
|
|
014ca36a4a | ||
|
|
2971e64182 | ||
|
|
d7737c13ff | ||
|
|
eebcc9c925 | ||
|
|
0c90b39a96 | ||
|
|
4f3f96337f | ||
|
|
e855ca72aa | ||
|
|
8ff47bf8e2 | ||
|
|
9d75f69a79 | ||
|
|
ae33977e10 | ||
|
|
07b5f35b98 | ||
|
|
c4acf006dd | ||
|
|
12b80307a7 | ||
|
|
43fd399d10 | ||
|
|
cc5d8940bf | ||
|
|
09ed1ab683 | ||
|
|
26c85fd18a | ||
|
|
894615bee6 | ||
|
|
aeed094be0 | ||
|
|
61068ee166 | ||
|
|
bdce25cb8c | ||
|
|
6a71bf5653 | ||
|
|
3007ddc093 | ||
|
|
4495e1649f | ||
|
|
f960cdea9b | ||
|
|
b70b2a65bc | ||
|
|
4a73e90da8 | ||
|
|
fc59bef156 | ||
|
|
512f4ca4e4 | ||
|
|
f254ca57c6 | ||
|
|
5e35dac1da | ||
|
|
44cbd408ce | ||
|
|
6fbe9de1a8 | ||
|
|
3b1410f913 | ||
|
|
f9265923a9 | ||
|
|
3282848631 | ||
|
|
f142363bfa | ||
|
|
c0e9800179 | ||
|
|
97308ca31c | ||
|
|
02992954c2 | ||
|
|
78d4f178a3 | ||
|
|
fe577d9dd0 | ||
|
|
007010067b | ||
|
|
bc2d8dab31 | ||
|
|
296f8645fb | ||
|
|
2d76c8ff0d | ||
|
|
0a3d9f9876 | ||
|
|
2a1d0b19ce | ||
|
|
a99c57ab1a | ||
|
|
6832049ccc | ||
|
|
6d72753216 | ||
|
|
b6b3898536 | ||
|
|
99922d38e2 | ||
|
|
161623a8d2 | ||
|
|
155a7a6582 | ||
|
|
6aafe9dee0 | ||
|
|
680c9d64cb | ||
|
|
ca395492d5 | ||
|
|
ea920d352f | ||
|
|
0c0031455b | ||
|
|
a8a9893ce4 | ||
|
|
5143743661 | ||
|
|
88a42b25cc | ||
|
|
b371bf6efa | ||
|
|
3bc7ed6f8c | ||
|
|
f996510969 | ||
|
|
58fd119636 | ||
|
|
f275792604 | ||
|
|
9f8ead5e4e | ||
|
|
a35ccbbe5b | ||
|
|
9a60a8838f | ||
|
|
bb9e02da6b | ||
|
|
0fd0c5ecc1 | ||
|
|
c89961ebf0 | ||
|
|
0f81e82206 | ||
|
|
7c7c8c4f34 | ||
|
|
3d7362aa9d | ||
|
|
f3061a2526 | ||
|
|
2657af1aef | ||
|
|
dd03ed4b30 | ||
|
|
64c6b05963 | ||
|
|
05017b0236 | ||
|
|
efd9cce4ef | ||
|
|
144c78fa4b | ||
|
|
3147aa539c | ||
|
|
ad4532932b | ||
|
|
ffac3462af | ||
|
|
7c163592b5 | ||
|
|
37987ddb57 | ||
|
|
9568fe7d4d |
31
.travis.yml
@@ -1,4 +1,5 @@
|
||||
language: cpp
|
||||
dist: trusty
|
||||
branches:
|
||||
except:
|
||||
- latest-master
|
||||
@@ -9,16 +10,16 @@ before_install:
|
||||
- export BUILD_Qt=YES
|
||||
- export BUILD_MAC=NO
|
||||
# Only building on Mac when not handling pull request
|
||||
- if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
|
||||
export BUILD_MAC=YES;
|
||||
fi
|
||||
# - if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
|
||||
# export BUILD_MAC=YES;
|
||||
# fi
|
||||
- sudo apt-get update -qq
|
||||
# Building for PSP here
|
||||
- if [ "$BUILD_PSP" == "YES" ]; then
|
||||
export PSPDEV="$TRAVIS_BUILD_DIR/opt/pspsdk" &&
|
||||
export PSPSDK="$PSPDEV/psp/sdk" &&
|
||||
export PATH="$PATH:$PSPDEV/bin:$PSPSDK/bin" &&
|
||||
wget -O sdk.lzma http://superb-sea2.dl.sourceforge.net/project/minpspw/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma;
|
||||
wget -O sdk.lzma http://downloads.sourceforge.net/project/minpspw/SDK%20%2B%20devpak/pspsdk%200.11.2/minpspw_0.11.2-amd64.tar.lzma;
|
||||
fi
|
||||
# Building for Qt here
|
||||
- if [ "$BUILD_Qt" == "YES" ]; then
|
||||
@@ -31,9 +32,11 @@ before_install:
|
||||
# Building for Android here
|
||||
- if [ "$BUILD_ANDROID" == "YES" ]; then
|
||||
export ANDROID="android-sdk-linux/tools/android" &&
|
||||
if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch jq; fi &&
|
||||
wget http://dl.google.com/android/ndk/android-ndk-r9-linux-x86_64.tar.bz2 -nv &&
|
||||
wget http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz -nv;
|
||||
if [ `uname -m` = x86_64 ]; then
|
||||
sudo dpkg --add-architecture i386 && sudo apt-get update &&
|
||||
sudo apt-get install -qq --force-yes libgd2-xpm-dev libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 jq ant; fi &&
|
||||
wget https://dl.google.com/android/repository/android-ndk-r22-linux-x86_64.zip -nv &&
|
||||
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz -nv;
|
||||
fi
|
||||
|
||||
install:
|
||||
@@ -41,21 +44,16 @@ install:
|
||||
tar -x --xz -f sdk.lzma;
|
||||
fi
|
||||
- if [ "$BUILD_ANDROID" == "YES" ]; then
|
||||
tar --absolute-names -jxf android-ndk-r9-linux-x86_64.tar.bz2 &&
|
||||
tar -zxf android-sdk_r24.3.4-linux.tgz &&
|
||||
unzip android-ndk-r22-linux-x86_64.zip &&
|
||||
tar -zxf android-sdk_r24.4.1-linux.tgz &&
|
||||
$ANDROID list sdk --extended -a &&
|
||||
echo yes | $ANDROID update sdk -a -t tools,platform-tools,build-tools-23.0.1,android-10 --no-ui --force --no-https;
|
||||
echo yes | $ANDROID update sdk -a -t tools,platform-tools,build-tools-23.0.1,android-23 --no-ui --force --no-https;
|
||||
fi
|
||||
- sudo python -m easy_install --upgrade pyOpenSSL
|
||||
- sudo pip install pyjavaproperties
|
||||
- sudo pip install github3.py
|
||||
- sudo pip install cpp-coveralls
|
||||
|
||||
env:
|
||||
global:
|
||||
- secure: "EBzr1+qjQsOhn0s+tcFmXR1jP9B0xiOSXuXbRXWZ1OEHNvp8+A5/pS84LYVFlaZqmxr5dApxvPtwhgLIUbQ3EPXm8LpC3KgSD4dS+9/QMbxhe5TK4oczgFRGcDTMJQZsCzhOh7hp3tbcbJg5Gp+VT7aFjFQSHDGwhzSJXsXwh/8="
|
||||
- secure: "X5dTQfofqAutnXxmu11Ep2MQ5QYnMN8m0AITRtwymhEF2UclcOudI1+skPtuhAGbWQnSO+lhunV3cvMfw2/Ml3k/VDz6VdFSKFrzAu7ja1VLJfcxr7chi0s8q30pVBb66tGydjIBac3B+RQyqgmZQW1frbRrhC/kPFQ6wPWOJdQ="
|
||||
- secure: "T97NUPnxCpVZ/c5HH0zfo0FO3DPSRMSmze58ubW5EUTZOjAMtEt+OFdsrNZvUTCugUj2M1agtonZbAbczpaAL+lgZcHDgXgWMkfO0pMnsWX1yyCNqMuE/iTMpJr/xsLQeyWlftWjJLsseQU45abZsd1XVmda/G+ZhrDLF1y55SA="
|
||||
|
||||
script: "tools/travis-script.sh"
|
||||
|
||||
after_success:
|
||||
@@ -63,3 +61,4 @@ after_success:
|
||||
- python tools/upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l core.zip -r Wagic-core.zip -b $TRAVIS_BRANCH
|
||||
- python tools/upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l projects/mtg/Android/bin/Wagic-debug.apk -r Wagic-android.apk -b $TRAVIS_BRANCH
|
||||
- python tools/upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l projects/mtg/psprelease.zip -r Wagic-psp.zip -b $TRAVIS_BRANCH
|
||||
- python tools/upload-binaries.py -t $GH_TOKEN -s $TRAVIS_COMMIT -l qt-gui-build/linuxqtrelease.zip -r Wagic-linux-QT.zip -b $TRAVIS_BRANCH
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace boost {
|
||||
|
||||
enum xtime_clock_types
|
||||
{
|
||||
TIME_UTC=1
|
||||
TIME_UTC_=1
|
||||
// TIME_TAI,
|
||||
// TIME_MONOTONIC,
|
||||
// TIME_PROCESS,
|
||||
@@ -68,7 +68,7 @@ inline xtime get_xtime(boost::system_time const& abs_time)
|
||||
|
||||
inline int xtime_get(struct xtime* xtp, int clock_type)
|
||||
{
|
||||
if (clock_type == TIME_UTC)
|
||||
if (clock_type == TIME_UTC_)
|
||||
{
|
||||
*xtp=get_xtime(get_system_time());
|
||||
return clock_type;
|
||||
|
||||
@@ -350,7 +350,7 @@ namespace boost
|
||||
cond.timed_wait(lock, xt);
|
||||
# endif
|
||||
xtime cur;
|
||||
xtime_get(&cur, TIME_UTC);
|
||||
xtime_get(&cur, TIME_UTC_);
|
||||
if (xtime_cmp(xt, cur) <= 0)
|
||||
return;
|
||||
}
|
||||
@@ -365,7 +365,7 @@ namespace boost
|
||||
BOOST_VERIFY(!pthread_yield());
|
||||
# else
|
||||
xtime xt;
|
||||
xtime_get(&xt, TIME_UTC);
|
||||
xtime_get(&xt, TIME_UTC_);
|
||||
sleep(xt);
|
||||
# endif
|
||||
}
|
||||
|
||||
@@ -20,8 +20,8 @@ const int NANOSECONDS_PER_MICROSECOND = 1000;
|
||||
inline void to_time(int milliseconds, boost::xtime& xt)
|
||||
{
|
||||
int res = 0;
|
||||
res = boost::xtime_get(&xt, boost::TIME_UTC);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC);
|
||||
res = boost::xtime_get(&xt, boost::TIME_UTC_);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC_);
|
||||
|
||||
xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
|
||||
xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
|
||||
@@ -57,8 +57,8 @@ inline void to_timespec_duration(const boost::xtime& xt, timespec& ts)
|
||||
{
|
||||
boost::xtime cur;
|
||||
int res = 0;
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC);
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC_);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC_);
|
||||
|
||||
if (boost::xtime_cmp(xt, cur) <= 0)
|
||||
{
|
||||
@@ -88,8 +88,8 @@ inline void to_duration(boost::xtime xt, int& milliseconds)
|
||||
{
|
||||
boost::xtime cur;
|
||||
int res = 0;
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC);
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC_);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC_);
|
||||
|
||||
if (boost::xtime_cmp(xt, cur) <= 0)
|
||||
milliseconds = 0;
|
||||
@@ -110,8 +110,8 @@ inline void to_microduration(boost::xtime xt, int& microseconds)
|
||||
{
|
||||
boost::xtime cur;
|
||||
int res = 0;
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC);
|
||||
res = boost::xtime_get(&cur, boost::TIME_UTC_);
|
||||
BOOST_ASSERT(res == boost::TIME_UTC_);
|
||||
|
||||
if (boost::xtime_cmp(xt, cur) <= 0)
|
||||
microseconds = 0;
|
||||
|
||||
31
CHANGELOG.md
@@ -1,6 +1,37 @@
|
||||
# Changelog
|
||||
|
||||
## [latest-master] (https://github.com/WagicProject/wagic/tree/latest-master)
|
||||
#### 8/3/16
|
||||
- *Merged pull-request:* andAbility on ATokenCreator, Extend AAFlip [#\824] (https://github.com/WagicProject/wagic/pull/824) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/31/16
|
||||
- *Merged pull-request:* Fix Chandra, Flamecaller & Cryptolith Rite [#\818] (https://github.com/WagicProject/wagic/pull/818) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/28/16
|
||||
- *Merged pull-request:* changing some of the logic to the previous fixes, we want to avoid using code that looks for specific card names. [#\800] (https://github.com/WagicProject/wagic/pull/800) ([zethfoxster](https://github.com/zethfoxster))
|
||||
|
||||
#### 7/26/16
|
||||
- *Merged pull-request:* granted flashback [#\791] (https://github.com/WagicProject/wagic/pull/791) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/23/16
|
||||
- *Merged pull-request:* Fix Flying vs Moat (multiples of them). Fixes issue #526 [#\783] (https://github.com/WagicProject/wagic/pull/783) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/19/16
|
||||
- *Merged pull-request:* pushing to master [#\770] (https://github.com/WagicProject/wagic/pull/770) ([zethfoxster](https://github.com/zethfoxster))
|
||||
|
||||
#### 7/18/16
|
||||
- *Merged pull-request:* Fix Deck Menu layer, Change Main Menu Layout, Fix Crash cdaactive on tokens [#\765] (https://github.com/WagicProject/wagic/pull/765) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/12/16
|
||||
- *Merged pull-request:* Pushing fixes [#\750] (https://github.com/WagicProject/wagic/pull/750) ([zethfoxster](https://github.com/zethfoxster))
|
||||
|
||||
- *Merged pull-request:* try to fix failed logic here [#\747] (https://github.com/WagicProject/wagic/pull/747) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/9/16
|
||||
- *Merged pull-request:* pushing to master [#\738] (https://github.com/WagicProject/wagic/pull/738) ([zethfoxster](https://github.com/zethfoxster))
|
||||
|
||||
- *Merged pull-request:* Sorted Primitives and Cleanup Tabs [#\736] (https://github.com/WagicProject/wagic/pull/736) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
#### 7/7/16
|
||||
- *Merged pull-request:* Sorted Primitives and Cleanup Tabs [#\727] (https://github.com/WagicProject/wagic/pull/719) ([kevlahnota](https://github.com/kevlahnota))
|
||||
|
||||
|
||||
@@ -77,6 +77,13 @@ SDL_AtomicTryLock(SDL_SpinLock *lock)
|
||||
: "=&r" (result) : "r" (1), "r" (lock) : "cc", "memory");
|
||||
return (result == 0);
|
||||
|
||||
#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
|
||||
int result;
|
||||
__asm__ __volatile__(
|
||||
"lock ; xchgl %0, (%1)\n"
|
||||
: "=r" (result) : "r" (lock), "0" (1) : "cc", "memory");
|
||||
return (result == 0);
|
||||
|
||||
#else
|
||||
/* Need CPU instructions for spinlock here! */
|
||||
__need_spinlock_implementation__
|
||||
|
||||
@@ -474,7 +474,7 @@
|
||||
|
||||
#ifndef PNG_VERSION_INFO_ONLY
|
||||
/* include the compression library's header */
|
||||
#include "zlib.h"
|
||||
#include "../include/zlib.h"
|
||||
#endif
|
||||
|
||||
/* include all user configurable info, including optional assembler routines */
|
||||
|
||||
@@ -32,6 +32,7 @@ HGE_OBJS = src/hge/hgecolor.o src/hge/hgeparticle.o \
|
||||
|
||||
CXXFLAGS = -W -Wall -Werror -Wno-unused
|
||||
CXXFLAGS += -DTIXML_USE_STL
|
||||
CXXFLAGS += -Wno-deprecated-declarations -Wno-sign-compare
|
||||
|
||||
ifdef DEBUG
|
||||
CXXFLAGS += -ggdb3
|
||||
@@ -82,8 +83,8 @@ ifeq ($(TARGET_ARCHITECTURE),linux)
|
||||
OBJS = $(GENERIC_OBJS) $(LINUX_OBJS)
|
||||
TARGET_LIB = libjge.a
|
||||
TARGET_HGE = libhgetools.a
|
||||
INCDIR = $(shell freetype-config --cflags 2> /dev/null) -I/usr/X11/include -I../Boost -Isrc/zipFS -Iinclude/
|
||||
CXXFLAGS += -DLINUX $(FMOD)
|
||||
INCDIR = $(shell freetype-config --cflags 2> /dev/null) -I/usr/X11/include -I/usr/include/boost -Isrc/zipFS -Iinclude/
|
||||
CXXFLAGS += -DLINUX -DNETWORK_SUPPORT $(FMOD)
|
||||
CXXFLAGS += $(INCDIR)
|
||||
LIBDIR = lib/linux
|
||||
endif
|
||||
|
||||
@@ -394,6 +394,7 @@ class JGE
|
||||
void SetJNIEnv(JNIEnv * env, jclass cls);
|
||||
void sendJNICommand(std::string command);
|
||||
std::string getFileSystemLocation();
|
||||
std::string getFileUserFolderPath();
|
||||
#endif
|
||||
|
||||
protected:
|
||||
|
||||
@@ -30,6 +30,7 @@ const int kInfoMenuID = -200;
|
||||
const int kRandomPlayerMenuID = -11;
|
||||
const int kRandomAIPlayerMenuID = -12;
|
||||
const int kEvilTwinMenuID = -14;
|
||||
const int kCommanderMenuID = -33;
|
||||
|
||||
class JGuiListener
|
||||
{
|
||||
|
||||
BIN
JGE/lib/linux/libhgetools.a
Normal file
BIN
JGE/lib/linux/libjge.a
Normal file
@@ -16,9 +16,14 @@ User folder is the only one that is really needed to guarantee both read and wri
|
||||
The content that users should not be touching.
|
||||
*/
|
||||
|
||||
#ifndef PSP
|
||||
#if defined (ANDROID)
|
||||
#include "PrecompiledHeader.h"
|
||||
#endif //PSP
|
||||
#endif //ANDROID
|
||||
|
||||
#if defined (LINUX)
|
||||
#include "../../projects/mtg/include/PrecompiledHeader.h"
|
||||
#endif //LINUX
|
||||
|
||||
|
||||
#ifdef WIN32
|
||||
#pragma warning(disable : 4786)
|
||||
@@ -126,10 +131,11 @@ JFileSystem::JFileSystem(const string & _userPath, const string & _systemPath)
|
||||
systemPath = [[documentsDirectory stringByAppendingString: @"/Res/"] cStringUsingEncoding:1];
|
||||
|
||||
#elif defined (ANDROID)
|
||||
userPath = JGE::GetInstance()->getFileSystemLocation();
|
||||
systemPath = "";
|
||||
userPath = JGE::GetInstance()->getFileUserFolderPath();
|
||||
systemPath = JGE::GetInstance()->getFileSystemLocation();
|
||||
|
||||
DebugTrace("User path " << userPath);
|
||||
DebugTrace("System path " << systemPath);
|
||||
#elif defined (QT_CONFIG)
|
||||
|
||||
QDir sysDir(RESDIR);
|
||||
@@ -254,6 +260,7 @@ void JFileSystem::clearZipCache()
|
||||
|
||||
bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL */)
|
||||
{
|
||||
#ifndef WIN32
|
||||
if (mZipAvailable && mZipFile.is_open())
|
||||
{
|
||||
if (mZipFileName != zipfile)
|
||||
@@ -261,7 +268,7 @@ bool JFileSystem::AttachZipFile(const string &zipfile, char *password /* = NULL
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
||||
mZipFileName = zipfile;
|
||||
mPassword = password;
|
||||
|
||||
|
||||
@@ -249,6 +249,7 @@ u32 JGE::BindKey(LocalKeySym sym, JButton button)
|
||||
u32 JGE::UnbindKey(LocalKeySym sym, JButton button)
|
||||
{
|
||||
for (keycodes_it it = keyBinds.begin(); it != keyBinds.end(); )
|
||||
{
|
||||
if (sym == it->first && button == it->second)
|
||||
{
|
||||
keycodes_it er = it;
|
||||
@@ -256,6 +257,7 @@ u32 JGE::UnbindKey(LocalKeySym sym, JButton button)
|
||||
keyBinds.erase(er);
|
||||
}
|
||||
else ++it;
|
||||
}
|
||||
return keyBinds.size();
|
||||
}
|
||||
|
||||
@@ -666,7 +668,7 @@ string JGE::getFileSystemLocation()
|
||||
if (env == NULL)
|
||||
{
|
||||
DebugTrace("An Error Occurred in getting the JNI Environment whie trying to get the system folder location. Defaulting to /mnt/sdcard/net.wagic.app/Wagic");
|
||||
return "/mnt/sdcard/Wagic";
|
||||
return "/mnt/sdcard/Wagic/Res";
|
||||
};
|
||||
|
||||
jclass jniClass = env->FindClass("org/libsdl/app/SDLActivity");
|
||||
@@ -675,7 +677,36 @@ string JGE::getFileSystemLocation()
|
||||
if (methodId == 0)
|
||||
{
|
||||
DebugTrace("An Error Occurred in getting the JNI methodID for getSystemFolderPath. Defaulting to /mnt/sdcard/Wagic");
|
||||
return "/mnt/sdcard/Wagic";
|
||||
return "/mnt/sdcard/Wagic/Res";
|
||||
};
|
||||
|
||||
jstring systemPath = (jstring) env->CallStaticObjectMethod(jniClass, methodId);
|
||||
|
||||
// Now convert the Java String to C++ char array
|
||||
const char* cstr = env->GetStringUTFChars(systemPath, 0);
|
||||
string retVal (cstr);
|
||||
env->ReleaseStringUTFChars(systemPath, cstr);
|
||||
env->DeleteLocalRef(systemPath);
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
string JGE::getFileUserFolderPath()
|
||||
{
|
||||
JNIEnv * env = getJNIEnv();
|
||||
if (env == NULL)
|
||||
{
|
||||
DebugTrace("An Error Occurred in getting the JNI Environment whie trying to get the system folder location. Defaulting to /mnt/sdcard/net.wagic.app/Wagic");
|
||||
return "/mnt/sdcard/Wagic/User";
|
||||
};
|
||||
|
||||
jclass jniClass = env->FindClass("org/libsdl/app/SDLActivity");
|
||||
jmethodID methodId = env->GetStaticMethodID( jniClass, "getUserFolderPath", "()Ljava/lang/String;");
|
||||
|
||||
if (methodId == 0)
|
||||
{
|
||||
DebugTrace("An Error Occurred in getting the JNI methodID for getSystemFolderPath. Defaulting to /mnt/sdcard/Wagic");
|
||||
return "/mnt/sdcard/Wagic/User";
|
||||
};
|
||||
|
||||
jstring systemPath = (jstring) env->CallStaticObjectMethod(jniClass, methodId);
|
||||
|
||||
@@ -87,8 +87,6 @@ WagicWrapper::~WagicWrapper()
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
QCoreApplication a(argc, argv);
|
||||
|
||||
int result = 0;
|
||||
WagicWrapper* wagicCore = new WagicWrapper();
|
||||
MTGCollection()->loadFolder("sets/primitives/");
|
||||
|
||||
@@ -18,6 +18,11 @@
|
||||
#include <stdexcept>
|
||||
#include <iostream>
|
||||
#include <math.h>
|
||||
#ifndef WIN32
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#if (defined FORCE_GLES)
|
||||
#undef GL_ES_VERSION_2_0
|
||||
@@ -53,6 +58,7 @@ JGameLauncher* g_launcher = NULL;
|
||||
#ifdef ANDROID
|
||||
JNIEnv * mJNIEnv = NULL;
|
||||
jclass * mJNIClass = NULL;
|
||||
int SDL_ResumeSyncTime = 0;
|
||||
#endif
|
||||
|
||||
class SdlApp;
|
||||
@@ -78,6 +84,7 @@ extern "C" void Java_org_libsdl_app_SDLActivity_nativeResume(
|
||||
{
|
||||
if (!g_engine)
|
||||
return;
|
||||
SDL_ResumeSyncTime = 100000;
|
||||
g_engine->Resume();
|
||||
}
|
||||
|
||||
@@ -136,10 +143,18 @@ public:
|
||||
if(!g_engine->IsPaused())
|
||||
OnEvent(&Event);
|
||||
}
|
||||
if(!g_engine->IsPaused())
|
||||
if(!g_engine->IsPaused()){
|
||||
#ifdef ANDROID
|
||||
// Fix for SDL crash on resuming Android app from background.
|
||||
if(SDL_ResumeSyncTime){
|
||||
usleep(SDL_ResumeSyncTime);
|
||||
SDL_ResumeSyncTime = 0;
|
||||
}
|
||||
#endif
|
||||
OnUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
OnCleanup();
|
||||
|
||||
@@ -293,17 +308,18 @@ static const struct { LocalKeySym keysym; JButton keycode; } gDefaultBindings[]
|
||||
{ SDLK_DOWN, JGE_BTN_DOWN },
|
||||
{ SDLK_LEFT, JGE_BTN_LEFT },
|
||||
{ SDLK_RIGHT, JGE_BTN_RIGHT },
|
||||
{ SDLK_z, JGE_BTN_UP },
|
||||
{ SDLK_d, JGE_BTN_RIGHT },
|
||||
{ SDLK_w, JGE_BTN_UP },
|
||||
{ SDLK_s, JGE_BTN_DOWN },
|
||||
{ SDLK_q, JGE_BTN_LEFT },
|
||||
{ SDLK_a, JGE_BTN_PREV },
|
||||
{ SDLK_a, JGE_BTN_LEFT },
|
||||
{ SDLK_d, JGE_BTN_RIGHT },
|
||||
{ SDLK_q, JGE_BTN_PREV },
|
||||
{ SDLK_e, JGE_BTN_NEXT },
|
||||
{ SDLK_i, JGE_BTN_CANCEL },
|
||||
{ SDLK_l, JGE_BTN_OK },
|
||||
{ SDLK_SPACE, JGE_BTN_OK },
|
||||
{ SDLK_k, JGE_BTN_SEC },
|
||||
{ SDLK_j, JGE_BTN_PRI },
|
||||
{ SDLK_b, JGE_BTN_SOUND },
|
||||
{ SDLK_f, JGE_BTN_FULLSCREEN },
|
||||
|
||||
/* old Qt ones, basically modified to comply with the N900 keyboard
|
||||
|
||||
@@ -185,9 +185,9 @@ static const int doubleBufferAttributes[] = {
|
||||
GLX_RED_SIZE, 1, /* the maximum number of bits per component */
|
||||
GLX_GREEN_SIZE, 1,
|
||||
GLX_BLUE_SIZE, 1,
|
||||
None
|
||||
0L /* None */
|
||||
};
|
||||
static Bool WaitForNotify(Display *dpy, XEvent *event, XPointer arg)
|
||||
static int WaitForNotify(Display *dpy, XEvent *event, XPointer arg)
|
||||
{
|
||||
return (event->type == MapNotify) && (event->xmap.window == (Window) arg);
|
||||
}
|
||||
@@ -387,13 +387,13 @@ int main(int argc, char* argv[])
|
||||
if (XCheckWindowEvent(gXDisplay, gXWindow, KeyPressMask | KeyReleaseMask | StructureNotifyMask, &event))
|
||||
switch (event.type)
|
||||
{
|
||||
case KeyPress:
|
||||
case 2: /* KeyPress */
|
||||
{
|
||||
const KeySym sym = XKeycodeToKeysym(gXDisplay, event.xkey.keycode, 1);
|
||||
g_engine->HoldKey_NoRepeat(sym);
|
||||
}
|
||||
break;
|
||||
case KeyRelease:
|
||||
case 3: /* KeyRelease */
|
||||
g_engine->ReleaseKey(XKeycodeToKeysym(gXDisplay, event.xkey.keycode, 1));
|
||||
break;
|
||||
case ConfigureNotify:
|
||||
|
||||
@@ -185,6 +185,12 @@ JMusic *JSoundSystem::LoadMusic(const char *fileName)
|
||||
result = (*engineEngine)->CreateAudioPlayer(engineEngine, &music->playerObject, &audioSrc, &audioSnk, 2, ids, req);
|
||||
DebugTrace("result " << result);
|
||||
|
||||
if(result == SL_RESULT_MEMORY_FAILURE){
|
||||
delete music;
|
||||
mCurrentMusic = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// realize the player
|
||||
result = (*music->playerObject)->Realize(music->playerObject, SL_BOOLEAN_FALSE);
|
||||
DebugTrace("result " << result);
|
||||
@@ -303,6 +309,12 @@ JSample *JSoundSystem::LoadSample(const char *fileName)
|
||||
1, ids, req);
|
||||
DebugTrace("result " << result);
|
||||
|
||||
if(result == SL_RESULT_MEMORY_FAILURE){
|
||||
delete sample;
|
||||
mCurrentSample = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// realize the player
|
||||
result = (*sample->playerObject)->Realize(sample->playerObject, SL_BOOLEAN_FALSE);
|
||||
DebugTrace("result " << result);
|
||||
|
||||
@@ -96,6 +96,7 @@ hgeParticleSystem::hgeParticleSystem(hgeParticleSystemInfo *psi)
|
||||
{
|
||||
//hge=hgeCreate(HGE_VERSION);
|
||||
|
||||
if (psi)
|
||||
memcpy(&info, psi, sizeof(hgeParticleSystemInfo));
|
||||
|
||||
vecLocation.x=vecPrevLocation.x=0.0f;
|
||||
|
||||
@@ -1804,7 +1804,7 @@ static void PNGCustomReadDataFn(png_structp png_ptr, png_bytep data, png_size_t
|
||||
{
|
||||
png_size_t check;
|
||||
|
||||
JFileSystem *fileSystem = (JFileSystem*)png_ptr->io_ptr;
|
||||
JFileSystem *fileSystem = (JFileSystem*)png_get_io_ptr(png_ptr);
|
||||
|
||||
check = fileSystem->ReadFile(data, length);
|
||||
|
||||
@@ -1887,7 +1887,7 @@ int JRenderer::LoadPNG(TextureInfo &textureInfo, const char *filename, int mode
|
||||
//fclose(fp);
|
||||
fileSystem->CloseFile();
|
||||
|
||||
png_destroy_read_struct(&png_ptr, png_infopp_NULL, png_infopp_NULL);
|
||||
png_destroy_read_struct(&png_ptr, NULL, NULL);
|
||||
|
||||
return JGE_ERR_PNG;
|
||||
}
|
||||
@@ -1896,11 +1896,15 @@ int JRenderer::LoadPNG(TextureInfo &textureInfo, const char *filename, int mode
|
||||
|
||||
png_set_sig_bytes(png_ptr, sig_read);
|
||||
png_read_info(png_ptr, info_ptr);
|
||||
png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, int_p_NULL, int_p_NULL);
|
||||
png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL);
|
||||
png_set_strip_16(png_ptr);
|
||||
png_set_packing(png_ptr);
|
||||
if (color_type == PNG_COLOR_TYPE_PALETTE) png_set_palette_to_rgb(png_ptr);
|
||||
#if PNG_LIBPNG_VER >= 10400
|
||||
if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr);
|
||||
#else
|
||||
if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) png_set_gray_1_2_4_to_8(png_ptr);
|
||||
#endif
|
||||
if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png_ptr);
|
||||
png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER);
|
||||
|
||||
@@ -1910,7 +1914,7 @@ int JRenderer::LoadPNG(TextureInfo &textureInfo, const char *filename, int mode
|
||||
//fclose(fp);
|
||||
fileSystem->CloseFile();
|
||||
|
||||
png_destroy_read_struct(&png_ptr, png_infopp_NULL, png_infopp_NULL);
|
||||
png_destroy_read_struct(&png_ptr, NULL, NULL);
|
||||
return JGE_ERR_MALLOC_FAILED;
|
||||
}
|
||||
|
||||
@@ -1932,7 +1936,7 @@ int JRenderer::LoadPNG(TextureInfo &textureInfo, const char *filename, int mode
|
||||
|
||||
for (y = 0; y < (int)height; y++)
|
||||
{
|
||||
png_read_row(png_ptr, (BYTE*) line, png_bytep_NULL);
|
||||
png_read_row(png_ptr, (BYTE*) line, NULL);
|
||||
for (x = 0; x < (int)width; x++)
|
||||
{
|
||||
DWORD color32 = line[x];
|
||||
@@ -1955,7 +1959,7 @@ int JRenderer::LoadPNG(TextureInfo &textureInfo, const char *filename, int mode
|
||||
free (line);
|
||||
|
||||
png_read_end(png_ptr, info_ptr);
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
|
||||
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
|
||||
|
||||
fileSystem->CloseFile();
|
||||
|
||||
@@ -1998,8 +2002,15 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
GifFileType *GifFileIn = NULL;
|
||||
ColorMapObject *palette;
|
||||
int ExtCode;
|
||||
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
if ((GifFileIn = DGifOpen(handle, readFunc, NULL)) == NULL)
|
||||
return 1;
|
||||
#else
|
||||
if ((GifFileIn = DGifOpen(handle, readFunc)) == NULL)
|
||||
return 1;
|
||||
#endif
|
||||
|
||||
*bgcolor = 0;
|
||||
textureInfo.mWidth = 0;
|
||||
textureInfo.mHeight = 0;
|
||||
@@ -2008,7 +2019,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
do {
|
||||
if (DGifGetRecordType(GifFileIn, &RecordType) == GIF_ERROR)
|
||||
{
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -2017,12 +2032,20 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
{
|
||||
if (DGifGetImageDesc(GifFileIn) == GIF_ERROR)
|
||||
{
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
if((palette = (GifFileIn->SColorMap != NULL) ? GifFileIn->SColorMap : GifFileIn->Image.ColorMap) == NULL)
|
||||
{
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
textureInfo.mWidth = GifFileIn->Image.Width;
|
||||
@@ -2030,7 +2053,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
*bgcolor = gif_color32(GifFileIn->SBackGroundColor);
|
||||
if((LineIn = (GifRowType) malloc(GifFileIn->Image.Width * sizeof(GifPixelType))) == NULL)
|
||||
{
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
textureInfo.mTexWidth = getNextPower2(GifFileIn->Image.Width);
|
||||
@@ -2040,7 +2067,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
if((p32 = (DWORD *)malloc(sizeof(PIXEL_TYPE) * textureInfo.mTexWidth * textureInfo.mTexHeight)) == NULL)
|
||||
{
|
||||
free((void *)LineIn);
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
DWORD * curr = p32;
|
||||
@@ -2052,7 +2083,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
{
|
||||
free((void *)p32);
|
||||
free((void *)LineIn);
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
for (GifWord j = 0; j < GifFileIn->Image.Width; j ++)
|
||||
@@ -2081,7 +2116,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
}
|
||||
if(LineIn != NULL)
|
||||
free((void *)LineIn);
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
while (Extension != NULL) {
|
||||
@@ -2094,7 +2133,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
}
|
||||
if(LineIn != NULL)
|
||||
free((void *)LineIn);
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -2109,7 +2152,11 @@ int JRenderer::image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bg
|
||||
|
||||
if(LineIn != NULL)
|
||||
free((void *)LineIn);
|
||||
#if GIFLIB_MAJOR >= 5
|
||||
DGifCloseFile(GifFileIn, NULL);
|
||||
#else
|
||||
DGifCloseFile(GifFileIn);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,9 @@ JSocket::JSocket(string ipAddr)
|
||||
|
||||
#ifdef WIN32
|
||||
unsigned int addr_dest = inet_addr(ipAddr.c_str());
|
||||
hostentptr=gethostbyaddr((char*) &addr_dest, 4, AF_INET);
|
||||
hostentptr = gethostbyaddr((char*) &addr_dest, 4, AF_INET);
|
||||
if (hostentptr == NULL)
|
||||
hostentptr = gethostbyname(ipAddr.c_str()); // Fix for Windows if IP Address cannot be resolved.
|
||||
#elif LINUX
|
||||
hostentptr = gethostbyname(ipAddr.c_str());
|
||||
#endif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#Wagic the Homebrew
|
||||
|
||||
|
||||
[](https://travis-ci.org/WagicProject/wagic)
|
||||
[](https://travis-ci.com/WagicProject/wagic)
|
||||
[](https://ci.appveyor.com/project/xawotihs/wagic/branch/master)
|
||||
[](https://coveralls.io/r/WagicProject/wagic?branch=master)
|
||||
|
||||
@@ -20,7 +20,7 @@ It is highly customizable and allows the player to tweak the rules / create thei
|
||||
|
||||
Info, downloads, discussions and more at http://wololo.net/forum/index.php
|
||||
|
||||
-
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
1
projects/mtg/Android/.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
/gen
|
||||
/bin
|
||||
/libs
|
||||
|
||||
|
||||
@@ -1,18 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="0201" android:versionName="@string/app_version" package="net.wagic.app">
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<application android:debuggable="false" android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
|
||||
<activity android:configChanges="keyboard|keyboardHidden|orientation" android:label="@string/app_name" android:name="org.libsdl.app.SDLActivity" android:screenOrientation="sensorLandscape">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:versionCode="0231"
|
||||
android:installLocation="preferExternal"
|
||||
android:versionName="@string/app_version"
|
||||
package="net.wagic.app">
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<application android:icon="@drawable/icon"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
|
||||
|
||||
<activity android:debuggable="false"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation"
|
||||
android:label="@string/app_name"
|
||||
android:name="org.libsdl.app.SDLActivity"
|
||||
android:screenOrientation="sensorLandscape">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:configChanges="keyboard|keyboardHidden|orientation" android:name="com.google.ads.AdActivity" android:screenOrientation="sensorLandscape"/>
|
||||
</application>
|
||||
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10"/>
|
||||
<uses-sdk android:minSdkVersion="10"
|
||||
android:targetSdkVersion="29" />
|
||||
</manifest>
|
||||
|
||||
@@ -8,4 +8,4 @@
|
||||
# project structure.
|
||||
|
||||
# Project target.
|
||||
target=android-10
|
||||
target=android-23
|
||||
|
||||
@@ -12,7 +12,7 @@ BOOST_PATH := $(MY_WAGIC_ROOT)/Boost
|
||||
JPEG_PATH := $(JGE_PATH)/Dependencies/libjpeg
|
||||
PNG_PATH := $(JGE_PATH)/Dependencies/libpng
|
||||
|
||||
LOCAL_CFLAGS += -DLINUX -DANDROID -DSDL_CONFIG
|
||||
LOCAL_CFLAGS += -DLINUX -DANDROID -DSDL_CONFIG -DNETWORK_SUPPORT
|
||||
LOCAL_CFLAGS += -D_STLP_USE_SIMPLE_NODE_ALLOC -DTIXML_USE_STL
|
||||
LOCAL_CFLAGS += -D__arm__ -D_REENTRANT -D_GLIBCXX__PTHREADS
|
||||
LOCAL_STATIC_LIBRARIES := libpng libjpeg
|
||||
@@ -133,6 +133,7 @@ LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.cpp \
|
||||
$(MTG_PATH)/src/WFilter.cpp \
|
||||
$(MTG_PATH)/src/WFont.cpp \
|
||||
$(MTG_PATH)/src/WGui.cpp \
|
||||
$(MTG_PATH)/src/WParsedInt.cpp \
|
||||
$(MTG_PATH)/src/WResourceManager.cpp \
|
||||
$(MTG_PATH)/src/DeckView.cpp \
|
||||
$(MTG_PATH)/src/CarouselDeckView.cpp \
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
APP_PROJECT_PATH := $(call my-dir)/..
|
||||
APP_CPPFLAGS += -frtti -fexceptions
|
||||
APP_ABI := armeabi armeabi-v7a
|
||||
APP_STL := gnustl_static
|
||||
APP_ABI := armeabi-v7a
|
||||
#APP_ABI := x86 # mainly for emulators
|
||||
APP_STL := c++_static
|
||||
APP_MODULES := libpng libjpeg main SDL
|
||||
|
||||
#APP_OPTIM is 'release' by default
|
||||
|
||||
BIN
projects/mtg/Android/libs/armeabi-v7a/libSDL.so
Normal file
BIN
projects/mtg/Android/libs/armeabi-v7a/libmain.so
Normal file
BIN
projects/mtg/Android/libs/jsoup-1.11.3.jar
Normal file
BIN
projects/mtg/Android/libs/zip4j-2.1.3-SNAPSHOT.jar
Normal file
@@ -11,4 +11,4 @@
|
||||
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
|
||||
|
||||
# Project target.
|
||||
target=android-10
|
||||
target=android-23
|
||||
|
||||
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 3.5 KiB |
@@ -4,6 +4,7 @@
|
||||
android:id="@+id/mainLayout"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:keepScreenOn="true"
|
||||
>
|
||||
<TextView
|
||||
android:layout_width="fill_parent"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Wagic</string>
|
||||
<string name="app_version">0.20.1</string>
|
||||
<string name="info_text">Wagic v0.20.1\\nAll Rights Reserved.</string>
|
||||
<string name="app_version">0.23.1</string>
|
||||
<string name="info_text">All Rights Reserved.</string>
|
||||
</resources>
|
||||
|
||||
@@ -11,13 +11,12 @@ import android.util.Log;
|
||||
|
||||
public class DeckImporter
|
||||
{
|
||||
|
||||
public static String importDeck( File f, String mypath, String activePath )
|
||||
{
|
||||
String message = "";
|
||||
String deck = "";
|
||||
String deckname = "";
|
||||
String prefix = "#SB:";
|
||||
String prefix = "";
|
||||
int cardcount = 0;
|
||||
if(f.exists() && !f.isDirectory())
|
||||
{
|
||||
@@ -37,11 +36,18 @@ public class DeckImporter
|
||||
{
|
||||
String line = scanner.nextLine();
|
||||
line = line.trim();
|
||||
if (!line.equals("") && cardcount < 61) // don't write out blank lines
|
||||
if (line.equals("")) {
|
||||
line = scanner.nextLine();
|
||||
if (line.equals("")) {
|
||||
line = scanner.nextLine();
|
||||
prefix = "#SB:"; // Sideboard started from next card (we assumed that there are 2 blank lines from main deck and sideboard).
|
||||
}
|
||||
}
|
||||
if (!line.equals("")) // don't write out blank lines
|
||||
{
|
||||
String[] slines = line.split("\\s+");
|
||||
String arranged = "";
|
||||
for(int idx = 1; idx < slines.length; idx++)
|
||||
for (int idx = 1; idx < slines.length; idx++)
|
||||
{
|
||||
arranged += slines[idx] + " ";
|
||||
}
|
||||
@@ -50,41 +56,43 @@ public class DeckImporter
|
||||
if (slines[1] != null && slines[1].startsWith("["))
|
||||
{
|
||||
arranged = arranged.substring(5);
|
||||
slines[1] = slines[1].replaceAll("\\[", "").replaceAll("\\]","");
|
||||
deck += arranged + " (" + renameSet(slines[1]) + ") * " + slines[0] + "\n";
|
||||
}
|
||||
else
|
||||
slines[1] = slines[1].replaceAll("\\[", "").replaceAll("\\]", "");
|
||||
deck += prefix + arranged + " (" + renameSet(slines[1]) + ") * " + slines[0] + "\n";
|
||||
} else
|
||||
{
|
||||
deck += arranged + "(*) * " + slines[0] + "\n";
|
||||
deck += prefix + arranged + "(*) * " + slines[0] + "\n";
|
||||
}
|
||||
cardcount += Integer.parseInt(slines[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
File profile = new File(activePath+"/Res/settings/options.txt");
|
||||
if(profile.exists() && !profile.isDirectory())
|
||||
{
|
||||
String profileName = getActiveProfile(profile);
|
||||
if(profileName != "Missing!")
|
||||
{
|
||||
File rootProfiles = new File(activePath+"/Res/profiles/"+profileName);
|
||||
if(rootProfiles.exists() && rootProfiles.isDirectory())
|
||||
File profile = new File(activePath + "/User/settings/options.txt");
|
||||
String profileName = "Default";
|
||||
if (profile.exists() && !profile.isDirectory())
|
||||
profileName = getActiveProfile(profile);
|
||||
File rootDecks = null;
|
||||
if (!profileName.equalsIgnoreCase("Default"))
|
||||
rootDecks = new File(activePath + "/User/profiles/" + profileName);
|
||||
else
|
||||
rootDecks = new File(activePath + "/User/player/");
|
||||
if (rootDecks.exists() && rootDecks.isDirectory())
|
||||
{
|
||||
//save deck
|
||||
int countdeck = 1;
|
||||
File[] files = rootProfiles.listFiles();
|
||||
File[] files = rootDecks.listFiles();
|
||||
for (int i = 0; i < files.length; i++)
|
||||
{//check if there is available deck...
|
||||
if(files[i].getName().startsWith("deck"))
|
||||
if (files[i].getName().startsWith("deck"))
|
||||
countdeck++;
|
||||
}
|
||||
File toSave = new File(rootProfiles+"/deck"+countdeck+".txt");
|
||||
File toSave = new File(rootDecks + "/deck" + countdeck + ".txt");
|
||||
try
|
||||
{
|
||||
FileOutputStream fop = new FileOutputStream(toSave);
|
||||
|
||||
// if file doesn't exists, then create it
|
||||
if (!toSave.exists()) {
|
||||
if (!toSave.exists())
|
||||
{
|
||||
toSave.createNewFile();
|
||||
}
|
||||
// get the content in bytes
|
||||
@@ -92,30 +100,20 @@ public class DeckImporter
|
||||
fop.write(contentInBytes);
|
||||
fop.flush();
|
||||
fop.close();
|
||||
message = "Import Deck Success!\n"+cardcount+" total cards in this deck\n\n"+deck;
|
||||
}
|
||||
catch (IOException e)
|
||||
message = "The deck has been successfully imported as: " + toSave.getName() + "\n" + cardcount + " total cards in this deck\n\n" + deck;
|
||||
} catch (IOException e)
|
||||
{
|
||||
message = e.getMessage();
|
||||
}
|
||||
}
|
||||
else
|
||||
} else
|
||||
{
|
||||
message = "Missing Folder!";
|
||||
message = "Problem opening decks folder: " + rootDecks.getAbsolutePath();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message = "Invalid Profile!";
|
||||
}
|
||||
}
|
||||
else
|
||||
} else
|
||||
{
|
||||
message = "No errors, and file EMPTY";
|
||||
}
|
||||
}
|
||||
catch(IOException e)
|
||||
} catch (IOException e)
|
||||
{
|
||||
message = e.getMessage();
|
||||
}
|
||||
@@ -149,12 +147,12 @@ public class DeckImporter
|
||||
}
|
||||
else
|
||||
{
|
||||
return "Missing!";
|
||||
return "Default";
|
||||
}
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
return "Missing!";
|
||||
return "Default";
|
||||
}
|
||||
return name;
|
||||
}
|
||||
@@ -278,5 +276,4 @@ public class DeckImporter
|
||||
else
|
||||
return set;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
3766
projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java
Normal file
@@ -14,6 +14,7 @@ import android.util.Log;
|
||||
|
||||
public class StorageOptions
|
||||
{
|
||||
private static final String TAG = StorageOptions.class.getCanonicalName();
|
||||
private static ArrayList<String> mMounts = new ArrayList<String>();
|
||||
private static ArrayList<String> mVold = new ArrayList<String>();
|
||||
|
||||
@@ -22,7 +23,7 @@ public class StorageOptions
|
||||
public static int count = 0;
|
||||
public static String defaultMountPoint;
|
||||
|
||||
public static void determineStorageOptions()
|
||||
public static void determineStorageOptions(android.content.Context mContext)
|
||||
{
|
||||
initializeMountPoints();
|
||||
if (findForcemount()){
|
||||
@@ -35,6 +36,16 @@ public class StorageOptions
|
||||
}
|
||||
compareMountsWithVold();
|
||||
testAndCleanMountsList();
|
||||
File[] externalStorageVolumes = mContext.getExternalFilesDirs("");
|
||||
for(int i = 0; i < externalStorageVolumes.length; i++){
|
||||
mMounts.add(externalStorageVolumes[i].getAbsolutePath());
|
||||
}
|
||||
for(int i = 0; i < mMounts.size(); i++){
|
||||
for(int j = 0; j < mMounts.size(); j++){
|
||||
if(i!=j && mMounts.get(i).startsWith(mMounts.get(j)))
|
||||
mMounts.remove(i);
|
||||
}
|
||||
}
|
||||
setProperties();
|
||||
}
|
||||
|
||||
@@ -77,11 +88,11 @@ public class StorageOptions
|
||||
} catch (FileNotFoundException fnfex)
|
||||
{
|
||||
// if proc/mount doesn't exist we just use
|
||||
Log.i(StorageOptions.class.getCanonicalName(), fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
Log.i(TAG, fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
mMounts.add(defaultMountPoint);
|
||||
} catch (Exception e)
|
||||
{
|
||||
Log.e(StorageOptions.class.getCanonicalName(), e.getMessage() + ": unknown exception while reading mounts file");
|
||||
Log.e(TAG, e.getMessage() + ": unknown exception while reading mounts file");
|
||||
mMounts.add(defaultMountPoint);
|
||||
}
|
||||
}
|
||||
@@ -111,11 +122,11 @@ public class StorageOptions
|
||||
} catch (FileNotFoundException fnfex)
|
||||
{
|
||||
// if proc/mount doesn't exist we just use
|
||||
Log.i(StorageOptions.class.getCanonicalName(), fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
Log.i(TAG, fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
mMounts.add(defaultMountPoint);
|
||||
} catch (Exception e)
|
||||
{
|
||||
Log.e(StorageOptions.class.getCanonicalName(), e.getMessage() + ": unknown exception while reading mounts file");
|
||||
Log.e(TAG, e.getMessage() + ": unknown exception while reading mounts file");
|
||||
mMounts.add(defaultMountPoint);
|
||||
}
|
||||
}
|
||||
@@ -144,11 +155,11 @@ public class StorageOptions
|
||||
} catch (FileNotFoundException fnfex)
|
||||
{
|
||||
// if vold.fstab doesn't exist we use the value gathered from the Environment
|
||||
Log.i(StorageOptions.class.getCanonicalName(), fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
Log.i(TAG, fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||
mMounts.add(defaultMountPoint);
|
||||
} catch (Exception e)
|
||||
{
|
||||
Log.e(StorageOptions.class.getCanonicalName(), e.getMessage() + ": unknown exception while reading mounts file");
|
||||
Log.e(TAG, e.getMessage() + ": unknown exception while reading vold.fstab file");
|
||||
mMounts.add(defaultMountPoint);
|
||||
}
|
||||
}
|
||||
@@ -178,12 +189,15 @@ public class StorageOptions
|
||||
* Compare the two lists together and remove items that are not in both lists.
|
||||
*/
|
||||
|
||||
if (mVold.size() > 0)
|
||||
{
|
||||
for (int i = 0; i < mMounts.size(); i++)
|
||||
{
|
||||
String mount = mMounts.get(i);
|
||||
if (!mVold.contains(mount))
|
||||
mMounts.remove(i--);
|
||||
}
|
||||
}
|
||||
|
||||
// don't need this anymore, clear the vold list to reduce memory
|
||||
// use and to prepare it for the next time it's needed.
|
||||
@@ -206,7 +220,8 @@ public class StorageOptions
|
||||
}
|
||||
|
||||
if (t == 0 && Build.VERSION.SDK_INT >= 16 && findForcemount())
|
||||
{//if none is found lets force it for Jellybean and above...
|
||||
{
|
||||
//if none is found lets force it for Jellybean and above...
|
||||
if (System.getenv("EXTERNAL_STORAGE") != null)
|
||||
{
|
||||
File root = new File(System.getenv("EXTERNAL_STORAGE"));
|
||||
@@ -247,6 +262,7 @@ public class StorageOptions
|
||||
|
||||
private static void setProperties()
|
||||
{
|
||||
Log.d(TAG, "setProperties()");
|
||||
/*
|
||||
* At this point all the paths in the list should be valid. Build the public properties.
|
||||
*/
|
||||
@@ -258,21 +274,22 @@ public class StorageOptions
|
||||
for (String path : mMounts)
|
||||
{//with forcemount menu
|
||||
if ("/mnt/sdcard".equalsIgnoreCase(path) || "/storage/sdcard0".equalsIgnoreCase(path))
|
||||
mLabels.add("Internal SD " + "[" + path + "]");
|
||||
mLabels.add("Internal SD " + "[" + path + "/]");
|
||||
else if (path.contains("emulated"))
|
||||
mLabels.add("Emulated SD " + " [" + path + "]");
|
||||
mLabels.add("Emulated SD " + " [" + path + "/]");
|
||||
else
|
||||
mLabels.add("External SD " + " [" + path + "]");
|
||||
mLabels.add("External SD " + " [" + path + "/]");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (String path : mMounts)
|
||||
{ // TODO: /mnt/sdcard is assumed to always mean internal storage. Use this comparison until there is a better way to do this
|
||||
if ("/mnt/sdcard".equalsIgnoreCase(path))
|
||||
mLabels.add("Built-in Storage");
|
||||
{
|
||||
// TODO: /mnt/sdcard and emulated are assumed to always mean internal storage. Use this comparison until there is a better way to do this
|
||||
if ("/mnt/sdcard".equalsIgnoreCase(path) || path.contains("emulated"))
|
||||
mLabels.add("Built-in Storage " + "[" + path + "/]");
|
||||
else
|
||||
mLabels.add("External SD Card " + i++);
|
||||
mLabels.add("External SD Card " + "[" + path + "/]");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,50 +327,59 @@ public class StorageOptions
|
||||
*
|
||||
* @return <code>true</code> if the device is rooted, <code>false</code> otherwise.
|
||||
*/
|
||||
public static boolean isRooted() {
|
||||
|
||||
public static boolean isRooted()
|
||||
{
|
||||
// get from build info
|
||||
String buildTags = android.os.Build.TAGS;
|
||||
if (buildTags != null && buildTags.contains("test-keys")) {
|
||||
if (buildTags != null && buildTags.contains("test-keys"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// check if /system/app/Superuser.apk is present
|
||||
try {
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/Superuser.apk");
|
||||
if (file.exists()) {
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
try {
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/Superuser/Superuser.apk");
|
||||
if (file.exists()) {
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
//SuperSU
|
||||
try {
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/SuperSU.apk");
|
||||
if (file.exists()) {
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
try {
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/SuperSU/SuperSU.apk");
|
||||
if (file.exists()) {
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
// try executing commands
|
||||
@@ -362,30 +388,34 @@ public class StorageOptions
|
||||
}
|
||||
|
||||
// executes a command on the system
|
||||
private static boolean canExecuteCommand(String command) {
|
||||
private static boolean canExecuteCommand(String command)
|
||||
{
|
||||
boolean executedSuccesfully;
|
||||
try {
|
||||
try
|
||||
{
|
||||
Runtime.getRuntime().exec(command);
|
||||
executedSuccesfully = true;
|
||||
}
|
||||
catch (Exception e) {
|
||||
} catch (Exception e)
|
||||
{
|
||||
executedSuccesfully = false;
|
||||
}
|
||||
|
||||
return executedSuccesfully;
|
||||
}
|
||||
|
||||
private static boolean findForcemount(){
|
||||
private static boolean findForcemount()
|
||||
{
|
||||
Log.d(TAG, "findForcemount()");
|
||||
try
|
||||
{
|
||||
File file = new File(System.getenv("EXTERNAL_STORAGE")+"/forcemount");
|
||||
File file = new File(System.getenv("EXTERNAL_STORAGE") + "/forcemount");
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1)
|
||||
} catch (Exception e)
|
||||
{
|
||||
Log.w(TAG, e.getMessage());
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -27,7 +27,7 @@ OBJS = objs/InteractiveButton.o objs/AbilityParser.o objs/ActionElement.o\
|
||||
objs/ThisDescriptor.o objs/Token.o objs/Translate.o objs/TranslateKeys.o\
|
||||
objs/Trash.o objs/utils.o objs/WEvent.o objs/WResourceManager.o\
|
||||
objs/WCachedResource.o objs/WDataSrc.o objs/WGui.o objs/WFilter.o objs/Tasks.o\
|
||||
objs/WFont.o objs/CarouselDeckView.o objs/GridDeckView.o objs/DeckView.o
|
||||
objs/WFont.o objs/WParsedInt.o objs/CarouselDeckView.o objs/GridDeckView.o objs/DeckView.o
|
||||
DEPS = $(patsubst objs/%.o, deps/%.d, $(OBJS))
|
||||
|
||||
RESULT = $(shell psp-config --psp-prefix 2> Makefile.cache)
|
||||
@@ -59,7 +59,6 @@ endif
|
||||
|
||||
ifeq ($(TARGET_ARCHITECTURE),psp)
|
||||
DEFAULT_RULE = 3xx
|
||||
TARGET_ARCHITECTURE = psp
|
||||
PSP_FW_VERSION=371
|
||||
BUILD_PRX = 1
|
||||
SIGN_PRX = 1
|
||||
@@ -74,19 +73,36 @@ PSP_EBOOT_PIC1 = pic1.png
|
||||
INCDIR = ../../JGE/include ../../JGE/src/zipFS ../../JGE/include/psp ../../JGE/include/psp/freetype2 ../../JGE/src ../../projects/mtg/include ../../Boost
|
||||
LIBDIR = ../../JGE/lib/psp
|
||||
CFLAGS = -O2 -G0 -DPSPFW3XX -DDEVHOOK -DUSE_PRECOMPILED_HEADERS=1 -DPSP -DTIXML_USE_STL
|
||||
|
||||
else
|
||||
|
||||
ifeq ($(MAKECMDGOALS),x11)
|
||||
|
||||
OBJS += objs/TestSuiteAI.o
|
||||
INCDIR = -I../../JGE/include -I../../JGE/src -I/usr/X11/include -I../../projects/mtg/include -I/usr/include/boost -I../../JGE/src/zipFS
|
||||
LIBDIR = -L../../JGE/lib/linux -L../../JGE -L/usr/X11/lib
|
||||
LIBS = -ljge -lfreetype -ljpeg -lgif -lpng -lz -lm -lstdc++ -lhgetools -lGL -lGLU -lX11 -lpthread $(FMOD)
|
||||
CFLAGS = $(INCDIR) -DLINUX -DNETWORK_SUPPORT -DUSE_PRECOMPILED_HEADERS=1 -DTIXML_USE_STL -Wno-nonnull-compare
|
||||
|
||||
ASFLAGS = $(CXXFLAGS)
|
||||
|
||||
all: $(DEFAULT_RULE)
|
||||
else
|
||||
|
||||
OBJS += objs/TestSuiteAI.o
|
||||
INCDIR = -I../../JGE/include -I../../JGE/src -I/usr/X11/include -I../../projects/mtg/include -I../../Boost -I../../JGE/src/zipFS
|
||||
LIBDIR = -L../../JGE/lib/linux -L../../JGE -L/usr/X11/lib -L../../Boost/lib
|
||||
LIBS = -ljge -lfreetype -ljpeg -lgif -lpng -lz -lm -lstdc++ -lhgetools -lGL -lGLU -lX11 -lboost_thread $(FMOD)
|
||||
CFLAGS = $(INCDIR) -DLINUX -DUSE_PRECOMPILED_HEADERS=1
|
||||
CFLAGS = $(INCDIR) -DLINUX -DNETWORK_SUPPORT -DUSE_PRECOMPILED_HEADERS=1 -Wno-nonnull-compare
|
||||
|
||||
ASFLAGS = $(CXXFLAGS)
|
||||
|
||||
all: $(DEFAULT_RULE)
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
CFLAGS := -Wall -W -Werror -Wno-unused $(CFLAGS)
|
||||
CFLAGS := -Wall -W -Werror -Wno-unused -Wno-deprecated-declarations $(CFLAGS)
|
||||
CXXFLAGS += $(CFLAGS)
|
||||
# -fno-exceptions
|
||||
|
||||
@@ -110,8 +126,6 @@ debug: all
|
||||
|
||||
else
|
||||
|
||||
|
||||
|
||||
$(TARGET): Makefile.$(TARGET_ARCHITECTURE) $(OBJS) ../../JGE/lib/linux/libjge.a
|
||||
$(CXX) -o $(TARGET) $(OBJS) $(LIBS) $(LIBDIR)
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#NAME:Etched Affinity
|
||||
#DESC:Modern URB Aggro
|
||||
#HINT:dontattackwith(creature[power<=0])
|
||||
#HINT:combo hold(Glimmervoid|myhand)^until(artifact|mybattlefield)^cast(Glimmervoid|myhand)^totalmananeeded({0})
|
||||
#HINT:combo hold(Galvanic Blast|myhand)^cast(Galvanic Blast|myhand)^restriction{type(artifact|mybattlefield)~morethan~2,turn:3}^totalmananeeded({R})
|
||||
|
||||
#25 creatures
|
||||
|
||||
@@ -23,23 +23,23 @@
|
||||
369072
|
||||
|
||||
#4 x Armada Wurm (RTR), {2}{g}{g}{w}{w}, Creature Wurm, 5/5, trample;
|
||||
999009
|
||||
999009
|
||||
999009
|
||||
999009
|
||||
253587
|
||||
253587
|
||||
253587
|
||||
253587
|
||||
|
||||
#2 x Precinct Captain (RTR), {w}{w}, Creature Human Soldier, 2/2, first strike;
|
||||
999171
|
||||
999171
|
||||
270792
|
||||
270792
|
||||
|
||||
#4 x Wayfaring Temple (RTR), {1}{g}{w}, Creature Elemental, 0/0,
|
||||
999260
|
||||
999260
|
||||
999260
|
||||
999260
|
||||
253539
|
||||
253539
|
||||
253539
|
||||
253539
|
||||
|
||||
#1 x Worldspine Wurm (RTR), {8}{g}{g}{g}, Creature Wurm, 15/15, trample;
|
||||
999262
|
||||
253575
|
||||
|
||||
|
||||
|
||||
@@ -57,14 +57,14 @@
|
||||
369060
|
||||
|
||||
#2 x Chromatic Lantern (RTR), {3}, Artifact,
|
||||
999039
|
||||
999039
|
||||
290542
|
||||
290542
|
||||
|
||||
#4 x Growing Ranks (RTR), {2}{g/w}{g/w}, Enchantment,
|
||||
999106
|
||||
999106
|
||||
999106
|
||||
999106
|
||||
270957
|
||||
270957
|
||||
270957
|
||||
270957
|
||||
|
||||
|
||||
|
||||
@@ -84,26 +84,26 @@
|
||||
369018
|
||||
|
||||
#4 x Forest (RTR), Basic Land Forest,
|
||||
999086
|
||||
999086
|
||||
999086
|
||||
999086
|
||||
289326
|
||||
289326
|
||||
289326
|
||||
289326
|
||||
|
||||
#4 x Plains (RTR), Basic Land Plains,
|
||||
999168
|
||||
999168
|
||||
999168
|
||||
999168
|
||||
289310
|
||||
289310
|
||||
289310
|
||||
289310
|
||||
|
||||
#2 x Temple Garden (RTR), Land Forest Plains,
|
||||
999238
|
||||
999238
|
||||
253681
|
||||
253681
|
||||
|
||||
#4 x Plains (RTR), Basic Land Plains,
|
||||
999265
|
||||
999265
|
||||
999265
|
||||
999265
|
||||
289309
|
||||
289309
|
||||
289309
|
||||
289309
|
||||
|
||||
|
||||
|
||||
|
||||
BIN
projects/mtg/bin/Res/graphics/alphabeta.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
projects/mtg/bin/Res/graphics/blitz_unlocked.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
projects/mtg/bin/Res/graphics/commander_unlocked.png
Normal file
|
After Width: | Height: | Size: 156 KiB |
BIN
projects/mtg/bin/Res/graphics/falsegod_unlocked.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
projects/mtg/bin/Res/graphics/hermit_unlocked.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
projects/mtg/bin/Res/graphics/horde_unlocked.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
projects/mtg/bin/Res/graphics/iconcard.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
projects/mtg/bin/Res/graphics/iconcommandzone.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
projects/mtg/bin/Res/graphics/iconexile.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
projects/mtg/bin/Res/graphics/iconhand.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
projects/mtg/bin/Res/graphics/iconlibrary.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
projects/mtg/bin/Res/graphics/iconsideboard.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
projects/mtg/bin/Res/graphics/morinfen_unlocked.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
projects/mtg/bin/Res/graphics/paradise_unlocked.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
projects/mtg/bin/Res/graphics/pspavatarholder.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
projects/mtg/bin/Res/graphics/pspawardback.jpg
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
projects/mtg/bin/Res/graphics/pspbackdrop.jpg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
projects/mtg/bin/Res/graphics/pspbackdropframe.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
projects/mtg/bin/Res/graphics/pspbgdeckeditor.jpg
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
projects/mtg/bin/Res/graphics/pspdeckmenu.png
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
projects/mtg/bin/Res/graphics/pspfakebar.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
projects/mtg/bin/Res/graphics/pspmagic.dat
Normal file
BIN
projects/mtg/bin/Res/graphics/pspmagic.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
projects/mtg/bin/Res/graphics/pspmenubgdeckeditor.jpg
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
projects/mtg/bin/Res/graphics/pspmenubgdeckeditor.png
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
projects/mtg/bin/Res/graphics/pspmenuholder.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
projects/mtg/bin/Res/graphics/pspmenupanel.jpg
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
projects/mtg/bin/Res/graphics/pspmenutitle.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
projects/mtg/bin/Res/graphics/pspshop.jpg
Normal file
|
After Width: | Height: | Size: 142 KiB |
BIN
projects/mtg/bin/Res/graphics/pspshop_light.jpg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
projects/mtg/bin/Res/graphics/pspstatsholder.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
projects/mtg/bin/Res/graphics/psptaskboard.png
Normal file
|
After Width: | Height: | Size: 128 KiB |
BIN
projects/mtg/bin/Res/graphics/psptextscroller.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
projects/mtg/bin/Res/graphics/psptextscrollershadow.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
projects/mtg/bin/Res/graphics/psptrophy.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
projects/mtg/bin/Res/graphics/psptrophy_prx_eviltwin.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
projects/mtg/bin/Res/graphics/psptrophy_prx_handler.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
projects/mtg/bin/Res/graphics/psptrophy_prx_rimom.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
projects/mtg/bin/Res/graphics/psptrophy_prx_rnddeck.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
projects/mtg/bin/Res/graphics/psptrophy_set.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
projects/mtg/bin/Res/graphics/stonehewer_unlocked.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
projects/mtg/bin/Res/graphics/titania_unlocked.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
127
projects/mtg/bin/Res/missing_cards_by_sets/10E.txt
Normal file
@@ -0,0 +1,127 @@
|
||||
[card]
|
||||
name=Aura Graft
|
||||
text=Gain control of target Aura that's attached to a permanent. Attach it to another permanent it can enchant.
|
||||
mana={1}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Coat of Arms
|
||||
text=Each creature gets +1/+1 for each other creature on the battlefield that shares at least one creature type with it. (For example, if two Goblin Warriors and a Goblin Shaman are on the battlefield, each gets +2/+2.)
|
||||
mana={5}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Cone of Flame
|
||||
text=Cone of Flame deals 1 damage to target creature or player, 2 damage to another target creature or player, and 3 damage to a third target creature or player.
|
||||
mana={3}{R}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Furnace of Rath
|
||||
text=If a source would deal damage to a creature or player, it deals double that damage to that creature or player instead.
|
||||
mana={1}{R}{R}{R}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Gaea's Herald
|
||||
text=Creature spells can't be countered.
|
||||
mana={1}{G}
|
||||
type=Creature
|
||||
subtype=Elf
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Guerrilla Tactics
|
||||
text=Guerrilla Tactics deals 2 damage to target creature or player. -- When a spell or ability an opponent controls causes you to discard Guerrilla Tactics, Guerrilla Tactics deals 4 damage to target creature or player.
|
||||
mana={1}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Hail of Arrows
|
||||
text=Hail of Arrows deals X damage divided as you choose among any number of target attacking creatures.
|
||||
mana={X}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=High Ground
|
||||
text=Each creature you control can block an additional creature.
|
||||
mana={W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Kjeldoran Royal Guard
|
||||
text={T}: All combat damage that would be dealt to you by unblocked creatures this turn is dealt to Kjeldoran Royal Guard instead.
|
||||
mana={3}{W}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=2
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Knight of Dusk
|
||||
text={B}{B}: Destroy target creature blocking Knight of Dusk.
|
||||
mana={1}{B}{B}
|
||||
type=Creature
|
||||
subtype=Human Knight
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Mind Bend
|
||||
text=Change the text of target permanent by replacing all instances of one color word with another or one basic land type with another. (For example, you may change "nonblack creature" to "nongreen creature" or "forestwalk" to "islandwalk." This effect lasts indefinitely.)
|
||||
mana={U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Pariah
|
||||
text=Enchant creature -- All damage that would be dealt to you is dealt to enchanted creature instead.
|
||||
mana={2}{W}
|
||||
type=Enchantment
|
||||
subtype=Aura
|
||||
[/card]
|
||||
[card]
|
||||
name=Pithing Needle
|
||||
text=As Pithing Needle enters the battlefield, name a card. -- Activated abilities of sources with the chosen name can't be activated unless they're mana abilities.
|
||||
mana={1}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Rootwater Matriarch
|
||||
text={T}: Gain control of target creature for as long as that creature is enchanted.
|
||||
mana={2}{U}{U}
|
||||
type=Creature
|
||||
subtype=Merfolk
|
||||
power=2
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Shunt
|
||||
text=Change the target of target spell with a single target.
|
||||
mana={1}{R}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Story Circle
|
||||
text=As Story Circle enters the battlefield, choose a color. -- {W}: The next time a source of your choice of the chosen color would deal damage to you this turn, prevent that damage.
|
||||
mana={1}{W}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Telepathy
|
||||
text=Your opponents play with their hands revealed.
|
||||
mana={U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Time Stop
|
||||
text=End the turn. (Exile all spells and abilities on the stack, including this card. The player whose turn it is discards down to his or her maximum hand size. Damage wears off, and "this turn" and "until end of turn" effects end.)
|
||||
mana={4}{U}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Warp World
|
||||
text=Each player shuffles all permanents he or she owns into his or her library, then reveals that many cards from the top of his or her library. Each player puts all artifact, creature, and land cards revealed this way onto the battlefield, then does the same for enchantment cards, then puts all cards revealed this way that weren't put onto the battlefield on the bottom of his or her library.
|
||||
mana={5}{R}{R}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
273
projects/mtg/bin/Res/missing_cards_by_sets/2ED.txt
Normal file
@@ -0,0 +1,273 @@
|
||||
[card]
|
||||
name=Benalish Hero
|
||||
text=Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Blaze of Glory
|
||||
text=Cast Blaze of Glory only during combat before blockers are declared. -- Target creature defending player controls can block any number of creatures this turn. It blocks each attacking creature this turn if able.
|
||||
mana={W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Camouflage
|
||||
text=Cast Camouflage only during your declare attackers step. -- This turn, instead of declaring blockers, each defending player chooses any number of creatures he or she controls and divides them into a number of piles equal to the number of attacking creatures for whom that player is the defending player. Creatures he or she controls that can block additional creatures may likewise be put into additional piles. Assign each pile to a different one of those attacking creatures at random. Each creature in a pile that can block the creature that pile is assigned to does so. (Piles can be empty.)
|
||||
mana={G}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Channel
|
||||
text=Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool.
|
||||
mana={G}{G}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Chaos Orb
|
||||
text={1}, {T}: If Chaos Orb is on the battlefield, flip Chaos Orb onto the battlefield from a height of at least one foot. If Chaos Orb turns over completely at least once during the flip, destroy all permanents it touches. Then destroy Chaos Orb.
|
||||
mana={2}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Contract from Below
|
||||
text=Remove Contract from Below from your deck before playing if you're not playing for ante. -- Discard your hand, add the top card of your library to the ante, then draw seven cards.
|
||||
mana={B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Darkpact
|
||||
text=Remove Darkpact from your deck before playing if you're not playing for ante. -- You own target card in the ante. Exchange that card with the top card of your library.
|
||||
mana={B}{B}{B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Demonic Attorney
|
||||
text=Remove Demonic Attorney from your deck before playing if you're not playing for ante. -- Each player antes the top card of his or her library.
|
||||
mana={1}{B}{B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Drain Power
|
||||
text=Target player activates a mana ability of each land he or she controls. Then put all mana from that player's mana pool into yours.
|
||||
mana={U}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=False Orders
|
||||
text=Cast False Orders only during the declare blockers step. -- Remove target creature defending player controls from combat. Creatures it was blocking that had become blocked by only that creature this combat become unblocked. You may have it block an attacking creature of your choice.
|
||||
mana={R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Forcefield
|
||||
text={1}: The next time an unblocked creature of your choice would deal combat damage to you this turn, prevent all but 1 of that damage.
|
||||
mana={3}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Gaea's Liege
|
||||
text=As long as Gaea's Liege isn't attacking, its power and toughness are each equal to the number of Forests you control. As long as Gaea's Liege is attacking, its power and toughness are each equal to the number of Forests defending player controls. -- {T}: Target land becomes a Forest until Gaea's Liege leaves the battlefield.
|
||||
mana={3}{G}{G}{G}
|
||||
type=Creature
|
||||
subtype=Avatar
|
||||
power=*
|
||||
toughness=*
|
||||
[/card]
|
||||
[card]
|
||||
name=Gloom
|
||||
text=White spells cost {3} more to cast. -- Activated abilities of white enchantments cost {3} more to activate.
|
||||
mana={2}{B}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Guardian Angel
|
||||
text=Prevent the next X damage that would be dealt to target creature or player this turn. Until end of turn, you may pay {1} any time you could cast an instant. If you do, prevent the next 1 damage that would be dealt to that creature or player this turn.
|
||||
mana={X}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Helm of Chatzuk
|
||||
text={1}, {T}: Target creature gains banding until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding a player controls are blocking or being blocked by a creature, that player divides that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={1}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Illusionary Mask
|
||||
text={X}: You may choose a creature card in your hand whose mana cost could be paid by some amount of, or all of, the mana you spent on {X}. If you do, you may cast that card face down as a 2/2 creature spell without paying its mana cost. If the creature that spell becomes as it resolves has not been turned face up and would assign or deal damage, be dealt damage, or become tapped, instead it's turned face up and assigns or deals damage, is dealt damage, or becomes tapped. Activate this ability only any time you could cast a sorcery.
|
||||
mana={2}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Island Sanctuary
|
||||
text=If you would draw a card during your draw step, instead you may skip that draw. If you do, until your next turn, you can't be attacked except by creatures with flying and/or islandwalk.
|
||||
mana={1}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Jade Monolith
|
||||
text={1}: The next time a source of your choice would deal damage to target creature this turn, that source deals that damage to you instead.
|
||||
mana={4}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Library of Leng
|
||||
text=You have no maximum hand size. -- If an effect causes you to discard a card, discard it, but you may put it on top of your library instead of into your graveyard.
|
||||
mana={1}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Lich
|
||||
text=As Lich enters the battlefield, you lose life equal to your life total. -- You don't lose the game for having 0 or less life. -- If you would gain life, draw that many cards instead. -- Whenever you're dealt damage, sacrifice that many nontoken permanents. If you can't, you lose the game. -- When Lich is put into a graveyard from the battlefield, you lose the game.
|
||||
mana={B}{B}{B}{B}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Magical Hack
|
||||
text=Change the text of target spell or permanent by replacing all instances of one basic land type with another. (For example, you may change "swampwalk" to "plainswalk." This effect lasts indefinitely.)
|
||||
mana={U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Mesa Pegasus
|
||||
text=Flying; banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={1}{W}
|
||||
type=Creature
|
||||
subtype=Pegasus
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Nether Shadow
|
||||
text=Haste -- At the beginning of your upkeep, if Nether Shadow is in your graveyard with three or more creature cards above it, you may put Nether Shadow onto the battlefield.
|
||||
mana={B}{B}
|
||||
type=Creature
|
||||
subtype=Spirit
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Nettling Imp
|
||||
text={T}: Choose target non-Wall creature the active player has controlled continuously since the beginning of the turn. That creature attacks this turn if able. If it doesn't, destroy it at the beginning of the next end step. Activate this ability only during an opponent's turn, before attackers are declared.
|
||||
mana={2}{B}
|
||||
type=Creature
|
||||
subtype=Imp
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Personal Incarnation
|
||||
text={0}: The next 1 damage that would be dealt to Personal Incarnation this turn is dealt to its owner instead. Any player may activate this ability, but only if he or she owns Personal Incarnation. -- When Personal Incarnation dies, its owner loses half his or her life, rounded up.
|
||||
mana={3}{W}{W}{W}
|
||||
type=Creature
|
||||
subtype=Avatar Incarnation
|
||||
power=6
|
||||
toughness=6
|
||||
[/card]
|
||||
[card]
|
||||
name=Power Sink
|
||||
text=Counter target spell unless its controller pays {X}. If he or she doesn't, that player taps all lands with mana abilities he or she controls and empties his or her mana pool.
|
||||
mana={X}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Power Surge
|
||||
text=At the beginning of each player's upkeep, Power Surge deals X damage to that player, where X is the number of untapped lands he or she controlled at the beginning of this turn.
|
||||
mana={R}{R}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Raging River
|
||||
text=Whenever one or more creatures you control attack, each defending player divides all creatures without flying he or she controls into a "left" pile and a "right" pile. Then, for each attacking creature you control, choose "left" or "right." That creature can't be blocked this combat except by creatures with flying and creatures in a pile with the chosen label.
|
||||
mana={R}{R}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Reverse Damage
|
||||
text=The next time a source of your choice would deal damage to you this turn, prevent that damage. You gain life equal to the damage prevented this way.
|
||||
mana={1}{W}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Siren's Call
|
||||
text=Cast Siren's Call only during an opponent's turn, before attackers are declared. -- Creatures the active player controls attack this turn if able. -- At the beginning of the next end step, destroy all non-Wall creatures that player controls that didn't attack this turn. Ignore this effect for each creature the player didn't control continuously since the beginning of the turn.
|
||||
mana={U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Sleight of Mind
|
||||
text=Change the text of target spell or permanent by replacing all instances of one color word with another. (For example, you may change "target black spell" to "target blue spell." This effect lasts indefinitely.)
|
||||
mana={U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Smoke
|
||||
text=Players can't untap more than one creature during their untap steps.
|
||||
mana={R}{R}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Stone Giant
|
||||
text={T}: Target creature you control with toughness less than Stone Giant's power gains flying until end of turn. Destroy that creature at the beginning of the next end step.
|
||||
mana={2}{R}{R}
|
||||
type=Creature
|
||||
subtype=Giant
|
||||
power=3
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Timber Wolves
|
||||
text=Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={G}
|
||||
type=Creature
|
||||
subtype=Wolf
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Time Vault
|
||||
text=Time Vault enters the battlefield tapped. -- Time Vault doesn't untap during your untap step. -- If you would begin your turn while Time Vault is tapped, you may skip that turn instead. If you do, untap Time Vault. -- {T}: Take an extra turn after this one.
|
||||
mana={2}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Two-Headed Giant of Foriys
|
||||
text=Trample -- Two-Headed Giant of Foriys can block an additional creature.
|
||||
mana={4}{R}
|
||||
type=Creature
|
||||
subtype=Giant
|
||||
power=4
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Vesuvan Doppelganger
|
||||
text=You may have Vesuvan Doppelganger enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it gains "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability."
|
||||
mana={3}{U}{U}
|
||||
type=Creature
|
||||
subtype=Shapeshifter
|
||||
power=0
|
||||
toughness=0
|
||||
[/card]
|
||||
[card]
|
||||
name=Veteran Bodyguard
|
||||
text=As long as Veteran Bodyguard is untapped, all damage that would be dealt to you by unblocked creatures is dealt to Veteran Bodyguard instead.
|
||||
mana={3}{W}{W}
|
||||
type=Creature
|
||||
subtype=Human
|
||||
power=2
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Winter Orb
|
||||
text=As long as Winter Orb is untapped, players can't untap more than one land during their untap steps.
|
||||
mana={2}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Word of Command
|
||||
text=Look at target opponent's hand and choose a card from it. You control that player until Word of Command finishes resolving. The player plays that card if able. While doing so, the player can activate mana abilities only if they're from lands he or she controls and only if mana they produce is spent to activate other mana abilities of lands he or she controls and/or play that card. If the chosen card is cast as a spell, you control the player while that spell is resolving.
|
||||
mana={B}{B}
|
||||
type=Instant
|
||||
[/card]
|
||||
322
projects/mtg/bin/Res/missing_cards_by_sets/4ED.txt
Normal file
@@ -0,0 +1,322 @@
|
||||
[card]
|
||||
name=Aladdin's Lamp
|
||||
text={X}, {T}: The next time you would draw a card this turn, instead look at the top X cards of your library, put all but one of them on the bottom of your library in a random order, then draw a card. X can't be 0.
|
||||
mana={10}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Battering Ram
|
||||
text=At the beginning of combat on your turn, Battering Ram gains banding until end of combat. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's blocking.) -- Whenever Battering Ram becomes blocked by a Wall, destroy that Wall at end of combat.
|
||||
mana={2}
|
||||
type=Artifact Creature
|
||||
subtype=Construct
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Benalish Hero
|
||||
text=Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Bronze Tablet
|
||||
text=Remove Bronze Tablet from your deck before playing if you're not playing for ante. -- Bronze Tablet enters the battlefield tapped. -- {4}, {T}: Exile Bronze Tablet and target nontoken permanent an opponent owns. That player may pay 10 life. If he or she does, put Bronze Tablet into its owner's graveyard. Otherwise, that player owns Bronze Tablet and you own the other exiled card.
|
||||
mana={6}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Channel
|
||||
text=Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool.
|
||||
mana={G}{G}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Circle of Protection: Artifacts
|
||||
text={2}: The next time an artifact source of your choice would deal damage to you this turn, prevent that damage.
|
||||
mana={1}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Cursed Rack
|
||||
text=As Cursed Rack enters the battlefield, choose an opponent. -- The chosen player's maximum hand size is four.
|
||||
mana={4}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Drain Power
|
||||
text=Target player activates a mana ability of each land he or she controls. Then put all mana from that player's mana pool into yours.
|
||||
mana={U}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Erosion
|
||||
text=Enchant land -- At the beginning of the upkeep of enchanted land's controller, destroy that land unless that player pays {1} or 1 life.
|
||||
mana={U}{U}{U}
|
||||
type=Enchantment
|
||||
subtype=Aura
|
||||
[/card]
|
||||
[card]
|
||||
name=Fortified Area
|
||||
text=Wall creatures you control get +1/+0 and have banding. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={1}{W}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Gaea's Liege
|
||||
text=As long as Gaea's Liege isn't attacking, its power and toughness are each equal to the number of Forests you control. As long as Gaea's Liege is attacking, its power and toughness are each equal to the number of Forests defending player controls. -- {T}: Target land becomes a Forest until Gaea's Liege leaves the battlefield.
|
||||
mana={3}{G}{G}{G}
|
||||
type=Creature
|
||||
subtype=Avatar
|
||||
power=*
|
||||
toughness=*
|
||||
[/card]
|
||||
[card]
|
||||
name=Gloom
|
||||
text=White spells cost {3} more to cast. -- Activated abilities of white enchantments cost {3} more to activate.
|
||||
mana={2}{B}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Helm of Chatzuk
|
||||
text={1}, {T}: Target creature gains banding until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding a player controls are blocking or being blocked by a creature, that player divides that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={1}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Island Sanctuary
|
||||
text=If you would draw a card during your draw step, instead you may skip that draw. If you do, until your next turn, you can't be attacked except by creatures with flying and/or islandwalk.
|
||||
mana={1}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Jade Monolith
|
||||
text={1}: The next time a source of your choice would deal damage to target creature this turn, that source deals that damage to you instead.
|
||||
mana={4}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Library of Leng
|
||||
text=You have no maximum hand size. -- If an effect causes you to discard a card, discard it, but you may put it on top of your library instead of into your graveyard.
|
||||
mana={1}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Magical Hack
|
||||
text=Change the text of target spell or permanent by replacing all instances of one basic land type with another. (For example, you may change "swampwalk" to "plainswalk." This effect lasts indefinitely.)
|
||||
mana={U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Mana Clash
|
||||
text=You and target opponent each flip a coin. Mana Clash deals 1 damage to each player whose coin comes up tails. Repeat this process until both players' coins come up heads on the same flip.
|
||||
mana={R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Mesa Pegasus
|
||||
text=Flying; banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={1}{W}
|
||||
type=Creature
|
||||
subtype=Pegasus
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Mind Bomb
|
||||
text=Each player may discard up to three cards. Mind Bomb deals damage to each player equal to 3 minus the number of cards he or she discarded this way.
|
||||
mana={U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Mishra's War Machine
|
||||
text=Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) -- At the beginning of your upkeep, unless you discard a card, tap Mishra's War Machine and it deals 3 damage to you.
|
||||
mana={7}
|
||||
type=Artifact Creature
|
||||
subtype=Juggernaut
|
||||
power=5
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Nafs Asp
|
||||
text=Whenever Nafs Asp deals damage to a player, that player loses 1 life at the beginning of his or her next draw step unless he or she pays {1} before that draw step.
|
||||
mana={G}
|
||||
type=Creature
|
||||
subtype=Snake
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Nether Shadow
|
||||
text=Haste -- At the beginning of your upkeep, if Nether Shadow is in your graveyard with three or more creature cards above it, you may put Nether Shadow onto the battlefield.
|
||||
mana={B}{B}
|
||||
type=Creature
|
||||
subtype=Spirit
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Personal Incarnation
|
||||
text={0}: The next 1 damage that would be dealt to Personal Incarnation this turn is dealt to its owner instead. Any player may activate this ability, but only if he or she owns Personal Incarnation. -- When Personal Incarnation dies, its owner loses half his or her life, rounded up.
|
||||
mana={3}{W}{W}{W}
|
||||
type=Creature
|
||||
subtype=Avatar Incarnation
|
||||
power=6
|
||||
toughness=6
|
||||
[/card]
|
||||
[card]
|
||||
name=Pikemen
|
||||
text=First strike; banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={1}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Power Sink
|
||||
text=Counter target spell unless its controller pays {X}. If he or she doesn't, that player taps all lands with mana abilities he or she controls and empties his or her mana pool.
|
||||
mana={X}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Power Surge
|
||||
text=At the beginning of each player's upkeep, Power Surge deals X damage to that player, where X is the number of untapped lands he or she controlled at the beginning of this turn.
|
||||
mana={R}{R}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Pyrotechnics
|
||||
text=Pyrotechnics deals 4 damage divided as you choose among any number of target creatures and/or players.
|
||||
mana={4}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Rag Man
|
||||
text={B}{B}{B}, {T}: Target opponent reveals his or her hand and discards a creature card at random. Activate this ability only during your turn.
|
||||
mana={2}{B}{B}
|
||||
type=Creature
|
||||
subtype=Human Minion
|
||||
power=2
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Rebirth
|
||||
text=Remove Rebirth from your deck before playing if you're not playing for ante. -- -- Each player may put the top card of his or her library into the ante. If a player does, his or her life total becomes 20.
|
||||
mana={3}{G}{G}{G}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Reverse Damage
|
||||
text=The next time a source of your choice would deal damage to you this turn, prevent that damage. You gain life equal to the damage prevented this way.
|
||||
mana={1}{W}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Shapeshifter
|
||||
text=As Shapeshifter enters the battlefield, choose a number between 0 and 7. -- At the beginning of your upkeep, you may choose a number between 0 and 7. -- Shapeshifter's power is equal to the last chosen number and its toughness is equal to 7 minus that number.
|
||||
mana={6}
|
||||
type=Artifact Creature
|
||||
subtype=Shapeshifter
|
||||
power=*
|
||||
toughness=7-*
|
||||
[/card]
|
||||
[card]
|
||||
name=Sindbad
|
||||
text={T}: Draw a card and reveal it. If it isn't a land card, discard it.
|
||||
mana={1}{U}
|
||||
type=Creature
|
||||
subtype=Human
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Siren's Call
|
||||
text=Cast Siren's Call only during an opponent's turn, before attackers are declared. -- Creatures the active player controls attack this turn if able. -- At the beginning of the next end step, destroy all non-Wall creatures that player controls that didn't attack this turn. Ignore this effect for each creature the player didn't control continuously since the beginning of the turn.
|
||||
mana={U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Sleight of Mind
|
||||
text=Change the text of target spell or permanent by replacing all instances of one color word with another. (For example, you may change "target black spell" to "target blue spell." This effect lasts indefinitely.)
|
||||
mana={U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Smoke
|
||||
text=Players can't untap more than one creature during their untap steps.
|
||||
mana={R}{R}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Stone Giant
|
||||
text={T}: Target creature you control with toughness less than Stone Giant's power gains flying until end of turn. Destroy that creature at the beginning of the next end step.
|
||||
mana={2}{R}{R}
|
||||
type=Creature
|
||||
subtype=Giant
|
||||
power=3
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Sylvan Library
|
||||
text=At the beginning of your draw step, you may draw two additional cards. If you do, choose two cards in your hand drawn this turn. For each of those cards, pay 4 life or put the card on top of your library.
|
||||
mana={1}{G}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Tempest Efreet
|
||||
text=Remove Tempest Efreet from your deck before playing if you're not playing for ante. -- {T}, Sacrifice Tempest Efreet: Target opponent may pay 10 life. If that player doesn't, he or she reveals a card at random from his or her hand. Exchange ownership of the revealed card and Tempest Efreet. Put the revealed card into your hand and Tempest Efreet from anywhere into that player's graveyard.
|
||||
mana={1}{R}{R}{R}
|
||||
type=Creature
|
||||
subtype=Efreet
|
||||
power=3
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Timber Wolves
|
||||
text=Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={G}
|
||||
type=Creature
|
||||
subtype=Wolf
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Titania's Song
|
||||
text=Each noncreature artifact loses all abilities and becomes an artifact creature with power and toughness each equal to its converted mana cost. If Titania's Song leaves the battlefield, this effect continues until end of turn.
|
||||
mana={3}{G}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Urza's Avenger
|
||||
text={0}: Urza's Avenger gets -1/-1 and gains your choice of banding, flying, first strike, or trample until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={6}
|
||||
type=Artifact Creature
|
||||
subtype=Shapeshifter
|
||||
power=4
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Visions
|
||||
text=Look at the top five cards of target player's library. You may then have that player shuffle that library.
|
||||
mana={W}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Winter Orb
|
||||
text=As long as Winter Orb is untapped, players can't untap more than one land during their untap steps.
|
||||
mana={2}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Xenic Poltergeist
|
||||
text={T}: Until your next upkeep, target noncreature artifact becomes an artifact creature with power and toughness each equal to its converted mana cost.
|
||||
mana={1}{B}{B}
|
||||
type=Creature
|
||||
subtype=Spirit
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
120
projects/mtg/bin/Res/missing_cards_by_sets/5DN.txt
Normal file
@@ -0,0 +1,120 @@
|
||||
[card]
|
||||
name=Abuna's Chant
|
||||
text=Choose one — You gain 5 life; or prevent the next 5 damage that would be dealt to target creature this turn. -- Entwine {2} (Choose both if you pay the entwine cost.)
|
||||
mana={3}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Circle of Protection: Artifacts
|
||||
text={2}: The next time an artifact source of your choice would deal damage to you this turn, prevent that damage.
|
||||
mana={1}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Disruption Aura
|
||||
text=Enchant artifact -- Enchanted artifact has "At the beginning of your upkeep, sacrifice this artifact unless you pay its mana cost."
|
||||
mana={2}{U}
|
||||
type=Enchantment
|
||||
subtype=Aura
|
||||
[/card]
|
||||
[card]
|
||||
name=Ensouled Scimitar
|
||||
text={3}: Ensouled Scimitar becomes a 1/5 Spirit artifact creature with flying until end of turn. (Equipment that's a creature can't equip a creature.) -- Equipped creature gets +1/+5. -- Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)
|
||||
mana={3}
|
||||
type=Artifact
|
||||
subtype=Equipment
|
||||
[/card]
|
||||
[card]
|
||||
name=Ferropede
|
||||
text=Ferropede is unblockable. -- Whenever Ferropede deals combat damage to a player, you may remove a counter from target permanent.
|
||||
mana={3}
|
||||
type=Artifact Creature
|
||||
subtype=Insect
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Fist of Suns
|
||||
text=You may pay {W}{U}{B}{R}{G} rather than pay the mana cost for spells that you cast.
|
||||
mana={3}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Grafted Wargear
|
||||
text=Equipped creature gets +3/+2. -- Whenever Grafted Wargear becomes unattached from a permanent, sacrifice that permanent. -- Equip {0} ({0}: Attach to target creature you control. Equip only as a sorcery.)
|
||||
mana={3}
|
||||
type=Artifact
|
||||
subtype=Equipment
|
||||
[/card]
|
||||
[card]
|
||||
name=Lantern of Insight
|
||||
text=Each player plays with the top card of his or her library revealed. -- {T}, Sacrifice Lantern of Insight: Target player shuffles his or her library.
|
||||
mana={1}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Ouphe Vandals
|
||||
text={G}, Sacrifice Ouphe Vandals: Counter target activated ability from an artifact source and destroy that artifact if it's on the battlefield. (Mana abilities can't be targeted.)
|
||||
mana={2}{G}
|
||||
type=Creature
|
||||
subtype=Ouphe Rogue
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Plunge into Darkness
|
||||
text=Choose one — Sacrifice any number of creatures, then you gain 3 life for each sacrificed creature; or pay X life, then look at the top X cards of your library, put one of those cards into your hand, and exile the rest. -- Entwine {B} (Choose both if you pay the entwine cost.)
|
||||
mana={1}{B}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Rain of Rust
|
||||
text=Choose one — Destroy target artifact; or destroy target land. -- Entwine {3}{R} (Choose both if you pay the entwine cost.)
|
||||
mana={3}{R}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Reversal of Fortune
|
||||
text=Target opponent reveals his or her hand. You may copy an instant or sorcery card in it. If you do, you may cast the copy without paying its mana cost.
|
||||
mana={4}{R}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Silent Arbiter
|
||||
text=No more than one creature can attack each combat. -- No more than one creature can block each combat.
|
||||
mana={4}
|
||||
type=Artifact Creature
|
||||
subtype=Construct
|
||||
power=1
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Spectral Shift
|
||||
text=Choose one — Change the text of target spell or permanent by replacing all instances of one basic land type with another; or change the text of target spell or permanent by replacing all instances of one color word with another. (These effects last indefinitely.) -- Entwine {2} (Choose both if you pay the entwine cost.)
|
||||
mana={1}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Spinal Parasite
|
||||
text=Sunburst (This enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.) -- Remove two +1/+1 counters from Spinal Parasite: Remove a counter from target permanent.
|
||||
mana={5}
|
||||
type=Artifact Creature
|
||||
subtype=Insect
|
||||
power=-1
|
||||
toughness=-1
|
||||
[/card]
|
||||
[card]
|
||||
name=Summoner's Egg
|
||||
text=Imprint — When Summoner's Egg enters the battlefield, you may exile a card from your hand face down. -- When Summoner's Egg dies, turn the exiled card face up. If it's a creature card, put it onto the battlefield under your control.
|
||||
mana={4}
|
||||
type=Artifact Creature
|
||||
subtype=Construct
|
||||
power=0
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Vicious Betrayal
|
||||
text=As an additional cost to cast Vicious Betrayal, sacrifice any number of creatures. -- Target creature gets +2/+2 until end of turn for each creature sacrificed this way.
|
||||
mana={3}{B}{B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
431
projects/mtg/bin/Res/missing_cards_by_sets/5ED.txt
Normal file
@@ -0,0 +1,431 @@
|
||||
[card]
|
||||
name=AEther Storm
|
||||
text=Creature spells can't be cast. -- Pay 4 life: Destroy AEther Storm. It can't be regenerated. Any player may activate this ability.
|
||||
mana={3}{U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Anti-Magic Aura
|
||||
text=Enchant creature -- Enchanted creature can't be the target of spells and can't be enchanted. This effect doesn't remove Anti-Magic Aura.
|
||||
mana={2}{U}
|
||||
type=Enchantment
|
||||
subtype=Aura
|
||||
[/card]
|
||||
[card]
|
||||
name=Battering Ram
|
||||
text=At the beginning of combat on your turn, Battering Ram gains banding until end of combat. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's blocking.) -- Whenever Battering Ram becomes blocked by a Wall, destroy that Wall at end of combat.
|
||||
mana={2}
|
||||
type=Artifact Creature
|
||||
subtype=Construct
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Benalish Hero
|
||||
text=Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Broken Visage
|
||||
text=Destroy target nonartifact attacking creature. It can't be regenerated. Put a black Spirit creature token with that creature's power and toughness onto the battlefield. Sacrifice the token at the beginning of the next end step.
|
||||
mana={4}{B}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Circle of Protection: Artifacts
|
||||
text={2}: The next time an artifact source of your choice would deal damage to you this turn, prevent that damage.
|
||||
mana={1}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Crown of the Ages
|
||||
text={4}, {T}: Attach target Aura attached to a creature to another creature.
|
||||
mana={2}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Dance of Many
|
||||
text=When Dance of Many enters the battlefield, put a token that's a copy of target nontoken creature onto the battlefield. -- When Dance of Many leaves the battlefield, exile the token. -- When the token leaves the battlefield, sacrifice Dance of Many. -- At the beginning of your upkeep, sacrifice Dance of Many unless you pay {U}{U}.
|
||||
mana={U}{U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Deflection
|
||||
text=Change the target of target spell with a single target.
|
||||
mana={3}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Drain Power
|
||||
text=Target player activates a mana ability of each land he or she controls. Then put all mana from that player's mana pool into yours.
|
||||
mana={U}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Dwarven Catapult
|
||||
text=Dwarven Catapult deals X damage divided evenly, rounded down, among all creatures target opponent controls.
|
||||
mana={X}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Elkin Bottle
|
||||
text={3}, {T}: Exile the top card of your library. Until the beginning of your next upkeep, you may play that card.
|
||||
mana={3}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Game of Chaos
|
||||
text=Flip a coin. If you win the flip, you gain 1 life and target opponent loses 1 life, and you decide whether to flip again. If you lose the flip, you lose 1 life and that opponent gains 1 life, and that player decides whether to flip again. Double the life stakes with each flip.
|
||||
mana={R}{R}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Gauntlets of Chaos
|
||||
text={5}, Sacrifice Gauntlets of Chaos: Exchange control of target artifact, creature, or land you control and target permanent an opponent controls that shares one of those types with it. If those permanents are exchanged this way, destroy all Auras attached to them.
|
||||
mana={5}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Gloom
|
||||
text=White spells cost {3} more to cast. -- Activated abilities of white enchantments cost {3} more to activate.
|
||||
mana={2}{B}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Greater Realm of Preservation
|
||||
text={1}{W}: The next time a black or red source of your choice would deal damage to you this turn, prevent that damage.
|
||||
mana={1}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Helm of Chatzuk
|
||||
text={1}, {T}: Target creature gains banding until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding a player controls are blocking or being blocked by a creature, that player divides that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={1}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Hipparion
|
||||
text=Hipparion can't block creatures with power 3 or greater unless you pay {1}.
|
||||
mana={1}{W}
|
||||
type=Creature
|
||||
subtype=Horse
|
||||
power=1
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Icatian Phalanx
|
||||
text=Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={4}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=2
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Infinite Hourglass
|
||||
text=At the beginning of your upkeep, put a time counter on Infinite Hourglass. -- All creatures get +1/+0 for each time counter on Infinite Hourglass. -- {3}: Remove a time counter from Infinite Hourglass. Any player may activate this ability but only during any upkeep step.
|
||||
mana={4}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Ironclaw Curse
|
||||
text=Enchant creature -- Enchanted creature gets -0/-1. -- Enchanted creature can't block creatures with power equal to or greater than the enchanted creature's toughness.
|
||||
mana={R}
|
||||
type=Enchantment
|
||||
subtype=Aura
|
||||
[/card]
|
||||
[card]
|
||||
name=Island Sanctuary
|
||||
text=If you would draw a card during your draw step, instead you may skip that draw. If you do, until your next turn, you can't be attacked except by creatures with flying and/or islandwalk.
|
||||
mana={1}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Jade Monolith
|
||||
text={1}: The next time a source of your choice would deal damage to target creature this turn, that source deals that damage to you instead.
|
||||
mana={4}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Juxtapose
|
||||
text=You and target player exchange control of the creature you each control with the highest converted mana cost. Then exchange control of artifacts the same way. If two or more permanents a player controls are tied for highest cost, their controller chooses one of them.
|
||||
mana={3}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Kjeldoran Royal Guard
|
||||
text={T}: All combat damage that would be dealt to you by unblocked creatures this turn is dealt to Kjeldoran Royal Guard instead.
|
||||
mana={3}{W}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=2
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Kjeldoran Skycaptain
|
||||
text=Flying; first strike; banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={4}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Library of Leng
|
||||
text=You have no maximum hand size. -- If an effect causes you to discard a card, discard it, but you may put it on top of your library instead of into your graveyard.
|
||||
mana={1}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Magical Hack
|
||||
text=Change the text of target spell or permanent by replacing all instances of one basic land type with another. (For example, you may change "swampwalk" to "plainswalk." This effect lasts indefinitely.)
|
||||
mana={U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Mana Clash
|
||||
text=You and target opponent each flip a coin. Mana Clash deals 1 damage to each player whose coin comes up tails. Repeat this process until both players' coins come up heads on the same flip.
|
||||
mana={R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Mesa Pegasus
|
||||
text=Flying; banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={1}{W}
|
||||
type=Creature
|
||||
subtype=Pegasus
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Mind Bomb
|
||||
text=Each player may discard up to three cards. Mind Bomb deals damage to each player equal to 3 minus the number of cards he or she discarded this way.
|
||||
mana={U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Necropotence
|
||||
text=Skip your draw step. -- Whenever you discard a card, exile that card from your graveyard. -- Pay 1 life: Exile the top card of your library face down. Put that card into your hand at the beginning of your next end step.
|
||||
mana={B}{B}{B}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Nether Shadow
|
||||
text=Haste -- At the beginning of your upkeep, if Nether Shadow is in your graveyard with three or more creature cards above it, you may put Nether Shadow onto the battlefield.
|
||||
mana={B}{B}
|
||||
type=Creature
|
||||
subtype=Spirit
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Orcish Farmer
|
||||
text={T}: Target land becomes a Swamp until its controller's next untap step.
|
||||
mana={1}{R}{R}
|
||||
type=Creature
|
||||
subtype=Orc
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Pentagram of the Ages
|
||||
text={4}, {T}: The next time a source of your choice would deal damage to you this turn, prevent that damage.
|
||||
mana={4}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Personal Incarnation
|
||||
text={0}: The next 1 damage that would be dealt to Personal Incarnation this turn is dealt to its owner instead. Any player may activate this ability, but only if he or she owns Personal Incarnation. -- When Personal Incarnation dies, its owner loses half his or her life, rounded up.
|
||||
mana={3}{W}{W}{W}
|
||||
type=Creature
|
||||
subtype=Avatar Incarnation
|
||||
power=6
|
||||
toughness=6
|
||||
[/card]
|
||||
[card]
|
||||
name=Pikemen
|
||||
text=First strike; banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={1}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Power Sink
|
||||
text=Counter target spell unless its controller pays {X}. If he or she doesn't, that player taps all lands with mana abilities he or she controls and empties his or her mana pool.
|
||||
mana={X}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Pox
|
||||
text=Each player loses a third of his or her life, then discards a third of the cards in his or her hand, then sacrifices a third of the creatures he or she controls, then sacrifices a third of the lands he or she controls. Round up each time.
|
||||
mana={B}{B}{B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Primordial Ooze
|
||||
text=Primordial Ooze attacks each turn if able. -- At the beginning of your upkeep, put a +1/+1 counter on Primordial Ooze. Then you may pay {X}, where X is the number of +1/+1 counters on it. If you don't, tap Primordial Ooze and it deals X damage to you.
|
||||
mana={R}
|
||||
type=Creature
|
||||
subtype=Ooze
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Pyrotechnics
|
||||
text=Pyrotechnics deals 4 damage divided as you choose among any number of target creatures and/or players.
|
||||
mana={4}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Rag Man
|
||||
text={B}{B}{B}, {T}: Target opponent reveals his or her hand and discards a creature card at random. Activate this ability only during your turn.
|
||||
mana={2}{B}{B}
|
||||
type=Creature
|
||||
subtype=Human Minion
|
||||
power=2
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Recall
|
||||
text=Discard X cards, then return a card from your graveyard to your hand for each card discarded this way. Exile Recall.
|
||||
mana={X}{X}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Reverse Damage
|
||||
text=The next time a source of your choice would deal damage to you this turn, prevent that damage. You gain life equal to the damage prevented this way.
|
||||
mana={1}{W}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Sacred Boon
|
||||
text=Prevent the next 3 damage that would be dealt to target creature this turn. At the beginning of the next end step, put a +0/+1 counter on that creature for each 1 damage prevented this way.
|
||||
mana={1}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Seasinger
|
||||
text=When you control no Islands, sacrifice Seasinger. -- You may choose not to untap Seasinger during your untap step. -- {T}: Gain control of target creature whose controller controls an Island for as long as you control Seasinger and Seasinger remains tapped.
|
||||
mana={1}{U}{U}
|
||||
type=Creature
|
||||
subtype=Merfolk
|
||||
power=0
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Seraph
|
||||
text=Flying -- Whenever a creature dealt damage by Seraph this turn dies, put that card onto the battlefield under your control at the beginning of the next end step. Sacrifice the creature when you lose control of Seraph.
|
||||
mana={6}{W}
|
||||
type=Creature
|
||||
subtype=Angel
|
||||
power=4
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Shapeshifter
|
||||
text=As Shapeshifter enters the battlefield, choose a number between 0 and 7. -- At the beginning of your upkeep, you may choose a number between 0 and 7. -- Shapeshifter's power is equal to the last chosen number and its toughness is equal to 7 minus that number.
|
||||
mana={6}
|
||||
type=Artifact Creature
|
||||
subtype=Shapeshifter
|
||||
power=*
|
||||
toughness=7-*
|
||||
[/card]
|
||||
[card]
|
||||
name=Shield Bearer
|
||||
text=Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={1}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=0
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Sleight of Mind
|
||||
text=Change the text of target spell or permanent by replacing all instances of one color word with another. (For example, you may change "target black spell" to "target blue spell." This effect lasts indefinitely.)
|
||||
mana={U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Smoke
|
||||
text=Players can't untap more than one creature during their untap steps.
|
||||
mana={R}{R}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Soul Barrier
|
||||
text=Whenever an opponent casts a creature spell, Soul Barrier deals 2 damage to that player unless he or she pays {2}.
|
||||
mana={2}{U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Stone Giant
|
||||
text={T}: Target creature you control with toughness less than Stone Giant's power gains flying until end of turn. Destroy that creature at the beginning of the next end step.
|
||||
mana={2}{R}{R}
|
||||
type=Creature
|
||||
subtype=Giant
|
||||
power=3
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Sylvan Library
|
||||
text=At the beginning of your draw step, you may draw two additional cards. If you do, choose two cards in your hand drawn this turn. For each of those cards, pay 4 life or put the card on top of your library.
|
||||
mana={1}{G}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=The Wretched
|
||||
text=At end of combat, gain control of all creatures blocking The Wretched for as long as you control The Wretched.
|
||||
mana={3}{B}{B}
|
||||
type=Creature
|
||||
subtype=Demon
|
||||
power=2
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Titania's Song
|
||||
text=Each noncreature artifact loses all abilities and becomes an artifact creature with power and toughness each equal to its converted mana cost. If Titania's Song leaves the battlefield, this effect continues until end of turn.
|
||||
mana={3}{G}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Urza's Avenger
|
||||
text={0}: Urza's Avenger gets -1/-1 and gains your choice of banding, flying, first strike, or trample until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={6}
|
||||
type=Artifact Creature
|
||||
subtype=Shapeshifter
|
||||
power=4
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Urza's Bauble
|
||||
text={T}, Sacrifice Urza's Bauble: Look at a card at random in target player's hand. You draw a card at the beginning of the next turn's upkeep.
|
||||
mana={0}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Winter Orb
|
||||
text=As long as Winter Orb is untapped, players can't untap more than one land during their untap steps.
|
||||
mana={2}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Xenic Poltergeist
|
||||
text={T}: Until your next upkeep, target noncreature artifact becomes an artifact creature with power and toughness each equal to its converted mana cost.
|
||||
mana={1}{B}{B}
|
||||
type=Creature
|
||||
subtype=Spirit
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Zur's Weirding
|
||||
text=Players play with their hands revealed. -- If a player would draw a card, he or she reveals it instead. Then any other player may pay 2 life. If a player does, put that card into its owner's graveyard. Otherwise, that player draws a card.
|
||||
mana={3}{U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
138
projects/mtg/bin/Res/missing_cards_by_sets/6ED.txt
Normal file
@@ -0,0 +1,138 @@
|
||||
[card]
|
||||
name=Celestial Dawn
|
||||
text=Lands you control are Plains. -- Nonland cards you own that aren't on the battlefield, spells you control, and nonland permanents you control are white. -- You may spend white mana as though it were mana of any color. You may spend other mana only as though it were colorless mana.
|
||||
mana={1}{W}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Deflection
|
||||
text=Change the target of target spell with a single target.
|
||||
mana={3}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Desertion
|
||||
text=Counter target spell. If an artifact or creature spell is countered this way, put that card onto the battlefield under your control instead of into its owner's graveyard.
|
||||
mana={3}{U}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Doomsday
|
||||
text=Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
|
||||
mana={B}{B}{B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Flash
|
||||
text=You may put a creature card from your hand onto the battlefield. If you do, sacrifice it unless you pay its mana cost reduced by up to {2}.
|
||||
mana={1}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Grinning Totem
|
||||
text={2}, {T}, Sacrifice Grinning Totem: Search target opponent's library for a card and exile it. Then that player shuffles his or her library. Until the beginning of your next upkeep, you may play that card. At the beginning of your next upkeep, if you haven't played it, put it into its owner's graveyard.
|
||||
mana={4}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Illicit Auction
|
||||
text=Each player may bid life for control of target creature. You start the bidding with a bid of 0. In turn order, each player may top the high bid. The bidding ends if the high bid stands. The high bidder loses life equal to the high bid and gains control of the creature. (This effect lasts indefinitely.)
|
||||
mana={3}{R}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Jade Monolith
|
||||
text={1}: The next time a source of your choice would deal damage to target creature this turn, that source deals that damage to you instead.
|
||||
mana={4}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Juxtapose
|
||||
text=You and target player exchange control of the creature you each control with the highest converted mana cost. Then exchange control of artifacts the same way. If two or more permanents a player controls are tied for highest cost, their controller chooses one of them.
|
||||
mana={3}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Kjeldoran Royal Guard
|
||||
text={T}: All combat damage that would be dealt to you by unblocked creatures this turn is dealt to Kjeldoran Royal Guard instead.
|
||||
mana={3}{W}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=2
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Library of Lat-Nam
|
||||
text=An opponent chooses one — You draw three cards at the beginning of the next turn's upkeep; or you search your library for a card, put that card into your hand, then shuffle your library.
|
||||
mana={4}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Pentagram of the Ages
|
||||
text={4}, {T}: The next time a source of your choice would deal damage to you this turn, prevent that damage.
|
||||
mana={4}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Power Sink
|
||||
text=Counter target spell unless its controller pays {X}. If he or she doesn't, that player taps all lands with mana abilities he or she controls and empties his or her mana pool.
|
||||
mana={X}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Psychic Transfer
|
||||
text=If the difference between your life total and target player's life total is 5 or less, exchange life totals with that player.
|
||||
mana={4}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Pyrotechnics
|
||||
text=Pyrotechnics deals 4 damage divided as you choose among any number of target creatures and/or players.
|
||||
mana={4}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Rag Man
|
||||
text={B}{B}{B}, {T}: Target opponent reveals his or her hand and discards a creature card at random. Activate this ability only during your turn.
|
||||
mana={2}{B}{B}
|
||||
type=Creature
|
||||
subtype=Human Minion
|
||||
power=2
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Recall
|
||||
text=Discard X cards, then return a card from your graveyard to your hand for each card discarded this way. Exile Recall.
|
||||
mana={X}{X}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Remedy
|
||||
text=Prevent the next 5 damage that would be dealt this turn to any number of target creatures and/or players, divided as you choose.
|
||||
mana={1}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Reverse Damage
|
||||
text=The next time a source of your choice would deal damage to you this turn, prevent that damage. You gain life equal to the damage prevented this way.
|
||||
mana={1}{W}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Rowen
|
||||
text=Reveal the first card you draw each turn. Whenever you reveal a basic land card this way, draw a card.
|
||||
mana={2}{G}{G}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Tariff
|
||||
text=Each player sacrifices the creature he or she controls with the highest converted mana cost unless he or she pays that creature's mana cost. If two creatures a player controls are tied for highest cost, that player chooses one.
|
||||
mana={1}{W}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Zur's Weirding
|
||||
text=Players play with their hands revealed. -- If a player would draw a card, he or she reveals it instead. Then any other player may pay 2 life. If a player does, put that card into its owner's graveyard. Otherwise, that player draws a card.
|
||||
mana={3}{U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
103
projects/mtg/bin/Res/missing_cards_by_sets/7ED.txt
Normal file
@@ -0,0 +1,103 @@
|
||||
[card]
|
||||
name=Coat of Arms
|
||||
text=Each creature gets +1/+1 for each other creature on the battlefield that shares at least one creature type with it. (For example, if two Goblin Warriors and a Goblin Shaman are on the battlefield, each gets +2/+2.)
|
||||
mana={5}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Deflection
|
||||
text=Change the target of target spell with a single target.
|
||||
mana={3}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Kjeldoran Royal Guard
|
||||
text={T}: All combat damage that would be dealt to you by unblocked creatures this turn is dealt to Kjeldoran Royal Guard instead.
|
||||
mana={3}{W}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=2
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Mana Clash
|
||||
text=You and target opponent each flip a coin. Mana Clash deals 1 damage to each player whose coin comes up tails. Repeat this process until both players' coins come up heads on the same flip.
|
||||
mana={R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Necrologia
|
||||
text=Cast Necrologia only during your end step. -- As an additional cost to cast Necrologia, pay X life. -- Draw X cards.
|
||||
mana={3}{B}{B}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Okk
|
||||
text=Okk can't attack unless a creature with greater power also attacks. -- Okk can't block unless a creature with greater power also blocks.
|
||||
mana={1}{R}
|
||||
type=Creature
|
||||
subtype=Goblin
|
||||
power=4
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Pariah
|
||||
text=Enchant creature -- All damage that would be dealt to you is dealt to enchanted creature instead.
|
||||
mana={2}{W}
|
||||
type=Enchantment
|
||||
subtype=Aura
|
||||
[/card]
|
||||
[card]
|
||||
name=Phyrexian Colossus
|
||||
text=Phyrexian Colossus doesn't untap during your untap step. -- Pay 8 life: Untap Phyrexian Colossus. -- Phyrexian Colossus can't be blocked except by three or more creatures.
|
||||
mana={7}
|
||||
type=Artifact Creature
|
||||
subtype=Golem
|
||||
power=8
|
||||
toughness=8
|
||||
[/card]
|
||||
[card]
|
||||
name=Pyrotechnics
|
||||
text=Pyrotechnics deals 4 damage divided as you choose among any number of target creatures and/or players.
|
||||
mana={4}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Rag Man
|
||||
text={B}{B}{B}, {T}: Target opponent reveals his or her hand and discards a creature card at random. Activate this ability only during your turn.
|
||||
mana={2}{B}{B}
|
||||
type=Creature
|
||||
subtype=Human Minion
|
||||
power=2
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Reverse Damage
|
||||
text=The next time a source of your choice would deal damage to you this turn, prevent that damage. You gain life equal to the damage prevented this way.
|
||||
mana={1}{W}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Rowen
|
||||
text=Reveal the first card you draw each turn. Whenever you reveal a basic land card this way, draw a card.
|
||||
mana={2}{G}{G}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Sacred Ground
|
||||
text=Whenever a spell or ability an opponent controls causes a land to be put into your graveyard from the battlefield, return that card to the battlefield.
|
||||
mana={1}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Static Orb
|
||||
text=As long as Static Orb is untapped, players can't untap more than two permanents during their untap steps.
|
||||
mana={3}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Telepathy
|
||||
text=Your opponents play with their hands revealed.
|
||||
mana={U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
150
projects/mtg/bin/Res/missing_cards_by_sets/8ED.txt
Normal file
@@ -0,0 +1,150 @@
|
||||
[card]
|
||||
name=Avatar of Hope
|
||||
text=If you have 3 or less life, Avatar of Hope costs {6} less to cast. -- Flying -- Avatar of Hope can block any number of creatures.
|
||||
mana={6}{W}{W}
|
||||
type=Creature
|
||||
subtype=Avatar
|
||||
power=4
|
||||
toughness=9
|
||||
[/card]
|
||||
[card]
|
||||
name=Coat of Arms
|
||||
text=Each creature gets +1/+1 for each other creature on the battlefield that shares at least one creature type with it. (For example, if two Goblin Warriors and a Goblin Shaman are on the battlefield, each gets +2/+2.)
|
||||
mana={5}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Defense Grid
|
||||
text=Each spell costs {3} more to cast except during its controller's turn.
|
||||
mana={2}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Deflection
|
||||
text=Change the target of target spell with a single target.
|
||||
mana={3}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Furnace of Rath
|
||||
text=If a source would deal damage to a creature or player, it deals double that damage to that creature or player instead.
|
||||
mana={1}{R}{R}{R}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Gaea's Herald
|
||||
text=Creature spells can't be countered.
|
||||
mana={1}{G}
|
||||
type=Creature
|
||||
subtype=Elf
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Guerrilla Tactics
|
||||
text=Guerrilla Tactics deals 2 damage to target creature or player. -- When a spell or ability an opponent controls causes you to discard Guerrilla Tactics, Guerrilla Tactics deals 4 damage to target creature or player.
|
||||
mana={1}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Mana Clash
|
||||
text=You and target opponent each flip a coin. Mana Clash deals 1 damage to each player whose coin comes up tails. Repeat this process until both players' coins come up heads on the same flip.
|
||||
mana={R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Mind Bend
|
||||
text=Change the text of target permanent by replacing all instances of one color word with another or one basic land type with another. (For example, you may change "nonblack creature" to "nongreen creature" or "forestwalk" to "islandwalk." This effect lasts indefinitely.)
|
||||
mana={U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Murderous Betrayal
|
||||
text={B}{B}, Pay half your life, rounded up: Destroy target nonblack creature. It can't be regenerated.
|
||||
mana={B}{B}{B}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Okk
|
||||
text=Okk can't attack unless a creature with greater power also attacks. -- Okk can't block unless a creature with greater power also blocks.
|
||||
mana={1}{R}
|
||||
type=Creature
|
||||
subtype=Goblin
|
||||
power=4
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Oracle's Attendants
|
||||
text={T}: All damage that would be dealt to target creature this turn by a source of your choice is dealt to Oracle's Attendants instead.
|
||||
mana={3}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=1
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Phyrexian Colossus
|
||||
text=Phyrexian Colossus doesn't untap during your untap step. -- Pay 8 life: Untap Phyrexian Colossus. -- Phyrexian Colossus can't be blocked except by three or more creatures.
|
||||
mana={7}
|
||||
type=Artifact Creature
|
||||
subtype=Golem
|
||||
power=8
|
||||
toughness=8
|
||||
[/card]
|
||||
[card]
|
||||
name=Pyrotechnics
|
||||
text=Pyrotechnics deals 4 damage divided as you choose among any number of target creatures and/or players.
|
||||
mana={4}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Sacred Ground
|
||||
text=Whenever a spell or ability an opponent controls causes a land to be put into your graveyard from the battlefield, return that card to the battlefield.
|
||||
mana={1}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Story Circle
|
||||
text=As Story Circle enters the battlefield, choose a color. -- {W}: The next time a source of your choice of the chosen color would deal damage to you this turn, prevent that damage.
|
||||
mana={1}{W}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Telepathy
|
||||
text=Your opponents play with their hands revealed.
|
||||
mana={U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Thieves' Auction
|
||||
text=Exile all nontoken permanents. Starting with you, each player chooses one of the exiled cards and puts it onto the battlefield tapped under his or her control. Repeat this process until all cards exiled this way have been chosen.
|
||||
mana={4}{R}{R}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Two-Headed Dragon
|
||||
text=Flying -- {1}{R}: Two-Headed Dragon gets +2/+0 until end of turn. -- Two-Headed Dragon can't be blocked except by two or more creatures. -- Two-Headed Dragon can block an additional creature.
|
||||
mana={4}{R}{R}
|
||||
type=Creature
|
||||
subtype=Dragon
|
||||
power=4
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Urza's Armor
|
||||
text=If a source would deal damage to you, prevent 1 of that damage.
|
||||
mana={6}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Vexing Arcanix
|
||||
text={3}, {T}: Target player names a card, then reveals the top card of his or her library. If it's the named card, the player puts it into his or her hand. Otherwise, the player puts it into his or her graveyard and Vexing Arcanix deals 2 damage to him or her.
|
||||
mana={4}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Zur's Weirding
|
||||
text=Players play with their hands revealed. -- If a player would draw a card, he or she reveals it instead. Then any other player may pay 2 life. If a player does, put that card into its owner's graveyard. Otherwise, that player draws a card.
|
||||
mana={3}{U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
105
projects/mtg/bin/Res/missing_cards_by_sets/9ED.txt
Normal file
@@ -0,0 +1,105 @@
|
||||
[card]
|
||||
name=Booby Trap
|
||||
text=As Booby Trap enters the battlefield, name a card other than a basic land card and choose an opponent. -- The chosen player reveals each card he or she draws. -- When the chosen player draws the named card, sacrifice Booby Trap. If you do, Booby Trap deals 10 damage to that player.
|
||||
mana={6}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Coat of Arms
|
||||
text=Each creature gets +1/+1 for each other creature on the battlefield that shares at least one creature type with it. (For example, if two Goblin Warriors and a Goblin Shaman are on the battlefield, each gets +2/+2.)
|
||||
mana={5}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Defense Grid
|
||||
text=Each spell costs {3} more to cast except during its controller's turn.
|
||||
mana={2}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Furnace of Rath
|
||||
text=If a source would deal damage to a creature or player, it deals double that damage to that creature or player instead.
|
||||
mana={1}{R}{R}{R}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Guerrilla Tactics
|
||||
text=Guerrilla Tactics deals 2 damage to target creature or player. -- When a spell or ability an opponent controls causes you to discard Guerrilla Tactics, Guerrilla Tactics deals 4 damage to target creature or player.
|
||||
mana={1}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Mana Clash
|
||||
text=You and target opponent each flip a coin. Mana Clash deals 1 damage to each player whose coin comes up tails. Repeat this process until both players' coins come up heads on the same flip.
|
||||
mana={R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Mind Bend
|
||||
text=Change the text of target permanent by replacing all instances of one color word with another or one basic land type with another. (For example, you may change "nonblack creature" to "nongreen creature" or "forestwalk" to "islandwalk." This effect lasts indefinitely.)
|
||||
mana={U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Oracle's Attendants
|
||||
text={T}: All damage that would be dealt to target creature this turn by a source of your choice is dealt to Oracle's Attendants instead.
|
||||
mana={3}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=1
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Reverse Damage
|
||||
text=The next time a source of your choice would deal damage to you this turn, prevent that damage. You gain life equal to the damage prevented this way.
|
||||
mana={1}{W}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Sacred Ground
|
||||
text=Whenever a spell or ability an opponent controls causes a land to be put into your graveyard from the battlefield, return that card to the battlefield.
|
||||
mana={1}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Sanctum Guardian
|
||||
text=Sacrifice Sanctum Guardian: The next time a source of your choice would deal damage to target creature or player this turn, prevent that damage.
|
||||
mana={1}{W}{W}
|
||||
type=Creature
|
||||
subtype=Human Cleric
|
||||
power=1
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Storage Matrix
|
||||
text=As long as Storage Matrix is untapped, each player chooses artifact, creature, or land during his or her untap step. That player can untap only permanents of the chosen type this step.
|
||||
mana={3}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Story Circle
|
||||
text=As Story Circle enters the battlefield, choose a color. -- {W}: The next time a source of your choice of the chosen color would deal damage to you this turn, prevent that damage.
|
||||
mana={1}{W}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Telepathy
|
||||
text=Your opponents play with their hands revealed.
|
||||
mana={U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Zealous Inquisitor
|
||||
text={1}{W}: The next 1 damage that would be dealt to Zealous Inquisitor this turn is dealt to target creature instead.
|
||||
mana={2}{W}
|
||||
type=Creature
|
||||
subtype=Human Cleric
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Zur's Weirding
|
||||
text=Players play with their hands revealed. -- If a player would draw a card, he or she reveals it instead. Then any other player may pay 2 life. If a player does, put that card into its owner's graveyard. Otherwise, that player draws a card.
|
||||
mana={3}{U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
149
projects/mtg/bin/Res/missing_cards_by_sets/AER.txt
Normal file
@@ -0,0 +1,149 @@
|
||||
[card]
|
||||
name=Aid from the Cowl
|
||||
text=Revolt — At the beginning of your end step, if a permanent you controlled left the battlefield this turn, reveal the top card of your library. If it's a permanent card, you may put it onto the battlefield. Otherwise, you may put it on the bottom of your library.
|
||||
mana={3}{G}{G}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Ajani's Aid
|
||||
text=When Ajani's Aid enters the battlefield, you may search your library and/or graveyard for a card named Ajani, Valiant Protector, reveal it, and put it into your hand. If you search your library this way, shuffle it. -- Sacrifice Ajani's Aid: Prevent all combat damage a creature of your choice would deal this turn.
|
||||
mana={2}{G}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Baral, Chief of Compliance
|
||||
text=Instant and sorcery spells you cast cost {1} less to cast. -- Whenever a spell or ability you control counters a spell, you may draw a card. If you do, discard a card.
|
||||
mana={1}{U}
|
||||
type=Legendary Creature
|
||||
subtype=Human Wizard
|
||||
power=1
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Battle at the Bridge
|
||||
other={improvise} name(Improvise)
|
||||
text=Improvise (Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}.) -- Target creature gets -X/-X until end of turn. You gain X life.
|
||||
mana={X}{B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Crackdown Construct
|
||||
text=Whenever you activate an ability of an artifact or creature that isn't a mana ability, Crackdown Construct gets +1/+1 until end of turn.
|
||||
mana={4}
|
||||
type=Artifact Creature
|
||||
subtype=Construct
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Dark Intimations
|
||||
text=Each opponent sacrifices a creature or planeswalker, then discards a card. You return a creature or planeswalker card from your graveyard to your hand, then draw a card. -- When you cast a Bolas planeswalker spell, exile Dark Intimations from your graveyard. That planeswalker enters the battlefield with an additional loyalty counter on it.
|
||||
mana={2}{U}{B}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Deft Dismissal
|
||||
text=Deft Dismissal deals 3 damage divided as you choose among one, two, or three target attacking or blocking creatures.
|
||||
mana={3}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Destructive Tampering
|
||||
text=Choose one — --Destroy target artifact. --Creatures without flying can't block this turn.
|
||||
mana={2}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Disallow
|
||||
text=Counter target spell, activated ability, or triggered ability. (Mana abilities can't be targeted.)
|
||||
mana={1}{U}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Exquisite Archangel
|
||||
abilities=flying
|
||||
text=Flying -- If you would lose the game, instead exile Exquisite Archangel and your life total becomes equal to your starting life total.
|
||||
mana={5}{W}{W}
|
||||
type=Creature
|
||||
subtype=Angel
|
||||
power=5
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Hungry Flames
|
||||
text=Hungry Flames deals 3 damage to target creature and 2 damage to target player.
|
||||
mana={2}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Indomitable Creativity
|
||||
target=<prex>artifact,creature|battlefield
|
||||
auto=destroy and!( if cantargetcard(*[creature;artifact]|nonbattlezone) then reveal:x revealzone(targetcontrollerlibrary) revealuntil(*[creature;artifact]|targetcontrollerlibrary) optionone all(*|reveal) moveto(exile) and!(moveto(ownerbattlefield))! optiononeend revealend )!
|
||||
text=Destroy X target artifacts and/or creatures. For each permanent destroyed this way, its controller reveals cards from the top of his or her library until an artifact or creature card is revealed and exiles that card. Those players put the exiled cards onto the battlefield, then shuffle their libraries.
|
||||
mana={X}{R}{R}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Inspiring Statuary
|
||||
text=Nonartifact spells you cast have improvise. (Your artifacts can help cast those spells. Each artifact you tap after you're done activating mana abilities pays for {1}.)
|
||||
mana={3}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Invigorated Rampage
|
||||
text=Choose one — --Target creature gets +4/+0 and gains trample until end of turn. --Two target creatures each get +2/+0 and gain trample until end of turn.
|
||||
mana={1}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Merchant's Dockhand
|
||||
text={3}{U}, {T}, Tap X untapped artifacts you control: Look at the top X cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.
|
||||
mana={1}
|
||||
type=Artifact Creature
|
||||
subtype=Construct
|
||||
power=1
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Monstrous Onslaught
|
||||
text=Monstrous Onslaught deals X damage divided as you choose among any number of target creatures, where X is the greatest power among creatures you control as you cast Monstrous Onslaught.
|
||||
mana={3}{G}{G}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Night Market Guard
|
||||
text=Night Market Guard can block an additional creature each combat.
|
||||
mana={3}
|
||||
type=Artifact Creature
|
||||
subtype=Construct
|
||||
power=3
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Pia's Revolution
|
||||
text=Whenever a nontoken artifact is put into your graveyard from the battlefield, return that card to your hand unless target opponent has Pia's Revolution deal 3 damage to him or her.
|
||||
mana={2}{R}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Tezzeret's Betrayal
|
||||
text=Destroy target creature. You may search your library and/or graveyard for a card named Tezzeret, Master of Metal, reveal it, and put it into your hand. If you search your library this way, shuffle it.
|
||||
mana={3}{U}{B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Whir of Invention
|
||||
other={improvise} name(Improvise)
|
||||
text=Improvise (Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}.) -- Search your library for an artifact card with converted mana cost X or less, put it onto the battlefield, then shuffle your library.
|
||||
mana={X}{U}{U}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Winding Constrictor
|
||||
text=If one or more counters would be placed on an artifact or creature you control, that many plus one of each of those kinds of counters are placed on that permanent instead. -- If you would get one or more counters, you get that many plus one of each of those kinds of counters instead.
|
||||
mana={B}{G}
|
||||
type=Creature
|
||||
subtype=Snake
|
||||
power=2
|
||||
toughness=3
|
||||
[/card]
|
||||
141
projects/mtg/bin/Res/missing_cards_by_sets/ALA.txt
Normal file
@@ -0,0 +1,141 @@
|
||||
[card]
|
||||
name=Branching Bolt
|
||||
text=Choose one or both — Branching Bolt deals 3 damage to target creature with flying; and/or Branching Bolt deals 3 damage to target creature without flying.
|
||||
mana={1}{R}{G}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Brilliant Ultimatum
|
||||
text=Exile the top five cards of your library. An opponent separates those cards into two piles. You may play any number of cards from one of those piles without paying their mana costs.
|
||||
mana={W}{W}{U}{U}{U}{B}{B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Clarion Ultimatum
|
||||
text=Choose five permanents you control. For each of those permanents, you may search your library for a card with the same name as that permanent. Put those cards onto the battlefield tapped, then shuffle your library.
|
||||
mana={G}{G}{W}{W}{W}{U}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Covenant of Minds
|
||||
text=Reveal the top three cards of your library. Target opponent may choose to put those cards into your hand. If he or she doesn't, put those cards into your graveyard and draw five cards.
|
||||
mana={4}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Empyrial Archangel
|
||||
text=Flying, shroud -- All damage that would be dealt to you is dealt to Empyrial Archangel instead.
|
||||
mana={4}{G}{W}{W}{U}
|
||||
type=Creature
|
||||
subtype=Angel
|
||||
power=5
|
||||
toughness=8
|
||||
[/card]
|
||||
[card]
|
||||
name=Feral Hydra
|
||||
text=Feral Hydra enters the battlefield with X +1/+1 counters on it. -- {3}: Put a +1/+1 counter on Feral Hydra. Any player may activate this ability.
|
||||
mana={X}{G}
|
||||
type=Creature
|
||||
subtype=Hydra Beast
|
||||
power=0
|
||||
toughness=0
|
||||
[/card]
|
||||
[card]
|
||||
name=Gather Specimens
|
||||
text=If a creature would enter the battlefield under an opponent's control this turn, it enters the battlefield under your control instead.
|
||||
mana={3}{U}{U}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Hindering Light
|
||||
text=Counter target spell that targets you or a permanent you control. -- Draw a card.
|
||||
mana={W}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Immortal Coil
|
||||
text={T}, Exile two cards from your graveyard: Draw a card. -- If damage would be dealt to you, prevent that damage. Exile a card from your graveyard for each 1 damage prevented this way. -- When there are no cards in your graveyard, you lose the game.
|
||||
mana={2}{B}{B}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Kresh the Bloodbraided
|
||||
text=Whenever another creature dies, you may put X +1/+1 counters on Kresh the Bloodbraided, where X is that creature's power.
|
||||
mana={2}{B}{R}{G}
|
||||
type=Legendary Creature
|
||||
subtype=Human Warrior
|
||||
power=3
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Lich's Mirror
|
||||
text=If you would lose the game, instead shuffle your hand, your graveyard, and all permanents you own into your library, then draw seven cards and your life total becomes 20.
|
||||
mana={5}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Mindlock Orb
|
||||
text=Players can't search libraries.
|
||||
mana={3}{U}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Prince of Thralls
|
||||
text=Whenever a permanent an opponent controls is put into a graveyard, put that card onto the battlefield under your control unless that opponent pays 3 life.
|
||||
mana={4}{U}{B}{B}{R}
|
||||
type=Creature
|
||||
subtype=Demon
|
||||
power=7
|
||||
toughness=7
|
||||
[/card]
|
||||
[card]
|
||||
name=Qasali Ambusher
|
||||
text=Reach -- If a creature is attacking you and you control a Forest and a Plains, you may cast Qasali Ambusher without paying its mana cost and as though it had flash.
|
||||
mana={1}{G}{W}
|
||||
type=Creature
|
||||
subtype=Cat Warrior
|
||||
power=2
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Sacellum Godspeaker
|
||||
text={T}: Reveal any number of creature cards with power 5 or greater from your hand. Add {G} to your mana pool for each card revealed this way.
|
||||
mana={2}{G}
|
||||
type=Creature
|
||||
subtype=Elf Druid
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Skill Borrower
|
||||
text=Play with the top card of your library revealed. -- As long as the top card of your library is an artifact or creature card, Skill Borrower has all activated abilities of that card. (If any of the abilities use that card's name, use this creature's name instead.)
|
||||
mana={2}{U}
|
||||
type=Artifact Creature
|
||||
subtype=Human Wizard
|
||||
power=1
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Stoic Angel
|
||||
text=Flying, vigilance -- Players can't untap more than one creature during their untap steps.
|
||||
mana={1}{G}{W}{U}
|
||||
type=Creature
|
||||
subtype=Angel
|
||||
power=3
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Swerve
|
||||
text=Change the target of target spell with a single target.
|
||||
mana={U}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Tar Fiend
|
||||
text=Devour 2 (As this enters the battlefield, you may sacrifice any number of creatures. This creature enters the battlefield with twice that many +1/+1 counters on it.) -- When Tar Fiend enters the battlefield, target player discards a card for each creature it devoured.
|
||||
mana={5}{B}
|
||||
type=Creature
|
||||
subtype=Elemental
|
||||
power=4
|
||||
toughness=4
|
||||
[/card]
|
||||
256
projects/mtg/bin/Res/missing_cards_by_sets/ALL.txt
Normal file
@@ -0,0 +1,256 @@
|
||||
[card]
|
||||
name=Awesome Presence
|
||||
text=Enchant creature -- Enchanted creature can't be blocked unless defending player pays {3} for each creature he or she controls that's blocking it.
|
||||
mana={U}
|
||||
type=Enchantment
|
||||
subtype=Aura
|
||||
[/card]
|
||||
[card]
|
||||
name=Bounty of the Hunt
|
||||
text=You may exile a green card from your hand rather than pay Bounty of the Hunt's mana cost. -- Distribute three +1/+1 counters among one, two, or three target creatures. For each +1/+1 counter you put on a creature this way, remove a +1/+1 counter from that creature at the beginning of the next cleanup step.
|
||||
mana={3}{G}{G}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Chaos Harlequin
|
||||
text={R}: Exile the top card of your library. If that card is a land card, Chaos Harlequin gets -4/-0 until end of turn. Otherwise, Chaos Harlequin gets +2/+0 until end of turn.
|
||||
mana={2}{R}{R}
|
||||
type=Creature
|
||||
subtype=Human
|
||||
power=2
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Death Spark
|
||||
text=Death Spark deals 1 damage to target creature or player. -- At the beginning of your upkeep, if Death Spark is in your graveyard with a creature card directly above it, you may pay {1}. If you do, return Death Spark to your hand.
|
||||
mana={R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Diminishing Returns
|
||||
text=Each player shuffles his or her hand and graveyard into his or her library. You exile the top ten cards of your library. Then each player draws up to seven cards.
|
||||
mana={2}{U}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Errand of Duty
|
||||
text=Put a 1/1 white Knight creature token with banding onto the battlefield. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={1}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Fatal Lore
|
||||
text=An opponent chooses one — You draw three cards; or you destroy up to two target creatures that opponent controls and that player draws up to three cards. Those creatures can't be regenerated.
|
||||
mana={2}{B}{B}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Gorilla Berserkers
|
||||
text=Trample; rampage 2 (Whenever this creature becomes blocked, it gets +2/+2 until end of turn for each creature blocking it beyond the first.) -- Gorilla Berserkers can't be blocked except by three or more creatures.
|
||||
mana={3}{G}{G}
|
||||
type=Creature
|
||||
subtype=Ape Berserker
|
||||
power=2
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Guerrilla Tactics
|
||||
text=Guerrilla Tactics deals 2 damage to target creature or player. -- When a spell or ability an opponent controls causes you to discard Guerrilla Tactics, Guerrilla Tactics deals 4 damage to target creature or player.
|
||||
mana={1}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Gustha's Scepter
|
||||
text={T}: Exile a card from your hand face down. You may look at it for as long as it remains exiled. -- {T}: Return a card you own exiled with Gustha's Scepter to your hand. -- When you lose control of Gustha's Scepter, put all cards exiled with Gustha's Scepter into their owner's graveyard.
|
||||
mana={0}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Helm of Obedience
|
||||
text={X}, {T}: Target opponent puts cards from the top of his or her library into his or her graveyard until a creature card or X cards are put into that graveyard this way, whichever comes first. If a creature card is put into that graveyard this way, sacrifice Helm of Obedience and put that card onto the battlefield under your control. X can't be 0.
|
||||
mana={4}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Kjeldoran Escort
|
||||
text=Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={2}{W}{W}
|
||||
type=Creature
|
||||
subtype=Human Soldier
|
||||
power=2
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Krovikan Horror
|
||||
text=At the beginning of the end step, if Krovikan Horror is in your graveyard with a creature card directly above it, you may return Krovikan Horror to your hand. -- {1}, Sacrifice a creature: Krovikan Horror deals 1 damage to target creature or player.
|
||||
mana={3}{B}
|
||||
type=Creature
|
||||
subtype=Horror Spirit
|
||||
power=2
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Library of Lat-Nam
|
||||
text=An opponent chooses one — You draw three cards at the beginning of the next turn's upkeep; or you search your library for a card, put that card into your hand, then shuffle your library.
|
||||
mana={4}{U}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Lim-Dul's Vault
|
||||
text=Look at the top five cards of your library. As many times as you choose, you may pay 1 life, put those cards on the bottom of your library in any order, then look at the top five cards of your library. Then shuffle your library and put the last cards you looked at this way on top of it in any order.
|
||||
mana={U}{B}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Martyrdom
|
||||
text=Until end of turn, target creature you control gains "{0}: The next 1 damage that would be dealt to target creature or player this turn is dealt to this creature instead." Only you may activate this ability.
|
||||
mana={1}{W}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Nature's Blessing
|
||||
text={G}{W}, Discard a card: Put a +1/+1 counter on target creature or that creature gains banding, first strike, or trample. (This effect lasts indefinitely. Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding a player controls are blocking or being blocked by a creature, that player divides that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
|
||||
mana={2}{G}{W}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Omen of Fire
|
||||
text=Return all Islands to their owners' hands. -- -- Each player sacrifices a Plains or a white permanent for each white permanent he or she controls.
|
||||
mana={3}{R}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Phyrexian Portal
|
||||
text={3}: If your library has ten or more cards in it, target opponent looks at the top ten cards of your library and separates them into two face-down piles. Exile one of those piles. Search the other pile for a card, put it into your hand, then shuffle the rest of that pile into your library.
|
||||
mana={3}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Primitive Justice
|
||||
text=As an additional cost to cast Primitive Justice, you may pay {1}{R} and/or {1}{G} any number of times. -- Destroy target artifact. For each additional {1}{R} you paid, destroy another target artifact. For each additional {1}{G} you paid, destroy another target artifact, and you gain 1 life.
|
||||
mana={1}{R}
|
||||
type=Sorcery
|
||||
[/card]
|
||||
[card]
|
||||
name=Pyrokinesis
|
||||
text=You may exile a red card from your hand rather than pay Pyrokinesis's mana cost. -- Pyrokinesis deals 4 damage divided as you choose among any number of target creatures.
|
||||
mana={4}{R}{R}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Scarab of the Unseen
|
||||
text={T}, Sacrifice Scarab of the Unseen: Return all Auras attached to target permanent you own to their owners' hands. Draw a card at the beginning of the next turn's upkeep.
|
||||
mana={2}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Scars of the Veteran
|
||||
text=You may exile a white card from your hand rather than pay Scars of the Veteran's mana cost. -- Prevent the next 7 damage that would be dealt to target creature or player this turn. At the beginning of the next end step, put a +0/+1 counter on that creature for each 1 damage prevented this way.
|
||||
mana={4}{W}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Seasoned Tactician
|
||||
text={3}, Exile the top four cards of your library: The next time a source of your choice would deal damage to you this turn, prevent that damage.
|
||||
mana={2}{W}
|
||||
type=Creature
|
||||
subtype=Human Advisor
|
||||
power=1
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Soldevi Adnate
|
||||
text={T}, Sacrifice a black or artifact creature: Add to your mana pool an amount of {B} equal to the sacrificed creature's converted mana cost.
|
||||
mana={1}{B}
|
||||
type=Creature
|
||||
subtype=Human Cleric
|
||||
power=1
|
||||
toughness=2
|
||||
[/card]
|
||||
[card]
|
||||
name=Soldevi Digger
|
||||
text={2}: Put the top card of your graveyard on the bottom of your library.
|
||||
mana={2}
|
||||
type=Artifact
|
||||
[/card]
|
||||
[card]
|
||||
name=Soldevi Sentry
|
||||
text={1}: Choose target opponent. Regenerate Soldevi Sentry. When it regenerates this way, that player may draw a card.
|
||||
mana={1}
|
||||
type=Artifact Creature
|
||||
subtype=Soldier
|
||||
power=1
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Spiny Starfish
|
||||
text={U}: Regenerate Spiny Starfish. -- At the beginning of each end step, if Spiny Starfish regenerated this turn, put a 0/1 blue Starfish creature token onto the battlefield for each time it regenerated this turn.
|
||||
mana={2}{U}
|
||||
type=Creature
|
||||
subtype=Starfish
|
||||
power=0
|
||||
toughness=1
|
||||
[/card]
|
||||
[card]
|
||||
name=Storm Elemental
|
||||
text=Flying -- {U}, Exile the top card of your library: Tap target creature with flying. -- {U}, Exile the top card of your library: If the exiled card is a snow land, Storm Elemental gets +1/+1 until end of turn.
|
||||
mana={5}{U}
|
||||
type=Creature
|
||||
subtype=Elemental
|
||||
power=3
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Stromgald Spy
|
||||
text=Whenever Stromgald Spy attacks and isn't blocked, you may have defending player play with his or her hand revealed for as long as Stromgald Spy remains on the battlefield. If you do, Stromgald Spy assigns no combat damage this turn.
|
||||
mana={3}{B}
|
||||
type=Creature
|
||||
subtype=Human Rogue
|
||||
power=2
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Suffocation
|
||||
text=Cast Suffocation only if you were dealt damage this turn by a red instant or sorcery spell. -- Suffocation deals 4 damage to the controller of the last red instant or sorcery spell that dealt damage to you this turn. -- Draw a card at the beginning of the next turn's upkeep.
|
||||
mana={1}{U}
|
||||
type=Instant
|
||||
[/card]
|
||||
[card]
|
||||
name=Sworn Defender
|
||||
text={1}: Sworn Defender's power becomes the toughness of target creature blocking or being blocked by Sworn Defender minus 1 until end of turn, and Sworn Defender's toughness becomes 1 plus the power of that creature until end of turn.
|
||||
mana={2}{W}{W}
|
||||
type=Creature
|
||||
subtype=Human Knight
|
||||
power=1
|
||||
toughness=3
|
||||
[/card]
|
||||
[card]
|
||||
name=Tidal Control
|
||||
text=Cumulative upkeep {2} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.) -- Pay 2 life or {2}: Counter target red or green spell. Any player may activate this ability.
|
||||
mana={1}{U}{U}
|
||||
type=Enchantment
|
||||
[/card]
|
||||
[card]
|
||||
name=Urza's Engine
|
||||
text=Trample -- {3}: Urza's Engine gains banding until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) -- {3}: Attacking creatures banded with Urza's Engine gain trample until end of turn.
|
||||
mana={5}
|
||||
type=Artifact Creature
|
||||
subtype=Juggernaut
|
||||
power=1
|
||||
toughness=5
|
||||
[/card]
|
||||
[card]
|
||||
name=Whip Vine
|
||||
text=Defender; reach (This creature can block creatures with flying.) -- You may choose not to untap Whip Vine during your untap step. -- {T}: Tap target creature with flying blocked by Whip Vine. That creature doesn't untap during its controller's untap step for as long as Whip Vine remains tapped.
|
||||
mana={2}{G}
|
||||
type=Creature
|
||||
subtype=Plant Wall
|
||||
power=1
|
||||
toughness=4
|
||||
[/card]
|
||||
[card]
|
||||
name=Winter's Night
|
||||
text=Whenever a player taps a snow land for mana, that player adds one mana to his or her mana pool of any type that land produced. That land doesn't untap during its controller's next untap step.
|
||||
mana={R}{G}{W}
|
||||
type=World Enchantment
|
||||
[/card]
|
||||