Compare commits

..

415 Commits

Author SHA1 Message Date
Nut.andor
e1a62f38e3 Merge branch 'v0.8.15' 2025-11-01 19:36:07 +01:00
Nut.andor
4d73d67cda gitignore 2025-11-01 19:35:43 +01:00
Nut.andor
c850033410 whatsnew 2025-11-01 19:31:38 +01:00
Nut.andor
b7d58ef93f mo 2025-11-01 19:20:05 +01:00
Nut.andor
b08430f0ec potc 2025-11-01 19:18:50 +01:00
Nut.andor
68c6afafa3 content next_release (Fixes & more) 2025-11-01 19:10:39 +01:00
Nut.andor
a73984370b Merge remote-tracking branch 'hosted.weblate/master' into v0.8.15 2025-11-01 18:26:51 +01:00
wsh1997.c
4cfa0b5746 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 94.8% (19931 of 21007 strings)
2025-10-31 07:03:26 +00:00
ilya
5cb13482d6 Translated using Weblate (Russian)
Currently translated at 93.7% (19704 of 21007 strings)
2025-10-31 07:03:16 +00:00
gt
bd72dd0e6b Translated using Weblate (Portuguese)
Currently translated at 79.2% (16648 of 21007 strings)
2025-10-31 07:03:02 +00:00
gt
5460fea6eb Translated using Weblate (Portuguese)
Currently translated at 79.0% (16601 of 21007 strings)
2025-10-30 04:25:29 +00:00
Daniel Stasiak
f5f21f1146 Translated using Weblate (Polish)
Currently translated at 80.8% (16987 of 21007 strings)
2025-10-30 04:25:19 +00:00
Frei Tags
86efd9704a Translated using Weblate (German)
Currently translated at 86.1% (18089 of 21007 strings)
2025-10-30 04:25:14 +00:00
Raphi
24205cebf0 Translated using Weblate (German)
Currently translated at 86.1% (18089 of 21007 strings)
2025-10-30 04:25:11 +00:00
Daniel Stasiak
6b64a8df6b Translated using Weblate (Polish)
Currently translated at 80.7% (16970 of 21007 strings)
2025-10-28 21:02:46 +01:00
Daniel Stasiak
ffcc342568 Translated using Weblate (Polish)
Currently translated at 100.0% (614 of 614 strings)
2025-10-28 21:02:43 +01:00
gt
3670a8e8f2 Translated using Weblate (Portuguese)
Currently translated at 78.8% (16562 of 21007 strings)
2025-10-27 16:03:18 +00:00
Daniel Stasiak
ef0a689037 Translated using Weblate (Polish)
Currently translated at 80.7% (16958 of 21007 strings)
2025-10-27 16:03:14 +00:00
Nut.andor
39f50ee372 Translation state 2025-10-26 20:33:09 +01:00
Nut.andor
fcf34e1e40 Merge remote-tracking branch 'hosted.weblate/master' into AT_Source_Next_Release
create new po
2025-10-26 19:48:36 +01:00
Nut.andor
97b349326f whatsnew 2025-10-26 17:07:36 +01:00
Nut.andor
3175af1436 more bosses 2025-10-26 02:58:33 +02:00
Nut.andor
89e36ad505 scroll repaired 2025-10-26 02:58:33 +02:00
Nut.andor
88b817961d New requirement "skillIncrease" to check if a skill increase for n levels is possible 2025-10-26 02:52:31 +02:00
gt
fc66726d3f Translated using Weblate (Portuguese)
Currently translated at 78.7% (16543 of 21007 strings)
2025-10-25 16:02:53 +02:00
Nut.andor
a6e6c2a6a0 0 gold items should not be buyable 2025-10-24 23:17:34 +02:00
Nut.andor
47f65b6617 another tiny scroll added 2025-10-24 14:59:30 +02:00
Nut.andor
f802a2a7a4 0 gold items should not be buyable 2025-10-24 14:52:39 +02:00
Nut.andor
d91e2191c4 2 tiny scrolls added 2025-10-24 14:52:38 +02:00
gt
7c592b6d31 Translated using Weblate (Portuguese)
Currently translated at 78.3% (16469 of 21007 strings)
2025-10-20 20:01:59 +02:00
Nut.andor
44c8323b0f 0 gold items should not be buyable 2025-10-17 11:39:43 +02:00
Frei Tags
b8323988db Translated using Weblate (German)
Currently translated at 86.1% (18089 of 21007 strings)
2025-10-16 15:07:38 +02:00
Raphi
e35624741c Translated using Weblate (German)
Currently translated at 86.1% (18089 of 21007 strings)
2025-10-16 15:07:37 +02:00
gt
88f131b610 Translated using Weblate (Portuguese)
Currently translated at 78.3% (16465 of 21007 strings)
2025-10-13 07:55:46 +02:00
Rasti K5
bb05a6342c Translated using Weblate (Kurdish (Central))
Currently translated at 0.2% (44 of 21006 strings)
2025-10-12 19:21:10 +02:00
Jinzhou Huang
d56204fed9 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 99.5% (611 of 614 strings)
2025-10-11 14:07:32 +00:00
gt
995e0eae45 Translated using Weblate (Portuguese)
Currently translated at 78.3% (16457 of 21007 strings)
2025-10-11 14:07:30 +00:00
Walter William Beckerleg Bruckman
638f53953d Translated using Weblate (Spanish)
Currently translated at 100.0% (614 of 614 strings)
2025-10-10 00:07:41 +00:00
Walter William Beckerleg Bruckman
599c4125b9 Translated using Weblate (Spanish)
Currently translated at 68.5% (14403 of 21007 strings)
2025-10-10 00:07:40 +00:00
Frei Tags
59560e25a9 Translated using Weblate (German)
Currently translated at 86.0% (18086 of 21007 strings)
2025-10-10 00:07:37 +00:00
Raphi
eb05c9a137 Translated using Weblate (German)
Currently translated at 86.0% (18086 of 21007 strings)
2025-10-10 00:07:35 +00:00
Raphi
e4a3060214 Translated using Weblate (German)
Currently translated at 86.0% (18086 of 21007 strings)
2025-10-10 00:07:34 +00:00
Raphi
3f4b40564f Translated using Weblate (German)
Currently translated at 86.0% (18086 of 21007 strings)
2025-10-10 00:07:33 +00:00
Raphi
1be5921ac9 Translated using Weblate (German)
Currently translated at 86.0% (18086 of 21007 strings)
2025-10-10 00:07:32 +00:00
Raphi
c2584be0f0 Translated using Weblate (German)
Currently translated at 86.0% (18086 of 21007 strings)
2025-10-10 00:07:30 +00:00
Raphi
825b2ddb04 Translated using Weblate (German)
Currently translated at 86.0% (18086 of 21007 strings)
2025-10-10 00:07:28 +00:00
Raphi
d33083b4c4 Translated using Weblate (German)
Currently translated at 86.0% (18086 of 21007 strings)
2025-10-10 00:07:27 +00:00
Renamed1986
8a9fe29259 Translated using Weblate (Russian)
Currently translated at 93.6% (19676 of 21007 strings)
2025-10-08 01:02:17 +02:00
gt
557b066a72 Translated using Weblate (Portuguese)
Currently translated at 78.1% (16425 of 21007 strings)
2025-10-08 01:02:15 +02:00
ilya
0ad4e5c701 Translated using Weblate (Russian)
Currently translated at 100.0% (614 of 614 strings)
2025-10-08 01:02:14 +02:00
xvy
c21e2313c3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 94.7% (19909 of 21007 strings)
2025-10-06 16:02:06 +00:00
Nut.andor
9abec9d873 debug 2025-10-05 01:26:49 +02:00
Nut.andor
b2eccfa823 paper sword+shield 2025-10-04 02:10:18 +02:00
Nut.andor
d5def64e4a Parsnips for Raphi 2025-10-04 01:51:27 +02:00
Nut.andor
a264624a2f removed doublets, adding flip attribute 2025-10-03 23:55:06 +02:00
Nut.andor
1d5a3d1fe0 Merge branch 'pulls/1829009049/92' into AT_Source_Next_Release 2025-10-03 23:31:34 +02:00
xvy
34f00c043c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 94.7% (19898 of 21007 strings)
2025-10-03 22:02:17 +02:00
Raphi
e5f433c143 Translated using Weblate (German)
Currently translated at 86.0% (18069 of 21007 strings)
2025-10-03 22:02:15 +02:00
Frei Tags
740eb2d963 Translated using Weblate (German)
Currently translated at 86.0% (18069 of 21007 strings)
2025-10-03 22:02:14 +02:00
Raphi
5ace9336d3 Translated using Weblate (German)
Currently translated at 86.0% (18069 of 21007 strings)
2025-10-03 22:02:14 +02:00
Raphi
6e23098cd4 Translated using Weblate (German)
Currently translated at 86.0% (18069 of 21007 strings)
2025-10-03 22:02:13 +02:00
Raphi
e9ec25a7a5 Translated using Weblate (German)
Currently translated at 86.0% (18069 of 21007 strings)
2025-10-03 22:02:13 +02:00
Raphi
b88a4b4c38 Translated using Weblate (German)
Currently translated at 86.0% (18069 of 21007 strings)
2025-10-03 22:02:12 +02:00
Raphi
d02a2ea596 Translated using Weblate (German)
Currently translated at 86.0% (18069 of 21007 strings)
2025-10-03 22:02:11 +02:00
Raphi
bc3ae1c030 Translated using Weblate (German)
Currently translated at 86.0% (18069 of 21007 strings)
2025-10-03 22:02:11 +02:00
Raphi
e8343925d4 Translated using Weblate (German)
Currently translated at 86.0% (18069 of 21007 strings)
2025-10-03 22:02:10 +02:00
Raphi
27e6214293 Translated using Weblate (German)
Currently translated at 86.0% (18069 of 21007 strings)
2025-10-03 22:02:10 +02:00
Nut.andor
5c518cfd40 typo 2025-10-03 16:50:15 +02:00
gt
38954dd68d Translated using Weblate (Portuguese)
Currently translated at 78.0% (16406 of 21007 strings)
2025-10-02 18:02:05 +02:00
xvy
bb861d612d Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 94.2% (19793 of 21007 strings)
2025-09-28 23:02:16 +02:00
Damien
110f8014dd Translated using Weblate (French)
Currently translated at 77.9% (16365 of 21007 strings)
2025-09-28 23:02:12 +02:00
Raphi
aa04017596 Translated using Weblate (German)
Currently translated at 85.9% (18048 of 21007 strings)
2025-09-28 23:02:09 +02:00
Frei Tags
328612cce8 Translated using Weblate (German)
Currently translated at 85.9% (18048 of 21007 strings)
2025-09-28 23:02:07 +02:00
Raphi
5b1e994941 Translated using Weblate (German)
Currently translated at 85.9% (18048 of 21007 strings)
2025-09-28 23:02:06 +02:00
Nut.andor
ba7c077fe7 missing , 2025-09-28 04:46:02 +02:00
gt
cf3069f919 Translated using Weblate (Portuguese)
Currently translated at 78.0% (16392 of 21007 strings)
2025-09-27 20:53:53 +02:00
Raphi
9693ecbe27 Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:27 +00:00
Frei Tags
1aad9229d9 Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:26 +00:00
Raphi
5a480f0c9c Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:24 +00:00
Raphi
0fbcc19916 Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:23 +00:00
Raphi
80a2f11a40 Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:22 +00:00
Raphi
83a7ceab8a Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:21 +00:00
Raphi
598f1458d2 Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:20 +00:00
Raphi
3282688d37 Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:19 +00:00
Raphi
2b4ac1ad71 Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:17 +00:00
Raphi
5f71026da9 Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:16 +00:00
Raphi
f61bf8607e Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:14 +00:00
Raphi
a2ae78664c Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:13 +00:00
Raphi
d6e5a8763c Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:11 +00:00
Raphi
8a0aefeecf Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:10 +00:00
Raphi
c4c72c4b10 Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:08 +00:00
Raphi
3d93553083 Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:07 +00:00
Raphi
49e451329c Translated using Weblate (German)
Currently translated at 85.8% (18045 of 21007 strings)
2025-09-26 20:02:05 +00:00
Artem
8f73d39716 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (21007 of 21007 strings)
2025-09-24 17:02:44 +02:00
gt
4cdda40373 Translated using Weblate (Portuguese)
Currently translated at 77.9% (16368 of 21007 strings)
2025-09-24 17:02:41 +02:00
Raphi
92d9f8e4ae Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:38 +02:00
Frei Tags
0f688f555b Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:37 +02:00
Raphi
0f5757baeb Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:35 +02:00
Raphi
d994e81c70 Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:33 +02:00
Raphi
c1b4343eb5 Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:27 +02:00
Raphi
0c5c7ac30c Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:24 +02:00
Raphi
0da64a6cbd Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:22 +02:00
Raphi
4cc0e7c1f1 Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:20 +02:00
Raphi
917b72282d Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:18 +02:00
Raphi
bac3e55ada Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:17 +02:00
Raphi
6089c67333 Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:15 +02:00
Raphi
c5795046f4 Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:13 +02:00
Raphi
e9d1272c1e Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:11 +02:00
Raphi
af994a15ce Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:09 +02:00
Raphi
0119f296cb Translated using Weblate (German)
Currently translated at 85.4% (17945 of 21007 strings)
2025-09-24 17:02:07 +02:00
Frei Tags
424402ae52 Translated using Weblate (German)
Currently translated at 84.8% (17834 of 21007 strings)
2025-09-23 09:01:02 +02:00
Raphi
fe27fd303d Translated using Weblate (German)
Currently translated at 84.8% (17834 of 21007 strings)
2025-09-23 09:01:01 +02:00
gt
1cb18db38a Translated using Weblate (Portuguese)
Currently translated at 77.7% (16328 of 21007 strings)
2025-09-21 22:02:13 +02:00
Nut.andor
aa05f73961 simplification of update and beta
by adding versionNameSuffix for debug and new beta build profile
2025-09-21 21:33:05 +02:00
Nut.andor
64450dca3a gradle update 2025-09-21 21:18:24 +02:00
Nut.andor
18288a5338 used overload 2025-09-21 19:47:07 +02:00
Nut.andor
dcf96d1a07 Adding cache function 2025-09-21 19:39:28 +02:00
Nut.andor
d2c73ad07a Possibility to flip a Monster Sprite horizontally 2025-09-21 19:21:53 +02:00
Nut.andor
3fd1b5904a Merge branch 'pulls/1829009049/91' into AT_Source_Next_Release 2025-09-21 19:17:33 +02:00
Nut.andor
a9861b1c41 Android upgrade (15) 2025-09-21 18:35:02 +02:00
gt
07bd912056 Translated using Weblate (Portuguese)
Currently translated at 77.3% (16252 of 21007 strings)
2025-09-20 21:29:47 +02:00
JohannesBoanerges
36b963628a Translated using Weblate (German)
Currently translated at 84.7% (17804 of 21007 strings)
2025-09-20 21:29:45 +02:00
Frei Tags
fb97c80bc4 Translated using Weblate (German)
Currently translated at 84.7% (17804 of 21007 strings)
2025-09-20 21:29:44 +02:00
Raphi
f45f4ac5d8 Translated using Weblate (German)
Currently translated at 84.7% (17804 of 21007 strings)
2025-09-20 21:29:44 +02:00
gt
dc47e6e73f Translated using Weblate (Portuguese)
Currently translated at 76.7% (16133 of 21007 strings)
2025-09-19 17:02:13 +00:00
Raphi
6c4f5b1488 Translated using Weblate (German)
Currently translated at 84.5% (17757 of 21007 strings)
2025-09-19 17:02:10 +00:00
Frei Tags
e08457d646 Translated using Weblate (German)
Currently translated at 84.5% (17757 of 21007 strings)
2025-09-19 17:02:08 +00:00
Raphi
8b9d1c725d Translated using Weblate (German)
Currently translated at 84.5% (17757 of 21007 strings)
2025-09-19 17:02:07 +00:00
gt
601bd747d0 Translated using Weblate (Portuguese)
Currently translated at 76.6% (16100 of 21007 strings)
2025-09-18 14:02:15 +00:00
ssantos
563a3b16c5 Translated using Weblate (Portuguese)
Currently translated at 76.6% (16100 of 21007 strings)
2025-09-18 14:02:12 +00:00
Frei Tags
6c52850d1d Translated using Weblate (German)
Currently translated at 84.4% (17744 of 21007 strings)
2025-09-18 14:02:06 +00:00
gt
80da982d4f Translated using Weblate (Portuguese)
Currently translated at 72.5% (15244 of 21007 strings)
2025-09-17 12:19:49 +02:00
Frei Tags
0bfca92eaa Translated using Weblate (German)
Currently translated at 100.0% (614 of 614 strings)
2025-09-17 12:19:48 +02:00
gt
86a7af6d5b Translated using Weblate (Portuguese)
Currently translated at 72.4% (15219 of 21007 strings)
2025-09-16 13:44:01 +02:00
gt
83a58c1113 Translated using Weblate (Portuguese)
Currently translated at 72.3% (15196 of 21007 strings)
2025-09-15 20:38:36 +02:00
Álvaro Palacios
c3d607981e Translated using Weblate (Spanish)
Currently translated at 68.5% (14401 of 21007 strings)
2025-09-15 20:38:33 +02:00
gt
51d563435a Translated using Weblate (Portuguese)
Currently translated at 100.0% (614 of 614 strings)
2025-09-15 20:38:32 +02:00
ssantos
1aa4b13809 Translated using Weblate (Portuguese)
Currently translated at 72.2% (15175 of 21007 strings)
2025-09-14 18:02:12 +00:00
gt
2e4a1d0d7f Translated using Weblate (Portuguese)
Currently translated at 72.2% (15175 of 21007 strings)
2025-09-14 18:02:10 +00:00
Frei Tags
1be14557d6 Translated using Weblate (German)
Currently translated at 84.4% (17743 of 21007 strings)
2025-09-14 18:02:06 +00:00
Nut.andor
e1a42d6dbf faction scores technic renewed 2025-09-13 19:09:16 +02:00
Nut.andor
6a264d6a8d itemCategories: Default: "other" 2025-09-13 18:23:10 +02:00
gt
d70f269c39 Translated using Weblate (Portuguese)
Currently translated at 71.9% (15112 of 21007 strings)
2025-09-13 12:14:38 +02:00
Raphi
030eb9edb1 Translated using Weblate (German)
Currently translated at 84.3% (17729 of 21007 strings)
2025-09-13 12:14:35 +02:00
Frei Tags
8c8902bb70 Translated using Weblate (German)
Currently translated at 84.3% (17729 of 21007 strings)
2025-09-13 12:14:35 +02:00
gt
b63b3ec63f Translated using Weblate (Portuguese)
Currently translated at 71.9% (15105 of 21007 strings)
2025-09-12 12:02:04 +00:00
gt
246501c2d6 Translated using Weblate (Portuguese)
Currently translated at 71.2% (14958 of 21007 strings)
2025-09-11 12:02:03 +02:00
gt
48a67c3951 Translated using Weblate (Portuguese)
Currently translated at 71.2% (14957 of 21007 strings)
2025-09-10 08:15:25 +02:00
Raphi
c3bcaf9827 Translated using Weblate (German)
Currently translated at 84.2% (17690 of 21007 strings)
2025-09-10 08:15:23 +02:00
Nut.andor
1e6907349a Pull Request #92: Possibility to flip a Monster Sprite horizontally 2025-09-09 14:23:16 +02:00
gt
211018d297 Translated using Weblate (Portuguese)
Currently translated at 71.1% (14947 of 21007 strings)
2025-09-09 13:02:14 +02:00
Ruben Rodriguez Martin
d8aa0ecdab Translated using Weblate (Spanish)
Currently translated at 68.5% (14394 of 21007 strings)
2025-09-09 13:02:09 +02:00
Nut.andor
84f30525bd map_trail-1 footprints 2025-09-07 18:24:31 +02:00
gt
f6fcbb111f Translated using Weblate (Portuguese)
Currently translated at 70.9% (14905 of 21007 strings)
2025-09-07 17:02:07 +02:00
ssantos
2b6e9f9eca Translated using Weblate (Portuguese)
Currently translated at 70.9% (14905 of 21007 strings)
2025-09-07 17:02:06 +02:00
gt
eb25cb5757 Translated using Weblate (Portuguese)
Currently translated at 70.9% (14905 of 21007 strings)
2025-09-07 17:02:05 +02:00
ssantos
e4abe957b1 Translated using Weblate (Portuguese)
Currently translated at 68.2% (14346 of 21007 strings)
2025-09-04 23:02:04 +02:00
gt
3ea586090b Translated using Weblate (Portuguese)
Currently translated at 68.2% (14346 of 21007 strings)
2025-09-04 23:02:03 +02:00
Raphi
c068fb1742 Revert monsterlist changes wilderness 2025-09-04 18:26:56 +02:00
Raphi
524e48b0fc Make Mikhail always look left 2025-09-04 18:26:12 +02:00
Raphi
fbfee0fb22 Revert monsterlist changes crossglen animals 2025-09-04 18:25:36 +02:00
Raphi
c761689bb6 deactivate debug 2025-09-04 18:08:21 +02:00
Raphi
07f7346cd6 more check 2025-09-04 18:07:38 +02:00
Raphi
127b897156 In debug it works??? 2025-09-04 17:51:41 +02:00
Raphi
5857b88dcb more check if I am dumb 2025-09-04 16:23:18 +02:00
Raphi
86cbac0096 trying stuff that doesn't work 2025-09-04 16:13:00 +02:00
Nut.andor
bdfbb70a40 Dbg 2025-09-04 01:21:31 +02:00
Raphi
73f5ede48e Changed boolean to int for random probability 2025-09-03 17:38:56 +02:00
Raphi
a2fccb3b72 Reverted testing parameter to false 2025-09-03 17:25:55 +02:00
Raphi
b824357bcb more fixes 2025-09-03 17:19:01 +02:00
Raphi
62cacf81ac fixes 2025-09-03 17:12:21 +02:00
Raphi
0050f70f1e Moved random to Monster constructor 2025-09-03 17:06:42 +02:00
Raphi
fd2c9c2b12 Added randomness to flip 2025-09-03 17:01:45 +02:00
Raphi
b0dd54801b Maybe I should uninstall before updating 2025-09-03 16:13:57 +02:00
Raphi
9e0546bae2 Nope, still not working 2025-09-03 16:03:01 +02:00
Raphi
342cbd7f43 Perhaps I am dumb 2025-09-03 15:54:50 +02:00
Raphi
091aa8b73a Just to make sure I am not extremely dumb 2025-09-03 15:52:35 +02:00
Raphi
071354c21e fixes 2025-09-03 15:49:11 +02:00
Raphi
520f6c2d2e Small code cleanup 2025-09-03 15:21:54 +02:00
Raphi
9164e9a900 created if statement in TileCollection.java 2025-09-03 14:39:31 +02:00
Raphi
e53172d18f I forgot stuff... 2025-09-03 14:30:39 +02:00
Raphi
cf7dd4d0f4 Added Matrix import 2025-09-03 13:57:49 +02:00
Raphi
fe329e1ed2 Assigned allow... to the rabid boar for testing purposes 2025-09-03 13:10:41 +02:00
Raphi
53f315dfe7 Add allow... to MonsterTypeParser with default value of false 2025-09-03 13:07:50 +02:00
Raphi
152816e3ca Add allowHorizontalSpriteFlip in Constructor of Monster.java 2025-09-03 12:16:41 +02:00
Raphi
e4230b5f51 Flip Sprite horizontally whenever allowHorizontalSpriteFlip is true 2025-09-03 11:35:14 +02:00
Raphi
ff65ec3023 Prepare flipping in TileCollection.java 2025-09-03 11:26:07 +02:00
Raphi
786a772998 Assign allowHorizontalSpriteFlip as a parameter to tiles.drawTiles 2025-09-03 11:24:39 +02:00
Raphi
b2c10b60c7 Add variable in Actor.java to allow horizontal flipping of sprite 2025-09-03 11:17:40 +02:00
ssantos
04db088df3 Translated using Weblate (Portuguese)
Currently translated at 65.9% (13851 of 21007 strings)
2025-09-03 02:02:09 +02:00
gt
cdfa3e532a Translated using Weblate (Portuguese)
Currently translated at 65.9% (13851 of 21007 strings)
2025-09-03 02:02:08 +02:00
Raphi
c454cda3e1 Translated using Weblate (German)
Currently translated at 84.1% (17687 of 21007 strings)
2025-09-03 02:02:04 +02:00
ilya
59c6f7e642 Translated using Weblate (Russian)
Currently translated at 100.0% (614 of 614 strings)
2025-09-03 02:02:01 +02:00
xvy
d7d2c8629f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 94.1% (19769 of 21007 strings)
2025-09-01 14:02:15 +00:00
gt
1bb7397d9e Translated using Weblate (Portuguese)
Currently translated at 64.5% (13555 of 21007 strings)
2025-09-01 14:02:11 +00:00
Frei Tags
caca48752f Translated using Weblate (German)
Currently translated at 84.1% (17686 of 21007 strings)
2025-09-01 14:02:07 +00:00
xvy
9c3bb73cd5 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 93.5% (19652 of 21007 strings)
2025-08-31 09:03:30 +00:00
gt
b2db0c406b Translated using Weblate (Portuguese)
Currently translated at 64.2% (13506 of 21007 strings)
2025-08-31 09:03:27 +00:00
gt
1b22562602 Translated using Weblate (Portuguese)
Currently translated at 100.0% (614 of 614 strings)
2025-08-31 09:03:25 +00:00
xvy
807cd43a25 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (614 of 614 strings)
2025-08-30 00:02:06 +02:00
xvy
6da895e910 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 93.4% (19631 of 21007 strings)
2025-08-30 00:02:05 +02:00
gt
90eeab54d5 Translated using Weblate (Portuguese)
Currently translated at 64.1% (13480 of 21007 strings)
2025-08-30 00:02:02 +02:00
gt
e7f3022244 Translated using Weblate (Portuguese)
Currently translated at 99.8% (613 of 614 strings)
2025-08-30 00:02:00 +02:00
Nut.andor
f64981a0a6 prepared next version nbr 2025-08-28 18:16:20 +02:00
Nut.andor
7b290271ce Merge branch 'master' into AT_Source_Next_Release 2025-08-28 18:12:26 +02:00
Максим Горпиніч
70c9822475 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (614 of 614 strings)
2025-08-28 12:03:24 +00:00
gt
3a6158c1b0 Translated using Weblate (Portuguese)
Currently translated at 64.1% (13473 of 21007 strings)
2025-08-28 12:03:21 +00:00
gt
71601ccf8a Translated using Weblate (Portuguese)
Currently translated at 64.0% (13454 of 21007 strings)
2025-08-26 23:02:21 +00:00
Максим Горпиніч
66eafdd3d7 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (21007 of 21007 strings)
2025-08-26 00:02:43 +02:00
xvy
609ae07f3c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 93.4% (19631 of 21007 strings)
2025-08-26 00:02:36 +02:00
gt
bbb6847f73 Translated using Weblate (Portuguese)
Currently translated at 63.9% (13428 of 21007 strings)
2025-08-26 00:02:31 +02:00
Nut.andor
4d8c3e669a whatsnew 2025-08-24 13:55:56 +02:00
Nut.andor
75ebcbcac8 translation state 2025-08-24 09:54:57 +02:00
Nut.andor
24bb835dd5 Merge branch 'v0.8.14' 2025-08-23 11:51:23 +02:00
Nut.andor
0d4e757af5 completion 2025-08-23 11:49:58 +02:00
Nut.andor
d576094221 potc 2025-08-23 11:46:26 +02:00
Nut.andor
c574a1be19 content 2025-08-23 11:38:50 +02:00
Nut.andor
f49bb528c0 Version 2025-08-23 11:14:03 +02:00
Nut.andor
829a8f31a0 Merge remote-tracking branch 'hosted.weblate/master' into v0.8.14 2025-08-23 10:55:05 +02:00
ilya
4344ad09fb Translated using Weblate (Russian)
Currently translated at 100.0% (19629 of 19629 strings)
2025-08-23 08:45:20 +02:00
gt
509af373f9 Translated using Weblate (Portuguese)
Currently translated at 67.9% (13339 of 19629 strings)
2025-08-23 08:45:19 +02:00
gt
edc83e4943 Translated using Weblate (Portuguese)
Currently translated at 67.5% (13254 of 19629 strings)
2025-08-21 17:02:05 +00:00
Nut.andor
fd3dfbb500 Pull Request #91: Android upgrade (15) 2025-08-20 17:07:58 +02:00
gt
3e80a5421e Translated using Weblate (Portuguese)
Currently translated at 66.7% (13107 of 19629 strings)
2025-08-19 19:02:06 +00:00
gt
c866b2b555 Translated using Weblate (Portuguese)
Currently translated at 66.1% (12994 of 19629 strings)
2025-08-18 19:02:03 +02:00
Daniel Stasiak
f652ec300a Translated using Weblate (Polish)
Currently translated at 86.2% (16923 of 19629 strings)
2025-08-18 19:01:59 +02:00
gt
2a6ffe882b Translated using Weblate (Portuguese)
Currently translated at 66.1% (12991 of 19629 strings)
2025-08-15 21:02:24 +00:00
Nut Andor
0e207fe63d Translated using Weblate (German)
Currently translated at 89.9% (17655 of 19629 strings)
2025-08-15 21:02:20 +00:00
gt
bdfa2ce4b1 Translated using Weblate (Portuguese)
Currently translated at 66.1% (12989 of 19629 strings)
2025-08-14 20:02:23 +02:00
ilya
b7c1239508 Translated using Weblate (Russian)
Currently translated at 100.0% (19629 of 19629 strings)
2025-08-12 19:02:06 +02:00
gt
15365cfd76 Translated using Weblate (Portuguese)
Currently translated at 66.1% (12986 of 19629 strings)
2025-08-12 19:02:02 +02:00
gt
b3ae501e67 Translated using Weblate (Portuguese)
Currently translated at 99.8% (611 of 612 strings)
2025-08-12 19:01:59 +02:00
xvy
e49828a549 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-08-11 05:02:09 +00:00
gt
91c21b6ae6 Translated using Weblate (Portuguese)
Currently translated at 65.2% (12810 of 19629 strings)
2025-08-11 05:02:05 +00:00
xvy
87e579b67c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-08-09 21:11:02 +02:00
gt
a105a8e399 Translated using Weblate (Portuguese)
Currently translated at 64.9% (12743 of 19629 strings)
2025-08-09 21:11:00 +02:00
gt
23cb379df8 Translated using Weblate (Portuguese)
Currently translated at 63.5% (12469 of 19629 strings)
2025-08-08 22:02:11 +00:00
Raphi
496323efe0 Translated using Weblate (German)
Currently translated at 89.9% (17655 of 19629 strings)
2025-08-08 22:02:06 +00:00
Nut Andor
d422ccb6d5 Translated using Weblate (Thai)
Currently translated at 14.5% (89 of 612 strings)
2025-08-03 23:02:43 +00:00
OMGeeky
1d9dae18ff Translated using Weblate (Dutch)
Currently translated at 98.0% (600 of 612 strings)
2025-08-03 23:02:41 +00:00
Nut Andor
361a9fd5e6 Translated using Weblate (Swedish)
Currently translated at 91.3% (559 of 612 strings)
2025-08-03 23:02:39 +00:00
Nut.andor
810f5a2fc8 added graphic 2025-08-03 23:18:20 +02:00
OMGeeky
a4fbe20871 refactor window insets handling for fullscreen and touch area
Signed-off-by: OMGeeky <aalaalgmx@gmail.com>
2025-08-03 18:57:39 +02:00
xvy
c2f8074968 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-08-02 21:02:31 +02:00
Erick Ferraz Vieira
ee0b609df5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 79.8% (15673 of 19629 strings)
2025-08-02 21:02:27 +02:00
Erick Ferraz Vieira
a7be2c7995 Translated using Weblate (Portuguese)
Currently translated at 63.3% (12434 of 19629 strings)
2025-08-02 21:02:24 +02:00
Erick Ferraz Vieira
da1c1e3339 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.6% (610 of 612 strings)
2025-08-02 21:02:19 +02:00
xvy
e68b637140 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-31 14:02:12 +02:00
OMGeeky
0d73ee10fa set usable padding for title logo in StartScreenActivity 2025-07-29 05:52:29 +02:00
OMGeeky
f20529df62 setSystemBarsBehavior so it disappears automatically when in fullscreen
also don't run code, that is deprecated when on higher version
2025-07-29 05:38:01 +02:00
OMGeeky
ffef76b28b continue implementing edge-to-edge behaviour and insets 2025-07-29 05:05:40 +02:00
OMGeeky
cd49473e86 continue implementing edge-to-edge behaviour and insets (Start-Screen) 2025-07-29 04:06:06 +02:00
OMGeeky
363a395169 start implementing edge-to-edge behaviour and insets 2025-07-29 03:33:10 +02:00
OMGeeky
a09176d344 Refactor activity view setup to use app.setView for consistency 2025-07-29 03:05:50 +02:00
OMGeeky
f884af20b8 Replace custom Pair implementation with android.util.Pair 2025-07-29 00:08:02 +02:00
OMGeeky
a2859fbc56 Remove unnecessary @TargetApi annotations and remove unnecessary SDK-Version check 2025-07-28 23:33:23 +02:00
OMGeeky
11d5966a51 Sort summary output of errors and warnings by file path 2025-07-28 22:00:24 +02:00
OMGeeky
fd169e9f40 Add total error and warning summary to format specifier check output 2025-07-28 21:59:19 +02:00
OMGeeky
149ad3ae1c Differentiate between missing and extra format specifiers
Missing format specifiers in translated strings are now reported as warnings,
while extra format specifiers are reported as errors.
This change allows the script to pass if only warnings (missing specifiers)
are present, but still fail if there are errors (extra specifiers).

The summary now also includes counts for both errors and warnings per file.
2025-07-28 21:57:29 +02:00
OMGeeky
6e74243ea8 Refactor: Improve format specifier regex
The regular expression for identifying format specifiers in XML string resources has been updated. The new regex now correctly identifies specifiers like `%.2f` which include precision for floating point numbers. This change ensures more accurate validation of format specifiers.
2025-07-28 21:51:59 +02:00
OMGeeky
9c4009034f Enhance format specifier check script output
The script now provides a summary of errors per file at the end of its execution.
This makes it easier to identify which translation files have issues with format specifiers or non-escaped percentage signs.
2025-07-28 21:51:31 +02:00
OMGeeky
0422beb855 Update string formatter check script
- Add scanning for used keys in Java files.
- Refactor argument parsing to separate project root and res root.
- If no specific key is provided, check only keys used in Java code.
2025-07-28 21:35:38 +02:00
OMGeeky
2cc12b3530 Improve check_format_specifiers.py to check all keys if none specified 2025-07-28 21:25:28 +02:00
OMGeeky
80997ddc36 Exit with error code on specifier mismatches in format checker 2025-07-28 21:20:17 +02:00
OMGeeky
c244ba1390 Added checks for unescaped percent signs 2025-07-28 21:12:23 +02:00
OMGeeky
8a74ffd2ef Add Python script to check format specifier consistency in Android strings
This script, `check_format_specifiers.py`, helps ensure that format
specifiers (like `%s`, `%d`, `%1$s`) are used consistently across
different language versions of a string resource in an Android project.
2025-07-28 21:01:11 +02:00
OMGeeky
57f7a0dc91 Refactor fullscreen mode setting
Move fullscreen mode setting logic into a static method in AndorsTrailApplication and use it in Preferences and CustomDialogFactory.
2025-07-28 18:06:43 +02:00
Reptalica
c51eecc7c6 Translated using Weblate (Vietnamese)
Currently translated at 99.8% (611 of 612 strings)
2025-07-28 18:06:25 +02:00
Reptalica
1cf60ba813 Translated using Weblate (Vietnamese)
Currently translated at 3.6% (725 of 19628 strings)
2025-07-28 18:06:23 +02:00
Enayatullah Faizi
e1a4f44824 Translated using Weblate (Pashto)
Currently translated at 0.1% (3 of 19628 strings)
2025-07-28 18:06:21 +02:00
xvy
c8ba52bd7c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-28 18:06:18 +02:00
Raphi
376037daa6 Translated using Weblate (German)
Currently translated at 89.9% (17650 of 19629 strings)
2025-07-28 18:06:15 +02:00
OMGeeky
78cf59c90c Updated full screen flag for API 30+ 2025-07-28 18:00:54 +02:00
Nut.andor
ec0d1b0775 whatsnew 2025-07-26 02:06:48 +02:00
Nut.andor
f9bdc0a0ab Merge remote-tracking branch 'hosted.weblate/master' into v0.8.14 2025-07-26 00:37:42 +02:00
Hodex99
cb3f60ae02 Translated using Weblate (Indonesian)
Currently translated at 84.4% (16583 of 19629 strings)
2025-07-26 00:31:36 +02:00
Nut.andor
e2db3ca914 Merge branch 'AT_Source_Next_Release' into v0.8.14 2025-07-26 00:29:22 +02:00
Nut.andor
c4ac6b1046 whatsnew 2025-07-26 00:18:21 +02:00
xvy
d0b93854e5 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-24 00:53:53 +02:00
Nut.andor
a5ed53a763 added graphic 2025-07-19 01:09:00 +02:00
xvy
e70302d39f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-18 20:03:28 +00:00
Daniel Stasiak
10345d814d Translated using Weblate (Polish)
Currently translated at 86.1% (16918 of 19629 strings)
2025-07-18 20:03:24 +00:00
Nut Andor
e56748ea79 Translated using Weblate (Polish)
Currently translated at 86.1% (16918 of 19629 strings)
2025-07-18 20:03:23 +00:00
Thibaut Colin
62ab2c128e Translated using Weblate (French)
Currently translated at 83.1% (16318 of 19629 strings)
2025-07-17 21:03:46 +02:00
Thibaut Colin
5df6d4038d Translated using Weblate (French)
Currently translated at 83.1% (16318 of 19629 strings)
2025-07-17 21:03:46 +02:00
Thibaut Colin
e92a2f60e9 Translated using Weblate (French)
Currently translated at 83.1% (16318 of 19629 strings)
2025-07-17 21:03:45 +02:00
Nut.andor
d6b11d8242 added graphic 2025-07-17 20:48:09 +02:00
Nut.andor
d9e7509daa whatsnew 2025-07-17 20:48:09 +02:00
Nut.andor
e15583e3c5 settings 2025-07-17 20:48:08 +02:00
xvy
d03f6bda43 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-15 10:01:56 +02:00
xvy
0d858efb4e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-15 10:01:54 +02:00
xvy
530b0b6c8f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-15 10:01:51 +02:00
xvy
9a71461b93 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-15 10:01:50 +02:00
xvy
a54e70c539 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-14 07:02:07 +00:00
xvy
33f76fc970 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-14 07:02:06 +00:00
xvy
d081af6385 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-14 07:02:05 +00:00
xvy
7a41390c4c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-14 07:02:04 +00:00
xvy
1ddd03aad3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-14 07:02:03 +00:00
xvy
b1ce0f2c40 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-14 07:02:01 +00:00
xvy
3166dc5708 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-14 07:02:00 +00:00
xvy
2d5bd55733 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-14 07:01:58 +00:00
xvy
c21f23a377 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-14 07:01:57 +00:00
xvy
e236d6d025 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-14 07:01:56 +00:00
xvy
487dfa76db Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:14 +02:00
xvy
cc7e6b57b8 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:13 +02:00
xvy
18929a47c0 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:12 +02:00
xvy
57481e1ba2 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:11 +02:00
xvy
0ece679db0 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:09 +02:00
xvy
8b51be44db Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:08 +02:00
xvy
19689c1edf Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:07 +02:00
xvy
b8c082f06c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:05 +02:00
xvy
7b4a01767f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:03 +02:00
xvy
f268e284c3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:02 +02:00
xvy
8533bcefb6 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:01 +02:00
xvy
0fa29efd97 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:12:00 +02:00
xvy
fc91f8e21b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:11:58 +02:00
xvy
d36825377b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:11:57 +02:00
xvy
55dd4950e0 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-11 17:11:56 +02:00
xvy
fe23eb4e6f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-10 16:54:38 +02:00
xvy
cc45029502 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-10 16:54:38 +02:00
xvy
5ce621a5e2 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-10 16:54:38 +02:00
xvy
8770f936c6 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-10 16:54:37 +02:00
xvy
af818c2d4f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-09 06:02:11 +00:00
xvy
1a6d694331 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-06 08:04:47 +00:00
xvy
11cfe5a29f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-06 08:04:45 +00:00
xvy
61a3024c9a Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-06 08:04:44 +00:00
xvy
fbcd8826d8 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-06 08:04:43 +00:00
xvy
3335db78d8 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-06 08:04:41 +00:00
Flo
4c67b7f43f Translated using Weblate (French)
Currently translated at 83.0% (16300 of 19629 strings)
2025-07-05 00:01:52 +02:00
Bora Atıcı
a79b7ed228 Translated using Weblate (Turkish)
Currently translated at 99.5% (609 of 612 strings)
2025-07-02 16:15:00 +02:00
xvy
b543000eae Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-02 16:14:59 +02:00
xvy
a8f84da60e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-02 16:14:59 +02:00
xvy
28ab26a191 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-07-02 16:14:58 +02:00
Bora Atıcı
8a2b7cf1d5 Translated using Weblate (Turkish)
Currently translated at 31.3% (6158 of 19629 strings)
2025-07-02 16:14:57 +02:00
xvy
5642aaaccc Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-06-30 14:02:02 +02:00
xvy
94229dcaec Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-06-30 14:02:00 +02:00
xvy
3b025b759b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-06-30 14:01:59 +02:00
xvy
ff554e95b7 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-06-30 14:01:57 +02:00
xvy
31deb90ba3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-06-30 14:01:56 +02:00
xvy
d0a9ec69d1 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-06-30 14:01:55 +02:00
Flo
4b54cba1fd Translated using Weblate (French)
Currently translated at 83.0% (16300 of 19629 strings)
2025-06-30 14:01:52 +02:00
thaddeus002
da9aafc9cd Translated using Weblate (French)
Currently translated at 83.0% (16300 of 19629 strings)
2025-06-30 14:01:48 +02:00
Flo
23be00403c Translated using Weblate (French)
Currently translated at 82.9% (16285 of 19629 strings)
2025-06-29 00:01:48 +02:00
xvy
d434dba616 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-06-26 15:05:58 +00:00
Flo
b2aac53c5a Translated using Weblate (French)
Currently translated at 82.9% (16285 of 19629 strings)
2025-06-26 15:05:55 +00:00
thaddeus002
4408163218 Translated using Weblate (French)
Currently translated at 82.9% (16285 of 19629 strings)
2025-06-26 15:05:54 +00:00
xvy
00a2eb7623 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19629 of 19629 strings)
2025-06-25 15:01:52 +00:00
Nut.andor
25b70ae818 typos 2025-06-24 00:00:27 +02:00
Nut.andor
1aa98de579 new png 2025-06-24 00:00:27 +02:00
xvy
c925bfadc7 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.6% (19552 of 19629 strings)
2025-06-23 17:01:54 +00:00
Flo
3b8aa60676 Translated using Weblate (French)
Currently translated at 82.8% (16262 of 19629 strings)
2025-06-23 17:01:51 +00:00
Flo
c4e0a896a8 Translated using Weblate (French)
Currently translated at 100.0% (612 of 612 strings)
2025-06-23 17:01:49 +00:00
Nut.andor
be027bb303 Item description could have $playername 2025-06-22 22:25:23 +02:00
Nut.andor
d2fe192466 settings 2025-06-22 22:25:23 +02:00
Lumiraptor
8ed9c1cd30 Translated using Weblate (French)
Currently translated at 82.6% (16218 of 19629 strings)
2025-06-21 03:25:07 +02:00
Nut.andor
469d2bfc46 new part of falsly extended map_cavewall_5 moved to new map_cavewall_6 2025-06-19 16:19:40 +02:00
Nut.andor
ce399ffe1f settings 2025-06-19 12:35:13 +02:00
Nut.andor
054c6e5d23 new map_outdoor_2.png 2025-06-17 22:15:54 +02:00
Renamed1986
dce00a76a1 Translated using Weblate (Russian)
Currently translated at 100.0% (19629 of 19629 strings)
2025-06-16 17:03:21 +00:00
xvy
70f4d591df Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.0% (19448 of 19629 strings)
2025-06-13 05:01:52 +02:00
ilya
6f3b6074b1 Translated using Weblate (Russian)
Currently translated at 100.0% (19629 of 19629 strings)
2025-06-13 05:01:49 +02:00
احمد
f6a8988598 Translated using Weblate (Arabic)
Currently translated at 10.2% (2015 of 19628 strings)
2025-06-11 20:04:43 +02:00
xvy
0ed1c53e3e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.0% (19447 of 19629 strings)
2025-06-11 20:04:37 +02:00
xvy
cd83e4cac3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.0% (19436 of 19629 strings)
2025-06-08 06:01:47 +02:00
xvy
a2eef713d8 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.9% (19424 of 19629 strings)
2025-06-06 16:01:51 +00:00
xvy
3a7c1c9e9a Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.9% (19422 of 19629 strings)
2025-06-05 15:01:50 +00:00
CharlyTheSneaky
7699ac6dd1 Translated using Weblate (French)
Currently translated at 82.6% (16218 of 19629 strings)
2025-06-05 15:01:47 +00:00
Anderson Paulo
7ea5823c37 Translated using Weblate (Portuguese)
Currently translated at 99.5% (609 of 612 strings)
2025-06-05 15:01:44 +00:00
gogu
437e0e1e09 Translated using Weblate (German (Austria))
Currently translated at 0.1% (39 of 19628 strings)
2025-06-04 02:04:27 +00:00
xvy
f98c591838 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.6% (19369 of 19629 strings)
2025-06-04 02:04:23 +00:00
Daniel Stasiak
bf4c7e56cc Translated using Weblate (Polish)
Currently translated at 86.1% (16918 of 19629 strings)
2025-06-04 02:04:20 +00:00
中野健次
3a669c8f32 Translated using Weblate (Japanese)
Currently translated at 71.0% (13945 of 19629 strings)
2025-06-04 02:04:17 +00:00
Daniel Stasiak
f8e9675d43 Translated using Weblate (Polish)
Currently translated at 86.1% (16904 of 19629 strings)
2025-05-30 18:09:44 +02:00
Jesus Romero
ba645ba4c2 Translated using Weblate (Spanish)
Currently translated at 73.3% (14395 of 19629 strings)
2025-05-29 14:01:46 +02:00
xvy
4b5a744b89 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.6% (19366 of 19629 strings)
2025-05-28 02:01:45 +00:00
xvy
3f6ac7c783 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.4% (19331 of 19629 strings)
2025-05-26 16:03:10 +02:00
Nikita Bretschneider
02d7c569cb Translated using Weblate (German)
Currently translated at 89.9% (17650 of 19629 strings)
2025-05-26 16:03:09 +02:00
VeridisQuo
863bfebeb7 Translated using Weblate (Esperanto)
Currently translated at 73.0% (447 of 612 strings)
2025-05-25 03:01:43 +02:00
sprin
0b5dc81038 Translated using Weblate (Catalan)
Currently translated at 13.2% (2595 of 19629 strings)
2025-05-23 14:01:48 +02:00
Ming Bi Si Ya
4f00fb386f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.2% (19294 of 19629 strings)
2025-05-23 14:01:45 +02:00
xvy
9a3c96f4cf Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.2% (19291 of 19629 strings)
2025-05-21 21:22:53 +02:00
petter0011
ca29f8e08a Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.2% (19280 of 19629 strings)
2025-05-21 08:32:41 +02:00
petter0011
5278c7bf32 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.2% (19280 of 19629 strings)
2025-05-20 11:10:35 +02:00
petter0011
8e01fed388 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.2% (19280 of 19629 strings)
2025-05-20 04:23:53 +02:00
xvy
debdc8279e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.2% (19280 of 19629 strings)
2025-05-19 21:07:44 +02:00
Hodex99
095fa8d06d Translated using Weblate (Indonesian)
Currently translated at 84.4% (16583 of 19629 strings)
2025-05-19 21:07:41 +02:00
Hodex99
bdcde78881 Translated using Weblate (Indonesian)
Currently translated at 84.4% (16583 of 19629 strings)
2025-05-19 01:41:19 +02:00
Hodex99
3a28703e88 Translated using Weblate (Indonesian)
Currently translated at 84.4% (16583 of 19629 strings)
2025-05-17 11:01:45 +00:00
Daniel Stasiak
967325abe9 Translated using Weblate (Polish)
Currently translated at 86.0% (16897 of 19629 strings)
2025-05-16 12:39:02 +02:00
Hodex99
9c3fff1337 Translated using Weblate (Indonesian)
Currently translated at 84.4% (16583 of 19629 strings)
2025-05-16 12:38:59 +02:00
mitaka mitaka
090aedc638 Translated using Weblate (Bulgarian)
Currently translated at 1.5% (296 of 19629 strings)
2025-05-15 11:57:28 +02:00
Hodex99
eee3805b50 Translated using Weblate (Indonesian)
Currently translated at 100.0% (612 of 612 strings)
2025-05-15 11:57:26 +02:00
xvy
9954e9d802 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.1% (19271 of 19629 strings)
2025-05-15 11:57:25 +02:00
Hodex99
bc34c1107a Translated using Weblate (Indonesian)
Currently translated at 84.4% (16583 of 19629 strings)
2025-05-15 11:57:22 +02:00
Hong Quan
5d468c812b Translated using Weblate (Vietnamese)
Currently translated at 3.5% (694 of 19628 strings)
2025-05-14 18:01:50 +02:00
Daniel Stasiak
3eb9d6188a Translated using Weblate (Polish)
Currently translated at 86.0% (16890 of 19629 strings)
2025-05-14 18:01:47 +02:00
Hodex99
679e3dea6f Translated using Weblate (Indonesian)
Currently translated at 83.5% (16403 of 19629 strings)
2025-05-14 18:01:45 +02:00
Hong Quan
56f5703e72 Translated using Weblate (Vietnamese)
Currently translated at 3.5% (692 of 19628 strings)
2025-05-13 15:02:38 +02:00
xvy
a38dc3d4c6 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.1% (19257 of 19629 strings)
2025-05-12 12:58:29 +02:00
Hong Quan
b86f29b0a3 Translated using Weblate (Vietnamese)
Currently translated at 3.4% (670 of 19628 strings)
2025-05-11 14:03:08 +00:00
Miroslav Iliev
2724253013 Translated using Weblate (Bulgarian)
Currently translated at 93.3% (571 of 612 strings)
2025-05-11 14:03:05 +00:00
xvy
93c0330d27 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.8% (19211 of 19629 strings)
2025-05-11 14:03:03 +00:00
Daniel Stasiak
2cddfec594 Translated using Weblate (Polish)
Currently translated at 86.0% (16886 of 19629 strings)
2025-05-09 18:01:43 +02:00
Mateusz Bergmann
8c46e16019 Translated using Weblate (Polish)
Currently translated at 85.9% (16876 of 19629 strings)
2025-05-08 17:20:34 +02:00
Daniel Stasiak
6a29fff72c Translated using Weblate (Polish)
Currently translated at 85.9% (16876 of 19629 strings)
2025-05-08 17:20:34 +02:00
Vũ Minh Long
ef0475b9dc Translated using Weblate (Vietnamese)
Currently translated at 99.8% (611 of 612 strings)
2025-05-08 17:13:56 +02:00
ilya
18e573c2ef Translated using Weblate (Russian)
Currently translated at 100.0% (19629 of 19629 strings)
2025-05-08 17:13:55 +02:00
Mateusz Bergmann
6c0678295b Translated using Weblate (Polish)
Currently translated at 85.9% (16875 of 19629 strings)
2025-05-08 17:13:43 +02:00
Daniel Stasiak
4f13d98652 Translated using Weblate (Polish)
Currently translated at 85.9% (16875 of 19629 strings)
2025-05-08 17:13:43 +02:00
Hong Quan
0c5811cf66 Translated using Weblate (Vietnamese)
Currently translated at 3.3% (654 of 19628 strings)
2025-05-07 19:03:14 +02:00
Hong Quan
e78a79e544 Translated using Weblate (Vietnamese)
Currently translated at 3.2% (643 of 19628 strings)
2025-05-07 15:06:03 +02:00
xvy
c2cfefa01f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.8% (19204 of 19629 strings)
2025-05-07 15:06:01 +02:00
Hong Quan
f3bff7b1ba Translated using Weblate (Vietnamese)
Currently translated at 2.2% (442 of 19628 strings)
2025-05-06 08:06:20 +02:00
Максим Горпиніч
006d3854db Translated using Weblate (Ukrainian)
Currently translated at 100.0% (19629 of 19629 strings)
2025-05-06 08:06:18 +02:00
xvy
868cf6aa32 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.8% (19204 of 19629 strings)
2025-05-06 08:06:13 +02:00
376 changed files with 381994 additions and 19099 deletions

View File

@@ -5,6 +5,7 @@ local.properties
app/build/intermediates/
build/
debug/
beta/
release/
.gradle/
@@ -49,4 +50,6 @@ gradle-app.setting
/AndorsTrail/gradle/wrapper
/AndorsTrail/app/build/
/AndorsTrail/app/debug/
/AndorsTrail/app/beta/
/AndorsTrail/app/release/
/AndorsTrail/app/beta/

View File

@@ -2,12 +2,12 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 34
compileSdkVersion 35
defaultConfig {
applicationId "com.gpl.rpg.AndorsTrail"
minSdkVersion 14
targetSdkVersion 34
targetSdkVersion 35
}
buildTypes {
@@ -19,8 +19,15 @@ android {
debug {
manifestPlaceholders icon_name: 'icon_beta', fileproviderPath: 'AndorsTrail.beta2'
applicationIdSuffix 'beta2'
versionNameSuffix = "dev"
signingConfig signingConfigs.debug
}
beta {
manifestPlaceholders icon_name: 'icon_beta', fileproviderPath: 'AndorsTrail.beta2'
applicationIdSuffix 'beta2'
versionNameSuffix = "beta"
signingConfig signingConfigs.debug
}
}
namespace 'com.gpl.rpg.AndorsTrail'

View File

@@ -3,8 +3,8 @@
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gpl.rpg.AndorsTrail"
android:versionCode="81"
android:versionName="0.8.14dev"
android:versionCode="82"
android:versionName="0.8.15"
android:installLocation="auto"
>

View File

@@ -8,31 +8,41 @@ import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.Constants;
import com.gpl.rpg.AndorsTrail.util.AndroidStorage;
import com.gpl.rpg.AndorsTrail.util.Pair;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Insets;
import android.os.Build;
import android.os.Environment;
import android.util.Pair;
import android.view.View;
import android.view.Window;
import android.view.WindowInsets;
import android.view.WindowInsetsController;
import android.view.WindowManager;
import androidx.annotation.RequiresApi;
public final class AndorsTrailApplication extends Application {
public static final String CURRENT_VERSION_DISPLAY = BuildConfig.VERSION_NAME;
public static final boolean IS_DEV_VERSION = CURRENT_VERSION_DISPLAY.endsWith("dev");
public static final boolean IS_BETA_VERSION = CURRENT_VERSION_DISPLAY.endsWith("beta");
public static final boolean IS_RELEASE_VERSION = !CURRENT_VERSION_DISPLAY.matches(".*[a-zA-Z].*");
public static final boolean DEVELOPMENT_DEBUGRESOURCES = false;
public static final boolean DEVELOPMENT_FORCE_STARTNEWGAME = false;
public static final boolean DEVELOPMENT_FORCE_CONTINUEGAME = false;
public static final boolean DEVELOPMENT_DEBUGBUTTONS = false;
public static final boolean DEVELOPMENT_DEBUGBUTTONS = IS_DEV_VERSION;
public static final boolean DEVELOPMENT_FASTSPEED = false;
public static final boolean DEVELOPMENT_VALIDATEDATA = true;
public static final boolean DEVELOPMENT_DEBUGMESSAGES = true;
public static final String CURRENT_VERSION_DISPLAY = "0.8.14dev";
public static final boolean IS_RELEASE_VERSION = !CURRENT_VERSION_DISPLAY.matches(".*[a-d].*");
public static final boolean DEVELOPMENT_VALIDATEDATA = IS_BETA_VERSION;
public static final boolean DEVELOPMENT_DEBUGMESSAGES = IS_DEV_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 CURRENT_VERSION = DEVELOPMENT_INCOMPATIBLE_SAVEGAMES ? DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION : 81;
public static final int CURRENT_VERSION = DEVELOPMENT_INCOMPATIBLE_SAVEGAMES ? DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION : BuildConfig.VERSION_CODE;
private final AndorsTrailPreferences preferences = new AndorsTrailPreferences();
private WorldContext world = new WorldContext();
@@ -57,13 +67,45 @@ public final class AndorsTrailApplication extends Application {
public void setWindowParameters(Activity activity) {
activity.requestWindowFeature(Window.FEATURE_NO_TITLE);
if (preferences.fullscreen) {
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
public void setFullscreenMode(Activity activity) {
setFullscreenMode(preferences.fullscreen, activity.getWindow());
}
public static void setFullscreenMode(boolean fullscreen, Window window) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
final WindowInsetsController insetsController = window.getInsetsController();
if (insetsController != null) {
insetsController.setSystemBarsBehavior(WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
int insetType = WindowInsets.Type.statusBars();
if (fullscreen) {
insetsController.hide(insetType);
} else {
insetsController.show(insetType);
}
}
} else {
activity.getWindow().setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN);
if (fullscreen) {
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
window.setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
}
@RequiresApi(Build.VERSION_CODES.R)
public int getUsableTouchAreaInsetMask(){
int i = 0;
i |= WindowInsets.Type.displayCutout();
i |= WindowInsets.Type.navigationBars();
if (!preferences.fullscreen) {
i |= WindowInsets.Type.statusBars();
}
return i;
}
//Get default locale at startup, as somehow it seems that changing the app's
//configured locale impacts the value returned by Locale.getDefault() nowadays.
private final Locale defaultLocale = Locale.getDefault();
@@ -166,4 +208,18 @@ public final class AndorsTrailApplication extends Application {
controllers = new ControllerContext(this, world);
setup = new WorldSetup(world, controllers, getApplicationContext());
}
public void setUsablePadding(View root) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
root.setOnApplyWindowInsetsListener((v, insets) -> {
Insets bars = insets.getInsets(getUsableTouchAreaInsetMask());
int left = Math.max(bars.left, v.getPaddingLeft());
int top = Math.max(bars.top, v.getPaddingTop());
int right = Math.max(bars.right, v.getPaddingRight());
int bottom = Math.max(bars.bottom, v.getPaddingBottom());
v.setPadding(left, top, right, bottom);
return WindowInsets.CONSUMED;
});
}
}
}

View File

@@ -346,7 +346,6 @@ public final class Dialogs {
CustomDialogFactory.show(d);
}
@TargetApi(23)
private static boolean hasPermissions(final Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (activity.getApplicationContext().checkSelfPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED

View File

@@ -24,9 +24,7 @@ public final class AboutActivity extends AndorsTrailBaseActivity implements Imag
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setWindowParameters(this);
setContentView(R.layout.about);
initializeView(this, R.layout.about, R.id.about_root);
final Resources res = getResources();
final TextView tv = (TextView) findViewById(R.id.about_contents);

View File

@@ -30,9 +30,7 @@ public final class ActorConditionInfoActivity extends AndorsTrailBaseActivity {
String conditionTypeID = getIntent().getData().getLastPathSegment();
ActorConditionType conditionType = world.actorConditionsTypes.getActorConditionType(conditionTypeID);
setContentView(R.layout.actorconditioninfo);
initializeView(this, R.layout.actorconditioninfo, R.id.actorconditioninfo_root);
TextView tv = (TextView) findViewById(R.id.actorconditioninfo_title);
tv.setText(conditionType.name);

View File

@@ -2,6 +2,10 @@ package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.IdRes;
import androidx.annotation.LayoutRes;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
@@ -19,5 +23,13 @@ public abstract class AndorsTrailBaseActivity extends Activity {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setLocale(this);
}
protected void initializeView(Activity activity, @LayoutRes int layoutId, @IdRes int rootViewId) {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(activity);
app.setWindowParameters(activity);
activity.setContentView(layoutId);
View root = activity.findViewById(rootViewId);
app.setUsablePadding(root);
app.setFullscreenMode(activity);
}
}

View File

@@ -1,6 +1,11 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.IdRes;
import androidx.annotation.LayoutRes;
import androidx.fragment.app.FragmentActivity;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
@@ -19,4 +24,13 @@ public abstract class AndorsTrailBaseFragmentActivity extends FragmentActivity {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setLocale(this);
}
protected void initializeView(Activity activity, @LayoutRes int layoutId, @IdRes int rootViewId) {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(activity);
app.setWindowParameters(activity);
activity.setContentView(layoutId);
View root = activity.findViewById(rootViewId);
app.setUsablePadding(root);
app.setFullscreenMode(activity);
}
}

View File

@@ -89,8 +89,7 @@ public final class BulkSelectionInterface extends AndorsTrailBaseActivity implem
interfaceType = BulkInterfaceType.valueOf(params.getString("interfaceType"));
int intialSelection = 1;
setContentView(R.layout.bulkselection);
initializeView(this, R.layout.bulkselection, R.id.bulkselection_root);
// initialize UI variables
TextView bulkselection_action_type = (TextView)findViewById(R.id.bulkselection_action_type);

View File

@@ -75,13 +75,11 @@ public final class ConversationActivity
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.conversation);
initializeView(this, R.layout.conversation, R.id.conversation_root);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
setFinishOnTouchOutside(false);
}
setFinishOnTouchOutside(false);
replyGroup = new RadioGroup(this);
replyGroup = new RadioGroup(this);
replyGroup.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, ListView.LayoutParams.WRAP_CONTENT));
statementList = (ListView) findViewById(R.id.conversation_statements);
statementList.addFooterView(replyGroup);

View File

@@ -365,7 +365,7 @@ public final class DebugInterface {
,new DebugButton("#2", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "crackshot_hideout3", "South", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "undertell_3_lava_01", "west", 0, 0);
}
})
@@ -373,21 +373,21 @@ public final class DebugInterface {
,new DebugButton("#3", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "fallhaven_derelict2", "up", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_cavea", "up", 0, 0);
}
})
,new DebugButton("#4", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "loneford4", "south", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_35", "south", 11, 0);
}
})
,new DebugButton("#5", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "waytogalmore1", "entrance2", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "way_to_sullengard_west_5", "east", 0, 5);
}
})
@@ -408,7 +408,7 @@ public final class DebugInterface {
,new DebugButton("#8", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_86", "west", 0, 5);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "wayto_feygard_duleian_2", "south", 0, 5);
}
})
@@ -422,10 +422,32 @@ public final class DebugInterface {
,new DebugButton("#10", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "laerothprison3", "south", 2, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "moesforest_03", "north1", 0, 0);
}
})
,new DebugButton("#11", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_17", "outside", 0, 0);
}
})
,new DebugButton("#12", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_48", "west", 0, 10);
}
})
,new DebugButton("#13", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "feygard_outside1", "south", 6, 0);
}
})
}));
buttonList.addAll(tpButtons3);

View File

@@ -38,10 +38,7 @@ public final class DisplayWorldMapActivity extends AndorsTrailBaseActivity {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
this.world = app.getWorld();
app.setWindowParameters(this);
setContentView(R.layout.displayworldmap);
initializeView(this, R.layout.displayworldmap, R.id.worldmap_root);
displayworldmap_webview = (WebView) findViewById(R.id.displayworldmap_webview);
displayworldmap_webview.setBackgroundColor(ThemeHelper.getThemeColor(this, R.attr.ui_theme_displayworldmap_bg_color));

View File

@@ -29,10 +29,7 @@ public final class HeroinfoActivity extends AndorsTrailBaseFragmentActivity {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
this.world = app.getWorld();
app.setWindowParameters(this);
setContentView(R.layout.tabbedlayout);
initializeView(this, R.layout.tabbedlayout, android.R.id.tabhost);
Resources res = getResources();

View File

@@ -14,6 +14,7 @@ import android.widget.TextView;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.Constants;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.ItemEffectsView;
@@ -45,7 +46,7 @@ public final class ItemInfoActivity extends AndorsTrailBaseActivity {
boolean buttonEnabled = params.getBoolean("buttonEnabled");
boolean moreButtonEnabled = params.getBoolean("moreActions");
setContentView(R.layout.iteminfo);
initializeView(this, R.layout.iteminfo, R.id.iteminfo_root);
TextView tv = (TextView) findViewById(R.id.iteminfo_title);
tv.setText(itemType.getName(world.model.player));
@@ -54,7 +55,7 @@ public final class ItemInfoActivity extends AndorsTrailBaseActivity {
tv = (TextView) findViewById(R.id.iteminfo_description);
String description = itemType.getDescription();
if (description != null) {
tv.setText(description);
tv.setText(description.replace(Constants.PLACEHOLDER_PLAYERNAME, world.model.player.getName()));
tv.setVisibility(View.VISIBLE);
} else {
tv.setVisibility(View.GONE);

View File

@@ -37,7 +37,7 @@ public final class LevelUpActivity extends AndorsTrailBaseActivity {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.levelup);
initializeView(this, R.layout.levelup, R.id.levelup_root);
levelup_title = (TextView) findViewById(R.id.levelup_title);
levelup_description = (TextView) findViewById(R.id.levelup_description);

View File

@@ -70,7 +70,7 @@ public final class LoadSaveActivity extends AndorsTrailBaseActivity implements O
String loadsave = getIntent().getData().getLastPathSegment();
isLoading = (loadsave.equalsIgnoreCase("load"));
setContentView(R.layout.loadsave);
initializeView(this, R.layout.loadsave, R.id.loadsave_root);
TextView tv = (TextView) findViewById(R.id.loadsave_title);
if (isLoading) {

View File

@@ -36,8 +36,7 @@ public final class LoadingActivity extends AndorsTrailBaseActivity implements On
setTheme(ThemeHelper.getBaseTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setWindowParameters(this);
setContentView(R.layout.startscreen);
initializeView(this, R.layout.startscreen, R.id.startscreen_fragment_container);
TextView tv = (TextView) findViewById(R.id.startscreen_version);
tv.setVisibility(View.GONE);

View File

@@ -91,9 +91,9 @@ public final class MainActivity
AndorsTrailPreferences preferences = app.getPreferences();
this.world = app.getWorld();
this.controllers = app.getControllerContext();
app.setWindowParameters(this);
setContentView(R.layout.main);
initializeView(this, R.layout.main, R.id.main_container);
mainview = (MainView) findViewById(R.id.main_mainview);
statusview = (StatusView) findViewById(R.id.main_statusview);
combatview = (CombatView) findViewById(R.id.main_combatview);

View File

@@ -34,7 +34,7 @@ public final class MonsterEncounterActivity extends AndorsTrailBaseActivity {
return;
}
setContentView(R.layout.monsterencounter);
initializeView(this, R.layout.monsterencounter, R.id.monsterencounter_root);
CharSequence difficulty = getText(MonsterInfoActivity.getMonsterDifficultyResource(controllers, monster));

View File

@@ -43,7 +43,7 @@ public final class MonsterInfoActivity extends AndorsTrailBaseActivity {
this.controllers = app.getControllerContext();
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.monsterinfo);
initializeView(this, R.layout.monsterinfo, R.id.monsterinfo_root);
monsterinfo_title = (TextView) findViewById(R.id.monsterinfo_title);
monsterinfo_difficulty = (TextView) findViewById(R.id.monsterinfo_difficulty);

View File

@@ -13,17 +13,16 @@ public final class Preferences extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getBaseTheme());
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (app.getPreferences().fullscreen) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
getWindow().setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
app.setWindowParameters(this);
super.onCreate(savedInstanceState);
app.setFullscreenMode(this);
app.setLocale(this);
addPreferencesFromResource(R.xml.preferences);
}
@Override

View File

@@ -23,9 +23,8 @@ public final class ShopActivity extends AndorsTrailBaseFragmentActivity {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
app.setWindowParameters(this);
setContentView(R.layout.tabbedlayout);
initializeView(this, R.layout.tabbedlayout, android.R.id.tabhost);
final Resources res = getResources();

View File

@@ -31,9 +31,7 @@ public final class SkillInfoActivity extends AndorsTrailBaseActivity {
final WorldContext world = app.getWorld();
final Player player = world.model.player;
app.setWindowParameters(this);
setContentView(R.layout.skill_info_view);
initializeView(this, R.layout.skill_info_view, R.id.skillinfo_root);
final Resources res = getResources();
final Intent intent = getIntent();

View File

@@ -21,6 +21,8 @@ import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager.OnBackStackChangedListener;
import android.view.KeyEvent;
@@ -49,9 +51,9 @@ public final class StartScreenActivity extends AndorsTrailBaseFragmentActivity i
final Resources res = getResources();
TileManager tileManager = app.getWorld().tileManager;
tileManager.setDensity(res);
app.setWindowParameters(this);
setContentView(R.layout.startscreen);
initializeView(this, R.layout.startscreen, R.id.startscreen_fragment_container);
app.setFullscreenMode(this);
if (findViewById(R.id.startscreen_fragment_container) != null) {
StartScreenActivity_MainMenu mainMenu = new StartScreenActivity_MainMenu();
@@ -67,9 +69,11 @@ public final class StartScreenActivity extends AndorsTrailBaseFragmentActivity i
tv = (TextView) findViewById(R.id.startscreen_version);
app.setUsablePadding(tv);
tv.setText('v' + AndorsTrailApplication.CURRENT_VERSION_DISPLAY);
development_version = (TextView) findViewById(R.id.startscreen_dev_version);
app.setUsablePadding((View) development_version.getParent());
if (AndorsTrailApplication.DEVELOPMENT_INCOMPATIBLE_SAVEGAMES) {
development_version.setText(R.string.startscreen_incompatible_savegames);
development_version.setVisibility(View.VISIBLE);
@@ -96,6 +100,10 @@ public final class StartScreenActivity extends AndorsTrailBaseFragmentActivity i
}
});
}
View titleLogo = findViewById(R.id.title_logo);
if (titleLogo != null) {
app.setUsablePadding(titleLogo);
}
if (development_version.getVisibility() == View.VISIBLE) {
development_version.setText(development_version.getText()
@@ -112,7 +120,7 @@ public final class StartScreenActivity extends AndorsTrailBaseFragmentActivity i
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, int[] grantResults) {
if (grantResults.length > 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED) {
final CustomDialog d = CustomDialogFactory.createDialog(this,

View File

@@ -24,7 +24,7 @@ public final class ShopActivity_Buy extends ShopActivityFragment {
@Override
public void onItemInfoClicked(int position, ItemType itemType) {
int price = ItemController.getBuyingPrice(player, itemType);
boolean enableButton = ItemController.canAfford(player, price);
boolean enableButton = (price > 0 && ItemController.canAfford(player, price));
String text = getResources().getString(R.string.shop_buyitem, price);
Intent intent = Dialogs.getIntentForItemInfo(getActivity(), itemType.id, ItemInfoActivity.ItemInfoAction.buy, text, enableButton, null);
startActivityForResult(intent, INTENTREQUEST_ITEMINFO);

View File

@@ -59,7 +59,6 @@ public class StartScreenActivity_MainMenu extends Fragment {
updatePreferences(false);
super.onCreateView(inflater, container, savedInstanceState);
if (container != null) {
container.removeAllViews();
}
@@ -196,7 +195,6 @@ public class StartScreenActivity_MainMenu extends Fragment {
}
@TargetApi(29)
public void migrateDataOnDemand(final Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
if (activity.getApplicationContext().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
@@ -232,7 +230,6 @@ public class StartScreenActivity_MainMenu extends Fragment {
private static final int READ_EXTERNAL_STORAGE_REQUEST=1;
private static final int WRITE_EXTERNAL_STORAGE_REQUEST=2;
@TargetApi(23)
public static void checkAndRequestPermissions(final Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) {
if (activity.getApplicationContext().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {

View File

@@ -3,6 +3,7 @@ package com.gpl.rpg.AndorsTrail.activity.fragment;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
@@ -39,8 +40,7 @@ public class StartScreenActivity_NewGame extends Fragment {
}
View root = inflater.inflate(R.layout.startscreen_newgame, container, false);
startscreen_enterheroname = (TextView) root.findViewById(R.id.startscreen_enterheroname);
new SpinnerEmulator(root, R.id.startscreen_mode_selector_button, R.array.startscreen_mode_selector, R.string.startscreen_game_mode) {

View File

@@ -1,5 +1,7 @@
package com.gpl.rpg.AndorsTrail.controller;
import static com.gpl.rpg.AndorsTrail.controller.SkillController.canLevelupSkillWithQuest;
import java.util.ArrayList;
import android.content.res.Resources;
@@ -334,6 +336,16 @@ public final class ConversationController {
case timeEquals:
result = world.model.worldData.getTime(requirement.requireID) == requirement.value;
break;
case skillIncrease:
int levels;
if (requirement.value <= 0){
levels = 1;
}else{
levels = requirement.value;
}
SkillInfo skill = world.skills.getSkill(SkillCollection.SkillID.valueOf(requirement.requireID));
result = canLevelupSkillWithQuest(player, skill, levels);
break;
default:
result = true;
}

View File

@@ -91,17 +91,17 @@ public final class SkillController {
}
private static boolean canLevelupSkillWithQuest(Player player, SkillInfo skill) {
static boolean canLevelupSkillWithQuest(Player player, SkillInfo skill, int levels) {
final int playerSkillLevel = player.getSkillLevel(skill.id);
if (skill.hasMaxLevel()) {
if (playerSkillLevel >= skill.maxLevel) return false;
if (playerSkillLevel + levels > skill.maxLevel) return false;
}
if (!skill.canLevelUpSkillTo(player, playerSkillLevel + 1)) return false;
if (!skill.canLevelUpSkillTo(player, playerSkillLevel + levels)) return false;
return true;
}
public static boolean canLevelupSkillManually(Player player, SkillInfo skill) {
if (!player.hasAvailableSkillpoints()) return false;
if (!canLevelupSkillWithQuest(player, skill)) return false;
if (!canLevelupSkillWithQuest(player, skill, 1)) return false;
if (skill.levelupVisibility == SkillInfo.LevelUpType.onlyByQuests) return false;
if (skill.levelupVisibility == SkillInfo.LevelUpType.firstLevelRequiresQuest) {
if (!player.hasSkill(skill.id)) return false;
@@ -114,7 +114,7 @@ public final class SkillController {
addSkillLevel(skill.id);
}
public boolean levelUpSkillByQuest(Player player, SkillInfo skill) {
if (!canLevelupSkillWithQuest(player, skill)) return false;
if (!canLevelupSkillWithQuest(player, skill, 1)) return false;
addSkillLevel(skill.id);
return true;
}

View File

@@ -30,11 +30,14 @@ public final class Monster extends Actor {
public final MonsterType monsterType;
public final MonsterSpawnArea area;
public final boolean isFlippedX;
public Monster(MonsterType monsterType, MonsterSpawnArea area) {
super(monsterType.tileSize, false, monsterType.isImmuneToCriticalHits());
this.monsterType = monsterType;
this.area = area;
this.iconID = monsterType.iconID;
this.isFlippedX = Constants.roll100(monsterType.horizontalFlipChance);
this.nextPosition = new CoordRect(new Coord(), monsterType.tileSize);
resetStatsToBaseTraits();
this.ap.setMax();

View File

@@ -37,6 +37,7 @@ public final class MonsterType {
public final Size tileSize;
public final int iconID;
public final int horizontalFlipChance;
public final int maxAP;
public final int maxHP;
public final int moveCost;
@@ -64,6 +65,7 @@ public final class MonsterType {
, AggressionType aggressionType
, Size tileSize
, int iconID
, int horizontalFlipChance
, int maxAP
, int maxHP
, int moveCost
@@ -90,6 +92,7 @@ public final class MonsterType {
this.aggressionType = aggressionType;
this.tileSize = tileSize;
this.iconID = iconID;
this.horizontalFlipChance = horizontalFlipChance;
this.maxAP = maxAP;
this.maxHP = maxHP;
this.moveCost = moveCost;

View File

@@ -25,6 +25,7 @@ public final class Requirement {
,dateEquals
,time
,timeEquals
,skillIncrease // Check if possible to increase
}
public final RequirementType requireType;
@@ -85,6 +86,7 @@ public final class Requirement {
case questProgress:
return requireID != null && value >= 0;
case skillLevel:
case skillIncrease:
return requireID != null && value >= 0;
case spentGold:
case date:

View File

@@ -262,6 +262,7 @@ public final class ResourceLoader {
final Size sz7x1 = new Size(7, 1);
final Size sz7x4 = new Size(7, 4);
final Size sz8x3 = new Size(8, 3);
final Size sz8x4 = new Size(8, 4);
final Size sz16x8 = new Size(16, 8);
final Size sz16x10 = new Size(16, 10);
final Size sz20x12 = new Size(20, 12);
@@ -381,10 +382,11 @@ public final class ResourceLoader {
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_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", sz8x4, sz2x2, 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);
loader.prepareTileset(R.drawable.monsters_1x2, "monsters_1x2", new Size(10, 5), sz1x2, mTileSize);
/*INSERT_NPCS_TILESETS_HERE*/
loader.prepareTileset(R.drawable.map_bed_1, "map_bed_1", sz16x10, sz1x1, mTileSize);
@@ -399,6 +401,7 @@ public final class ResourceLoader {
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_5, "map_cavewall_5", new Size(6, 6), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_cavewall_6, "map_cavewall_6", new Size(18, 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_2, "map_chair_table_2", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_crate_1, "map_crate_1", mapTileSize, sz1x1, mTileSize);
@@ -425,8 +428,10 @@ public final class ResourceLoader {
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_2, "map_indoor_2", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_items, "map_items", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_kitchen_1, "map_kitchen_1", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_outdoor_1, "map_outdoor_1", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_outdoor_2, "map_outdoor_2", 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_3, "map_pillar_3", new Size(16, 10), sz1x1, mTileSize);

View File

@@ -8,7 +8,7 @@ import com.gpl.rpg.AndorsTrail.resource.DynamicTileLoader;
import com.gpl.rpg.AndorsTrail.resource.TranslationLoader;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonCollectionParserFor;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonFieldNames;
import com.gpl.rpg.AndorsTrail.util.Pair;
import android.util.Pair;
public final class ActorConditionsTypeParser extends JsonCollectionParserFor<ActorConditionType> {

View File

@@ -13,7 +13,7 @@ import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonArrayParserFor;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonCollectionParserFor;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonFieldNames;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.Pair;
import android.util.Pair;
public final class ConversationListParser extends JsonCollectionParserFor<Phrase> {

View File

@@ -11,7 +11,7 @@ import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonArrayParserFor;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonCollectionParserFor;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonFieldNames;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.Pair;
import android.util.Pair;
public final class DropListParser extends JsonCollectionParserFor<DropList> {

View File

@@ -8,7 +8,7 @@ import com.gpl.rpg.AndorsTrail.model.item.ItemCategory;
import com.gpl.rpg.AndorsTrail.resource.TranslationLoader;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonCollectionParserFor;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonFieldNames;
import com.gpl.rpg.AndorsTrail.util.Pair;
import android.util.Pair;
public final class ItemCategoryParser extends JsonCollectionParserFor<ItemCategory> {

View File

@@ -13,7 +13,7 @@ import com.gpl.rpg.AndorsTrail.resource.DynamicTileLoader;
import com.gpl.rpg.AndorsTrail.resource.TranslationLoader;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonCollectionParserFor;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonFieldNames;
import com.gpl.rpg.AndorsTrail.util.Pair;
import android.util.Pair;
public final class ItemTypeParser extends JsonCollectionParserFor<ItemType> {
@@ -53,7 +53,7 @@ public final class ItemTypeParser extends JsonCollectionParserFor<ItemType> {
, ResourceParserUtils.parseImageID(tileLoader, o.getString(JsonFieldNames.ItemType.iconID))
, itemTypeName
, description
, itemCategories.getItemCategory(o.getString(JsonFieldNames.ItemType.category))
, itemCategories.getItemCategory(o.optString(JsonFieldNames.ItemType.category, "other"))
, ItemType.DisplayType.fromString(o.optString(JsonFieldNames.ItemType.displaytype, null), ItemType.DisplayType.ordinary)
, hasManualPrice
, baseMarketCost

View File

@@ -14,7 +14,7 @@ import com.gpl.rpg.AndorsTrail.resource.TranslationLoader;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonCollectionParserFor;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonFieldNames;
import com.gpl.rpg.AndorsTrail.util.ConstRange;
import com.gpl.rpg.AndorsTrail.util.Pair;
import android.util.Pair;
import com.gpl.rpg.AndorsTrail.util.Size;
public final class MonsterTypeParser extends JsonCollectionParserFor<MonsterType> {
@@ -55,6 +55,8 @@ public final class MonsterTypeParser extends JsonCollectionParserFor<MonsterType
final int exp = getExpectedMonsterExperience(attackCost, attackChance, damagePotential, criticalSkill, criticalMultiplier, blockChance, damageResistance, hitEffect, maxHP, maxAP);
final int horizontalFlipChance = o.optInt(JsonFieldNames.Monster.horizontalFlipChance, 0);
return new Pair<String, MonsterType>(monsterTypeID, new MonsterType(
monsterTypeID
, translationLoader.translateMonsterTypeName(o.getString(JsonFieldNames.Monster.name))
@@ -68,6 +70,7 @@ public final class MonsterTypeParser extends JsonCollectionParserFor<MonsterType
, MonsterType.AggressionType.fromString(o.optString(JsonFieldNames.Monster.movementAggressionType, null), MonsterType.AggressionType.none)
, ResourceParserUtils.parseTilesetTileSize(tileLoader, o.optString(JsonFieldNames.Monster.iconID, null), size1x1)
, ResourceParserUtils.parseImageID(tileLoader, o.getString(JsonFieldNames.Monster.iconID))
, horizontalFlipChance
, maxAP
, maxHP
, o.optInt(JsonFieldNames.Monster.moveCost, 10)

View File

@@ -12,7 +12,7 @@ import com.gpl.rpg.AndorsTrail.resource.TranslationLoader;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonArrayParserFor;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonCollectionParserFor;
import com.gpl.rpg.AndorsTrail.resource.parsers.json.JsonFieldNames;
import com.gpl.rpg.AndorsTrail.util.Pair;
import android.util.Pair;
public final class QuestParser extends JsonCollectionParserFor<Quest> {
private final TranslationLoader translationLoader;

View File

@@ -16,7 +16,7 @@ import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.WorldMapSegmentMap;
import com.gpl.rpg.AndorsTrail.resource.TranslationLoader;
import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.Pair;
import android.util.Pair;
import com.gpl.rpg.AndorsTrail.util.XmlResourceParserUtils;
public final class WorldMapParser {

View File

@@ -11,7 +11,7 @@ import org.json.JSONException;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.Pair;
import android.util.Pair;
public abstract class JsonCollectionParserFor<T> extends JsonParserFor<Pair<String, T>> {
public HashSet<String> parseRows(String input, HashMap<String, T> dest) {

View File

@@ -105,6 +105,7 @@ public final class JsonFieldNames {
public static final class Monster {
public static final String monsterTypeID = "id";
public static final String iconID = "iconID";
public static final String horizontalFlipChance = "horizontalFlipChance";
public static final String name = "name";
public static final String spawnGroup = "spawnGroup";
public static final String monsterClass = "monsterClass";

View File

@@ -2,14 +2,20 @@ package com.gpl.rpg.AndorsTrail.resource.tiles;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import java.util.HashMap;
import java.util.Map;
public final class TileCollection {
private final Bitmap[] bitmaps;
private final Map<Integer, Bitmap> flippedBitmaps;
public final int maxTileID;
public TileCollection(int maxTileID) {
this.bitmaps = new Bitmap[maxTileID+1];
this.flippedBitmaps = new HashMap<>();
this.maxTileID = maxTileID;
}
@@ -19,9 +25,30 @@ public final class TileCollection {
public void setBitmap(int tileID, Bitmap bitmap) {
bitmaps[tileID] = bitmap;
flippedBitmaps.remove(tileID); // Remove cached flipped version if it exists
}
public void drawTile(Canvas canvas, int tile, int px, int py, Paint mPaint) {
canvas.drawBitmap(bitmaps[tile], px, py, mPaint);
drawTile(canvas, tile, px, py, mPaint, false);
}
public void drawTile(Canvas canvas, int tile, int px, int py, Paint mPaint, boolean isFlippedX) {
if (isFlippedX) {
canvas.drawBitmap(getFlippedBitmap(tile), px, py, mPaint);
} else canvas.drawBitmap(bitmaps[tile], px, py, mPaint);
}
private Bitmap getFlippedBitmap(int tile) {
if (flippedBitmaps.containsKey(tile)) {
return flippedBitmaps.get(tile);
}
Bitmap flipped = flipBitmapX(bitmaps[tile]);
flippedBitmaps.put(tile, flipped);
return flipped;
}
private static Bitmap flipBitmapX(Bitmap source) {
Matrix matrix = new Matrix();
matrix.postScale(-1, 1, source.getWidth() / 2f, source.getHeight() / 2f);
return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true);
}
}

View File

@@ -1,11 +0,0 @@
package com.gpl.rpg.AndorsTrail.util;
// Should really use android.util.Pair<> instead, but it is not available for API level 4 (Android 1.6).
public final class Pair<T1, T2> {
public final T1 first;
public final T2 second;
public Pair(T1 a, T2 b) {
this.first = a;
this.second = b;
}
}

View File

@@ -13,7 +13,6 @@ import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
@@ -76,11 +75,8 @@ public class CustomDialogFactory {
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog_title_icon);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
if (((AndorsTrailApplication)context.getApplicationContext()).getPreferences().fullscreen) {
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
} else {
dialog.getWindow().setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
boolean fullscreen = ((AndorsTrailApplication) context.getApplicationContext()).getPreferences().fullscreen;
AndorsTrailApplication.setFullscreenMode(fullscreen, dialog.getWindow());
setTitle(dialog, title, icon);

View File

@@ -431,13 +431,13 @@ public final class MainView extends SurfaceView
for (MonsterSpawnArea a : currentMap.spawnAreas) {
for (Monster m : a.monsters) {
if (!m.hasVFXRunning) {
drawFromMapPosition(canvas, area, m.rectPosition, m.iconID);
drawFromMapPosition(canvas, area, m.rectPosition, m.iconID, m.isFlippedX);
} else if (area.intersects(m.rectPosition) || area.intersects(new CoordRect(m.lastPosition,m.rectPosition.size))) {
int vfxElapsedTime = (int) (System.currentTimeMillis() - m.vfxStartTime);
if (vfxElapsedTime > m.vfxDuration) vfxElapsedTime = m.vfxDuration;
int x = ((m.position.x - mapViewArea.topLeft.x) * tileSize * vfxElapsedTime + ((m.lastPosition.x - mapViewArea.topLeft.x) * tileSize * (m.vfxDuration - vfxElapsedTime))) / m.vfxDuration;
int y = ((m.position.y - mapViewArea.topLeft.y) * tileSize * vfxElapsedTime + ((m.lastPosition.y - mapViewArea.topLeft.y) * tileSize * (m.vfxDuration - vfxElapsedTime))) / m.vfxDuration;
tiles.drawTile(canvas, m.iconID, x, y, mPaint);
tiles.drawTile(canvas, m.iconID, x, y, mPaint, m.isFlippedX);
}
}
}
@@ -503,16 +503,27 @@ public final class MainView extends SurfaceView
if (!area.contains(p)) return;
_drawFromMapPosition(canvas, area, p.x, p.y, tile);
}
private void drawFromMapPosition(Canvas canvas, final CoordRect area, final Coord p, final int tile, final boolean isFlippedX) {
if (!area.contains(p)) return;
_drawFromMapPosition(canvas, area, p.x, p.y, tile, isFlippedX);
}
private void drawFromMapPosition(Canvas canvas, final CoordRect area, final CoordRect p, final int tile) {
if (!area.intersects(p)) return;
_drawFromMapPosition(canvas, area, p.topLeft.x, p.topLeft.y, tile);
}
private void drawFromMapPosition(Canvas canvas, final CoordRect area, final CoordRect p, final int tile, final boolean isFlippedX) {
if (!area.intersects(p)) return;
_drawFromMapPosition(canvas, area, p.topLeft.x, p.topLeft.y, tile, isFlippedX);
}
private void _drawFromMapPosition(Canvas canvas, final CoordRect area, int x, int y, final int tile) {
_drawFromMapPosition(canvas, area, x, y, tile, false);
}
private void _drawFromMapPosition(Canvas canvas, final CoordRect area, int x, int y, final int tile, final boolean isFlippedX) {
x -= mapViewArea.topLeft.x;
y -= mapViewArea.topLeft.y;
// if ( (x >= 0 && x < mapViewArea.size.width)
// && (y >= 0 && y < mapViewArea.size.height)) {
tiles.drawTile(canvas, tile, x * tileSize, y * tileSize, mPaint);
tiles.drawTile(canvas, tile, x * tileSize, y * tileSize, mPaint, isFlippedX);
// }
}

View File

@@ -56,7 +56,7 @@ public final class ShopItemContainerAdapter extends ArrayAdapter<ItemEntry> {
} else {
int price = ItemController.getBuyingPrice(player, itemType);
b.setText(r.getString(R.string.shop_buyitem, price));
b.setEnabled(ItemController.canAfford(player, price));
b.setEnabled(price > 0 && ItemController.canAfford(player, price));
}
b.setOnClickListener(new OnClickListener() {
@Override

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

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

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

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

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

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

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