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
|
||||
|
||||
@@ -18,9 +18,9 @@ using namespace std;
|
||||
template <class T>
|
||||
std::string ToHex(T* pointer)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
stream << hex << showbase << setfill('0') << setw(8) << (uint64_t) pointer;
|
||||
return stream.str();
|
||||
std::ostringstream stream;
|
||||
stream << hex << showbase << setfill('0') << setw(8) << (uint64_t) pointer;
|
||||
return stream.str();
|
||||
}
|
||||
|
||||
#ifdef LINUX
|
||||
@@ -42,9 +42,9 @@ std::string ToHex(T* pointer)
|
||||
#else // CAPTURE_STDERR
|
||||
#define DebugTrace(inString) \
|
||||
{ \
|
||||
std::ostringstream stream; \
|
||||
stream << inString; \
|
||||
qDebug("%s", stream.str().c_str()); \
|
||||
std::ostringstream stream; \
|
||||
stream << inString; \
|
||||
qDebug("%s", stream.str().c_str()); \
|
||||
}
|
||||
#endif // CAPTURE_STDERR
|
||||
|
||||
@@ -52,16 +52,16 @@ std::string ToHex(T* pointer)
|
||||
#include <android/log.h>
|
||||
#define DebugTrace(inString) \
|
||||
{ \
|
||||
std::ostringstream stream; \
|
||||
stream << inString; \
|
||||
__android_log_write(ANDROID_LOG_DEBUG, "Wagic", stream.str().c_str());\
|
||||
std::ostringstream stream; \
|
||||
stream << inString; \
|
||||
__android_log_write(ANDROID_LOG_DEBUG, "Wagic", stream.str().c_str());\
|
||||
}
|
||||
#else
|
||||
#define DebugTrace(inString) \
|
||||
{ \
|
||||
std::ostringstream stream; \
|
||||
stream << inString << std::endl; \
|
||||
OutputDebugStringA(stream.str().c_str()); \
|
||||
OutputDebugStringA(stream.str().c_str()); \
|
||||
}
|
||||
#endif // QT_CONFIG
|
||||
#endif // Win32, Linux
|
||||
@@ -71,7 +71,7 @@ std::string ToHex(T* pointer)
|
||||
#ifndef DebugTrace
|
||||
#define DebugTrace(inString) \
|
||||
{ \
|
||||
std::cerr << inString << std::endl; \
|
||||
std::cerr << inString << std::endl; \
|
||||
}
|
||||
#endif //DEBUG
|
||||
#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("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,7 +257,8 @@ u32 JGE::UnbindKey(LocalKeySym sym, JButton button)
|
||||
keyBinds.erase(er);
|
||||
}
|
||||
else ++it;
|
||||
return keyBinds.size();
|
||||
}
|
||||
return keyBinds.size();
|
||||
}
|
||||
|
||||
u32 JGE::UnbindKey(LocalKeySym sym)
|
||||
@@ -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);
|
||||
|
||||
@@ -197,7 +197,7 @@ bool JGuiController::CheckUserInput(JButton key)
|
||||
mObjects[mCurr]->Entering();
|
||||
}
|
||||
mEngine->LeftClickedProcessed();
|
||||
mEngine->ResetInput();
|
||||
mEngine->ResetInput();
|
||||
return true;
|
||||
}
|
||||
mEngine->LeftClickedProcessed();
|
||||
|
||||
@@ -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,8 +143,16 @@ 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,7 +96,8 @@ hgeParticleSystem::hgeParticleSystem(hgeParticleSystemInfo *psi)
|
||||
{
|
||||
//hge=hgeCreate(HGE_VERSION);
|
||||
|
||||
memcpy(&info, psi, sizeof(hgeParticleSystemInfo));
|
||||
if (psi)
|
||||
memcpy(&info, psi, sizeof(hgeParticleSystemInfo));
|
||||
|
||||
vecLocation.x=vecPrevLocation.x=0.0f;
|
||||
vecLocation.y=vecPrevLocation.y=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
|
||||
|
||||
@@ -631,8 +631,8 @@ streamoff filesystem::CentralDirZipped(std::istream & File, std::streamoff begin
|
||||
std::streamoff eof = begin + size;
|
||||
|
||||
// Look for the "end of central dir" header. Start minimum 22 bytes before end.
|
||||
if (! File.seekg(eof - 22, ios::beg))
|
||||
return -1;
|
||||
if (! File.seekg(eof - 22, ios::beg))
|
||||
return -1;
|
||||
|
||||
streamoff EndPos;
|
||||
streamoff StartPos = File.tellg();
|
||||
|
||||
@@ -258,8 +258,8 @@ inline void izfstream::open(const char * FilePath, filesystem * pFS) {
|
||||
if (pFS)
|
||||
m_pFS = pFS;
|
||||
|
||||
if (m_pFS != NULL)
|
||||
m_pFS->Open(* this, FilePath);
|
||||
if (m_pFS != NULL)
|
||||
m_pFS->Open(* this, FilePath);
|
||||
}
|
||||
|
||||
inline void izfstream::close() {
|
||||
|
||||
@@ -76,8 +76,8 @@ bool zbuffer::use(std::streamoff Offset, std::streamoff Size)
|
||||
return false;
|
||||
|
||||
//Don't use a buffer already used;
|
||||
if (m_Used)
|
||||
return false;
|
||||
if (m_Used)
|
||||
return false;
|
||||
|
||||
// adjust file position
|
||||
if (! m_ZipFile.seekg(Offset, ios::beg))
|
||||
|
||||
@@ -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">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<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:configChanges="keyboard|keyboardHidden|orientation" android:name="com.google.ads.AdActivity" android:screenOrientation="sensorLandscape"/>
|
||||
</application>
|
||||
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10"/>
|
||||
<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" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
<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,14 +11,13 @@ 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:";
|
||||
int cardcount = 0;
|
||||
String prefix = "";
|
||||
int cardcount = 0;
|
||||
if(f.exists() && !f.isDirectory())
|
||||
{
|
||||
deckname = f.getName();
|
||||
@@ -36,91 +35,90 @@ public class DeckImporter
|
||||
while (scanner.hasNext())
|
||||
{
|
||||
String line = scanner.nextLine();
|
||||
line = line.trim();
|
||||
if (!line.equals("") && cardcount < 61) // don't write out blank lines
|
||||
{
|
||||
String[] slines = line.split("\\s+");
|
||||
String arranged = "";
|
||||
for(int idx = 1; idx < slines.length; idx++)
|
||||
{
|
||||
arranged += slines[idx] + " ";
|
||||
}
|
||||
if ((isNumeric(slines[0])) && arranged != null)
|
||||
{
|
||||
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
|
||||
{
|
||||
deck += 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())
|
||||
{
|
||||
//save deck
|
||||
int countdeck = 1;
|
||||
File[] files = rootProfiles.listFiles();
|
||||
for (int i = 0; i < files.length; i++)
|
||||
{//check if there is available deck...
|
||||
if(files[i].getName().startsWith("deck"))
|
||||
countdeck++;
|
||||
}
|
||||
File toSave = new File(rootProfiles+"/deck"+countdeck+".txt");
|
||||
try
|
||||
{
|
||||
FileOutputStream fop = new FileOutputStream(toSave);
|
||||
line = line.trim();
|
||||
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++)
|
||||
{
|
||||
arranged += slines[idx] + " ";
|
||||
}
|
||||
if ((isNumeric(slines[0])) && arranged != null)
|
||||
{
|
||||
if (slines[1] != null && slines[1].startsWith("["))
|
||||
{
|
||||
arranged = arranged.substring(5);
|
||||
slines[1] = slines[1].replaceAll("\\[", "").replaceAll("\\]", "");
|
||||
deck += prefix + arranged + " (" + renameSet(slines[1]) + ") * " + slines[0] + "\n";
|
||||
} else
|
||||
{
|
||||
deck += prefix + arranged + "(*) * " + slines[0] + "\n";
|
||||
}
|
||||
cardcount += Integer.parseInt(slines[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
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 = rootDecks.listFiles();
|
||||
for (int i = 0; i < files.length; i++)
|
||||
{//check if there is available deck...
|
||||
if (files[i].getName().startsWith("deck"))
|
||||
countdeck++;
|
||||
}
|
||||
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()) {
|
||||
toSave.createNewFile();
|
||||
}
|
||||
// get the content in bytes
|
||||
byte[] contentInBytes = deck.getBytes();
|
||||
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 = e.getMessage();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message = "Missing Folder!";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message = "Invalid Profile!";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
message = "No errors, and file EMPTY";
|
||||
}
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
message = e.getMessage();
|
||||
}
|
||||
}
|
||||
return message;
|
||||
// if file doesn't exists, then create it
|
||||
if (!toSave.exists())
|
||||
{
|
||||
toSave.createNewFile();
|
||||
}
|
||||
// get the content in bytes
|
||||
byte[] contentInBytes = deck.getBytes();
|
||||
fop.write(contentInBytes);
|
||||
fop.flush();
|
||||
fop.close();
|
||||
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
|
||||
{
|
||||
message = "Problem opening decks folder: " + rootDecks.getAbsolutePath();
|
||||
}
|
||||
} else
|
||||
{
|
||||
message = "No errors, and file EMPTY";
|
||||
}
|
||||
} catch (IOException e)
|
||||
{
|
||||
message = e.getMessage();
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
private static boolean isNumeric(String input)
|
||||
@@ -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,11 +189,14 @@ public class StorageOptions
|
||||
* Compare the two lists together and remove items that are not in both lists.
|
||||
*/
|
||||
|
||||
for (int i = 0; i < mMounts.size(); i++)
|
||||
if (mVold.size() > 0)
|
||||
{
|
||||
String mount = mMounts.get(i);
|
||||
if (!mVold.contains(mount))
|
||||
mMounts.remove(i--);
|
||||
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
|
||||
@@ -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,84 +327,97 @@ public class StorageOptions
|
||||
*
|
||||
* @return <code>true</code> if the device is rooted, <code>false</code> otherwise.
|
||||
*/
|
||||
public static boolean isRooted() {
|
||||
|
||||
// get from build info
|
||||
String buildTags = android.os.Build.TAGS;
|
||||
if (buildTags != null && buildTags.contains("test-keys")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// check if /system/app/Superuser.apk is present
|
||||
try {
|
||||
File file = new File("/system/app/Superuser.apk");
|
||||
if (file.exists()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
// ignore
|
||||
}
|
||||
try {
|
||||
File file = new File("/system/app/Superuser/Superuser.apk");
|
||||
if (file.exists()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
// ignore
|
||||
}
|
||||
//SuperSU
|
||||
try {
|
||||
File file = new File("/system/app/SuperSU.apk");
|
||||
if (file.exists()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
// ignore
|
||||
}
|
||||
try {
|
||||
File file = new File("/system/app/SuperSU/SuperSU.apk");
|
||||
if (file.exists()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch (Exception e1) {
|
||||
// ignore
|
||||
}
|
||||
// try executing commands
|
||||
return canExecuteCommand("/system/xbin/which su")
|
||||
|| canExecuteCommand("/system/bin/which su") || canExecuteCommand("which su");
|
||||
}
|
||||
|
||||
// executes a command on the system
|
||||
private static boolean canExecuteCommand(String command) {
|
||||
boolean executedSuccesfully;
|
||||
try {
|
||||
Runtime.getRuntime().exec(command);
|
||||
executedSuccesfully = true;
|
||||
}
|
||||
catch (Exception e) {
|
||||
executedSuccesfully = false;
|
||||
}
|
||||
|
||||
return executedSuccesfully;
|
||||
}
|
||||
|
||||
private static boolean findForcemount(){
|
||||
try
|
||||
public static boolean isRooted()
|
||||
{
|
||||
File file = new File(System.getenv("EXTERNAL_STORAGE")+"/forcemount");
|
||||
if (file.exists())
|
||||
// get from build info
|
||||
String buildTags = android.os.Build.TAGS;
|
||||
if (buildTags != null && buildTags.contains("test-keys"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// check if /system/app/Superuser.apk is present
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/Superuser.apk");
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/Superuser/Superuser.apk");
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
//SuperSU
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/SuperSU.apk");
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
try
|
||||
{
|
||||
File file = new File("/system/app/SuperSU/SuperSU.apk");
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e1)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
// try executing commands
|
||||
return canExecuteCommand("/system/xbin/which su")
|
||||
|| canExecuteCommand("/system/bin/which su") || canExecuteCommand("which su");
|
||||
}
|
||||
catch (Exception e1)
|
||||
|
||||
// executes a command on the system
|
||||
private static boolean canExecuteCommand(String command)
|
||||
{
|
||||
boolean executedSuccesfully;
|
||||
try
|
||||
{
|
||||
Runtime.getRuntime().exec(command);
|
||||
executedSuccesfully = true;
|
||||
} catch (Exception e)
|
||||
{
|
||||
executedSuccesfully = false;
|
||||
}
|
||||
|
||||
return executedSuccesfully;
|
||||
}
|
||||
|
||||
private static boolean findForcemount()
|
||||
{
|
||||
Log.d(TAG, "findForcemount()");
|
||||
try
|
||||
{
|
||||
File file = new File(System.getenv("EXTERNAL_STORAGE") + "/forcemount");
|
||||
if (file.exists())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
} catch (Exception e)
|
||||
{
|
||||
Log.w(TAG, e.getMessage());
|
||||
return false;
|
||||
}
|
||||
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]
|
||||