mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-02-23 15:38:29 +01:00
Compare commits
1381 Commits
AndroidX-M
...
gradle-upd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b3f606c97 | ||
|
|
dfeafef1a9 | ||
|
|
71ce482587 | ||
|
|
94672e2fc0 | ||
|
|
3405b7692c | ||
|
|
ed11bf58a3 | ||
|
|
f237694d21 | ||
|
|
de1f850cfd | ||
|
|
1286c0802c | ||
|
|
35034b4e9f | ||
|
|
6f52c4b39d | ||
|
|
aa2c9c08e0 | ||
|
|
c6e4bc90f9 | ||
|
|
e0053aedd0 | ||
|
|
559ed8a72c | ||
|
|
7e525786fc | ||
|
|
0734d17b1e | ||
|
|
2a7c021572 | ||
|
|
9d3f5bfab5 | ||
|
|
b505a4ea41 | ||
|
|
94f93391d0 | ||
|
|
297c6fad79 | ||
|
|
acdded3d97 | ||
|
|
ad25c04cb2 | ||
|
|
c4fc48b1da | ||
|
|
9bce4f98fb | ||
|
|
4e0ead101d | ||
|
|
339ce72b53 | ||
|
|
d5a09c33c2 | ||
|
|
4e7a361271 | ||
|
|
613d521adf | ||
|
|
493014e350 | ||
|
|
7c1996b02b | ||
|
|
abe7200237 | ||
|
|
3d1d586224 | ||
|
|
e8abd8a66e | ||
|
|
8629fd4be9 | ||
|
|
05d3c4ab0b | ||
|
|
5bd303eb05 | ||
|
|
a8d7140e0d | ||
|
|
16a4be63e3 | ||
|
|
7c3a3b6eb2 | ||
|
|
af655ea2a3 | ||
|
|
ed7cb17370 | ||
|
|
0d7207ae29 | ||
|
|
60be50a75a | ||
|
|
619c60c402 | ||
|
|
d45bf048eb | ||
|
|
8e9b1cee73 | ||
|
|
9679580b1e | ||
|
|
1b37a12dc4 | ||
|
|
f5813f4897 | ||
|
|
e23ba310c5 | ||
|
|
65459a8c28 | ||
|
|
61ff33f6eb | ||
|
|
c94a220f1d | ||
|
|
342673ee60 | ||
|
|
e2a4b1575a | ||
|
|
a5fb4d8761 | ||
|
|
dfa31e8501 | ||
|
|
2603a0454a | ||
|
|
e7526d56ec | ||
|
|
6bd38fcfc1 | ||
|
|
a10d781d4b | ||
|
|
3c8d66b0cd | ||
|
|
bb36bbaca6 | ||
|
|
6f2ca0edc5 | ||
|
|
1ddc1ca6ef | ||
|
|
c6a89e52b0 | ||
|
|
275492e96c | ||
|
|
ccccb852d0 | ||
|
|
2638d996e6 | ||
|
|
b51eb8b88e | ||
|
|
86858e629a | ||
|
|
ed83ff3e0e | ||
|
|
a44d104368 | ||
|
|
4be6aff55e | ||
|
|
0e66d836c8 | ||
|
|
c0b44dd808 | ||
|
|
600c3fee23 | ||
|
|
2e2983f527 | ||
|
|
ce3f6c683b | ||
|
|
54be36ded1 | ||
|
|
3a3ba9e15e | ||
|
|
f1674682ca | ||
|
|
4bc7b06cdf | ||
|
|
e50a5c8abe | ||
|
|
becfe04039 | ||
|
|
0d013f051c | ||
|
|
f8c47f5db2 | ||
|
|
44863a8cce | ||
|
|
50e9de92b5 | ||
|
|
a543c2e0c9 | ||
|
|
e38b8b8a62 | ||
|
|
2dd73a7bd7 | ||
|
|
9796dcf14f | ||
|
|
a273e3e7cc | ||
|
|
4c4e4b8f87 | ||
|
|
93a1bbe799 | ||
|
|
bacdc49475 | ||
|
|
9d8202c6c2 | ||
|
|
c2da850956 | ||
|
|
c5f455dd3d | ||
|
|
96eddd238c | ||
|
|
9024a4cb88 | ||
|
|
6aab08e63b | ||
|
|
37d9825380 | ||
|
|
3244a981bb | ||
|
|
6b85391ea5 | ||
|
|
076bd83f48 | ||
|
|
d89051b156 | ||
|
|
f7cbeb29cd | ||
|
|
0e8cf13c7b | ||
|
|
8ec4acc5fe | ||
|
|
ecc4d2ef56 | ||
|
|
b7c367a127 | ||
|
|
3b29116878 | ||
|
|
c4014ca1b8 | ||
|
|
a326797635 | ||
|
|
82908628e1 | ||
|
|
9e5831bbcd | ||
|
|
d0eae0a787 | ||
|
|
6240295643 | ||
|
|
0ce66f250c | ||
|
|
1f84e9688e | ||
|
|
864a2de665 | ||
|
|
b0365a4fb3 | ||
|
|
52b0f50813 | ||
|
|
4ae7c7e9b6 | ||
|
|
1c525cafc0 | ||
|
|
306089c2cf | ||
|
|
432149f832 | ||
|
|
835a3a2de9 | ||
|
|
d778703497 | ||
|
|
dd1fd5c99a | ||
|
|
d18b9a9f4b | ||
|
|
bedc4028a4 | ||
|
|
bf139e00b8 | ||
|
|
12c409723a | ||
|
|
c098baee3d | ||
|
|
eda9cadfb2 | ||
|
|
b30c118ed2 | ||
|
|
c409f95440 | ||
|
|
c49cf502e2 | ||
|
|
7de790a43c | ||
|
|
e63ae7f231 | ||
|
|
a42cc9848f | ||
|
|
14011b2512 | ||
|
|
0a14d737d6 | ||
|
|
a23e6e3961 | ||
|
|
0af2e2bb47 | ||
|
|
b24339d5bf | ||
|
|
13dbe214e8 | ||
|
|
30c34aa23a | ||
|
|
dc3b6e8a9a | ||
|
|
0440de6040 | ||
|
|
049b4923c5 | ||
|
|
729745d9b7 | ||
|
|
1ea442978c | ||
|
|
ee8fc07bd5 | ||
|
|
53942408fe | ||
|
|
da3600c64e | ||
|
|
b6b59156c8 | ||
|
|
0ba4b4e986 | ||
|
|
84d9e84819 | ||
|
|
9d766567ed | ||
|
|
7bcabc2b8a | ||
|
|
0a4fa6a66c | ||
|
|
ce3e0abfb1 | ||
|
|
b77fd7b6b8 | ||
|
|
9e4633ddc9 | ||
|
|
a18ffd913f | ||
|
|
8fe35fb802 | ||
|
|
6080a5c667 | ||
|
|
5da0007e34 | ||
|
|
948c7eab32 | ||
|
|
77c228f4d7 | ||
|
|
fdeba4db23 | ||
|
|
0ab3237f41 | ||
|
|
4045acadbf | ||
|
|
de4d1013ca | ||
|
|
72957d74c6 | ||
|
|
48ec4290f9 | ||
|
|
5f98f09924 | ||
|
|
b2099b24ef | ||
|
|
31c309e25c | ||
|
|
0294078887 | ||
|
|
dc8e933fc1 | ||
|
|
f84939d540 | ||
|
|
a635cd9124 | ||
|
|
7551af1ef3 | ||
|
|
9ed794211b | ||
|
|
34a21a117d | ||
|
|
7d67052e5b | ||
|
|
c9afe544f6 | ||
|
|
712b358dca | ||
|
|
9a1cc68e9b | ||
|
|
ae26fff462 | ||
|
|
99c2c91320 | ||
|
|
63c6433182 | ||
|
|
6e550282c3 | ||
|
|
74cdcc35eb | ||
|
|
bbad939e48 | ||
|
|
b71bbbaa31 | ||
|
|
4dd86f9091 | ||
|
|
95d93bb95c | ||
|
|
7f4e97905e | ||
|
|
0ebfd13818 | ||
|
|
b1d24ec3a6 | ||
|
|
80021fc4b4 | ||
|
|
fd9ba71635 | ||
|
|
4f1cfcfc16 | ||
|
|
e4af9b137f | ||
|
|
1c20a251d1 | ||
|
|
74b24fc1cf | ||
|
|
e9e49d6b5f | ||
|
|
d9e643c74d | ||
|
|
af1acf6242 | ||
|
|
fbcc9cfbc9 | ||
|
|
45a5796aa5 | ||
|
|
4214186be6 | ||
|
|
5760a3215f | ||
|
|
19e63a1452 | ||
|
|
f4eaf5009d | ||
|
|
d5e3211f56 | ||
|
|
dcdd747f9a | ||
|
|
dc010dffd2 | ||
|
|
b5ec8028ab | ||
|
|
c4261edbe9 | ||
|
|
d5ae67a609 | ||
|
|
ae17446a71 | ||
|
|
e47c43298c | ||
|
|
b0729b9f14 | ||
|
|
fbf5c4a43f | ||
|
|
a03544cac4 | ||
|
|
34c64bc7b2 | ||
|
|
aa4297c290 | ||
|
|
b51ab87986 | ||
|
|
71e99e7d33 | ||
|
|
4921a15f75 | ||
|
|
e2f6169576 | ||
|
|
91cc24a6d7 | ||
|
|
c372d88f01 | ||
|
|
992aeaf1b1 | ||
|
|
469dbf0850 | ||
|
|
57c16b5081 | ||
|
|
35da35512c | ||
|
|
d1c2e582bf | ||
|
|
44a423297a | ||
|
|
81bc3ff6a0 | ||
|
|
17db1d77e6 | ||
|
|
476c1f0688 | ||
|
|
530da597bb | ||
|
|
cd1650da2b | ||
|
|
f6c608f95e | ||
|
|
1a0d02c1b1 | ||
|
|
84aa4c3637 | ||
|
|
e4467d006a | ||
|
|
f66685533e | ||
|
|
8271d76a61 | ||
|
|
e9b46bea86 | ||
|
|
c9b21f8af8 | ||
|
|
6499d247f8 | ||
|
|
90fdce0759 | ||
|
|
2a4de617b8 | ||
|
|
c368190ceb | ||
|
|
66aea0b0cb | ||
|
|
328eea4fbb | ||
|
|
d73cde51a7 | ||
|
|
9a70eb3d6c | ||
|
|
3d0bfa15ba | ||
|
|
4f3fc4b4d3 | ||
|
|
76fc648a5f | ||
|
|
2c0b9d699e | ||
|
|
b4710cf7bf | ||
|
|
20b0910845 | ||
|
|
6fb4aadb0e | ||
|
|
ccd4e202d2 | ||
|
|
2077e3707f | ||
|
|
f37db77423 | ||
|
|
5836f0bf8a | ||
|
|
486c8a903c | ||
|
|
5e230c4700 | ||
|
|
807b95ae38 | ||
|
|
21bbdcd9ba | ||
|
|
a536ec0012 | ||
|
|
0cd5e0daf7 | ||
|
|
9c97207f7c | ||
|
|
491b15a95a | ||
|
|
56d1b22f66 | ||
|
|
db1605abc0 | ||
|
|
0279612052 | ||
|
|
45a7fd5ea6 | ||
|
|
b52670bc44 | ||
|
|
a7c34e0832 | ||
|
|
1fc86e9ed6 | ||
|
|
619a531279 | ||
|
|
6562a72e55 | ||
|
|
09f5292e46 | ||
|
|
0d021faaed | ||
|
|
6c5baa93b8 | ||
|
|
666f7e7c35 | ||
|
|
7e56886659 | ||
|
|
1d5513fba3 | ||
|
|
76e307a836 | ||
|
|
517225e30f | ||
|
|
c49fc826af | ||
|
|
1eca0493d8 | ||
|
|
9c2a1ca590 | ||
|
|
5481be03e6 | ||
|
|
f5d70d6f56 | ||
|
|
5ab714bb01 | ||
|
|
409a67b5be | ||
|
|
4e1a6ad392 | ||
|
|
9d1e63bd90 | ||
|
|
62724cdd71 | ||
|
|
176d4a3072 | ||
|
|
f771864875 | ||
|
|
4a6707c7a8 | ||
|
|
14ee38edf2 | ||
|
|
a8e2462e47 | ||
|
|
3faf696f46 | ||
|
|
d22530938d | ||
|
|
9bfe080447 | ||
|
|
b083b47781 | ||
|
|
0fc7709584 | ||
|
|
f31382698f | ||
|
|
358594d9e4 | ||
|
|
6ced7c4c39 | ||
|
|
dc83dd2d95 | ||
|
|
e3b56d85cd | ||
|
|
448610894a | ||
|
|
9953b315b5 | ||
|
|
8f669e0a33 | ||
|
|
9fbafa29a2 | ||
|
|
461c40ed8c | ||
|
|
a3401f05b4 | ||
|
|
2e3c134e09 | ||
|
|
e3b03fa3e5 | ||
|
|
d25d7916b0 | ||
|
|
1a43fad4bb | ||
|
|
c5e1806b9f | ||
|
|
dee12635a1 | ||
|
|
5fac187f80 | ||
|
|
4d18951e94 | ||
|
|
4986bbd9a2 | ||
|
|
48ac678c9c | ||
|
|
3a343b12ee | ||
|
|
1174495f67 | ||
|
|
e0b62484f4 | ||
|
|
a2c41fd470 | ||
|
|
6633bf15e6 | ||
|
|
64644ca5be | ||
|
|
31d83b0f44 | ||
|
|
98ceed6ea6 | ||
|
|
85c71fb49f | ||
|
|
b91388c085 | ||
|
|
6faf448a29 | ||
|
|
fbe17cdeab | ||
|
|
d6fe78132a | ||
|
|
58b52e9069 | ||
|
|
7359e55047 | ||
|
|
a5a97bedba | ||
|
|
bcb317d799 | ||
|
|
521358a8b8 | ||
|
|
901bc3ba43 | ||
|
|
3ea543213a | ||
|
|
e54ddf5d6c | ||
|
|
6dac9a365d | ||
|
|
349baa17d3 | ||
|
|
00b84109c8 | ||
|
|
01f2bcc8c6 | ||
|
|
78308b5d98 | ||
|
|
891664c8ff | ||
|
|
07dd3d81ff | ||
|
|
9196b56a3d | ||
|
|
fa70ba8fb6 | ||
|
|
6e4e60a713 | ||
|
|
2caff38db9 | ||
|
|
103cefad0d | ||
|
|
1b6d1ce5f1 | ||
|
|
8fcd6c73b6 | ||
|
|
b5eb47aff8 | ||
|
|
87ddae5571 | ||
|
|
58a47ad70c | ||
|
|
e06de09e15 | ||
|
|
9ca3833117 | ||
|
|
bd4efa9434 | ||
|
|
c07bbb8ef6 | ||
|
|
503a0725b9 | ||
|
|
2760e081ac | ||
|
|
8e2bea1f35 | ||
|
|
4369a3dfb3 | ||
|
|
a844e05946 | ||
|
|
401b79fcf3 | ||
|
|
0cf139035a | ||
|
|
a332b06266 | ||
|
|
0eb4a1512f | ||
|
|
0ecda7eb62 | ||
|
|
4cacf8de1e | ||
|
|
6086a54f0f | ||
|
|
f376bd3445 | ||
|
|
e722852f93 | ||
|
|
9e9102fdc0 | ||
|
|
491e95e4a1 | ||
|
|
31755b480a | ||
|
|
d89aed8dc5 | ||
|
|
931597abcb | ||
|
|
77ab35da91 | ||
|
|
0684fd8e25 | ||
|
|
97cabf62b8 | ||
|
|
53a1b513fb | ||
|
|
053336faca | ||
|
|
dbe096a8d5 | ||
|
|
f78d1a6d84 | ||
|
|
01d1cb6212 | ||
|
|
c606e7c296 | ||
|
|
5ac2f44d52 | ||
|
|
9b7b79ac9f | ||
|
|
99deee6a14 | ||
|
|
196302ed3e | ||
|
|
f40589a461 | ||
|
|
ef2e01085a | ||
|
|
8f939fd4af | ||
|
|
4a546d9ff1 | ||
|
|
d75c99f7ee | ||
|
|
f10a3d99c5 | ||
|
|
fb23e577e8 | ||
|
|
6861451f8f | ||
|
|
770082a811 | ||
|
|
43cf2b1105 | ||
|
|
88e2a65b5d | ||
|
|
1333610ef0 | ||
|
|
731411cdfa | ||
|
|
10da65860a | ||
|
|
6f637e01b6 | ||
|
|
a356a456d5 | ||
|
|
55f4141157 | ||
|
|
b2a3c926c5 | ||
|
|
e79c26e234 | ||
|
|
cb293885e2 | ||
|
|
92db832044 | ||
|
|
42f20efe3b | ||
|
|
14866a1432 | ||
|
|
7d61704575 | ||
|
|
c8e8d0b7b9 | ||
|
|
dda03b21d7 | ||
|
|
64e8bf3abb | ||
|
|
da671b00cf | ||
|
|
6d918bd3d5 | ||
|
|
dbf4e05d59 | ||
|
|
9224cf8b99 | ||
|
|
00051ec7fe | ||
|
|
44686c6459 | ||
|
|
09f3a7f27e | ||
|
|
51a09a7a99 | ||
|
|
ebdea1e9b1 | ||
|
|
f3d3adac2e | ||
|
|
b55f90efde | ||
|
|
c5e6e09071 | ||
|
|
9895847f8b | ||
|
|
992f265292 | ||
|
|
f4a4a7c124 | ||
|
|
129d037379 | ||
|
|
f0e438044f | ||
|
|
9ef0e56aa8 | ||
|
|
6b74350edf | ||
|
|
5f6e38de30 | ||
|
|
1ee940c40c | ||
|
|
2ca5dd9b31 | ||
|
|
08a4c18c8f | ||
|
|
e4cc3bb89c | ||
|
|
6f56e1fb3d | ||
|
|
c49b63b50e | ||
|
|
0fcb5aa2c6 | ||
|
|
d8c055dbb4 | ||
|
|
280c636823 | ||
|
|
bce6cdb618 | ||
|
|
3486f95a81 | ||
|
|
ea427419ef | ||
|
|
38467803b8 | ||
|
|
6a25253698 | ||
|
|
31b15baf90 | ||
|
|
b906e4dd99 | ||
|
|
5022c94a13 | ||
|
|
f6f3c2041b | ||
|
|
5c3bdf40f9 | ||
|
|
db3335513a | ||
|
|
a815562f82 | ||
|
|
36d4cb716e | ||
|
|
2a62f69623 | ||
|
|
6d1ffdedc8 | ||
|
|
7f67ff266c | ||
|
|
5afdbd82bb | ||
|
|
21763301ca | ||
|
|
0268f4e707 | ||
|
|
b66e75027d | ||
|
|
934755cf4e | ||
|
|
148280d29e | ||
|
|
0cc89d6e86 | ||
|
|
395bb7b213 | ||
|
|
af5a992cfc | ||
|
|
c76ae59ae2 | ||
|
|
2a884b7c7c | ||
|
|
3a87e6159b | ||
|
|
6ec5273d21 | ||
|
|
bff5215bb9 | ||
|
|
f609d4132a | ||
|
|
6cc3e428d3 | ||
|
|
28eb643f49 | ||
|
|
b7d9dc08ec | ||
|
|
2ca9a78280 | ||
|
|
2df651f342 | ||
|
|
b16129abfa | ||
|
|
787b739fa3 | ||
|
|
f4d62d1590 | ||
|
|
03ca432a36 | ||
|
|
28804f9034 | ||
|
|
7b276046ed | ||
|
|
c538088760 | ||
|
|
1074bbb09e | ||
|
|
2c503bdf88 | ||
|
|
2f242e6607 | ||
|
|
0cee97e5f6 | ||
|
|
90f12a94a8 | ||
|
|
91fb604806 | ||
|
|
a54df11cc7 | ||
|
|
b8e903af3e | ||
|
|
2c4491c707 | ||
|
|
d13865f599 | ||
|
|
a0bfee0c6a | ||
|
|
69eb9eda25 | ||
|
|
ba3b37a0a3 | ||
|
|
bf13c485bd | ||
|
|
c537e7554a | ||
|
|
7b030434b9 | ||
|
|
03c45bf7f4 | ||
|
|
daed8ccfa7 | ||
|
|
32b19fbb33 | ||
|
|
b1c2a4ef8c | ||
|
|
af3109b9d9 | ||
|
|
130c694c8d | ||
|
|
c6801505c2 | ||
|
|
bac004ae33 | ||
|
|
abb8998117 | ||
|
|
9ca1188baa | ||
|
|
61267a502a | ||
|
|
9dd287f16e | ||
|
|
55989a4d55 | ||
|
|
0b0d433043 | ||
|
|
a6480db012 | ||
|
|
7c5b89766a | ||
|
|
1c8145116f | ||
|
|
fdbf58dfa3 | ||
|
|
8730ebf67a | ||
|
|
4c1e1d68b5 | ||
|
|
e5acb89f1b | ||
|
|
b8c3119481 | ||
|
|
15f3fd1206 | ||
|
|
950310906e | ||
|
|
7853718f29 | ||
|
|
4f2733324f | ||
|
|
7379277b1d | ||
|
|
6387b87ced | ||
|
|
f01c5ff237 | ||
|
|
5843be57c0 | ||
|
|
4a62613375 | ||
|
|
bec17c65e4 | ||
|
|
315e34185a | ||
|
|
5510d88988 | ||
|
|
803e9a33e0 | ||
|
|
b346f32e77 | ||
|
|
585852ecb1 | ||
|
|
6fcc65acd7 | ||
|
|
19c67b23f1 | ||
|
|
bd59044951 | ||
|
|
6255808ed0 | ||
|
|
77476364cc | ||
|
|
25a6f050ef | ||
|
|
990dd40414 | ||
|
|
0d2574d31b | ||
|
|
01dac76b85 | ||
|
|
d9602a5e41 | ||
|
|
5a0a90ca60 | ||
|
|
10284e801f | ||
|
|
a060552907 | ||
|
|
01a2cadcd3 | ||
|
|
d87e584601 | ||
|
|
fdf8a71acb | ||
|
|
9d46fa2583 | ||
|
|
bfeab1abfa | ||
|
|
7c30577374 | ||
|
|
e164e50f93 | ||
|
|
f6d3cd59c0 | ||
|
|
11196ce1d4 | ||
|
|
db0cfd430c | ||
|
|
7353f44265 | ||
|
|
3b19458c3d | ||
|
|
f2d1f8144c | ||
|
|
f39de931c8 | ||
|
|
b1a25b485f | ||
|
|
98830faed4 | ||
|
|
198ab0c927 | ||
|
|
6e8f45b32b | ||
|
|
5d534c9b0a | ||
|
|
15ba35fbb2 | ||
|
|
5258ffebbe | ||
|
|
2733ccdf8a | ||
|
|
52ec176455 | ||
|
|
a24aaeb7e8 | ||
|
|
837dbf8393 | ||
|
|
da97a0857b | ||
|
|
df30d586e2 | ||
|
|
49d7b2fbff | ||
|
|
beec49c9e5 | ||
|
|
3cdc6ae8c1 | ||
|
|
0dcb04e46b | ||
|
|
60fe0f38bf | ||
|
|
0cf8cdd4c1 | ||
|
|
2d7c1ed049 | ||
|
|
49f816be4e | ||
|
|
433230dc19 | ||
|
|
59399e7819 | ||
|
|
8342f05fb4 | ||
|
|
881f556c29 | ||
|
|
09808990ee | ||
|
|
80d54af2a0 | ||
|
|
282fc90f98 | ||
|
|
f093b2d3ac | ||
|
|
87ba301091 | ||
|
|
58eb2066f5 | ||
|
|
e43cead809 | ||
|
|
7f90039de7 | ||
|
|
8bafff9855 | ||
|
|
dc28c9787d | ||
|
|
4bc9e3e2bf | ||
|
|
dd71112dc6 | ||
|
|
29411ae0e8 | ||
|
|
ceb85adcd6 | ||
|
|
960525bb40 | ||
|
|
f9f46e38b4 | ||
|
|
64220c320b | ||
|
|
28262aeedf | ||
|
|
4b5af87739 | ||
|
|
0d901b2472 | ||
|
|
a98c621931 | ||
|
|
83360aebc7 | ||
|
|
f47112c52e | ||
|
|
19bf9b0c3d | ||
|
|
a4f1cb7cfd | ||
|
|
aed7a92340 | ||
|
|
3f6397a2a9 | ||
|
|
326a518630 | ||
|
|
84fa8e5547 | ||
|
|
1d5c1edad9 | ||
|
|
5b0e8d1d25 | ||
|
|
c9b4da0823 | ||
|
|
4c55c5c2a7 | ||
|
|
ced33a4cda | ||
|
|
50606e8424 | ||
|
|
3a75b08962 | ||
|
|
5c0aa7acbb | ||
|
|
845ea0926e | ||
|
|
b89cd7abc0 | ||
|
|
77659f6539 | ||
|
|
48343162f9 | ||
|
|
d1be8b88d4 | ||
|
|
2aeea3aa13 | ||
|
|
f7ff8949c4 | ||
|
|
565b69489a | ||
|
|
d5142d7f0a | ||
|
|
c83dbccdb7 | ||
|
|
d60c6b3aa8 | ||
|
|
c8d30efc63 | ||
|
|
274ae1d826 | ||
|
|
085c66b7a4 | ||
|
|
07ebbbd682 | ||
|
|
8e4f5a6ae7 | ||
|
|
cac8cf9d38 | ||
|
|
4861557cdb | ||
|
|
1f71f60bf9 | ||
|
|
9547e10def | ||
|
|
d51dfec557 | ||
|
|
89f46e67bf | ||
|
|
d180e233c5 | ||
|
|
e0f7318ef3 | ||
|
|
29be76dcd5 | ||
|
|
32a9480fc0 | ||
|
|
e4c14dc6bb | ||
|
|
4ef8e254c3 | ||
|
|
53d1cbc4a9 | ||
|
|
b2c345d052 | ||
|
|
383118f8ef | ||
|
|
8953854bb3 | ||
|
|
d378681461 | ||
|
|
039bbe5308 | ||
|
|
d4a8ab316e | ||
|
|
ffa6a0d7d9 | ||
|
|
8e9ceeb61a | ||
|
|
dccba37195 | ||
|
|
7fc785c0a2 | ||
|
|
c5826dac0c | ||
|
|
a4986a87a3 | ||
|
|
e26b7ae6dd | ||
|
|
190ea5dfe2 | ||
|
|
984892ea85 | ||
|
|
e52177fe5c | ||
|
|
7e24bfc9d1 | ||
|
|
a52c01087e | ||
|
|
a300a8f426 | ||
|
|
ed4ed55854 | ||
|
|
5889f57731 | ||
|
|
44e4de191e | ||
|
|
16f10facc3 | ||
|
|
efa8547c2a | ||
|
|
7037f0574b | ||
|
|
e59108291b | ||
|
|
55c671cc4b | ||
|
|
d8b6530e69 | ||
|
|
5d46a0419b | ||
|
|
d012f79822 | ||
|
|
818883a98a | ||
|
|
79669cb581 | ||
|
|
47f436e288 | ||
|
|
71ac706449 | ||
|
|
128c753057 | ||
|
|
b6a8074657 | ||
|
|
c2a347fb00 | ||
|
|
70709e0bf8 | ||
|
|
16992d9d43 | ||
|
|
aa819d7737 | ||
|
|
790749df12 | ||
|
|
a2cb909b52 | ||
|
|
4058450016 | ||
|
|
6233bad209 | ||
|
|
e52887b074 | ||
|
|
f9f53d18fb | ||
|
|
d4b30ecb15 | ||
|
|
1c0bafba6e | ||
|
|
67fd45ea54 | ||
|
|
12cefe3d84 | ||
|
|
3d24e79b9a | ||
|
|
43bbd1d95c | ||
|
|
2065a29d04 | ||
|
|
c45fae6ab1 | ||
|
|
0d3ee38d0e | ||
|
|
7de1fe0f75 | ||
|
|
f499ee52a9 | ||
|
|
0b9dd43505 | ||
|
|
09a856944d | ||
|
|
ef6e997665 | ||
|
|
f62ab4ca00 | ||
|
|
bd084d6a44 | ||
|
|
0462d8c85d | ||
|
|
b5444303b9 | ||
|
|
5ea73d795d | ||
|
|
5c7d4db3a7 | ||
|
|
d0df9b88e8 | ||
|
|
9adb719b13 | ||
|
|
ba101cf562 | ||
|
|
d6fe5c9fb8 | ||
|
|
cbdc47335c | ||
|
|
1d5c3efd83 | ||
|
|
64f7b3ff26 | ||
|
|
da604679de | ||
|
|
8a057b66a0 | ||
|
|
d3ad383d83 | ||
|
|
ff003eff27 | ||
|
|
56ec8e02b5 | ||
|
|
ca9aba5ec1 | ||
|
|
d88832677f | ||
|
|
570d9da321 | ||
|
|
99f4ab5e6b | ||
|
|
1f1e4302ae | ||
|
|
e8ea1e391c | ||
|
|
1b80638e78 | ||
|
|
b3a5564585 | ||
|
|
675ff6f979 | ||
|
|
995ee74fce | ||
|
|
bf13ac460d | ||
|
|
c4eb2b2d3a | ||
|
|
f1afbb6b1c | ||
|
|
3cf383a0d1 | ||
|
|
39f5100c50 | ||
|
|
21ae554f42 | ||
|
|
f77bb731bf | ||
|
|
e879aeea24 | ||
|
|
aa41356aa7 | ||
|
|
05e51309ba | ||
|
|
82212cbb13 | ||
|
|
42d68399d8 | ||
|
|
19c5957601 | ||
|
|
8a16efa9f6 | ||
|
|
ba6d541682 | ||
|
|
ccc3bc0b0d | ||
|
|
9778aabaed | ||
|
|
d7db07529e | ||
|
|
f7ff05e6e9 | ||
|
|
b1497a3f79 | ||
|
|
8640cf5f28 | ||
|
|
86be492cee | ||
|
|
e105dc68dd | ||
|
|
e17197d518 | ||
|
|
0b2dbe53e3 | ||
|
|
a64c45586f | ||
|
|
106b43b7fd | ||
|
|
e4aa742882 | ||
|
|
a4f67e6feb | ||
|
|
794303eacd | ||
|
|
2b53d200f0 | ||
|
|
d288c23e53 | ||
|
|
1e0ee6fc7f | ||
|
|
86af20dcc4 | ||
|
|
d0eb30ad02 | ||
|
|
d39fb1d6e8 | ||
|
|
c41a40894e | ||
|
|
e5a98bc252 | ||
|
|
45f770dcc1 | ||
|
|
5e79b15320 | ||
|
|
34ab4601e4 | ||
|
|
39303c0381 | ||
|
|
e4a2c925ef | ||
|
|
5e6e233a84 | ||
|
|
4a118451dd | ||
|
|
53de86e4f9 | ||
|
|
4c18ff2615 | ||
|
|
db9821956c | ||
|
|
90da983317 | ||
|
|
342441aa36 | ||
|
|
9250db38be | ||
|
|
8782190bdf | ||
|
|
7d58901811 | ||
|
|
9e885c6d7a | ||
|
|
ef1fc76f3c | ||
|
|
3e8fe3426d | ||
|
|
cb445ec643 | ||
|
|
6609a7b84a | ||
|
|
d6732bbe2e | ||
|
|
2a188aa05d | ||
|
|
bebe59537c | ||
|
|
cb7628c859 | ||
|
|
6cc167d9d4 | ||
|
|
62f5eb00ba | ||
|
|
762fbe5191 | ||
|
|
afe758fddb | ||
|
|
c05d9082f6 | ||
|
|
1f12c08ca3 | ||
|
|
dc6b17b77b | ||
|
|
38d8f205fc | ||
|
|
f6660ec7b0 | ||
|
|
851e9e1b40 | ||
|
|
b890c9b8f8 | ||
|
|
4d3606fe49 | ||
|
|
b51772e207 | ||
|
|
3ccf5eb3e1 | ||
|
|
5a6eb9b0fb | ||
|
|
1c3b3e5841 | ||
|
|
fe5de9c6d7 | ||
|
|
866ee65964 | ||
|
|
1b32b1f9b5 | ||
|
|
5708f1111a | ||
|
|
ae0bbb4b0b | ||
|
|
ada8ed6583 | ||
|
|
a67edc6f2b | ||
|
|
dbf3eda49b | ||
|
|
abee648344 | ||
|
|
4f77bbb69e | ||
|
|
9383efdb9d | ||
|
|
32ab09aa36 | ||
|
|
b81d381fc4 | ||
|
|
4dec9dc7db | ||
|
|
a08bf5ed49 | ||
|
|
321085d3e9 | ||
|
|
98fbdce95e | ||
|
|
5bd15e489b | ||
|
|
5531241ca4 | ||
|
|
3bf9eca3a9 | ||
|
|
90bdb77beb | ||
|
|
73ff117ddd | ||
|
|
0c36d1b045 | ||
|
|
2408171c9d | ||
|
|
35ba477cd4 | ||
|
|
219acf7618 | ||
|
|
b619137ae3 | ||
|
|
1516381ec6 | ||
|
|
40c816b4e9 | ||
|
|
1a0c36e179 | ||
|
|
399cd68643 | ||
|
|
aa5872b022 | ||
|
|
c38357ff7f | ||
|
|
feac4292af | ||
|
|
11a9d15df0 | ||
|
|
879a57e06d | ||
|
|
2b3759151d | ||
|
|
33487fe4c0 | ||
|
|
7004d31aa9 | ||
|
|
b3cbe50138 | ||
|
|
0fd7ef32ad | ||
|
|
aff84a8054 | ||
|
|
c3c74e9e56 | ||
|
|
0113a57311 | ||
|
|
e03cd77f81 | ||
|
|
82be86bffb | ||
|
|
f9cab276fb | ||
|
|
5979cb4773 | ||
|
|
0df8568f37 | ||
|
|
88439ed08b | ||
|
|
5b109cd5b9 | ||
|
|
5ae9d9e009 | ||
|
|
df093ba457 | ||
|
|
57c598227e | ||
|
|
e70580fcb1 | ||
|
|
8a8ad9b82b | ||
|
|
2c395ca5e1 | ||
|
|
51cd079680 | ||
|
|
4c97b65acf | ||
|
|
13134ae67d | ||
|
|
3a446af265 | ||
|
|
ae1f9b6015 | ||
|
|
313514ebe5 | ||
|
|
b0caaeda1e | ||
|
|
c3924e7193 | ||
|
|
5f42305af7 | ||
|
|
9513c8a790 | ||
|
|
9b59b018f1 | ||
|
|
fe7eb87f6d | ||
|
|
e0093c31af | ||
|
|
00beaf68e8 | ||
|
|
2594c9d096 | ||
|
|
23a122c093 | ||
|
|
810a1e810c | ||
|
|
a382008e9b | ||
|
|
bdd383c430 | ||
|
|
2672fa5e89 | ||
|
|
22f46c593e | ||
|
|
698f108262 | ||
|
|
37f71811ba | ||
|
|
1b60247c23 | ||
|
|
193a57de05 | ||
|
|
e8dfb0e658 | ||
|
|
0a2ceea8fa | ||
|
|
6f16729c53 | ||
|
|
26f0e174f6 | ||
|
|
11a1720900 | ||
|
|
9721cca1e4 | ||
|
|
6f20d1a164 | ||
|
|
5dfe12b527 | ||
|
|
bef533556a | ||
|
|
18618d527f | ||
|
|
676b661e9e | ||
|
|
3748668c11 | ||
|
|
caf699874a | ||
|
|
67d214e8e7 | ||
|
|
2a63cb8e70 | ||
|
|
2d5ff980df | ||
|
|
5c8effb45b | ||
|
|
113af685dc | ||
|
|
6008e2d55f | ||
|
|
c451da4300 | ||
|
|
2a8f2a0f26 | ||
|
|
46e396b74b | ||
|
|
93f2e6d563 | ||
|
|
f38920e719 | ||
|
|
b8c07be5bd | ||
|
|
e0aa9f76a6 | ||
|
|
bca41adbf4 | ||
|
|
86eb8775b2 | ||
|
|
7b759fb71d | ||
|
|
241b2d244d | ||
|
|
252b42b1ee | ||
|
|
792b9896b3 | ||
|
|
13021da2d8 | ||
|
|
ee0ff7de44 | ||
|
|
e08ce9950d | ||
|
|
8c65f8cbf1 | ||
|
|
30f4ea1d44 | ||
|
|
5561a8f7a1 | ||
|
|
0d26a532e3 | ||
|
|
6bc57ba54e | ||
|
|
5b5fc4f782 | ||
|
|
d23be31719 | ||
|
|
f4b81760fb | ||
|
|
211c89d6ef | ||
|
|
d8a69fd700 | ||
|
|
1165cf3f98 | ||
|
|
40b04d8bb2 | ||
|
|
ef43997c0d | ||
|
|
75bddf5ab3 | ||
|
|
220e46d9f7 | ||
|
|
07de076b26 | ||
|
|
79d72a1e93 | ||
|
|
adea17d749 | ||
|
|
ad28909118 | ||
|
|
93ed58c12d | ||
|
|
e912e452d8 | ||
|
|
b4c490f648 | ||
|
|
e6ef6728ac | ||
|
|
53744b1897 | ||
|
|
678737441a | ||
|
|
cb1801b486 | ||
|
|
2ffa9f5f0b | ||
|
|
bde0339a80 | ||
|
|
b81ec6883f | ||
|
|
8e8c02b038 | ||
|
|
37f17cddf6 | ||
|
|
5bbe529230 | ||
|
|
856fdfcfba | ||
|
|
e78f16c342 | ||
|
|
2776c33876 | ||
|
|
cc6de21dc1 | ||
|
|
511017a1de | ||
|
|
28ed52b263 | ||
|
|
a63e8ad034 | ||
|
|
bda9556cd1 | ||
|
|
aaae2a3b51 | ||
|
|
3e9032de0d | ||
|
|
b778ed1207 | ||
|
|
439e0fcbd8 | ||
|
|
34416c5548 | ||
|
|
070cb5bafd | ||
|
|
7f50c4f444 | ||
|
|
821ff0982e | ||
|
|
4de87119bc | ||
|
|
73eff8c748 | ||
|
|
15246d5270 | ||
|
|
a0564c05ed | ||
|
|
bea41af484 | ||
|
|
d7948ff076 | ||
|
|
60e9df3141 | ||
|
|
7be2256672 | ||
|
|
af8cc33bff | ||
|
|
64e3009269 | ||
|
|
ff456c2565 | ||
|
|
bc308df775 | ||
|
|
b87a514187 | ||
|
|
b28f4f4c42 | ||
|
|
cee90a077a | ||
|
|
3dcc1028c1 | ||
|
|
beb8ae4a11 | ||
|
|
ac7303a7f2 | ||
|
|
b8a6073e3d | ||
|
|
27909b4b49 | ||
|
|
6cd268b969 | ||
|
|
657297ca4c | ||
|
|
46d26478ca | ||
|
|
16bd9dc17a | ||
|
|
26e9bda24b | ||
|
|
02beb88b3a | ||
|
|
b33fcb0eeb | ||
|
|
94843d2e9e | ||
|
|
e6975c462b | ||
|
|
b13a8179d9 | ||
|
|
63f1d27ae8 | ||
|
|
185b94732f | ||
|
|
5264c23dc5 | ||
|
|
216ae613c6 | ||
|
|
e129245866 | ||
|
|
bdc9d41b90 | ||
|
|
dc80a3bbe9 | ||
|
|
54170d7dd4 | ||
|
|
3b3629c1bb | ||
|
|
8c7ab49812 | ||
|
|
8c3c069f17 | ||
|
|
d491a2db89 | ||
|
|
fcad74852a | ||
|
|
04db185d75 | ||
|
|
eacf4b9ced | ||
|
|
6678fc1c72 | ||
|
|
e7d8a37291 | ||
|
|
591d368667 | ||
|
|
38e136d6f3 | ||
|
|
afe7766cad | ||
|
|
6a1d927190 | ||
|
|
063ce332a8 | ||
|
|
239f03c5ec | ||
|
|
add01e2508 | ||
|
|
a2fb8bb2b9 | ||
|
|
56c57e7dba | ||
|
|
c34c5ecd5e | ||
|
|
14b9d00796 | ||
|
|
457c98cc0d | ||
|
|
bb614278bb | ||
|
|
655d464677 | ||
|
|
1f63ae060f | ||
|
|
b7cc23cb32 | ||
|
|
53b75f1c80 | ||
|
|
429bb7d61d | ||
|
|
8070329915 | ||
|
|
e9138d9cbf | ||
|
|
209cf28224 | ||
|
|
5363d60ece | ||
|
|
5d273f7308 | ||
|
|
000c3e71e2 | ||
|
|
093c75da95 | ||
|
|
979d3c81db | ||
|
|
16c9378da4 | ||
|
|
bf62a3502f | ||
|
|
06d71caa1e | ||
|
|
aab900dc58 | ||
|
|
cdb02a8a7b | ||
|
|
01affa64b3 | ||
|
|
cc34decd0f | ||
|
|
d971825cbd | ||
|
|
cbc4992f10 | ||
|
|
89bac044f1 | ||
|
|
dc933ba225 | ||
|
|
a7ac2ed657 | ||
|
|
8453f0e5f5 | ||
|
|
17f3c75fdf | ||
|
|
4f5952f24c | ||
|
|
2bf6e4c3b7 | ||
|
|
90cb403196 | ||
|
|
d59b686d10 | ||
|
|
346187a80f | ||
|
|
f8b38d88aa | ||
|
|
ad4432a2df | ||
|
|
bf20d0dc6e | ||
|
|
d940229581 | ||
|
|
044c6fa4b1 | ||
|
|
d2b1e67bac | ||
|
|
7bb42e98b6 | ||
|
|
ea80cd11fe | ||
|
|
1f00f4a86c | ||
|
|
12350f3fdb | ||
|
|
c650e4aa75 | ||
|
|
94f81db7ba | ||
|
|
8c80615659 | ||
|
|
bc5e956cb3 | ||
|
|
fab9bdc298 | ||
|
|
1d90db1c1e | ||
|
|
9c3dd2e671 | ||
|
|
711285aab2 | ||
|
|
3d20a43a24 | ||
|
|
c3c491f72c | ||
|
|
489dfd55fb | ||
|
|
b84ffde283 | ||
|
|
5256868327 | ||
|
|
606e90e9bd | ||
|
|
c5b426af13 | ||
|
|
8ee1bf782c | ||
|
|
f4651a9bed | ||
|
|
c7a77f9c99 | ||
|
|
e42d2fcec8 | ||
|
|
2173fda575 | ||
|
|
dccb078060 | ||
|
|
9bc007349f | ||
|
|
435865f250 | ||
|
|
f7e64c5ab9 | ||
|
|
271a28887f | ||
|
|
e3955dac3a | ||
|
|
8971d671fe | ||
|
|
e03bc105b0 | ||
|
|
b5381d5d68 | ||
|
|
40eb5ca761 | ||
|
|
44298bf59d | ||
|
|
aab4771fcc | ||
|
|
b6dfb2eb7d | ||
|
|
1182bd84cd | ||
|
|
664f285e9a | ||
|
|
33717be65d | ||
|
|
eac69a5e67 | ||
|
|
9597363785 | ||
|
|
b7a06e04cb | ||
|
|
8984f35240 | ||
|
|
4a8f784fd5 | ||
|
|
7877fbdca7 | ||
|
|
2c67adcda2 | ||
|
|
1ff1835feb | ||
|
|
6b24efc014 | ||
|
|
894bf9ea8d | ||
|
|
dcbb525fb6 | ||
|
|
689f7820eb | ||
|
|
d47f26d038 | ||
|
|
3c5645156f | ||
|
|
edd79b4e4e | ||
|
|
8a95194465 | ||
|
|
80b55c1717 | ||
|
|
faca85e283 | ||
|
|
40d84d8c78 | ||
|
|
f0988afaa5 | ||
|
|
03b0ec16de | ||
|
|
3a31b3d00c | ||
|
|
50a697c85a | ||
|
|
af77d8e497 | ||
|
|
c6b80f1ff1 | ||
|
|
edbccb62e5 | ||
|
|
24a7578c67 | ||
|
|
200e44ad15 | ||
|
|
ac669f4aaa | ||
|
|
f73d993934 | ||
|
|
15657d08da | ||
|
|
b0829d7195 | ||
|
|
e31cee7fef | ||
|
|
ec2f4d74b2 | ||
|
|
773a9dbbe3 | ||
|
|
0de31eefd2 | ||
|
|
cd764d4c10 | ||
|
|
283418d43a | ||
|
|
e99da003d1 | ||
|
|
fc29346dee | ||
|
|
6ee86d8c56 | ||
|
|
5f91d084ed | ||
|
|
7989c84723 | ||
|
|
e280ad1423 | ||
|
|
35b762e891 | ||
|
|
b40eb7dc66 | ||
|
|
a3b74eb08a | ||
|
|
6b724c5e8d | ||
|
|
a407260c33 | ||
|
|
e0dc8e24b6 | ||
|
|
fcb21a1218 | ||
|
|
c54ade42d9 | ||
|
|
5460d52baf | ||
|
|
84c5242195 | ||
|
|
278e61cf7e | ||
|
|
7537309cd3 | ||
|
|
7dc2bcaa59 | ||
|
|
1e99c026cb | ||
|
|
ae23d99c7f | ||
|
|
a97f3cee64 | ||
|
|
c0e5f77d53 | ||
|
|
7c8e269b09 | ||
|
|
87bdd6036a | ||
|
|
4d222f7b06 | ||
|
|
9b8d0665a1 | ||
|
|
498600c6bd | ||
|
|
b2031e0f50 | ||
|
|
7536d14a34 | ||
|
|
10772abcb4 | ||
|
|
b5996767c1 | ||
|
|
1f7adadf78 | ||
|
|
810bcff78c | ||
|
|
e953d34d17 | ||
|
|
3b5fe2e622 | ||
|
|
9f46492f86 | ||
|
|
f1e69677be | ||
|
|
17e573a7a9 | ||
|
|
4cb6c26363 | ||
|
|
09974c67e4 | ||
|
|
51b0554668 | ||
|
|
3c3610d63c | ||
|
|
468ec1ee83 | ||
|
|
dcb6fcb3a6 | ||
|
|
9c080c4334 | ||
|
|
7b7fefb954 | ||
|
|
616e43ce8f | ||
|
|
318d070e05 | ||
|
|
4a7739a1bf | ||
|
|
e12250509e | ||
|
|
afb025fd91 | ||
|
|
8899cb5ea4 | ||
|
|
c6a7bc8c14 | ||
|
|
f2bb6d547b | ||
|
|
1fdcb23d04 | ||
|
|
131088ad22 | ||
|
|
5d3a51e8f2 | ||
|
|
d1cd8a8cef | ||
|
|
c2757dcbce | ||
|
|
274ef6a44f | ||
|
|
efff180339 | ||
|
|
8fb51c0647 | ||
|
|
7db9cf50ca | ||
|
|
8128707aa4 | ||
|
|
de7740ab14 | ||
|
|
31633be812 | ||
|
|
bcb5d36999 | ||
|
|
7d847dfde5 | ||
|
|
b703e774ae | ||
|
|
f6207be9d4 | ||
|
|
7c87c53421 | ||
|
|
a4ed3688a2 | ||
|
|
6ab8f5f836 | ||
|
|
f9c1724228 | ||
|
|
25c77fdf5e | ||
|
|
3bf9c6ae94 | ||
|
|
0e70b027f5 | ||
|
|
17b17187ff | ||
|
|
dc226ebe5d | ||
|
|
55f5edbb6a | ||
|
|
29d65fbf64 | ||
|
|
f3f35be0bf | ||
|
|
204c8e046c | ||
|
|
1a1710a6c2 | ||
|
|
1a2cc00184 | ||
|
|
b3b3f6ff98 | ||
|
|
7df8b0330c | ||
|
|
528dd2254e | ||
|
|
33fb7c83bf | ||
|
|
50ad382eed | ||
|
|
7d1c7cfd74 | ||
|
|
5b637099a1 | ||
|
|
0d6d725f87 | ||
|
|
a98c5d5416 | ||
|
|
3361973722 | ||
|
|
91bc6568ee | ||
|
|
2e583fbfcf | ||
|
|
50eab6ff38 | ||
|
|
d743550cc7 | ||
|
|
1c0efc8fa4 | ||
|
|
5ff38ea870 | ||
|
|
4c146f7896 | ||
|
|
4e5aa4314e | ||
|
|
5223951db4 | ||
|
|
ddcb355113 | ||
|
|
7a80e15628 | ||
|
|
34dc053011 | ||
|
|
0266449d67 | ||
|
|
ea3afcf99d | ||
|
|
956990dbd5 | ||
|
|
08f6a2b289 | ||
|
|
741a4c02a0 | ||
|
|
dcff4939f4 | ||
|
|
506ce02697 | ||
|
|
95bd17b371 | ||
|
|
16ef7088a6 | ||
|
|
f70b0c8a41 | ||
|
|
d68d45d7c7 | ||
|
|
7af2844305 | ||
|
|
fd8c5166b6 | ||
|
|
2c931b6cd2 | ||
|
|
210069f8e9 | ||
|
|
2453897d31 | ||
|
|
dc0e758f64 | ||
|
|
ac3bf4a008 | ||
|
|
caf16299e7 | ||
|
|
cfa19ed9d9 | ||
|
|
6e5d82f340 | ||
|
|
98456b99e8 | ||
|
|
45c6e571cb | ||
|
|
e6c5545cd3 | ||
|
|
402c3ae538 | ||
|
|
f6018ab466 | ||
|
|
0ff738c85e | ||
|
|
4876e6696d | ||
|
|
167da0d70f | ||
|
|
2748aded3f | ||
|
|
103434baa0 | ||
|
|
c2da7bcbe2 | ||
|
|
c64cf99d88 | ||
|
|
3789f1fd0a | ||
|
|
1e6df02e45 | ||
|
|
886a425aaf | ||
|
|
7e24d50c0c | ||
|
|
8f7d48c297 | ||
|
|
3cc81e2510 | ||
|
|
0f0be1c18e | ||
|
|
5f689e3d6c | ||
|
|
f04d3e40d4 | ||
|
|
68a74e07fa | ||
|
|
199cdbb787 | ||
|
|
375fcb37a2 | ||
|
|
bc1743dedf | ||
|
|
f7771f79c2 | ||
|
|
7ebce6b36b | ||
|
|
b4240eee3a | ||
|
|
514acc2b65 | ||
|
|
48bc854c8a | ||
|
|
07391dc6c7 | ||
|
|
7e905e84b7 | ||
|
|
200a45f0cb | ||
|
|
ebff0554f7 | ||
|
|
e54487d0b0 | ||
|
|
96a6e7ab20 | ||
|
|
95ff8ceb7e | ||
|
|
5aa4308e27 | ||
|
|
aa892be308 | ||
|
|
6971bcf9b5 | ||
|
|
0581e98b55 | ||
|
|
5c2e653cdf | ||
|
|
aa4cd722d2 | ||
|
|
10b2f37ed8 | ||
|
|
d7ae2a7082 | ||
|
|
c246a79726 | ||
|
|
8e4d75705e | ||
|
|
ffdaba2d8c | ||
|
|
97187071af | ||
|
|
dceab6b729 | ||
|
|
7771872947 | ||
|
|
1f365b170e | ||
|
|
1821fffc3b | ||
|
|
1a3a5842dc |
3
AndorsTrail/.gitignore
vendored
3
AndorsTrail/.gitignore
vendored
@@ -1,6 +1,3 @@
|
|||||||
# Android ignores
|
|
||||||
app/src/main/res
|
|
||||||
app/src/main/assets
|
|
||||||
gen/
|
gen/
|
||||||
bin/
|
bin/
|
||||||
target/
|
target/
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 33
|
|
||||||
buildToolsVersion "30.0.3"
|
compileSdkVersion 34
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "com.gpl.rpg.AndorsTrail"
|
applicationId "com.gpl.rpg.AndorsTrail"
|
||||||
minSdkVersion 14
|
minSdkVersion 14
|
||||||
targetSdkVersion 33
|
targetSdkVersion 34
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
@@ -19,9 +19,17 @@ android {
|
|||||||
debug {
|
debug {
|
||||||
manifestPlaceholders icon_name: 'icon_beta', fileproviderPath: 'AndorsTrail.beta2'
|
manifestPlaceholders icon_name: 'icon_beta', fileproviderPath: 'AndorsTrail.beta2'
|
||||||
applicationIdSuffix 'beta2'
|
applicationIdSuffix 'beta2'
|
||||||
|
signingConfig signingConfigs.debug
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
namespace 'com.gpl.rpg.AndorsTrail'
|
namespace 'com.gpl.rpg.AndorsTrail'
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
main {
|
||||||
|
res.srcDirs = ['build/gen-res', 'src/main/res']
|
||||||
|
assets.srcDirs = ['build/gen-assets', 'src/main/assets']
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -31,23 +39,46 @@ dependencies {
|
|||||||
task copyRes(type: Copy) {
|
task copyRes(type: Copy) {
|
||||||
description "Copies the res folder to the modules res folder (& renames .tmx to .xml)"
|
description "Copies the res folder to the modules res folder (& renames .tmx to .xml)"
|
||||||
from "${rootDir}/res"
|
from "${rootDir}/res"
|
||||||
into "${projectDir}/src/main/res"
|
into "${projectDir}/build/gen-res"
|
||||||
rename "(.*)\\.tmx", "\$1.xml"
|
rename "(.*)\\.tmx", "\$1.xml"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task copyResValuesIn(type: Copy) {
|
||||||
|
description "Exception Indonesian language code (Old IN was renamed to now ID)"
|
||||||
|
from "${rootDir}/res/values-id/"
|
||||||
|
into "${projectDir}/build/gen-res/values-in/"
|
||||||
|
}
|
||||||
|
|
||||||
task copyTranslation(type: Copy) {
|
task copyTranslation(type: Copy) {
|
||||||
description("Copies the translation files to the modules translations folder")
|
description("Copies the translation files to the modules translations folder")
|
||||||
from "${rootDir}/assets/translation"
|
from "${rootDir}/assets/translation"
|
||||||
into "${projectDir}/src/main/assets/translation"
|
into "${projectDir}/build/gen-assets/translation"
|
||||||
}
|
}
|
||||||
|
|
||||||
task cleanup(type: Delete) {
|
task cleanup(type: Delete) {
|
||||||
description("Deletes the assets/translation and the res folder from the modules folder")
|
description("Deletes the assets/translation and the res folder from the modules folder")
|
||||||
delete "${projectDir}/src/main/res", "${projectDir}/src/main/assets/translation"
|
delete "${projectDir}/build/gen-res", "${projectDir}/build/gen-assets/translation"
|
||||||
}
|
}
|
||||||
|
|
||||||
afterEvaluate {
|
afterEvaluate {
|
||||||
preBuild.dependsOn project.tasks.copyRes
|
project.tasks.copyRes.dependsOn project.tasks.copyResValuesIn
|
||||||
preBuild.dependsOn project.tasks.copyTranslation
|
|
||||||
|
mapReleaseSourceSetPaths.dependsOn project.tasks.copyRes
|
||||||
|
generateReleaseResources.dependsOn project.tasks.copyRes
|
||||||
|
|
||||||
|
generateDebugResources.dependsOn project.tasks.copyRes
|
||||||
|
mapDebugSourceSetPaths.dependsOn project.tasks.copyRes
|
||||||
|
mergeDebugResources.dependsOn project.tasks.copyRes
|
||||||
|
extractDeepLinksDebug.dependsOn project.tasks.copyRes
|
||||||
|
mergeReleaseResources.dependsOn project.tasks.copyRes
|
||||||
|
extractDeepLinksRelease.dependsOn project.tasks.copyRes
|
||||||
|
|
||||||
|
generateDebugResources.dependsOn project.tasks.copyTranslation
|
||||||
|
mapDebugSourceSetPaths.dependsOn project.tasks.copyTranslation
|
||||||
|
mergeDebugAssets.dependsOn project.tasks.copyTranslation
|
||||||
|
mergeReleaseAssets.dependsOn project.tasks.copyTranslation
|
||||||
|
extractDeepLinksDebug.dependsOn project.tasks.copyTranslation
|
||||||
|
extractDeepLinksRelease.dependsOn project.tasks.copyTranslation
|
||||||
|
|
||||||
clean.dependsOn project.tasks.cleanup
|
clean.dependsOn project.tasks.cleanup
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
<manifest
|
<manifest
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.gpl.rpg.AndorsTrail"
|
package="com.gpl.rpg.AndorsTrail"
|
||||||
android:versionCode="73"
|
android:versionCode="80"
|
||||||
android:versionName="0.8.7"
|
android:versionName="0.8.13dev"
|
||||||
android:installLocation="auto"
|
android:installLocation="auto"
|
||||||
>
|
>
|
||||||
|
|
||||||
@@ -34,7 +34,6 @@
|
|||||||
<activity
|
<activity
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:name="com.gpl.rpg.AndorsTrail.activity.StartScreenActivity"
|
android:name="com.gpl.rpg.AndorsTrail.activity.StartScreenActivity"
|
||||||
android:exported="true"
|
|
||||||
android:clearTaskOnLaunch="true"
|
android:clearTaskOnLaunch="true"
|
||||||
>
|
>
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
|||||||
@@ -28,11 +28,11 @@ public final class AndorsTrailApplication extends Application {
|
|||||||
public static final boolean DEVELOPMENT_FASTSPEED = false;
|
public static final boolean DEVELOPMENT_FASTSPEED = false;
|
||||||
public static final boolean DEVELOPMENT_VALIDATEDATA = true;
|
public static final boolean DEVELOPMENT_VALIDATEDATA = true;
|
||||||
public static final boolean DEVELOPMENT_DEBUGMESSAGES = true;
|
public static final boolean DEVELOPMENT_DEBUGMESSAGES = true;
|
||||||
public static final String CURRENT_VERSION_DISPLAY = "0.8.7";
|
public static final String CURRENT_VERSION_DISPLAY = "0.8.13dev";
|
||||||
public static final boolean IS_RELEASE_VERSION = !CURRENT_VERSION_DISPLAY.matches(".*[a-d].*");
|
public static final boolean IS_RELEASE_VERSION = !CURRENT_VERSION_DISPLAY.matches(".*[a-d].*");
|
||||||
public static final boolean DEVELOPMENT_INCOMPATIBLE_SAVEGAMES = DEVELOPMENT_DEBUGRESOURCES || DEVELOPMENT_DEBUGBUTTONS || DEVELOPMENT_FASTSPEED || !IS_RELEASE_VERSION;
|
public static final boolean DEVELOPMENT_INCOMPATIBLE_SAVEGAMES = DEVELOPMENT_DEBUGRESOURCES || DEVELOPMENT_DEBUGBUTTONS || DEVELOPMENT_FASTSPEED || !IS_RELEASE_VERSION;
|
||||||
public static final int DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION = 999;
|
public static final int DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION = 999;
|
||||||
public static final int CURRENT_VERSION = DEVELOPMENT_INCOMPATIBLE_SAVEGAMES ? DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION : 73;
|
public static final int CURRENT_VERSION = DEVELOPMENT_INCOMPATIBLE_SAVEGAMES ? DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION : 80;
|
||||||
|
|
||||||
private final AndorsTrailPreferences preferences = new AndorsTrailPreferences();
|
private final AndorsTrailPreferences preferences = new AndorsTrailPreferences();
|
||||||
private WorldContext world = new WorldContext();
|
private WorldContext world = new WorldContext();
|
||||||
|
|||||||
@@ -66,14 +66,6 @@ public final class Dialogs {
|
|||||||
CustomDialogFactory.show(d);
|
CustomDialogFactory.show(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void showKeyArea(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
|
|
||||||
showConversation(currentActivity, context, phraseID, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void showMapSign(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
|
|
||||||
showConversation(currentActivity, context, phraseID, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void showMapScriptMessage(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
|
public static void showMapScriptMessage(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
|
||||||
showConversation(currentActivity, context, phraseID, null, false);
|
showConversation(currentActivity, context, phraseID, null, false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,10 @@ public final class ActorConditionInfoActivity extends AndorsTrailBaseActivity {
|
|||||||
tv.setText(conditionType.name);
|
tv.setText(conditionType.name);
|
||||||
world.tileManager.setImageViewTile(getResources(), tv, conditionType);
|
world.tileManager.setImageViewTile(getResources(), tv, conditionType);
|
||||||
|
|
||||||
|
TextView descriptionTv = (TextView) findViewById(R.id.actorconditioninfo_description);
|
||||||
|
if(conditionType.description != null && !conditionType.description.isEmpty()) descriptionTv.setText(conditionType.description);
|
||||||
|
else descriptionTv.setVisibility(View.GONE);
|
||||||
|
|
||||||
Button b = (Button) findViewById(R.id.actorconditioninfo_close);
|
Button b = (Button) findViewById(R.id.actorconditioninfo_close);
|
||||||
b.setOnClickListener(new OnClickListener() {
|
b.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ public final class DebugInterface {
|
|||||||
private DebugButton[] buttons;
|
private DebugButton[] buttons;
|
||||||
private List<DebugButton> tpButtons = new ArrayList<DebugButton>();
|
private List<DebugButton> tpButtons = new ArrayList<DebugButton>();
|
||||||
private List<DebugButton> tpButtons2 = new ArrayList<DebugButton>();
|
private List<DebugButton> tpButtons2 = new ArrayList<DebugButton>();
|
||||||
|
private List<DebugButton> tpButtons3 = new ArrayList<DebugButton>();
|
||||||
|
|
||||||
public DebugInterface(ControllerContext controllers, WorldContext world, MainActivity mainActivity) {
|
public DebugInterface(ControllerContext controllers, WorldContext world, MainActivity mainActivity) {
|
||||||
this.controllerContext = controllers;
|
this.controllerContext = controllers;
|
||||||
@@ -58,6 +59,9 @@ public final class DebugInterface {
|
|||||||
for (DebugButton b : tpButtons2) {
|
for (DebugButton b : tpButtons2) {
|
||||||
b.b.setVisibility(View.GONE);
|
b.b.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
for (DebugButton b : tpButtons3) {
|
||||||
|
b.b.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
,new DebugButton("teleport", new OnClickListener() {
|
,new DebugButton("teleport", new OnClickListener() {
|
||||||
@@ -148,6 +152,12 @@ public final class DebugInterface {
|
|||||||
public void onClick(View arg0) {
|
public void onClick(View arg0) {
|
||||||
showToast(mainActivity, "DEBUG: map=" + world.model.currentMaps.map.name , Toast.LENGTH_SHORT);
|
showToast(mainActivity, "DEBUG: map=" + world.model.currentMaps.map.name , Toast.LENGTH_SHORT);
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
,new DebugButton("tim", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
world.model.worldData.tickWorldTime(10);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@@ -178,7 +188,7 @@ public final class DebugInterface {
|
|||||||
,new DebugButton("cr", new OnClickListener() {
|
,new DebugButton("cr", new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View arg0) {
|
public void onClick(View arg0) {
|
||||||
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "houseatcrossroads4", "down", 0, 0);
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "crossroads", "middle", 0, 0);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
,new DebugButton("lf", new OnClickListener() {
|
,new DebugButton("lf", new OnClickListener() {
|
||||||
@@ -242,11 +252,8 @@ public final class DebugInterface {
|
|||||||
new DebugButton("teleport", new OnClickListener() {
|
new DebugButton("teleport", new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View arg0) {
|
public void onClick(View arg0) {
|
||||||
for (int i = 0; i < buttons.length; i++) {
|
for (DebugButton tpButton : tpButtons3) {
|
||||||
buttons[i].b.setVisibility(View.VISIBLE);
|
tpButton.b.setVisibility(View.VISIBLE);
|
||||||
}
|
|
||||||
for (DebugButton tpButton : tpButtons) {
|
|
||||||
tpButton.b.setVisibility(View.GONE);
|
|
||||||
}
|
}
|
||||||
for (DebugButton tpButton : tpButtons2) {
|
for (DebugButton tpButton : tpButtons2) {
|
||||||
tpButton.b.setVisibility(View.GONE);
|
tpButton.b.setVisibility(View.GONE);
|
||||||
@@ -277,9 +284,151 @@ public final class DebugInterface {
|
|||||||
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "sullengard2", "south", 0, 0);
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "sullengard2", "south", 0, 0);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
,new DebugButton("gal", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_19", "south", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("apl", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "sullengard_apple_farm_east", "house", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("wch", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "lake_shore_road_0", "west", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("la1", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "laerothisland2", "south2", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("la2", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "island3", "cave", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("wx", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "wexlow_village", "north", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("fey", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "guynmart_wood_17", "north", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
}));
|
}));
|
||||||
buttonList.addAll(tpButtons2);
|
buttonList.addAll(tpButtons2);
|
||||||
|
|
||||||
|
tpButtons3.addAll(Arrays.asList(new DebugButton[] {
|
||||||
|
new DebugButton("teleport", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
for (int i = 0; i < buttons.length; i++) {
|
||||||
|
buttons[i].b.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
for (DebugButton tpButton : tpButtons) {
|
||||||
|
tpButton.b.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
for (DebugButton tpButton : tpButtons2) {
|
||||||
|
tpButton.b.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
for (DebugButton tpButton : tpButtons3) {
|
||||||
|
tpButton.b.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
,new DebugButton("#1", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "swamp3", "north", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("#2", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "beekeeper1", "south", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
,new DebugButton("#3", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "guynmart", "west2", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("#4", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "waterway5", "south", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("#5", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "waytogalmore1", "entrance2", 0, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("#6", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_32", "south", 19, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("#7", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "cabin_norcity_road1", "north", 5, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("#8", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_86", "west", 0, 5);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("#9", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_68", "north", 5, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
,new DebugButton("#10", new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View arg0) {
|
||||||
|
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "laerothprison3", "south", 2, 0);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}));
|
||||||
|
buttonList.addAll(tpButtons3);
|
||||||
|
|
||||||
buttons = buttonList.toArray(new DebugButton[buttonList.size()]);
|
buttons = buttonList.toArray(new DebugButton[buttonList.size()]);
|
||||||
addDebugButtons(buttons);
|
addDebugButtons(buttons);
|
||||||
|
|
||||||
@@ -289,6 +438,9 @@ public final class DebugInterface {
|
|||||||
for (DebugButton b : tpButtons2) {
|
for (DebugButton b : tpButtons2) {
|
||||||
b.b.setVisibility(View.GONE);
|
b.b.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
for (DebugButton b : tpButtons3) {
|
||||||
|
b.b.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showToast(Context context, String msg, int duration) {
|
private void showToast(Context context, String msg, int duration) {
|
||||||
|
|||||||
@@ -397,12 +397,10 @@ public final class MainActivity
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlayerSteppedOnMapSignArea(MapObject area) {
|
public void onPlayerSteppedOnMapSignArea(MapObject area) {
|
||||||
Dialogs.showMapSign(this, controllers, area.id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlayerSteppedOnKeyArea(MapObject area) {
|
public void onPlayerSteppedOnKeyArea(MapObject area) {
|
||||||
Dialogs.showKeyArea(this, controllers, area.id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ public final class SkillInfoActivity extends AndorsTrailBaseActivity {
|
|||||||
case armorProficiencyShield: return res.getString(R.string.skill_longdescription_armor_prof_shield, SkillCollection.PER_SKILLPOINT_INCREASE_SHIELD_PROF_DR);
|
case armorProficiencyShield: return res.getString(R.string.skill_longdescription_armor_prof_shield, SkillCollection.PER_SKILLPOINT_INCREASE_SHIELD_PROF_DR);
|
||||||
case armorProficiencyUnarmored: return res.getString(R.string.skill_longdescription_armor_prof_unarmored, SkillCollection.PER_SKILLPOINT_INCREASE_UNARMORED_BC);
|
case armorProficiencyUnarmored: return res.getString(R.string.skill_longdescription_armor_prof_unarmored, SkillCollection.PER_SKILLPOINT_INCREASE_UNARMORED_BC);
|
||||||
case armorProficiencyLight: return res.getString(R.string.skill_longdescription_armor_prof_light, SkillCollection.PER_SKILLPOINT_INCREASE_LIGHT_ARMOR_BC_PERCENT);
|
case armorProficiencyLight: return res.getString(R.string.skill_longdescription_armor_prof_light, SkillCollection.PER_SKILLPOINT_INCREASE_LIGHT_ARMOR_BC_PERCENT);
|
||||||
case armorProficiencyHeavy: return res.getString(R.string.skill_longdescription_armor_prof_heavy, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_BC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_MOVECOST_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_ATKCOST_PERCENT);
|
case armorProficiencyHeavy: return res.getString(R.string.skill_longdescription_armor_prof_heavy, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_BC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_MOVECOST_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_ATKCOST_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_USECOST_PERCENT);
|
||||||
case fightstyleDualWield: return res.getString(R.string.skill_longdescription_fightstyle_dualwield, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL0, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL1, SkillCollection.DUALWIELD_LEVEL1_OFFHAND_AP_COST_PERCENT, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL2);
|
case fightstyleDualWield: return res.getString(R.string.skill_longdescription_fightstyle_dualwield, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL0, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL1, SkillCollection.DUALWIELD_LEVEL1_OFFHAND_AP_COST_PERCENT, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL2);
|
||||||
case fightstyle2hand: return res.getString(R.string.skill_longdescription_fightstyle_2hand, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_2HAND_DMG_PERCENT);
|
case fightstyle2hand: return res.getString(R.string.skill_longdescription_fightstyle_2hand, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_2HAND_DMG_PERCENT);
|
||||||
case fightstyleWeaponShield: return res.getString(R.string.skill_longdescription_fightstyle_weapon_shield, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_WEAPON_AC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_SHIELD_BC_PERCENT);
|
case fightstyleWeaponShield: return res.getString(R.string.skill_longdescription_fightstyle_weapon_shield, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_WEAPON_AC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_SHIELD_BC_PERCENT);
|
||||||
|
|||||||
@@ -76,8 +76,7 @@ public final class ActorStatsController {
|
|||||||
c.magnitude -= magnitude;
|
c.magnitude -= magnitude;
|
||||||
actorConditionListeners.onActorConditionMagnitudeChanged(actor, c);
|
actorConditionListeners.onActorConditionMagnitudeChanged(actor, c);
|
||||||
} else {
|
} else {
|
||||||
actor.conditions.remove(i);
|
actorConditionsRemove(actor, c, i);
|
||||||
actorConditionListeners.onActorConditionRemoved(actor, c);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -232,9 +231,9 @@ public final class ActorStatsController {
|
|||||||
public void removeAllTemporaryConditions(final Actor actor) {
|
public void removeAllTemporaryConditions(final Actor actor) {
|
||||||
for(int i = actor.conditions.size() - 1; i >= 0; --i) {
|
for(int i = actor.conditions.size() - 1; i >= 0; --i) {
|
||||||
ActorCondition c = actor.conditions.get(i);
|
ActorCondition c = actor.conditions.get(i);
|
||||||
if (!c.isTemporaryEffect()) continue;
|
if (c.isTemporaryEffect() || c.isDurationForeverUntilSleep()) {
|
||||||
actor.conditions.remove(i);
|
actorConditionsRemove(actor, c, i);
|
||||||
actorConditionListeners.onActorConditionRemoved(actor, c);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -242,8 +241,7 @@ public final class ActorStatsController {
|
|||||||
for(int i = actor.conditions.size() - 1; i >= 0; --i) {
|
for(int i = actor.conditions.size() - 1; i >= 0; --i) {
|
||||||
ActorCondition c = actor.conditions.get(i);
|
ActorCondition c = actor.conditions.get(i);
|
||||||
if (!c.conditionType.conditionTypeID.equals(conditionTypeID)) continue;
|
if (!c.conditionType.conditionTypeID.equals(conditionTypeID)) continue;
|
||||||
actor.conditions.remove(i);
|
actorConditionsRemove(actor, c, i);
|
||||||
actorConditionListeners.onActorConditionRemoved(actor, c);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -406,14 +404,14 @@ public final class ActorStatsController {
|
|||||||
ActorCondition c = actor.conditions.get(i);
|
ActorCondition c = actor.conditions.get(i);
|
||||||
if (!c.isTemporaryEffect()) continue;
|
if (!c.isTemporaryEffect()) continue;
|
||||||
if (c.duration <= 1) {
|
if (c.duration <= 1) {
|
||||||
actor.conditions.remove(i);
|
actorConditionsRemove(actor, c, i);
|
||||||
actorConditionListeners.onActorConditionRemoved(actor, c);
|
|
||||||
removedAnyConditions = true;
|
removedAnyConditions = true;
|
||||||
} else {
|
} else {
|
||||||
c.duration -= 1;
|
c.duration -= 1;
|
||||||
actorConditionListeners.onActorConditionDurationChanged(actor, c);
|
actorConditionListeners.onActorConditionDurationChanged(actor, c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Immunities
|
||||||
for(int i = actor.immunities.size() - 1; i >= 0; --i) {
|
for(int i = actor.immunities.size() - 1; i >= 0; --i) {
|
||||||
ActorCondition c = actor.immunities.get(i);
|
ActorCondition c = actor.immunities.get(i);
|
||||||
if (!c.isTemporaryEffect()) continue;
|
if (!c.isTemporaryEffect()) continue;
|
||||||
@@ -457,6 +455,50 @@ public final class ActorStatsController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int actorConditionsRemove(Actor actor, ActorCondition c, int i) {
|
||||||
|
int magnitude = 0; //default: No condition from worn items
|
||||||
|
|
||||||
|
if (actor instanceof Player) {
|
||||||
|
Player player = (Player) actor;
|
||||||
|
magnitude = gotConditionFromWornItem(player, c);
|
||||||
|
if (magnitude > 0) { //condition from worn items?
|
||||||
|
c.magnitude = magnitude; // -> readd condition
|
||||||
|
actorConditionListeners.onActorConditionMagnitudeChanged(actor, c);
|
||||||
|
c.duration = ActorCondition.DURATION_FOREVER;
|
||||||
|
actorConditionListeners.onActorConditionDurationChanged(actor, c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (magnitude == 0) {
|
||||||
|
actor.conditions.remove(i);
|
||||||
|
actorConditionListeners.onActorConditionRemoved(actor, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
return magnitude;
|
||||||
|
}
|
||||||
|
|
||||||
|
int gotConditionFromWornItem(Player player, ActorCondition c) {
|
||||||
|
int magnitude = 0; //Default: No worn item with this condition
|
||||||
|
|
||||||
|
for (Inventory.WearSlot slot : Inventory.WearSlot.values()) {
|
||||||
|
ItemType t = player.inventory.getItemTypeInWearSlot(slot);
|
||||||
|
if (t == null) continue;
|
||||||
|
ItemTraits_OnEquip equipEffects = t.effects_equip;
|
||||||
|
if (equipEffects == null) continue;
|
||||||
|
if (equipEffects.addedConditions == null) continue;
|
||||||
|
for (ActorConditionEffect e : equipEffects.addedConditions) {
|
||||||
|
if (e.conditionType.conditionTypeID.equals(c.conditionType.conditionTypeID)) {
|
||||||
|
if (e.magnitude == ActorCondition.MAGNITUDE_REMOVE_ALL) {
|
||||||
|
return 0; //On an item-based immunity the result is always 0
|
||||||
|
}
|
||||||
|
if (magnitude < e.magnitude) {
|
||||||
|
magnitude = e.magnitude;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return magnitude;
|
||||||
|
}
|
||||||
|
|
||||||
public void applyUseEffect(Actor source, Actor target, ItemTraits_OnUse effect) {
|
public void applyUseEffect(Actor source, Actor target, ItemTraits_OnUse effect) {
|
||||||
if (effect == null) return;
|
if (effect == null) return;
|
||||||
|
|
||||||
|
|||||||
@@ -250,6 +250,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
|||||||
if (!loot.hasItemsOrGold()) {
|
if (!loot.hasItemsOrGold()) {
|
||||||
world.model.currentMaps.map.removeGroundLoot(loot);
|
world.model.currentMaps.map.removeGroundLoot(loot);
|
||||||
} else if (world.model.uiSelections.isInCombat) {
|
} else if (world.model.uiSelections.isInCombat) {
|
||||||
|
if(!killedMonsterBags.contains(loot))
|
||||||
killedMonsterBags.add(loot);
|
killedMonsterBags.add(loot);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -579,6 +580,13 @@ public final class CombatController implements VisualEffectCompletedCallback {
|
|||||||
private static final int n = 50;
|
private static final int n = 50;
|
||||||
private static final int F = 40;
|
private static final int F = 40;
|
||||||
private static final float two_divided_by_PI = (float) (2f / Math.PI);
|
private static final float two_divided_by_PI = (float) (2f / Math.PI);
|
||||||
|
/**
|
||||||
|
* @implNote
|
||||||
|
* formula: 50 * (1 + (2 / pi) * atan((attackChance - blockChance - n) / F))
|
||||||
|
* <br/>
|
||||||
|
* n = {@value n}; F = {@value F}
|
||||||
|
* @return [0..100] . 100 == always hit.
|
||||||
|
*/
|
||||||
private static int getAttackHitChance(final Actor attacker, final Actor target) {
|
private static int getAttackHitChance(final Actor attacker, final Actor target) {
|
||||||
final int c = attacker.getAttackChance() - target.getBlockChance();
|
final int c = attacker.getAttackChance() - target.getBlockChance();
|
||||||
// (2/pi)*atan(..) will vary from -1 to +1 .
|
// (2/pi)*atan(..) will vary from -1 to +1 .
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import com.gpl.rpg.AndorsTrail.model.conversation.Reply;
|
|||||||
import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection;
|
import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection;
|
||||||
import com.gpl.rpg.AndorsTrail.model.item.Loot;
|
import com.gpl.rpg.AndorsTrail.model.item.Loot;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
|
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
|
||||||
|
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea;
|
import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
||||||
import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry;
|
import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry;
|
||||||
@@ -124,6 +125,9 @@ public final class ConversationController {
|
|||||||
case changeMapFilter:
|
case changeMapFilter:
|
||||||
changeMapFilter(res, effect.mapName, effect.effectID);
|
changeMapFilter(res, effect.mapName, effect.effectID);
|
||||||
break;
|
break;
|
||||||
|
case mapchange:
|
||||||
|
mapchange(effect.mapName, effect.effectID);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,6 +176,13 @@ public final class ConversationController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void mapchange(String mapName, String place) {
|
||||||
|
PredefinedMap map = findMapForScriptEffect(mapName);
|
||||||
|
// controllers.mapController.activateMapObjectGroup(map, mapObjectGroupID);
|
||||||
|
// controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, effect.mapName, effect.effectID, 0, 0); //cbcbcb check
|
||||||
|
controllers.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, mapName, place, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
private void addAlignmentReward(Player player, String faction, int delta) {
|
private void addAlignmentReward(Player player, String faction, int delta) {
|
||||||
player.addAlignment(faction, delta);
|
player.addAlignment(faction, delta);
|
||||||
MovementController.refreshMonsterAggressiveness(world.model.currentMaps.map, world.model.player);
|
MovementController.refreshMonsterAggressiveness(world.model.currentMaps.map, world.model.player);
|
||||||
@@ -311,6 +322,18 @@ public final class ConversationController {
|
|||||||
case factionScoreEquals:
|
case factionScoreEquals:
|
||||||
result = player.getAlignment(requirement.requireID) == requirement.value;
|
result = player.getAlignment(requirement.requireID) == requirement.value;
|
||||||
break;
|
break;
|
||||||
|
case date:
|
||||||
|
result = world.model.worldData.getDate(requirement.requireID) >= requirement.value;
|
||||||
|
break;
|
||||||
|
case dateEquals:
|
||||||
|
result = world.model.worldData.getDate(requirement.requireID) == requirement.value;
|
||||||
|
break;
|
||||||
|
case time:
|
||||||
|
result = world.model.worldData.getTime(requirement.requireID) >= requirement.value;
|
||||||
|
break;
|
||||||
|
case timeEquals:
|
||||||
|
result = world.model.worldData.getTime(requirement.requireID) == requirement.value;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
result = true;
|
result = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ public final class MapController {
|
|||||||
case sign:
|
case sign:
|
||||||
if (o.id == null || o.id.length() <= 0) return;
|
if (o.id == null || o.id.length() <= 0) return;
|
||||||
worldEventListeners.onPlayerSteppedOnMapSignArea(o);
|
worldEventListeners.onPlayerSteppedOnMapSignArea(o);
|
||||||
|
runScriptInArea(o);
|
||||||
break;
|
break;
|
||||||
case newmap:
|
case newmap:
|
||||||
if (o.map == null || o.place == null) return;
|
if (o.map == null || o.place == null) return;
|
||||||
@@ -79,7 +80,7 @@ public final class MapController {
|
|||||||
steppedOnRestArea(o);
|
steppedOnRestArea(o);
|
||||||
break;
|
break;
|
||||||
case script:
|
case script:
|
||||||
runScriptArea(o);
|
runScriptInArea(o);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -93,7 +94,7 @@ public final class MapController {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void runScriptArea(MapObject o) {
|
private void runScriptInArea(MapObject o) {
|
||||||
Resources res = controllers.getResources();
|
Resources res = controllers.getResources();
|
||||||
mapScriptExecutor.proceedToPhrase(res, o.id, true, true);
|
mapScriptExecutor.proceedToPhrase(res, o.id, true, true);
|
||||||
controllers.mapController.applyCurrentMapReplacements(res, true);
|
controllers.mapController.applyCurrentMapReplacements(res, true);
|
||||||
@@ -164,6 +165,7 @@ public final class MapController {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
worldEventListeners.onPlayerSteppedOnKeyArea(area);
|
worldEventListeners.onPlayerSteppedOnKeyArea(area);
|
||||||
|
runScriptInArea(area);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.gpl.rpg.AndorsTrail.controller;
|
package com.gpl.rpg.AndorsTrail.controller;
|
||||||
|
|
||||||
|
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||||
import com.gpl.rpg.AndorsTrail.controller.listeners.CombatActionListeners;
|
import com.gpl.rpg.AndorsTrail.controller.listeners.CombatActionListeners;
|
||||||
@@ -17,6 +18,7 @@ import com.gpl.rpg.AndorsTrail.model.item.ItemCategory;
|
|||||||
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
|
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
|
||||||
import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection;
|
import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection;
|
||||||
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
import com.gpl.rpg.AndorsTrail.util.ConstRange;
|
||||||
|
import com.gpl.rpg.AndorsTrail.util.L;
|
||||||
|
|
||||||
public final class SkillController {
|
public final class SkillController {
|
||||||
private final ControllerContext controllers;
|
private final ControllerContext controllers;
|
||||||
@@ -58,6 +60,9 @@ public final class SkillController {
|
|||||||
|
|
||||||
public static int getDropChanceRollBias(DropItem item, Player player) {
|
public static int getDropChanceRollBias(DropItem item, Player player) {
|
||||||
if (player == null) return 0;
|
if (player == null) return 0;
|
||||||
|
if(item.itemType == null && AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES){
|
||||||
|
L.log("Item type missing: " + item + " " + player.id);
|
||||||
|
}
|
||||||
|
|
||||||
if (ItemTypeCollection.isGoldItemType(item.itemType.id)) {
|
if (ItemTypeCollection.isGoldItemType(item.itemType.id)) {
|
||||||
return getRollBias(item, player, SkillID.coinfinder, SkillCollection.PER_SKILLPOINT_INCREASE_COINFINDER_CHANCE_PERCENT);
|
return getRollBias(item, player, SkillID.coinfinder, SkillCollection.PER_SKILLPOINT_INCREASE_COINFINDER_CHANCE_PERCENT);
|
||||||
@@ -248,6 +253,7 @@ public final class SkillController {
|
|||||||
addPercentBlockChance(player, itemType, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_BC_PERCENT * skillLevelHeavyArmor, 0);
|
addPercentBlockChance(player, itemType, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_BC_PERCENT * skillLevelHeavyArmor, 0);
|
||||||
playerTraits.moveCost -= getPercentage(itemType.effects_equip.stats.increaseMoveCost, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_MOVECOST_PERCENT * skillLevelHeavyArmor, 0);
|
playerTraits.moveCost -= getPercentage(itemType.effects_equip.stats.increaseMoveCost, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_MOVECOST_PERCENT * skillLevelHeavyArmor, 0);
|
||||||
playerTraits.attackCost -= getPercentage(itemType.effects_equip.stats.increaseAttackCost, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_ATKCOST_PERCENT * skillLevelHeavyArmor, 0);
|
playerTraits.attackCost -= getPercentage(itemType.effects_equip.stats.increaseAttackCost, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_ATKCOST_PERCENT * skillLevelHeavyArmor, 0);
|
||||||
|
playerTraits.useItemCost -= getPercentage(itemType.effects_equip.stats.increaseUseItemCost, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_USECOST_PERCENT * skillLevelHeavyArmor, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,14 +21,21 @@ import com.gpl.rpg.AndorsTrail.util.Coord;
|
|||||||
import com.gpl.rpg.AndorsTrail.util.CoordRect;
|
import com.gpl.rpg.AndorsTrail.util.CoordRect;
|
||||||
import com.gpl.rpg.AndorsTrail.util.Size;
|
import com.gpl.rpg.AndorsTrail.util.Size;
|
||||||
|
|
||||||
public final class VisualEffectController {
|
import java.util.ArrayList;
|
||||||
private int effectCount = 0;
|
import java.util.List;
|
||||||
|
|
||||||
|
public final class VisualEffectController {
|
||||||
|
private static final long EFFECT_UPDATE_INTERVAL = 25;
|
||||||
private final ControllerContext controllers;
|
private final ControllerContext controllers;
|
||||||
private final WorldContext world;
|
private final WorldContext world;
|
||||||
private final VisualEffectCollection effectTypes;
|
private final VisualEffectCollection effectTypes;
|
||||||
|
private final Handler animationHandler = new Handler();
|
||||||
|
private final List<VisualEffectAnimation> activeAnimations = new ArrayList<>();
|
||||||
|
|
||||||
public final VisualEffectFrameListeners visualEffectFrameListeners = new VisualEffectFrameListeners();
|
public final VisualEffectFrameListeners visualEffectFrameListeners = new VisualEffectFrameListeners();
|
||||||
|
private long getEffectUpdateInterval() {
|
||||||
|
return EFFECT_UPDATE_INTERVAL * controllers.preferences.attackspeed_milliseconds / AndorsTrailPreferences.ATTACKSPEED_DEFAULT_MILLISECONDS;
|
||||||
|
}
|
||||||
|
|
||||||
public VisualEffectController(ControllerContext controllers, WorldContext world) {
|
public VisualEffectController(ControllerContext controllers, WorldContext world) {
|
||||||
this.controllers = controllers;
|
this.controllers = controllers;
|
||||||
@@ -37,11 +44,41 @@ public final class VisualEffectController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void startEffect(Coord position, VisualEffectCollection.VisualEffectID effectID, String displayValue, VisualEffectCompletedCallback callback, int callbackValue) {
|
public void startEffect(Coord position, VisualEffectCollection.VisualEffectID effectID, String displayValue, VisualEffectCompletedCallback callback, int callbackValue) {
|
||||||
++effectCount;
|
VisualEffectAnimation animation = new VisualEffectAnimation(effectTypes.getVisualEffect(effectID), position, displayValue, callback, callbackValue);
|
||||||
(new VisualEffectAnimation(effectTypes.getVisualEffect(effectID), position, displayValue, callback, callbackValue))
|
animation.start();
|
||||||
.start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void startAnimation(VisualEffectAnimation animation) {
|
||||||
|
activeAnimations.add(animation);
|
||||||
|
animation.update();
|
||||||
|
if (activeAnimations.size() == 1) {
|
||||||
|
animationHandler.postDelayed(animationRunnable, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private final Runnable animationRunnable = new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if(!activeAnimations.isEmpty()) {
|
||||||
|
long updateInterval = getEffectUpdateInterval();
|
||||||
|
if(updateInterval > 0) animationHandler.postDelayed(this, updateInterval);
|
||||||
|
|
||||||
|
for (int i = 0; i < activeAnimations.size(); i++) {
|
||||||
|
VisualEffectAnimation animation = activeAnimations.get(i);
|
||||||
|
animation.durationPassed += updateInterval;
|
||||||
|
animation.updateFrame();
|
||||||
|
animation.update();
|
||||||
|
if (controllers.preferences.attackspeed_milliseconds <= 0 || animation.currentFrame >= animation.effect.lastFrame) {
|
||||||
|
animation.onCompleted();
|
||||||
|
activeAnimations.remove(i);
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
visualEffectFrameListeners.onNewAnimationFrames(activeAnimations);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private VisualEffectCollection.VisualEffectID enqueuedEffectID = null;
|
private VisualEffectCollection.VisualEffectID enqueuedEffectID = null;
|
||||||
private int enqueuedEffectValue = 0;
|
private int enqueuedEffectValue = 0;
|
||||||
public void enqueueEffect(VisualEffectCollection.VisualEffectID effectID, int displayValue) {
|
public void enqueueEffect(VisualEffectCollection.VisualEffectID effectID, int displayValue) {
|
||||||
@@ -60,14 +97,12 @@ public final class VisualEffectController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void startActorMoveEffect(Actor actor, PredefinedMap map, Coord origin, Coord destination, int duration, VisualEffectCompletedCallback callback, int callbackValue) {
|
public void startActorMoveEffect(Actor actor, PredefinedMap map, Coord origin, Coord destination, int duration, VisualEffectCompletedCallback callback, int callbackValue) {
|
||||||
++effectCount;
|
|
||||||
(new SpriteMoveAnimation(origin, destination, duration, actor, map, callback, callbackValue))
|
(new SpriteMoveAnimation(origin, destination, duration, actor, map, callback, callbackValue))
|
||||||
.start();
|
.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class SpriteMoveAnimation extends Handler implements Runnable {
|
public final class SpriteMoveAnimation implements Runnable {
|
||||||
|
private final Handler handler = new Handler();
|
||||||
// private static final int millisecondsPerFrame=25;
|
|
||||||
|
|
||||||
private final VisualEffectCompletedCallback callback;
|
private final VisualEffectCompletedCallback callback;
|
||||||
private final int callbackValue;
|
private final int callbackValue;
|
||||||
@@ -82,11 +117,6 @@ public final class VisualEffectController {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
onCompleted();
|
onCompleted();
|
||||||
// update();
|
|
||||||
// if (System.currentTimeMillis() - actor.vfxStartTime >= duration) {
|
|
||||||
// } else {
|
|
||||||
// postDelayed(this, millisecondsPerFrame);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SpriteMoveAnimation(Coord origin, Coord destination, int duration, Actor actor, PredefinedMap map, VisualEffectCompletedCallback callback, int callbackValue) {
|
public SpriteMoveAnimation(Coord origin, Coord destination, int duration, Actor actor, PredefinedMap map, VisualEffectCompletedCallback callback, int callbackValue) {
|
||||||
@@ -100,19 +130,12 @@ public final class VisualEffectController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// private void update() {
|
|
||||||
//
|
|
||||||
// visualEffectFrameListeners.onNewSpriteMoveFrame(this);
|
|
||||||
// }
|
|
||||||
|
|
||||||
private void onCompleted() {
|
private void onCompleted() {
|
||||||
--effectCount;
|
|
||||||
actor.hasVFXRunning = false;
|
actor.hasVFXRunning = false;
|
||||||
if (callback != null) callback.onVisualEffectCompleted(callbackValue);
|
if (callback != null) callback.onVisualEffectCompleted(callbackValue);
|
||||||
visualEffectFrameListeners.onSpriteMoveCompleted(this);
|
visualEffectFrameListeners.onSpriteMoveCompleted(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void start() {
|
public void start() {
|
||||||
actor.hasVFXRunning = true;
|
actor.hasVFXRunning = true;
|
||||||
actor.vfxDuration = duration;
|
actor.vfxDuration = duration;
|
||||||
@@ -120,12 +143,9 @@ public final class VisualEffectController {
|
|||||||
visualEffectFrameListeners.onSpriteMoveStarted(this);
|
visualEffectFrameListeners.onSpriteMoveStarted(this);
|
||||||
if (duration == 0 || !controllers.preferences.enableUiAnimations) onCompleted();
|
if (duration == 0 || !controllers.preferences.enableUiAnimations) onCompleted();
|
||||||
else {
|
else {
|
||||||
postDelayed(this, duration);
|
handler.postDelayed(this, duration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Paint textPaint = new Paint();
|
public static final Paint textPaint = new Paint();
|
||||||
@@ -135,40 +155,44 @@ public final class VisualEffectController {
|
|||||||
textPaint.setTextAlign(Align.CENTER);
|
textPaint.setTextAlign(Align.CENTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class VisualEffectAnimation extends Handler implements Runnable {
|
/// only for combat effects, movement & blood splatters etc. are handled elsewhere.
|
||||||
|
public final class VisualEffectAnimation {
|
||||||
|
public int tileID;
|
||||||
|
public int textYOffset;
|
||||||
|
public long durationPassed = 0;
|
||||||
|
|
||||||
@Override
|
private void updateFrame() {
|
||||||
public void run() {
|
long frameDuration = (long) effect.millisecondPerFrame * controllers.preferences.attackspeed_milliseconds / AndorsTrailPreferences.ATTACKSPEED_DEFAULT_MILLISECONDS;
|
||||||
if (currentFrame >= effect.lastFrame) {
|
while (frameDuration > 0 && durationPassed > frameDuration) {
|
||||||
onCompleted();
|
currentFrame++;
|
||||||
} else {
|
durationPassed -= frameDuration;
|
||||||
postDelayed(this, effect.millisecondPerFrame * controllers.preferences.attackspeed_milliseconds / AndorsTrailPreferences.ATTACKSPEED_DEFAULT_MILLISECONDS);
|
|
||||||
update();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void update() {
|
private void update() {
|
||||||
++currentFrame;
|
if (currentFrame >= effect.lastFrame) {
|
||||||
int frame = currentFrame;
|
return;
|
||||||
|
|
||||||
int tileID = effect.frameIconIDs[frame];
|
|
||||||
int textYOffset = -2 * (frame);
|
|
||||||
if (frame >= beginFadeAtFrame && displayText != null) {
|
|
||||||
textPaint.setAlpha(255 * (effect.lastFrame - frame) / (effect.lastFrame - beginFadeAtFrame));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tileID = effect.frameIconIDs[currentFrame];
|
||||||
|
textYOffset = -2 * (currentFrame);
|
||||||
|
|
||||||
|
if (currentFrame >= beginFadeAtFrame && displayText != null) {
|
||||||
|
textPaint.setAlpha(255 * (effect.lastFrame - currentFrame) / (effect.lastFrame - beginFadeAtFrame));
|
||||||
|
}
|
||||||
|
|
||||||
area.topLeft.y = position.y - 1;
|
area.topLeft.y = position.y - 1;
|
||||||
visualEffectFrameListeners.onNewAnimationFrame(this, tileID, textYOffset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onCompleted() {
|
private void onCompleted() {
|
||||||
--effectCount;
|
|
||||||
visualEffectFrameListeners.onAnimationCompleted(this);
|
visualEffectFrameListeners.onAnimationCompleted(this);
|
||||||
if (callback != null) callback.onVisualEffectCompleted(callbackValue);
|
if (callback != null) callback.onVisualEffectCompleted(callbackValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start() {
|
public void start() {
|
||||||
if (!controllers.preferences.enableUiAnimations) onCompleted();
|
if (!controllers.preferences.enableUiAnimations
|
||||||
else postDelayed(this, 0);
|
|| effect.duration == 0
|
||||||
|
|| controllers.preferences.attackspeed_milliseconds <= 0) onCompleted();
|
||||||
|
else startAnimation(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int currentFrame = 0;
|
private int currentFrame = 0;
|
||||||
@@ -208,7 +232,7 @@ public final class VisualEffectController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRunningVisualEffect() {
|
public boolean isRunningVisualEffect() {
|
||||||
return effectCount > 0;
|
return !activeAnimations.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
|||||||
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
|
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.MapLayer;
|
import com.gpl.rpg.AndorsTrail.model.map.MapLayer;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
||||||
|
import com.gpl.rpg.AndorsTrail.model.map.TMXMapTranslator;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment;
|
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.NamedWorldMapArea;
|
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.NamedWorldMapArea;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.WorldMapSegmentMap;
|
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.WorldMapSegmentMap;
|
||||||
@@ -314,4 +315,32 @@ public final class WorldMapController {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void populateWorldMap(Context context, WorldContext world, Resources res) throws IOException {
|
||||||
|
ensureWorldmapDirectoryExists(context);
|
||||||
|
File dir = getWorldmapDirectory(context);
|
||||||
|
|
||||||
|
File idFile = new File(dir, world.model.player.id);
|
||||||
|
if (idFile.exists()) return;
|
||||||
|
idFile.createNewFile();
|
||||||
|
|
||||||
|
for (PredefinedMap map : world.maps.getAllMaps()) {
|
||||||
|
if (!map.visited) continue;
|
||||||
|
|
||||||
|
String worldMapSegmentName = world.maps.getWorldMapSegmentNameForMap(map.name);
|
||||||
|
if (worldMapSegmentName == null) continue;
|
||||||
|
|
||||||
|
boolean mapFileExists = fileForMapExists(context, map);
|
||||||
|
File worldMapFile = getCombinedWorldMapFile(context, worldMapSegmentName);
|
||||||
|
if (mapFileExists && worldMapFile.exists()) continue;
|
||||||
|
|
||||||
|
LayeredTileMap mapTiles = TMXMapTranslator.readLayeredTileMap(res, world.tileManager.tileCache, map);
|
||||||
|
mapTiles.changeColorFilter(map.currentColorFilter);
|
||||||
|
TileCollection cachedTiles = world.tileManager.loadTilesFor(map, mapTiles, world, res);
|
||||||
|
|
||||||
|
MapRenderer renderer = new MapRenderer(world, map, mapTiles, cachedTiles);
|
||||||
|
updateCachedBitmap(context, map, renderer);
|
||||||
|
updateWorldMapSegment(context, res, world, worldMapSegmentName);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,10 @@ import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.SpriteMoveAnima
|
|||||||
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAnimation;
|
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAnimation;
|
||||||
import com.gpl.rpg.AndorsTrail.util.CoordRect;
|
import com.gpl.rpg.AndorsTrail.util.CoordRect;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface VisualEffectFrameListener {
|
public interface VisualEffectFrameListener {
|
||||||
void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset);
|
void onNewAnimationFrames(List<VisualEffectAnimation> effects);
|
||||||
void onAnimationCompleted(VisualEffectAnimation animation);
|
void onAnimationCompleted(VisualEffectAnimation animation);
|
||||||
void onSpriteMoveStarted(SpriteMoveAnimation animation);
|
void onSpriteMoveStarted(SpriteMoveAnimation animation);
|
||||||
void onNewSpriteMoveFrame(SpriteMoveAnimation animation);
|
void onNewSpriteMoveFrame(SpriteMoveAnimation animation);
|
||||||
|
|||||||
@@ -5,10 +5,12 @@ import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAni
|
|||||||
import com.gpl.rpg.AndorsTrail.util.CoordRect;
|
import com.gpl.rpg.AndorsTrail.util.CoordRect;
|
||||||
import com.gpl.rpg.AndorsTrail.util.ListOfListeners;
|
import com.gpl.rpg.AndorsTrail.util.ListOfListeners;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public final class VisualEffectFrameListeners extends ListOfListeners<VisualEffectFrameListener> implements VisualEffectFrameListener {
|
public final class VisualEffectFrameListeners extends ListOfListeners<VisualEffectFrameListener> implements VisualEffectFrameListener {
|
||||||
|
|
||||||
private final Function3<VisualEffectFrameListener, VisualEffectAnimation, Integer, Integer> onNewAnimationFrame = new Function3<VisualEffectFrameListener, VisualEffectAnimation, Integer, Integer>() {
|
private final Function1<VisualEffectFrameListener, List<VisualEffectAnimation>> onNewAnimationFrames = new Function1<VisualEffectFrameListener, List<VisualEffectAnimation>>() {
|
||||||
@Override public void call(VisualEffectFrameListener listener, VisualEffectAnimation animation, Integer tileID, Integer textYOffset) { listener.onNewAnimationFrame(animation, tileID, textYOffset); }
|
@Override public void call(VisualEffectFrameListener listener, List<VisualEffectAnimation> effects) { listener.onNewAnimationFrames(effects); }
|
||||||
};
|
};
|
||||||
|
|
||||||
private final Function1<VisualEffectFrameListener, VisualEffectAnimation> onAnimationCompleted = new Function1<VisualEffectFrameListener, VisualEffectAnimation>() {
|
private final Function1<VisualEffectFrameListener, VisualEffectAnimation> onAnimationCompleted = new Function1<VisualEffectFrameListener, VisualEffectAnimation>() {
|
||||||
@@ -32,8 +34,8 @@ public final class VisualEffectFrameListeners extends ListOfListeners<VisualEffe
|
|||||||
};
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset) {
|
public void onNewAnimationFrames(List<VisualEffectAnimation> effects) {
|
||||||
callAllListeners(this.onNewAnimationFrame, animation, tileID, textYOffset);
|
callAllListeners(this.onNewAnimationFrames, effects);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import java.io.IOException;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
public final class WorldData {
|
public final class WorldData {
|
||||||
private long worldTime = 0; // Measured in number of game rounds
|
private long worldTime = 0; // Measured in number of game rounds
|
||||||
private final HashMap<String, Long> timers = new HashMap<String, Long>();
|
private final HashMap<String, Long> timers = new HashMap<String, Long>();
|
||||||
@@ -36,6 +38,62 @@ public final class WorldData {
|
|||||||
return v + duration <= worldTime;
|
return v + duration <= worldTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getDate(String format) {
|
||||||
|
Calendar now = Calendar.getInstance();
|
||||||
|
int ret;
|
||||||
|
switch (format) {
|
||||||
|
case "YYYYMMDD":
|
||||||
|
ret = now.get(Calendar.YEAR)*10000 + (now.get(Calendar.MONTH) + 1)*100 + now.get(Calendar.DAY_OF_MONTH);
|
||||||
|
break;
|
||||||
|
case "YYYYMM":
|
||||||
|
ret = now.get(Calendar.YEAR)*100 + (now.get(Calendar.MONTH) + 1);
|
||||||
|
break;
|
||||||
|
case "YYYY":
|
||||||
|
ret = now.get(Calendar.YEAR);
|
||||||
|
break;
|
||||||
|
case "MMDD":
|
||||||
|
ret = (now.get(Calendar.MONTH) + 1)*100 + now.get(Calendar.DAY_OF_MONTH);
|
||||||
|
break;
|
||||||
|
case "MM":
|
||||||
|
ret = (now.get(Calendar.MONTH) + 1);
|
||||||
|
break;
|
||||||
|
case "DD":
|
||||||
|
ret = now.get(Calendar.DAY_OF_MONTH);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ret = 99999999; //never true
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTime(String format) {
|
||||||
|
Calendar now = Calendar.getInstance();
|
||||||
|
int ret;
|
||||||
|
switch (format) {
|
||||||
|
case "HHMMSS":
|
||||||
|
ret = now.get(Calendar.HOUR_OF_DAY)*10000 + now.get(Calendar.MINUTE)*100 + now.get(Calendar.SECOND);
|
||||||
|
break;
|
||||||
|
case "HHMM":
|
||||||
|
ret = now.get(Calendar.HOUR_OF_DAY)*100 + now.get(Calendar.MINUTE);
|
||||||
|
break;
|
||||||
|
case "HH":
|
||||||
|
ret = now.get(Calendar.HOUR_OF_DAY);
|
||||||
|
break;
|
||||||
|
case "MMSS":
|
||||||
|
ret = now.get(Calendar.MINUTE)*100 + now.get(Calendar.SECOND);
|
||||||
|
break;
|
||||||
|
case "MM":
|
||||||
|
ret = now.get(Calendar.MINUTE);
|
||||||
|
break;
|
||||||
|
case "SS":
|
||||||
|
ret = now.get(Calendar.SECOND);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ret = 99999999; //never true
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
// ====== PARCELABLE ===================================================================
|
// ====== PARCELABLE ===================================================================
|
||||||
|
|
||||||
public WorldData(DataInputStream src, int fileversion) throws IOException {
|
public WorldData(DataInputStream src, int fileversion) throws IOException {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
|||||||
public final class ActorCondition {
|
public final class ActorCondition {
|
||||||
public static final int MAGNITUDE_REMOVE_ALL = -99;
|
public static final int MAGNITUDE_REMOVE_ALL = -99;
|
||||||
public static final int DURATION_FOREVER = 999;
|
public static final int DURATION_FOREVER = 999;
|
||||||
|
public static final int DURATION_FOREVER_UNTIL_SLEEP = 998;
|
||||||
public static final int DURATION_NONE = 0;
|
public static final int DURATION_NONE = 0;
|
||||||
|
|
||||||
public final ActorConditionType conditionType;
|
public final ActorConditionType conditionType;
|
||||||
@@ -27,7 +28,12 @@ public final class ActorCondition {
|
|||||||
|
|
||||||
public boolean isTemporaryEffect() { return isTemporaryEffect(duration); }
|
public boolean isTemporaryEffect() { return isTemporaryEffect(duration); }
|
||||||
public static boolean isTemporaryEffect(int duration) {
|
public static boolean isTemporaryEffect(int duration) {
|
||||||
return duration != DURATION_FOREVER;
|
return ( duration != DURATION_FOREVER && duration != DURATION_FOREVER_UNTIL_SLEEP );
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isDurationForeverUntilSleep() { return isDurationForeverUntilSleep(duration); }
|
||||||
|
public static boolean isDurationForeverUntilSleep(int duration) {
|
||||||
|
return ( duration == DURATION_FOREVER_UNTIL_SLEEP );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ public final class ActorConditionType {
|
|||||||
|
|
||||||
public final String conditionTypeID;
|
public final String conditionTypeID;
|
||||||
public final String name;
|
public final String name;
|
||||||
|
public final String description;
|
||||||
public final int iconID;
|
public final int iconID;
|
||||||
public final ConditionCategory conditionCategory;
|
public final ConditionCategory conditionCategory;
|
||||||
public final boolean isStacking;
|
public final boolean isStacking;
|
||||||
@@ -21,6 +22,7 @@ public final class ActorConditionType {
|
|||||||
public ActorConditionType(
|
public ActorConditionType(
|
||||||
String conditionTypeID
|
String conditionTypeID
|
||||||
, String name
|
, String name
|
||||||
|
, String description
|
||||||
, int iconID
|
, int iconID
|
||||||
, ConditionCategory conditionCategory
|
, ConditionCategory conditionCategory
|
||||||
, boolean isStacking
|
, boolean isStacking
|
||||||
@@ -31,6 +33,7 @@ public final class ActorConditionType {
|
|||||||
) {
|
) {
|
||||||
this.conditionTypeID = conditionTypeID;
|
this.conditionTypeID = conditionTypeID;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
this.description = description;
|
||||||
this.iconID = iconID;
|
this.iconID = iconID;
|
||||||
this.conditionCategory = conditionCategory;
|
this.conditionCategory = conditionCategory;
|
||||||
this.isStacking = isStacking;
|
this.isStacking = isStacking;
|
||||||
|
|||||||
@@ -112,6 +112,7 @@ public final class SkillCollection {
|
|||||||
public static final int PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_BC_PERCENT = 20;
|
public static final int PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_BC_PERCENT = 20;
|
||||||
public static final int PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_MOVECOST_PERCENT = 25;
|
public static final int PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_MOVECOST_PERCENT = 25;
|
||||||
public static final int PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_ATKCOST_PERCENT = 25;
|
public static final int PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_ATKCOST_PERCENT = 25;
|
||||||
|
public static final int PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_USECOST_PERCENT = 25;
|
||||||
public static final int PER_SKILLPOINT_INCREASE_FIGHTSTYLE_2HAND_DMG_PERCENT = 30;
|
public static final int PER_SKILLPOINT_INCREASE_FIGHTSTYLE_2HAND_DMG_PERCENT = 30;
|
||||||
public static final int PER_SKILLPOINT_INCREASE_SPECIALIZATION_2HAND_DMG_PERCENT = 50;
|
public static final int PER_SKILLPOINT_INCREASE_SPECIALIZATION_2HAND_DMG_PERCENT = 50;
|
||||||
public static final int PER_SKILLPOINT_INCREASE_SPECIALIZATION_2HAND_AC_PERCENT = 20;
|
public static final int PER_SKILLPOINT_INCREASE_SPECIALIZATION_2HAND_AC_PERCENT = 20;
|
||||||
@@ -186,12 +187,12 @@ public final class SkillCollection {
|
|||||||
initializeSkill(new SkillInfo(SkillID.resistanceBlood, MAX_LEVEL_RESISTANCE, SkillInfo.LevelUpType.alwaysShown, SkillCategory.immunity, null, position++));
|
initializeSkill(new SkillInfo(SkillID.resistanceBlood, MAX_LEVEL_RESISTANCE, SkillInfo.LevelUpType.alwaysShown, SkillCategory.immunity, null, position++));
|
||||||
initializeSkill(new SkillInfo(SkillID.shadowBless, 1, SkillInfo.LevelUpType.onlyByQuests, SkillCategory.immunity, null, position++));
|
initializeSkill(new SkillInfo(SkillID.shadowBless, 1, SkillInfo.LevelUpType.onlyByQuests, SkillCategory.immunity, null, position++));
|
||||||
initializeSkill(new SkillInfo(SkillID.crit1, 1, SkillInfo.LevelUpType.alwaysShown, SkillCategory.criticals, new SkillLevelRequirement[] {
|
initializeSkill(new SkillInfo(SkillID.crit1, 1, SkillInfo.LevelUpType.alwaysShown, SkillCategory.criticals, new SkillLevelRequirement[] {
|
||||||
SkillLevelRequirement.requireOtherSkill(SkillID.moreCriticals, 3)
|
SkillLevelRequirement.requireOtherSkill(SkillID.moreCriticals, 2)
|
||||||
,SkillLevelRequirement.requireOtherSkill(SkillID.betterCriticals, 3)
|
,SkillLevelRequirement.requireOtherSkill(SkillID.betterCriticals, 2)
|
||||||
}, position++));
|
}, position++));
|
||||||
initializeSkill(new SkillInfo(SkillID.crit2, 1, SkillInfo.LevelUpType.alwaysShown, SkillCategory.criticals, new SkillLevelRequirement[] {
|
initializeSkill(new SkillInfo(SkillID.crit2, 1, SkillInfo.LevelUpType.alwaysShown, SkillCategory.criticals, new SkillLevelRequirement[] {
|
||||||
SkillLevelRequirement.requireOtherSkill(SkillID.moreCriticals, 6)
|
SkillLevelRequirement.requireOtherSkill(SkillID.moreCriticals, 4)
|
||||||
,SkillLevelRequirement.requireOtherSkill(SkillID.betterCriticals, 6)
|
,SkillLevelRequirement.requireOtherSkill(SkillID.betterCriticals, 4)
|
||||||
,SkillLevelRequirement.requireOtherSkill(SkillID.crit1, 1)
|
,SkillLevelRequirement.requireOtherSkill(SkillID.crit1, 1)
|
||||||
}, position++));
|
}, position++));
|
||||||
initializeSkill(new SkillInfo(SkillID.rejuvenation, 1, SkillInfo.LevelUpType.alwaysShown, SkillCategory.immunity, new SkillLevelRequirement[] {
|
initializeSkill(new SkillInfo(SkillID.rejuvenation, 1, SkillInfo.LevelUpType.alwaysShown, SkillCategory.immunity, new SkillLevelRequirement[] {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import com.gpl.rpg.AndorsTrail.util.Range;
|
|||||||
public final class MonsterSpawnArea {
|
public final class MonsterSpawnArea {
|
||||||
public final CoordRect area;
|
public final CoordRect area;
|
||||||
public final Range quantity;
|
public final Range quantity;
|
||||||
private final Range spawnChance;
|
private final Range respawnspeed;
|
||||||
public final String areaID;
|
public final String areaID;
|
||||||
public final String[] monsterTypeIDs;
|
public final String[] monsterTypeIDs;
|
||||||
public final List<Monster> monsters = new CopyOnWriteArrayList<Monster>();
|
public final List<Monster> monsters = new CopyOnWriteArrayList<Monster>();
|
||||||
@@ -30,7 +30,7 @@ public final class MonsterSpawnArea {
|
|||||||
public MonsterSpawnArea(
|
public MonsterSpawnArea(
|
||||||
CoordRect area
|
CoordRect area
|
||||||
, Range quantity
|
, Range quantity
|
||||||
, Range spawnChance
|
, Range respawnspeed
|
||||||
, String areaID
|
, String areaID
|
||||||
, String[] monsterTypeIDs
|
, String[] monsterTypeIDs
|
||||||
, boolean isUnique
|
, boolean isUnique
|
||||||
@@ -40,7 +40,7 @@ public final class MonsterSpawnArea {
|
|||||||
) {
|
) {
|
||||||
this.area = area;
|
this.area = area;
|
||||||
this.quantity = quantity;
|
this.quantity = quantity;
|
||||||
this.spawnChance = spawnChance;
|
this.respawnspeed = respawnspeed;
|
||||||
this.areaID = areaID;
|
this.areaID = areaID;
|
||||||
this.monsterTypeIDs = monsterTypeIDs;
|
this.monsterTypeIDs = monsterTypeIDs;
|
||||||
this.isUnique = isUnique;
|
this.isUnique = isUnique;
|
||||||
@@ -101,7 +101,7 @@ public final class MonsterSpawnArea {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean rollShouldSpawn() {
|
public boolean rollShouldSpawn() {
|
||||||
return Constants.rollResult(spawnChance);
|
return Constants.rollResult(respawnspeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeAllMonsters() {
|
public void removeAllMonsters() {
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ public final class TMXMapTranslator {
|
|||||||
boolean isActiveForNewGame = true;
|
boolean isActiveForNewGame = true;
|
||||||
boolean ignoreAreas = false;
|
boolean ignoreAreas = false;
|
||||||
int maxQuantity = 1;
|
int maxQuantity = 1;
|
||||||
int spawnChance = 10;
|
int respawnspeed = 10;
|
||||||
String spawnGroup = object.name;
|
String spawnGroup = object.name;
|
||||||
for (TMXProperty p : object.properties) {
|
for (TMXProperty p : object.properties) {
|
||||||
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) {
|
||||||
@@ -126,8 +126,8 @@ public final class TMXMapTranslator {
|
|||||||
}
|
}
|
||||||
if (p.name.equalsIgnoreCase("quantity")) {
|
if (p.name.equalsIgnoreCase("quantity")) {
|
||||||
maxQuantity = Integer.parseInt(p.value);
|
maxQuantity = Integer.parseInt(p.value);
|
||||||
} else if (p.name.equalsIgnoreCase("spawnchance")) {
|
} else if (p.name.equalsIgnoreCase("respawnspeed")) {
|
||||||
spawnChance = Integer.parseInt(p.value);
|
respawnspeed = Integer.parseInt(p.value);
|
||||||
} else if (p.name.equalsIgnoreCase("active")) {
|
} else if (p.name.equalsIgnoreCase("active")) {
|
||||||
isActiveForNewGame = Boolean.parseBoolean(p.value);
|
isActiveForNewGame = Boolean.parseBoolean(p.value);
|
||||||
} else if (p.name.equalsIgnoreCase("ignoreAreas")) {
|
} else if (p.name.equalsIgnoreCase("ignoreAreas")) {
|
||||||
@@ -155,7 +155,7 @@ public final class TMXMapTranslator {
|
|||||||
MonsterSpawnArea area = new MonsterSpawnArea(
|
MonsterSpawnArea area = new MonsterSpawnArea(
|
||||||
position
|
position
|
||||||
,new Range(maxQuantity, 0)
|
,new Range(maxQuantity, 0)
|
||||||
,new Range(1000, spawnChance)
|
,new Range(1000, respawnspeed)
|
||||||
,object.name
|
,object.name
|
||||||
,monsterTypeIDs
|
,monsterTypeIDs
|
||||||
,isUnique
|
,isUnique
|
||||||
@@ -405,6 +405,11 @@ public final class TMXMapTranslator {
|
|||||||
int tileID = tileCache.getTileID(tile.tilesetName, tile.localId);
|
int tileID = tileCache.getTileID(tile.tilesetName, tile.localId);
|
||||||
result.tiles[dx][dy] = tileID;
|
result.tiles[dx][dy] = tileID;
|
||||||
usedTileIDs.add(tileID);
|
usedTileIDs.add(tileID);
|
||||||
|
if(AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA){
|
||||||
|
if(tileID == 0){
|
||||||
|
L.log("Tileid 0 in "+ tile.tilesetName);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -21,6 +21,10 @@ public final class Requirement {
|
|||||||
,random
|
,random
|
||||||
,factionScoreEquals
|
,factionScoreEquals
|
||||||
,wearRemove
|
,wearRemove
|
||||||
|
,date
|
||||||
|
,dateEquals
|
||||||
|
,time
|
||||||
|
,timeEquals
|
||||||
}
|
}
|
||||||
|
|
||||||
public final RequirementType requireType;
|
public final RequirementType requireType;
|
||||||
@@ -83,6 +87,10 @@ public final class Requirement {
|
|||||||
case skillLevel:
|
case skillLevel:
|
||||||
return requireID != null && value >= 0;
|
return requireID != null && value >= 0;
|
||||||
case spentGold:
|
case spentGold:
|
||||||
|
case date:
|
||||||
|
case dateEquals:
|
||||||
|
case time:
|
||||||
|
case timeEquals:
|
||||||
return value >= 0;
|
return value >= 0;
|
||||||
case random:
|
case random:
|
||||||
return chance != null;
|
return chance != null;
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ public final class ScriptEffect {
|
|||||||
, deactivateMapObjectGroup
|
, deactivateMapObjectGroup
|
||||||
, removeQuestProgress
|
, removeQuestProgress
|
||||||
, changeMapFilter
|
, changeMapFilter
|
||||||
|
, mapchange
|
||||||
}
|
}
|
||||||
|
|
||||||
public final ScriptEffectType type;
|
public final ScriptEffectType type;
|
||||||
|
|||||||
@@ -137,7 +137,8 @@ public final class ResourceLoader {
|
|||||||
final ItemTypeParser itemTypeParser = new ItemTypeParser(loader, world.actorConditionsTypes, world.itemCategories, translationLoader);
|
final ItemTypeParser itemTypeParser = new ItemTypeParser(loader, world.actorConditionsTypes, world.itemCategories, translationLoader);
|
||||||
final TypedArray itemsToLoad = r.obtainTypedArray(itemsResourceId);
|
final TypedArray itemsToLoad = r.obtainTypedArray(itemsResourceId);
|
||||||
for (int i = 0; i < itemsToLoad.length(); ++i) {
|
for (int i = 0; i < itemsToLoad.length(); ++i) {
|
||||||
world.itemTypes.initialize(itemTypeParser, readStringFromRaw(r, itemsToLoad, i));
|
String s = readStringFromRaw(r, itemsToLoad, i);
|
||||||
|
world.itemTypes.initialize(itemTypeParser, s);
|
||||||
}
|
}
|
||||||
itemsToLoad.recycle();
|
itemsToLoad.recycle();
|
||||||
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) timingCheckpoint("ItemTypeParser");
|
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) timingCheckpoint("ItemTypeParser");
|
||||||
@@ -250,14 +251,19 @@ public final class ResourceLoader {
|
|||||||
|
|
||||||
private static void prepareTilesets(DynamicTileLoader loader, int mTileSize) {
|
private static void prepareTilesets(DynamicTileLoader loader, int mTileSize) {
|
||||||
final Size sz1x1 = new Size(1, 1);
|
final Size sz1x1 = new Size(1, 1);
|
||||||
|
final Size sz1x2 = new Size(1, 2);
|
||||||
final Size sz2x1 = new Size(2, 1);
|
final Size sz2x1 = new Size(2, 1);
|
||||||
final Size sz2x2 = new Size(2, 2);
|
final Size sz2x2 = new Size(2, 2);
|
||||||
final Size sz2x3 = new Size(2, 3);
|
final Size sz2x3 = new Size(2, 3);
|
||||||
final Size sz3x1 = new Size(3, 1);
|
final Size sz3x1 = new Size(3, 1);
|
||||||
|
final Size sz4x1 = new Size(4, 1);
|
||||||
final Size sz5x1 = new Size(5, 1);
|
final Size sz5x1 = new Size(5, 1);
|
||||||
final Size sz6x1 = new Size(6, 1);
|
final Size sz6x1 = new Size(6, 1);
|
||||||
final Size sz7x1 = new Size(7, 1);
|
final Size sz7x1 = new Size(7, 1);
|
||||||
|
final Size sz7x4 = new Size(7, 4);
|
||||||
final Size sz8x3 = new Size(8, 3);
|
final Size sz8x3 = new Size(8, 3);
|
||||||
|
final Size sz16x8 = new Size(16, 8);
|
||||||
|
final Size sz16x10 = new Size(16, 10);
|
||||||
final Size sz20x12 = new Size(20, 12);
|
final Size sz20x12 = new Size(20, 12);
|
||||||
final Size mapTileSize = new Size(16, 8);
|
final Size mapTileSize = new Size(16, 8);
|
||||||
final Size sz8x8 = new Size(8, 8);
|
final Size sz8x8 = new Size(8, 8);
|
||||||
@@ -277,6 +283,7 @@ public final class ResourceLoader {
|
|||||||
loader.prepareTileset(R.drawable.actorconditions_1, "actorconditions_1", new Size(14, 8), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.actorconditions_1, "actorconditions_1", new Size(14, 8), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.actorconditions_2, "actorconditions_2", sz3x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.actorconditions_2, "actorconditions_2", sz3x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.actorconditions_japozero, "actorconditions_japozero", new Size(16, 4), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.actorconditions_japozero, "actorconditions_japozero", new Size(16, 4), sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.actorconditions_newb, "actorconditions_newb", new Size(20, 1), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.actorconditions_omi1, "actorconditions_omi1", sz2x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.actorconditions_omi1, "actorconditions_omi1", sz2x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.actorconditions_omi2, "actorconditions_omi2", sz5x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.actorconditions_omi2, "actorconditions_omi2", sz5x1, sz1x1, mTileSize);
|
||||||
/*INSERT_ACTORCONDITIONS_TILESETS_HERE*/
|
/*INSERT_ACTORCONDITIONS_TILESETS_HERE*/
|
||||||
@@ -299,23 +306,26 @@ public final class ResourceLoader {
|
|||||||
loader.prepareTileset(R.drawable.items_necklaces_1, "items_necklaces_1", new Size(10, 3), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.items_necklaces_1, "items_necklaces_1", new Size(10, 3), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.items_weapons_2, "items_weapons_2", new Size(7, 1), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.items_weapons_2, "items_weapons_2", new Size(7, 1), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.items_weapons_3, "items_weapons_3", new Size(13, 5), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.items_weapons_3, "items_weapons_3", new Size(13, 5), sz1x1, mTileSize);
|
||||||
|
|
||||||
loader.prepareTileset(R.drawable.items_armours_2, "items_armours_2", sz7x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.items_armours_2, "items_armours_2", sz7x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.items_armours_3, "items_armours_3", new Size(10, 4), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.items_armours_3, "items_armours_3", new Size(10, 4), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.items_rings_1, "items_rings_1", new Size(10, 3), sz1x1, mTileSize);
|
|
||||||
loader.prepareTileset(R.drawable.items_japozero, "items_japozero", new Size(16, 37), sz1x1, mTileSize);
|
|
||||||
loader.prepareTileset(R.drawable.items_rijackson_1, "items_rijackson_1", new Size(5, 4), sz1x1, mTileSize);
|
|
||||||
loader.prepareTileset(R.drawable.items_g03_package_omi1, "items_g03_package_omi1", sz1x1, sz1x1, mTileSize);
|
|
||||||
loader.prepareTileset(R.drawable.items_consumables_omi1, "items_consumables_omi1", sz1x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.items_consumables_omi1, "items_consumables_omi1", sz1x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.items_feygard1, "items_feygard1", new Size(6, 2), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.items_feygard1, "items_feygard1", new Size(6, 2), sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.items_g03_package_omi1, "items_g03_package_omi1", sz1x1, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.items_japozero, "items_japozero", new Size(16, 37), sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.items_newb, "items_newb", new Size(32, 27), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.items_omi2, "items_omi2", new Size(6, 5), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.items_omi2, "items_omi2", new Size(6, 5), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.items_omgeeky, "items_omgeeky", new Size(10, 3), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.items_omgeeky, "items_omgeeky", new Size(10, 3), sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.items_phoenix01, "items_phoenix01", sz16x8, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.items_rijackson_1, "items_rijackson_1", new Size(5, 4), sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.items_rings_1, "items_rings_1", new Size(10, 3), sz1x1, mTileSize);
|
||||||
/*INSERT_ITEMS_TILESETS_HERE*/
|
/*INSERT_ITEMS_TILESETS_HERE*/
|
||||||
|
|
||||||
loader.prepareTileset(R.drawable.monsters_armor1, "monsters_armor1", sz1x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_armor1, "monsters_armor1", sz1x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_cyclops, "monsters_cyclops", sz1x1, sz2x3, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_cyclops, "monsters_cyclops", sz1x1, sz2x3, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_demon1, "monsters_demon1", sz1x1, sz2x2, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_demon1, "monsters_demon1", sz1x1, sz2x2, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_demon2, "monsters_demon2", sz1x1, sz2x2, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_demon2, "monsters_demon2", sz1x1, sz2x2, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_dogs, "monsters_dogs", sz7x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_dogs, "monsters_dogs", sz7x4, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_eye1, "monsters_eye1", sz1x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_eye1, "monsters_eye1", sz1x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_eye2, "monsters_eye2", sz1x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_eye2, "monsters_eye2", sz1x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_eye3, "monsters_eye3", sz1x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_eye3, "monsters_eye3", sz1x1, sz1x1, mTileSize);
|
||||||
@@ -323,10 +333,11 @@ public final class ResourceLoader {
|
|||||||
loader.prepareTileset(R.drawable.monsters_ghost1, "monsters_ghost1", sz1x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_ghost1, "monsters_ghost1", sz1x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_hydra1, "monsters_hydra1", sz1x1, sz2x2, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_hydra1, "monsters_hydra1", sz1x1, sz2x2, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_insects, "monsters_insects", sz6x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_insects, "monsters_insects", sz6x1, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.monsters_johny, "monsters_johny", sz20x12, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_karvis1, "monsters_karvis1", sz2x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_karvis1, "monsters_karvis1", sz2x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_karvis2, "monsters_karvis2", new Size(9, 1), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_karvis2, "monsters_karvis2", new Size(9, 1), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_ld1, "monsters_ld1", new Size(20, 12), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_ld1, "monsters_ld1", sz20x12, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_ld2, "monsters_ld2", new Size(20, 12), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_ld2, "monsters_ld2", sz20x12, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_liches, "monsters_liches", new Size(4, 1), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_liches, "monsters_liches", new Size(4, 1), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_mage, "monsters_mage", sz1x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_mage, "monsters_mage", sz1x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_mage2, "monsters_mage2", sz1x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_mage2, "monsters_mage2", sz1x1, sz1x1, mTileSize);
|
||||||
@@ -334,6 +345,10 @@ public final class ResourceLoader {
|
|||||||
loader.prepareTileset(R.drawable.monsters_men, "monsters_men", new Size(9, 1), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_men, "monsters_men", new Size(9, 1), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_men2, "monsters_men2", new Size(10, 1), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_men2, "monsters_men2", new Size(10, 1), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_misc, "monsters_misc", new Size(13, 1), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_misc, "monsters_misc", new Size(13, 1), sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.monsters_newb_1, "monsters_newb_1", new Size(40, 34), sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.monsters_newb_2, "monsters_newb_2", new Size(8, 2), sz1x2, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.monsters_newb_3, "monsters_newb_3", new Size(10, 10), sz2x2, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.monsters_newb_4, "monsters_newb_4", new Size(4, 1), sz2x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_rats, "monsters_rats", new Size(5, 1), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_rats, "monsters_rats", new Size(5, 1), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_redshrike1, "monsters_redshrike1", sz7x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_redshrike1, "monsters_redshrike1", sz7x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_rltiles1, "monsters_rltiles1", new Size(20, 8), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_rltiles1, "monsters_rltiles1", new Size(20, 8), sz1x1, mTileSize);
|
||||||
@@ -363,22 +378,27 @@ public final class ResourceLoader {
|
|||||||
loader.prepareTileset(R.drawable.monsters_omi1_b, "monsters_omi1_b", sz1x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_omi1_b, "monsters_omi1_b", sz1x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_unknown, "monsters_unknown", sz1x1, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_unknown, "monsters_unknown", sz1x1, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_arulirs, "monsters_arulirs", new Size(8, 2), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_arulirs, "monsters_arulirs", new Size(8, 2), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_fatboy73, "monsters_fatboy73", new Size(20, 12), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_fatboy73, "monsters_fatboy73", sz20x12, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_giantbasilisk, "monsters_giantbasilisk", sz1x1, sz2x2, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_giantbasilisk, "monsters_giantbasilisk", sz1x1, sz2x2, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_gisons, "monsters_gisons", new Size(8, 2), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_gisons, "monsters_gisons", new Size(8, 2), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_bosses_2x2, "monsters_bosses_2x2", sz1x1, sz2x2, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_bosses_2x2, "monsters_bosses_2x2", sz1x1, sz2x2, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.monsters_omi2, "monsters_omi2", sz8x3, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.monsters_omi2, "monsters_omi2", sz8x3, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.monsters_phoenix01, "monsters_phoenix01", sz16x8, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.monsters_cats, "monsters_cats", new Size(10, 2), sz1x1, mTileSize);
|
||||||
/*INSERT_NPCS_TILESETS_HERE*/
|
/*INSERT_NPCS_TILESETS_HERE*/
|
||||||
|
|
||||||
loader.prepareTileset(R.drawable.map_bed_1, "map_bed_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_bed_1, "map_bed_1", sz16x10, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_boats_1, "map_boats_1", new Size(16, 9), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_border_1, "map_border_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_border_1, "map_border_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_bridge_1, "map_bridge_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_bridge_1, "map_bridge_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_bridge_2, "map_bridge_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_bridge_2, "map_bridge_2", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_brightport, "map_brightport", new Size(16, 7), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_broken_1, "map_broken_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_broken_1, "map_broken_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_cavewall_1, "map_cavewall_1", new Size(18, 6), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_cavewall_1, "map_cavewall_1", new Size(18, 6), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_cavewall_2, "map_cavewall_2", new Size(18, 6), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_cavewall_2, "map_cavewall_2", new Size(18, 6), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_cavewall_3, "map_cavewall_3", new Size(18, 6), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_cavewall_3, "map_cavewall_3", new Size(18, 6), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_cavewall_4, "map_cavewall_4", new Size(18, 6), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_cavewall_4, "map_cavewall_4", new Size(18, 6), sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_cavewall_5, "map_cavewall_5", new Size(6, 6), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_chair_table_1, "map_chair_table_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_chair_table_1, "map_chair_table_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_chair_table_2, "map_chair_table_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_chair_table_2, "map_chair_table_2", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_crate_1, "map_crate_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_crate_1, "map_crate_1", mapTileSize, sz1x1, mTileSize);
|
||||||
@@ -386,6 +406,7 @@ public final class ResourceLoader {
|
|||||||
loader.prepareTileset(R.drawable.map_curtain_1, "map_curtain_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_curtain_1, "map_curtain_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_entrance_1, "map_entrance_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_entrance_1, "map_entrance_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_entrance_2, "map_entrance_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_entrance_2, "map_entrance_2", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_entrance_3, "map_entrance_3", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_fence_1, "map_fence_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_fence_1, "map_fence_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_fence_2, "map_fence_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_fence_2, "map_fence_2", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_fence_3, "map_fence_3", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_fence_3, "map_fence_3", mapTileSize, sz1x1, mTileSize);
|
||||||
@@ -398,6 +419,8 @@ public final class ResourceLoader {
|
|||||||
loader.prepareTileset(R.drawable.map_ground_6, "map_ground_6", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_ground_6, "map_ground_6", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_ground_7, "map_ground_7", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_ground_7, "map_ground_7", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_ground_8, "map_ground_8", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_ground_8, "map_ground_8", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_ground_9, "map_ground_9", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_guynmart, "map_guynmart", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_house_1, "map_house_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_house_1, "map_house_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_house_2, "map_house_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_house_2, "map_house_2", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_indoor_1, "map_indoor_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_indoor_1, "map_indoor_1", mapTileSize, sz1x1, mTileSize);
|
||||||
@@ -406,37 +429,45 @@ public final class ResourceLoader {
|
|||||||
loader.prepareTileset(R.drawable.map_outdoor_1, "map_outdoor_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_outdoor_1, "map_outdoor_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_pillar_1, "map_pillar_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_pillar_1, "map_pillar_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_pillar_2, "map_pillar_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_pillar_2, "map_pillar_2", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_pillar_3, "map_pillar_3", new Size(16, 10), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_plant_1, "map_plant_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_plant_1, "map_plant_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_plant_2, "map_plant_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_plant_2, "map_plant_2", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_plant_3, "map_plant_3", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_plateau, "map_plateau", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_plateau_2, "map_plateau_2", new Size(8, 8), sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_ratdom, "map_ratdom", new Size(18, 6), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_rock_1, "map_rock_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_rock_1, "map_rock_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_rock_2, "map_rock_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_rock_2, "map_rock_2", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_rock_3, "map_rock_3", new Size(6, 5), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_roof_1, "map_roof_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_roof_1, "map_roof_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_roof_2, "map_roof_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_roof_2, "map_roof_2", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_roof_3, "map_roof_3", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_roof_3, "map_roof_3", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_roof_4, "map_roof_4", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_roof_5, "map_roof_5", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_shop_1, "map_shop_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_shop_1, "map_shop_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_sign_ladder_1, "map_sign_ladder_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_sign_ladder_1, "map_sign_ladder_1", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_sign_ladder_omi2, "map_sign_ladder_omi2", new Size(8, 4), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_table_1, "map_table_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_table_1, "map_table_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_table_2, "map_table_2", new Size(14, 8), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_table_2, "map_table_2", new Size(14, 8), sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_temple_1, "map_temple_1", new Size(23, 16), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_trail_1, "map_trail_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_trail_1, "map_trail_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_transition_1, "map_transition_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_transition_1, "map_transition_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_transition_2, "map_transition_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_transition_2, "map_transition_2", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_transition_3, "map_transition_3", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_transition_3, "map_transition_3", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_transition_4, "map_transition_4", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_transition_4, "map_transition_4", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_transition_5, "map_transition_5", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_transition_5, "map_transition_5", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_transition_6, "map_transition_6", new Size(18, 8), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_tree_1, "map_tree_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_tree_1, "map_tree_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_tree_2, "map_tree_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_tree_2, "map_tree_2", mapTileSize, sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_tree_3, "map_tree_3", new Size(32, 17), sz1x1, mTileSize);
|
||||||
|
loader.prepareTileset(R.drawable.map_tree_4, "map_tree_4", new Size(16, 8), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_wall_1, "map_wall_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_wall_1, "map_wall_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_wall_2, "map_wall_2", new Size(15, 8), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_wall_2, "map_wall_2", new Size(15, 8), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_wall_3, "map_wall_3", new Size(15, 8), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_wall_3, "map_wall_3", new Size(15, 8), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_wall_4, "map_wall_4", new Size(15, 8), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_wall_4, "map_wall_4", new Size(15, 8), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_window_1, "map_window_1", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_window_1, "map_window_1", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_window_2, "map_window_2", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_window_2, "map_window_2", mapTileSize, sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_guynmart, "map_guynmart", mapTileSize, sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.map_items_japozero, "map_items_japozero", new Size(16, 37), sz1x1, mTileSize);
|
||||||
loader.prepareTileset(R.drawable.map_cavewall_5, "map_cavewall_5", new Size(6, 6), sz1x1, mTileSize);
|
|
||||||
loader.prepareTileset(R.drawable.map_rock_3, "map_rock_3", new Size(6, 5), sz1x1, mTileSize);
|
|
||||||
loader.prepareTileset(R.drawable.map_sign_ladder_omi2, "map_sign_ladder_omi2", new Size(8, 4), sz1x1, mTileSize);
|
|
||||||
loader.prepareTileset(R.drawable.map_transition_6, "map_transition_6", new Size(18, 8), sz1x1, mTileSize);
|
|
||||||
loader.prepareTileset(R.drawable.map_ratdom, "map_ratdom", new Size(18, 6), sz1x1, mTileSize);
|
|
||||||
/*INSERT_MAP_TILESETS_HERE*/
|
/*INSERT_MAP_TILESETS_HERE*/
|
||||||
|
|
||||||
loader.prepareTileset(R.drawable.effect_blood4, "effect_blood4", new Size(7, 2), sz1x1, mTileSize);
|
loader.prepareTileset(R.drawable.effect_blood4, "effect_blood4", new Size(7, 2), sz1x1, mTileSize);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ public final class ActorConditionsTypeParser extends JsonCollectionParserFor<Act
|
|||||||
ActorConditionType result = new ActorConditionType(
|
ActorConditionType result = new ActorConditionType(
|
||||||
conditionTypeID
|
conditionTypeID
|
||||||
,translationLoader.translateActorConditionName(o.getString(JsonFieldNames.ActorCondition.name))
|
,translationLoader.translateActorConditionName(o.getString(JsonFieldNames.ActorCondition.name))
|
||||||
|
,translationLoader.translateActorConditionName(o.optString(JsonFieldNames.ActorCondition.description))
|
||||||
,ResourceParserUtils.parseImageID(tileLoader, o.getString(JsonFieldNames.ActorCondition.iconID))
|
,ResourceParserUtils.parseImageID(tileLoader, o.getString(JsonFieldNames.ActorCondition.iconID))
|
||||||
,ActorConditionType.ConditionCategory.valueOf(o.getString(JsonFieldNames.ActorCondition.category))
|
,ActorConditionType.ConditionCategory.valueOf(o.getString(JsonFieldNames.ActorCondition.category))
|
||||||
,o.optInt(JsonFieldNames.ActorCondition.isStacking) > 0
|
,o.optInt(JsonFieldNames.ActorCondition.isStacking) > 0
|
||||||
|
|||||||
@@ -39,6 +39,12 @@ public final class DropListParser extends JsonCollectionParserFor<DropList> {
|
|||||||
if (items == null) {
|
if (items == null) {
|
||||||
L.log("OPTIMIZE: Droplist \"" + droplistID + "\" has no dropped items.");
|
L.log("OPTIMIZE: Droplist \"" + droplistID + "\" has no dropped items.");
|
||||||
}
|
}
|
||||||
|
for (int i = 0; i < items.length; i++) {
|
||||||
|
DropItem item = items[i];
|
||||||
|
if (item.itemType == null) {
|
||||||
|
L.log("Item at index " + i + " in droplist " + droplistID + " was null");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Pair<String, DropList>(droplistID, new DropList(items));
|
return new Pair<String, DropList>(droplistID, new DropList(items));
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import org.xmlpull.v1.XmlPullParserException;
|
|||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.content.res.XmlResourceParser;
|
import android.content.res.XmlResourceParser;
|
||||||
|
|
||||||
|
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.MapCollection;
|
import com.gpl.rpg.AndorsTrail.model.map.MapCollection;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment;
|
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.NamedWorldMapArea;
|
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.NamedWorldMapArea;
|
||||||
@@ -24,11 +25,13 @@ public final class WorldMapParser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void read(XmlResourceParser xrp, final MapCollection maps, final TranslationLoader translationLoader) {
|
private static void read(XmlResourceParser xrp, final MapCollection maps, final TranslationLoader translationLoader) {
|
||||||
|
String s = "";
|
||||||
|
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) L.log("WorldMapParser:");
|
||||||
try {
|
try {
|
||||||
int eventType;
|
int eventType;
|
||||||
while ((eventType = xrp.next()) != XmlResourceParser.END_DOCUMENT) {
|
while ((eventType = xrp.next()) != XmlResourceParser.END_DOCUMENT) {
|
||||||
if (eventType == XmlResourceParser.START_TAG) {
|
if (eventType == XmlResourceParser.START_TAG) {
|
||||||
String s = xrp.getName();
|
s = xrp.getName();
|
||||||
if (s.equals("segment")) {
|
if (s.equals("segment")) {
|
||||||
WorldMapSegment segment = parseSegment(xrp, maps, translationLoader);
|
WorldMapSegment segment = parseSegment(xrp, maps, translationLoader);
|
||||||
maps.worldMapSegments.put(segment.name, segment);
|
maps.worldMapSegments.put(segment.name, segment);
|
||||||
@@ -37,7 +40,7 @@ public final class WorldMapParser {
|
|||||||
}
|
}
|
||||||
xrp.close();
|
xrp.close();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
L.log("Error reading worldmap: " + e.toString());
|
L.log("Error reading worldmap: " + s + " " + e.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,11 +49,13 @@ public final class WorldMapParser {
|
|||||||
final WorldMapSegment segment = new WorldMapSegment(segmentName);
|
final WorldMapSegment segment = new WorldMapSegment(segmentName);
|
||||||
|
|
||||||
final ArrayList<Pair<String, String>> mapsInNamedAreas = new ArrayList<Pair<String,String>>();
|
final ArrayList<Pair<String, String>> mapsInNamedAreas = new ArrayList<Pair<String,String>>();
|
||||||
|
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) L.log("segment: " + segmentName);
|
||||||
XmlResourceParserUtils.readCurrentTagUntilEnd(xrp, new XmlResourceParserUtils.TagHandler() {
|
XmlResourceParserUtils.readCurrentTagUntilEnd(xrp, new XmlResourceParserUtils.TagHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleTag(XmlResourceParser xrp, String tagName) throws XmlPullParserException, IOException {
|
public void handleTag(XmlResourceParser xrp, String tagName) throws XmlPullParserException, IOException {
|
||||||
if (tagName.equals("map")) {
|
if (tagName.equals("map")) {
|
||||||
String mapName = xrp.getAttributeValue(null, "id");
|
String mapName = xrp.getAttributeValue(null, "id");
|
||||||
|
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) L.log(" map: " + mapName);
|
||||||
if (maps.findPredefinedMap(mapName) == null) return;
|
if (maps.findPredefinedMap(mapName) == null) return;
|
||||||
Coord mapPosition = new Coord(
|
Coord mapPosition = new Coord(
|
||||||
xrp.getAttributeIntValue(null, "x", -1),
|
xrp.getAttributeIntValue(null, "x", -1),
|
||||||
@@ -65,6 +70,7 @@ public final class WorldMapParser {
|
|||||||
String id = xrp.getAttributeValue(null, "id");
|
String id = xrp.getAttributeValue(null, "id");
|
||||||
String name = translationLoader.translateWorldmapLocation(xrp.getAttributeValue(null, "name"));
|
String name = translationLoader.translateWorldmapLocation(xrp.getAttributeValue(null, "name"));
|
||||||
String type = xrp.getAttributeValue(null, "type");
|
String type = xrp.getAttributeValue(null, "type");
|
||||||
|
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) L.log(" namedarea: id=" + id + " name=" + name + " type=" + type);
|
||||||
segment.namedAreas.put(id, new NamedWorldMapArea(id, name, type));
|
segment.namedAreas.put(id, new NamedWorldMapArea(id, name, type));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ public final class JsonFieldNames {
|
|||||||
public static final class ActorCondition {
|
public static final class ActorCondition {
|
||||||
public static final String conditionTypeID = "id";
|
public static final String conditionTypeID = "id";
|
||||||
public static final String name = "name";
|
public static final String name = "name";
|
||||||
|
public static final String description = "description";
|
||||||
public static final String iconID = "iconID";
|
public static final String iconID = "iconID";
|
||||||
public static final String category = "category";
|
public static final String category = "category";
|
||||||
public static final String isStacking = "isStacking";
|
public static final String isStacking = "isStacking";
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ import android.graphics.Bitmap;
|
|||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
import android.util.SparseIntArray;
|
import android.util.SparseIntArray;
|
||||||
|
|
||||||
|
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||||
|
import com.gpl.rpg.AndorsTrail.util.L;
|
||||||
import com.gpl.rpg.AndorsTrail.util.LruCache;
|
import com.gpl.rpg.AndorsTrail.util.LruCache;
|
||||||
|
|
||||||
public final class TileCache {
|
public final class TileCache {
|
||||||
@@ -39,7 +41,12 @@ public final class TileCache {
|
|||||||
tileIDsPerLocalID.put(localID, tileID);
|
tileIDsPerLocalID.put(localID, tileID);
|
||||||
}
|
}
|
||||||
public int getTileID(String tileSetName, int localID) {
|
public int getTileID(String tileSetName, int localID) {
|
||||||
return tileIDsPerTilesetAndLocalID.get(tileSetName).get(localID);
|
|
||||||
|
SparseIntArray sparseIntArray = tileIDsPerTilesetAndLocalID.get(tileSetName);
|
||||||
|
if(AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES && sparseIntArray == null){
|
||||||
|
L.log("Could not get tile " + tileSetName + " " + localID);
|
||||||
|
}
|
||||||
|
return sparseIntArray.get(localID);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final class ResourceFileTile {
|
private static final class ResourceFileTile {
|
||||||
@@ -67,6 +74,11 @@ public final class TileCache {
|
|||||||
HashMap<ResourceFileTileset, SparseArray<ResourceFileTile>> tilesToLoadPerSourceFile = new HashMap<ResourceFileTileset, SparseArray<ResourceFileTile>>();
|
HashMap<ResourceFileTileset, SparseArray<ResourceFileTile>> tilesToLoadPerSourceFile = new HashMap<ResourceFileTileset, SparseArray<ResourceFileTile>>();
|
||||||
for(int tileID : iconIDs) {
|
for(int tileID : iconIDs) {
|
||||||
ResourceFileTile tile = resourceTiles[tileID];
|
ResourceFileTile tile = resourceTiles[tileID];
|
||||||
|
if(tile == null && AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES){
|
||||||
|
L.log("could not find resourceTiles for id: " + tileID);
|
||||||
|
L.log("iconIDs: " + iconIDs);
|
||||||
|
}
|
||||||
|
if(tile != null || AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA){
|
||||||
SparseArray<ResourceFileTile> tiles = tilesToLoadPerSourceFile.get(tile.tileset);
|
SparseArray<ResourceFileTile> tiles = tilesToLoadPerSourceFile.get(tile.tileset);
|
||||||
if (tiles == null) {
|
if (tiles == null) {
|
||||||
tiles = new SparseArray<TileCache.ResourceFileTile>();
|
tiles = new SparseArray<TileCache.ResourceFileTile>();
|
||||||
@@ -75,6 +87,7 @@ public final class TileCache {
|
|||||||
tiles.put(tileID, tile);
|
tiles.put(tileID, tile);
|
||||||
maxTileID = Math.max(maxTileID, tileID);
|
maxTileID = Math.max(maxTileID, tileID);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
boolean hasLoadedTiles = false;
|
boolean hasLoadedTiles = false;
|
||||||
if (result == null) result = new TileCollection(maxTileID);
|
if (result == null) result = new TileCollection(maxTileID);
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import android.os.AsyncTask;
|
|||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||||
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
||||||
import com.gpl.rpg.AndorsTrail.R;
|
import com.gpl.rpg.AndorsTrail.R;
|
||||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||||
@@ -33,6 +34,7 @@ import com.gpl.rpg.AndorsTrail.model.map.MapObject;
|
|||||||
import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea;
|
import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
|
||||||
import com.gpl.rpg.AndorsTrail.model.map.TMXMapTranslator;
|
import com.gpl.rpg.AndorsTrail.model.map.TMXMapTranslator;
|
||||||
|
import com.gpl.rpg.AndorsTrail.util.L;
|
||||||
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
|
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
|
||||||
|
|
||||||
public final class TileManager {
|
public final class TileManager {
|
||||||
@@ -374,6 +376,10 @@ public final class TileManager {
|
|||||||
cachedTileIDs = getTileIDsFor(adjacentMap, adjacentMapTiles, world);
|
cachedTileIDs = getTileIDsFor(adjacentMap, adjacentMapTiles, world);
|
||||||
tileIDsPerMap.put(mapName, cachedTileIDs);
|
tileIDsPerMap.put(mapName, cachedTileIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES){
|
||||||
|
L.log("TileIDsFor " + mapName + "\n" + cachedTileIDs);
|
||||||
|
}
|
||||||
dest.addAll(cachedTileIDs);
|
dest.addAll(cachedTileIDs);
|
||||||
}
|
}
|
||||||
public void cacheAdjacentMaps(final Resources res, final WorldContext world, final PredefinedMap nextMap) {
|
public void cacheAdjacentMaps(final Resources res, final WorldContext world, final PredefinedMap nextMap) {
|
||||||
@@ -391,6 +397,9 @@ public final class TileManager {
|
|||||||
|
|
||||||
HashSet<Integer> tileIDs = new HashSet<Integer>();
|
HashSet<Integer> tileIDs = new HashSet<Integer>();
|
||||||
for (String mapName : adjacentMapNames) {
|
for (String mapName : adjacentMapNames) {
|
||||||
|
if(AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES){
|
||||||
|
L.log("addTileIDsFor " + mapName);
|
||||||
|
}
|
||||||
addTileIDsFor(tileIDs, mapName, res, world);
|
addTileIDsFor(tileIDs, mapName, res, world);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import com.gpl.rpg.AndorsTrail.R;
|
|||||||
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
|
||||||
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
import com.gpl.rpg.AndorsTrail.context.WorldContext;
|
||||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||||
|
import com.gpl.rpg.AndorsTrail.controller.WorldMapController;
|
||||||
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
|
||||||
import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
|
import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
|
||||||
import com.gpl.rpg.AndorsTrail.util.AndroidStorage;
|
import com.gpl.rpg.AndorsTrail.util.AndroidStorage;
|
||||||
@@ -104,7 +105,7 @@ public final class Savegames {
|
|||||||
}
|
}
|
||||||
|
|
||||||
FileInputStream fos = getInputFile(androidContext, slot);
|
FileInputStream fos = getInputFile(androidContext, slot);
|
||||||
LoadSavegameResult result = loadWorld(androidContext.getResources(), world, controllers, fos, fh);
|
LoadSavegameResult result = loadWorld(androidContext.getResources(), world, controllers, androidContext, fos, fh);
|
||||||
fos.close();
|
fos.close();
|
||||||
if (result == LoadSavegameResult.success && slot != SLOT_QUICKSAVE && !world.model.statistics.hasUnlimitedSaves()) {
|
if (result == LoadSavegameResult.success && slot != SLOT_QUICKSAVE && !world.model.statistics.hasUnlimitedSaves()) {
|
||||||
// save to the quicksave slot before deleting the file
|
// save to the quicksave slot before deleting the file
|
||||||
@@ -223,7 +224,7 @@ public final class Savegames {
|
|||||||
dest.close();
|
dest.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LoadSavegameResult loadWorld(Resources res, WorldContext world, ControllerContext controllers, InputStream inState, FileHeader fh) throws IOException {
|
public static LoadSavegameResult loadWorld(Resources res, WorldContext world, ControllerContext controllers, Context androidContext, InputStream inState, FileHeader fh) throws IOException {
|
||||||
DataInputStream src = new DataInputStream(inState);
|
DataInputStream src = new DataInputStream(inState);
|
||||||
final FileHeader header = new FileHeader(src, fh.skipIcon);
|
final FileHeader header = new FileHeader(src, fh.skipIcon);
|
||||||
if (header.fileversion > AndorsTrailApplication.CURRENT_VERSION)
|
if (header.fileversion > AndorsTrailApplication.CURRENT_VERSION)
|
||||||
@@ -231,6 +232,7 @@ public final class Savegames {
|
|||||||
|
|
||||||
world.maps.readFromParcel(src, world, controllers, header.fileversion);
|
world.maps.readFromParcel(src, world, controllers, header.fileversion);
|
||||||
world.model = new ModelContainer(src, world, controllers, header.fileversion);
|
world.model = new ModelContainer(src, world, controllers, header.fileversion);
|
||||||
|
WorldMapController.populateWorldMap(androidContext, world, controllers.getResources());
|
||||||
src.close();
|
src.close();
|
||||||
|
|
||||||
if (header.fileversion < 45) {
|
if (header.fileversion < 45) {
|
||||||
|
|||||||
@@ -30,6 +30,18 @@ public final class CoordRect {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static CoordRect union(CoordRect r1, CoordRect r2) {
|
||||||
|
int left = Math.min(r1.topLeft.x, r2.topLeft.x);
|
||||||
|
int top = Math.min(r1.topLeft.y, r2.topLeft.y);
|
||||||
|
int right = Math.max(r1.topLeft.x + r1.size.width, r2.topLeft.x + r2.size.width);
|
||||||
|
int bottom = Math.max(r1.topLeft.y + r1.size.height, r2.topLeft.y + r2.size.height);
|
||||||
|
|
||||||
|
int width = right - left;
|
||||||
|
int height = bottom - top;
|
||||||
|
|
||||||
|
return new CoordRect(new Coord(left, top), new Size(width, height));
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
public static boolean contains(final int x, final int y, final Size size, final Coord p) {
|
public static boolean contains(final int x, final int y, final Size size, final Coord p) {
|
||||||
if (p.x < x) return false;
|
if (p.x < x) return false;
|
||||||
|
|||||||
@@ -292,6 +292,8 @@ public final class DisplayActiveActorConditionIcons implements ActorConditionLis
|
|||||||
}
|
}
|
||||||
if (condition.duration == ActorCondition.DURATION_FOREVER || condition.duration == ActorCondition.DURATION_NONE) {
|
if (condition.duration == ActorCondition.DURATION_FOREVER || condition.duration == ActorCondition.DURATION_NONE) {
|
||||||
duration = "\u221e";
|
duration = "\u221e";
|
||||||
|
} else if (condition.duration == ActorCondition.DURATION_FOREVER_UNTIL_SLEEP) {
|
||||||
|
duration = "";
|
||||||
} else {
|
} else {
|
||||||
duration = Integer.toString(condition.duration);
|
duration = Integer.toString(condition.duration);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.gpl.rpg.AndorsTrail.view;
|
package com.gpl.rpg.AndorsTrail.view;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
|
||||||
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
|
||||||
@@ -158,8 +159,8 @@ public final class MainView extends SurfaceView
|
|||||||
// this.surfaceSize = new Size(w, h);
|
// this.surfaceSize = new Size(w, h);
|
||||||
this.surfaceSize = new Size((int) (getWidth() / scale), (int) (getHeight() / scale));
|
this.surfaceSize = new Size((int) (getWidth() / scale), (int) (getHeight() / scale));
|
||||||
this.screenSizeTileCount = new Size(
|
this.screenSizeTileCount = new Size(
|
||||||
(int) Math.floor(getWidth() / scaledTileSize)
|
getWidth() / scaledTileSize
|
||||||
,(int) Math.floor(getHeight() / scaledTileSize)
|
,getHeight() / scaledTileSize
|
||||||
);
|
);
|
||||||
|
|
||||||
if (sh.getSurfaceFrame().right != surfaceSize.width || sh.getSurfaceFrame().bottom != surfaceSize.height) {
|
if (sh.getSurfaceFrame().right != surfaceSize.width || sh.getSurfaceFrame().bottom != surfaceSize.height) {
|
||||||
@@ -226,18 +227,18 @@ public final class MainView extends SurfaceView
|
|||||||
if (scrolling && why != RedrawAllDebugReason.MapScrolling) return;
|
if (scrolling && why != RedrawAllDebugReason.MapScrolling) return;
|
||||||
if (!scrolling && movingSprites > 0 && why != RedrawAllDebugReason.SpriteMoved) return;
|
if (!scrolling && movingSprites > 0 && why != RedrawAllDebugReason.SpriteMoved) return;
|
||||||
}
|
}
|
||||||
redrawArea_(mapViewArea, null, 0, 0);
|
redrawArea_(mapViewArea, null);
|
||||||
}
|
}
|
||||||
private void redrawTile(final Coord p, RedrawTileDebugReason why) {
|
private void redrawTile(final Coord p, RedrawTileDebugReason why) {
|
||||||
if (scrolling) return;
|
if (scrolling) return;
|
||||||
p1x1.topLeft.set(p);
|
p1x1.topLeft.set(p);
|
||||||
redrawArea_(p1x1, null, 0, 0);
|
redrawArea_(p1x1, null);
|
||||||
}
|
}
|
||||||
private void redrawArea(final CoordRect area, RedrawAreaDebugReason why) {
|
private void redrawArea(final CoordRect area, RedrawAreaDebugReason why) {
|
||||||
if (scrolling) return;
|
if (scrolling) return;
|
||||||
redrawArea_(area, null, 0, 0);
|
redrawArea_(area, null);
|
||||||
}
|
}
|
||||||
private void redrawArea_(CoordRect area, final VisualEffectAnimation effect, int tileID, int textYOffset) {
|
private void redrawArea_(CoordRect area, final List<VisualEffectAnimation> effects) {
|
||||||
if (!hasSurface) return;
|
if (!hasSurface) return;
|
||||||
|
|
||||||
|
|
||||||
@@ -275,33 +276,26 @@ public final class MainView extends SurfaceView
|
|||||||
}
|
}
|
||||||
c.clipRect(redrawClip);
|
c.clipRect(redrawClip);
|
||||||
c.translate(screenOffset.x + xScroll, screenOffset.y + yScroll);
|
c.translate(screenOffset.x + xScroll, screenOffset.y + yScroll);
|
||||||
// c.scale(scale, scale);
|
|
||||||
doDrawRect(c, area);
|
doDrawRect(c, area);
|
||||||
if (effect != null) {
|
renderEffects(c, effects);
|
||||||
drawFromMapPosition(c, area, effect.position, tileID);
|
|
||||||
if (effect.displayText != null) {
|
|
||||||
drawEffectText(c, area, effect, textYOffset, effect.getTextPaint());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// c.drawRect(new Rect(
|
|
||||||
// (area.topLeft.x - mapViewArea.topLeft.x) * tileSize,
|
|
||||||
// (area.topLeft.y - mapViewArea.topLeft.y) * tileSize,
|
|
||||||
// (area.topLeft.x - mapViewArea.topLeft.x + area.size.width) * tileSize - 1,
|
|
||||||
// (area.topLeft.y - mapViewArea.topLeft.y + area.size.height) * tileSize - 1),
|
|
||||||
// redrawHighlight);
|
|
||||||
// if (touchedTile != null) c.drawRect(new Rect(
|
|
||||||
// (touchedTile.x - mapViewArea.topLeft.x) * tileSize,
|
|
||||||
// (touchedTile.y - mapViewArea.topLeft.y) * tileSize,
|
|
||||||
// (touchedTile.x - mapViewArea.topLeft.x + 1) * tileSize - 1,
|
|
||||||
// (touchedTile.y - mapViewArea.topLeft.y + 1) * tileSize - 1),
|
|
||||||
// touchHighlight);
|
|
||||||
} }
|
} }
|
||||||
} finally {
|
} finally {
|
||||||
if (c != null) holder.unlockCanvasAndPost(c);
|
if (c != null) holder.unlockCanvasAndPost(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void renderEffects(Canvas canvas ,List<VisualEffectAnimation> effects) {
|
||||||
|
if(effects == null) return;
|
||||||
|
for (VisualEffectAnimation effect : effects) {
|
||||||
|
int tileID = effect.tileID;
|
||||||
|
int textYOffset = effect.textYOffset;
|
||||||
|
drawFromMapPosition(canvas, effect.area, effect.position, tileID);
|
||||||
|
if (effect.displayText != null) {
|
||||||
|
drawEffectText(canvas, effect.area, effect, textYOffset, effect.getTextPaint());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isRedrawRectWholeScreen(Rect redrawRect) {
|
private boolean isRedrawRectWholeScreen(Rect redrawRect) {
|
||||||
// if (redrawRect.width() < mapViewArea.size.width * scaledTileSize) return false;
|
// if (redrawRect.width() < mapViewArea.size.width * scaledTileSize) return false;
|
||||||
// if (redrawRect.height() < mapViewArea.size.height * scaledTileSize) return false;
|
// if (redrawRect.height() < mapViewArea.size.height * scaledTileSize) return false;
|
||||||
@@ -317,11 +311,21 @@ public final class MainView extends SurfaceView
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
private final Rect redrawRect = new Rect();
|
private final Rect redrawRect = new Rect();
|
||||||
private void redrawAreaWithEffect(final VisualEffectAnimation effect, int tileID, int textYOffset) {
|
private void redrawAreaWithEffect(List<VisualEffectAnimation> effects) {
|
||||||
CoordRect area = effect.area;
|
CoordRect area = null;
|
||||||
// if (shouldRedrawEverythingForVisualEffect()) area = mapViewArea;
|
for (int i = 0; i < effects.size(); i++) {
|
||||||
redrawArea_(area, effect, tileID, textYOffset);
|
VisualEffectAnimation effect = effects.get(i);
|
||||||
|
if (area == null) {
|
||||||
|
area = effect.area;
|
||||||
|
} else {
|
||||||
|
area = CoordRect.union(area, effect.area);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (area != null) {
|
||||||
|
redrawArea_(area, effects);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void clearCanvas() {
|
private void clearCanvas() {
|
||||||
if (!hasSurface) return;
|
if (!hasSurface) return;
|
||||||
Canvas c = null;
|
Canvas c = null;
|
||||||
@@ -794,8 +798,8 @@ public final class MainView extends SurfaceView
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset) {
|
public void onNewAnimationFrames(List<VisualEffectAnimation> effects) {
|
||||||
redrawAreaWithEffect(animation, tileID, textYOffset);
|
redrawAreaWithEffect(effects);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -61,13 +61,9 @@ public final class TraitsInfoView {
|
|||||||
tv.setText(Integer.toString(attackCost));
|
tv.setText(Integer.toString(attackCost));
|
||||||
|
|
||||||
row = (TableRow) group.findViewById(R.id.traitsinfo_attack_chance_row);
|
row = (TableRow) group.findViewById(R.id.traitsinfo_attack_chance_row);
|
||||||
if (attackChance == 0) {
|
|
||||||
row.setVisibility(View.GONE);
|
|
||||||
} else {
|
|
||||||
row.setVisibility(View.VISIBLE);
|
|
||||||
tv = (TextView) group.findViewById(R.id.traitsinfo_attack_chance);
|
tv = (TextView) group.findViewById(R.id.traitsinfo_attack_chance);
|
||||||
tv.setText(Integer.toString(attackChance));
|
tv.setText(Integer.toString(attackChance));
|
||||||
}
|
|
||||||
|
|
||||||
row = (TableRow) group.findViewById(R.id.traitsinfo_attack_damage_row);
|
row = (TableRow) group.findViewById(R.id.traitsinfo_attack_damage_row);
|
||||||
if (damagePotential != null && damagePotential.max != 0) {
|
if (damagePotential != null && damagePotential.max != 0) {
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
BIN
AndorsTrail/assets/translation/mr.mo
Normal file
BIN
AndorsTrail/assets/translation/mr.mo
Normal file
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user