Compare commits

...

5138 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
Nut.andor
e4633c0689 exploding star item icon 2025-06-10 21:51:38 +02:00
Nut.andor
9b9d8a7c3a dbg 2025-06-10 21:51:38 +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
Nut.andor
0cfa6a97c9 Merge branch 'pulls/1829009049/90' into AT_Source_Next_Release 2025-06-06 22:10:10 +02:00
Nut.andor
9729d5a34f On miss effects 2025-06-06 22:09:19 +02:00
Nut.andor
c024474128 Merge branch 'pulls/1829009049/86' into AT_Source_Next_Release 2025-06-06 22:07:13 +02:00
Nut.andor
3100ffd717 Anti cheat checksum 2025-06-06 21:56:42 +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
Nut.andor
e3c8c0ecfb useful links 2025-05-11 18:10:32 +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
Nut.andor
cd35ad673f next version v0.8.14dev 2025-05-11 11:12:25 +02:00
Nut.andor
5f000ef210 Merge branch 'master' into AT_Source_Next_Release 2025-05-11 11:10:27 +02: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
Nut.andor
c09f5e3a6e whatsnew 2025-05-04 22:46:39 +02:00
Nut.andor
4d5a765522 translation status 2025-05-04 22:02:14 +02:00
Nut.andor
64500ed2fa Merge branch 'AT_Source_Next_Release' 2025-05-04 20:40:36 +02:00
Nut.andor
77af4079c5 whatsnew 2025-05-04 20:39:29 +02:00
Nut.andor
d885911b32 potc built 2025-05-04 20:20:06 +02:00
Nut.andor
99a0d4f40c potc 2025-05-04 20:18:22 +02:00
Nut.andor
656b95061b v0.8.13 Troubling Times content 2025-05-04 20:08:26 +02:00
Nut.andor
24760824b5 Authors 2025-05-04 19:27:49 +02:00
Nut.andor
8eef67bfe7 Merge branch 'master-hosted.weblate' into AT_Source_Next_Release 2025-05-04 19:12:23 +02:00
Nut.andor
d839604e38 version 2025-05-04 19:03:24 +02:00
Nut.andor
2078eedb94 Pull Request #90: On miss effects 2025-05-02 22:26:37 +02:00
OMGeeky
6f2ba0fe7a naming & accidental change 2025-05-02 22:25:09 +02:00
OMGeeky
06f1a791e3 implement on-miss and on-miss-received item effects
this should allow for something like a shield, that applies an actor condition to the attacker or the player, when it successfully blocks an attack (like a generic taunt for items), but also, when the player misses with his weapon, he could get an effect (for example something like embarrassed if we stay in the direction taunt is going)
2025-05-02 22:22:36 +02:00
Nut.andor
7d8301fbed dirty fix of French 2025-05-01 18:00:43 +02:00
Lacrom
f07f41d4e5 Translated using Weblate (French)
Currently translated at 100.0% (612 of 612 strings)
2025-04-29 19:01:43 +00:00
Nut.andor
ab540d7707 Merge branch 'master-hosted.weblate' into AT_Source_Next_Release 2025-04-27 22:38:01 +02:00
Максим Горпиніч
1e1b012a72 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (19203 of 19203 strings)
2025-04-27 22:34:16 +02:00
Максим Горпиніч
9a68c014a9 Translated using Weblate (Turkish)
Currently translated at 32.0% (6157 of 19203 strings)
2025-04-24 05:44:11 +02:00
Максим Горпиніч
ea436327d5 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (19203 of 19203 strings)
2025-04-22 20:18:14 +02:00
Максим Горпиніч
7c7b2f85ac Translated using Weblate (Ukrainian)
Currently translated at 95.3% (18303 of 19203 strings)
2025-04-22 15:38:50 +02:00
Максим Горпиніч
7c3f1c4a91 Translated using Weblate (Ukrainian)
Currently translated at 89.5% (17203 of 19203 strings)
2025-04-21 15:02:58 +02:00
Максим Горпиніч
5f88580ba3 Translated using Weblate (Ukrainian)
Currently translated at 84.3% (16203 of 19203 strings)
2025-04-20 20:03:55 +02:00
Максим Горпиніч
b0cc608091 Translated using Weblate (Turkish)
Currently translated at 32.0% (6158 of 19203 strings)
2025-04-20 20:03:42 +02:00
Prashanth Prash
441ecc1b1d Added translation using Weblate (Hindi (Latin script)) 2025-04-20 03:55:04 +02:00
Максим Горпиніч
d18df3c17c Translated using Weblate (Ukrainian)
Currently translated at 79.1% (15203 of 19203 strings)
2025-04-19 19:15:05 +02:00
Максим Горпиніч
7e7974a612 Translated using Weblate (Ukrainian)
Currently translated at 77.0% (14803 of 19203 strings)
2025-04-19 09:03:16 +02:00
Максим Горпиніч
3d7b09c3c5 Translated using Weblate (Ukrainian)
Currently translated at 68.7% (13203 of 19203 strings)
2025-04-17 23:05:55 +02:00
Максим Горпиніч
ce7ad3fdfe Translated using Weblate (Ukrainian)
Currently translated at 63.5% (12203 of 19203 strings)
2025-04-16 22:35:51 +02:00
Максим Горпиніч
85c2cb4c88 Translated using Weblate (Ukrainian)
Currently translated at 58.3% (11203 of 19203 strings)
2025-04-15 19:22:00 +02:00
Максим Горпиніч
43dbbfd984 Translated using Weblate (Ukrainian)
Currently translated at 53.1% (10203 of 19203 strings)
2025-04-14 19:41:34 +02:00
xvy
0286f70a25 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-04-14 19:41:15 +02:00
Максим Горпиніч
9e34fad7d6 Translated using Weblate (Ukrainian)
Currently translated at 47.9% (9203 of 19203 strings)
2025-04-13 18:32:04 +02:00
Максим Горпиніч
d910597f22 Translated using Weblate (Ukrainian)
Currently translated at 42.7% (8203 of 19203 strings)
2025-04-12 19:10:13 +02:00
Andriamihaja Tsiky Miangola Kevin
a8eb6acc3f Translated using Weblate (Malagasy)
Currently translated at 31.3% (192 of 612 strings)
2025-04-11 17:02:18 +02:00
Максим Горпиніч
3075951465 Translated using Weblate (Ukrainian)
Currently translated at 37.5% (7203 of 19203 strings)
2025-04-11 17:02:16 +02:00
ssantos
f2ef2d8ede Translated using Weblate (Portuguese)
Currently translated at 64.7% (12427 of 19203 strings)
2025-04-11 17:01:56 +02:00
Daniel Stasiak
6d4c701335 Translated using Weblate (Polish)
Currently translated at 87.8% (16872 of 19203 strings)
2025-04-11 17:01:42 +02:00
Максим Горпиніч
25d5c20abd Translated using Weblate (Ukrainian)
Currently translated at 28.3% (5448 of 19203 strings)
2025-04-10 14:01:44 +00:00
Andriamihaja Tsiky Miangola Kevin
012bbbb6c9 Translated using Weblate (Malagasy)
Currently translated at 30.8% (189 of 612 strings)
2025-04-09 16:00:03 +02:00
Максим Горпиніч
11ae4a3344 Translated using Weblate (Ukrainian)
Currently translated at 26.4% (5082 of 19203 strings)
2025-04-09 16:00:02 +02:00
Andriamihaja Tsiky Miangola Kevin
ec6227e795 Translated using Weblate (Malagasy)
Currently translated at 22.0% (135 of 612 strings)
2025-04-08 23:13:36 +02:00
Максим Горпиніч
9f6fde7476 Translated using Weblate (Ukrainian)
Currently translated at 21.8% (4203 of 19203 strings)
2025-04-08 23:13:35 +02:00
Andriamihaja Tsiky Miangola Kevin
3c16226999 Added translation using Weblate (Malagasy) 2025-04-08 17:47:11 +02:00
Andriamihaja Tsiky Miangola Kevin
4f839e5fda Translated using Weblate (Malagasy)
Currently translated at 0.1% (1 of 19202 strings)
2025-04-08 17:47:11 +02:00
Максим Горпиніч
53de823d40 Translated using Weblate (Ukrainian)
Currently translated at 19.9% (3838 of 19203 strings)
2025-04-08 17:47:10 +02:00
Andriamihaja Tsiky Miangola Kevin
04143af634 Added translation using Weblate (Malagasy) 2025-04-08 17:14:23 +02:00
Максим Горпиніч
833c824b36 Translated using Weblate (Ukrainian)
Currently translated at 19.8% (3803 of 19203 strings)
2025-04-08 17:14:19 +02:00
Максим Горпиніч
b1505721a8 Translated using Weblate (Ukrainian)
Currently translated at 16.6% (3203 of 19203 strings)
2025-04-07 19:05:38 +02:00
ssantos
70d3de4eb9 Translated using Weblate (Portuguese)
Currently translated at 99.5% (609 of 612 strings)
2025-04-07 19:05:34 +02:00
Nut.andor
f503aafb35 debug teleport #targets 2025-04-06 02:05:46 +02:00
Daniel Stasiak
7bd5d648d8 Translated using Weblate (Polish)
Currently translated at 87.8% (16862 of 19203 strings)
2025-04-03 18:39:51 +02:00
Daniel Stasiak
01ec5b1802 Translated using Weblate (Polish)
Currently translated at 87.7% (16856 of 19203 strings)
2025-04-03 17:16:04 +02:00
xvy
090a39991a Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-04-02 19:44:16 +02:00
Daniel Stasiak
2d761123ae Translated using Weblate (Polish)
Currently translated at 87.7% (16852 of 19203 strings)
2025-04-02 19:44:13 +02:00
Daniel Stasiak
4e066b4fc5 Translated using Weblate (Polish)
Currently translated at 87.7% (16847 of 19203 strings)
2025-04-01 22:34:11 +02:00
Daniel Stasiak
835293cdb2 Translated using Weblate (Polish)
Currently translated at 87.7% (16843 of 19203 strings)
2025-04-01 18:39:18 +02:00
xvy
9a1322ee46 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-04-01 17:15:24 +02:00
Daniel Stasiak
03b0cf77cd Translated using Weblate (Polish)
Currently translated at 87.6% (16837 of 19203 strings)
2025-03-27 23:47:51 +01:00
Daniel Stasiak
4744f9ffcc Translated using Weblate (Polish)
Currently translated at 87.6% (16830 of 19203 strings)
2025-03-27 00:06:27 +01:00
Ilian Iliev
37319f768c Translated using Weblate (Bulgarian)
Currently translated at 89.7% (549 of 612 strings)
2025-03-24 22:56:29 +01:00
Daniel Stasiak
8a75b08c2e Translated using Weblate (Polish)
Currently translated at 87.6% (16824 of 19203 strings)
2025-03-24 22:56:28 +01:00
Daniel Stasiak
2e3121008b Translated using Weblate (Polish)
Currently translated at 87.5% (16814 of 19203 strings)
2025-03-23 21:34:13 +01:00
Ilian Iliev
3fbbcdbdf2 Translated using Weblate (Bulgarian)
Currently translated at 79.5% (487 of 612 strings)
2025-03-23 20:34:06 +01:00
Daniel Stasiak
f948b8890a Translated using Weblate (Polish)
Currently translated at 87.4% (16797 of 19203 strings)
2025-03-22 20:39:49 +01:00
Nut.andor
5f97d644e0 Revert "map_indoor_3 (still needs to be reworked)"
This reverts commit 251764802b.
2025-03-22 15:55:15 +01:00
Nut.andor
251764802b map_indoor_3 (still needs to be reworked) 2025-03-22 15:54:58 +01:00
Daniel Stasiak
195214a367 Translated using Weblate (Polish)
Currently translated at 87.4% (16789 of 19203 strings)
2025-03-21 22:58:47 +01:00
Максим Горпиніч
7078a6c91a Translated using Weblate (Ukrainian)
Currently translated at 10.9% (2103 of 19203 strings)
2025-03-21 20:45:10 +01:00
Максим Горпиніч
21772ce12e Translated using Weblate (Ukrainian)
Currently translated at 9.9% (1903 of 19203 strings)
2025-03-21 11:07:48 +01:00
Максим Горпиніч
b3514abea2 Translated using Weblate (Ukrainian)
Currently translated at 8.8% (1703 of 19203 strings)
2025-03-20 22:19:04 +01:00
ilya
421a1d7458 Translated using Weblate (Russian)
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-20 21:33:16 +01:00
Daniel Stasiak
cfdd8be9ab Translated using Weblate (Polish)
Currently translated at 87.3% (16783 of 19203 strings)
2025-03-20 17:44:44 +01:00
Максим Горпиніч
0f91d45265 Translated using Weblate (Ukrainian)
Currently translated at 8.1% (1557 of 19203 strings)
2025-03-20 14:30:11 +01:00
Максим Горпиніч
47c3725671 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (612 of 612 strings)
2025-03-20 10:28:55 +01:00
Максим Горпиніч
6166378478 Translated using Weblate (Ukrainian)
Currently translated at 7.8% (1503 of 19203 strings)
2025-03-20 10:28:55 +01:00
xvy
af958bf242 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-20 09:00:35 +01:00
xvy
ec2c7ca98d Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-20 03:13:06 +01:00
Daniel Stasiak
7d2da8d21b Translated using Weblate (Polish)
Currently translated at 87.3% (16780 of 19203 strings)
2025-03-19 22:46:38 +01:00
xvy
d305fabac2 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-19 12:07:46 +01:00
xvy
7edc940de1 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-19 08:02:33 +01:00
xvy
e5a8cc1f10 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-19 07:43:59 +01:00
xvy
5fe07e25fe Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-19 04:02:09 +01:00
xvy
cf82f7f4a9 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-19 02:25:57 +01:00
Daniel Stasiak
fefe9d3618 Translated using Weblate (Polish)
Currently translated at 87.2% (16762 of 19203 strings)
2025-03-19 00:09:17 +01:00
Daniel Stasiak
b5f163f249 Translated using Weblate (Polish)
Currently translated at 87.2% (16748 of 19203 strings)
2025-03-18 18:08:13 +01:00
xvy
988be52a32 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-18 10:38:59 +01:00
xvy
cc2b510f08 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-18 02:26:08 +01:00
Daniel Stasiak
cb95eec05a Translated using Weblate (Polish)
Currently translated at 87.1% (16739 of 19203 strings)
2025-03-17 23:00:09 +01:00
Daniel Stasiak
1d16e47fc2 Translated using Weblate (Polish)
Currently translated at 87.1% (16733 of 19203 strings)
2025-03-17 22:16:03 +01:00
Daniel Stasiak
82a84018ba Translated using Weblate (Polish)
Currently translated at 87.1% (16730 of 19203 strings)
2025-03-17 22:05:40 +01:00
xvy
69373da1a5 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-17 02:14:37 +01:00
Daniel Stasiak
a22827993d Translated using Weblate (Polish)
Currently translated at 87.1% (16729 of 19203 strings)
2025-03-17 00:00:57 +01:00
Daniel Stasiak
d8630872ad Translated using Weblate (Polish)
Currently translated at 87.1% (16728 of 19203 strings)
2025-03-16 23:34:02 +01:00
Nut.andor
54f3cd5303 some bugs put to monsters_insects.png 2025-03-16 13:16:18 +01:00
Nut.andor
019f19d1b4 some bugs put to monsters_insects.png 2025-03-16 13:10:27 +01:00
xvy
12be936120 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-16 09:36:05 +01:00
Daniel Stasiak
26f9fbf7a6 Translated using Weblate (Polish)
Currently translated at 87.0% (16719 of 19203 strings)
2025-03-16 00:21:20 +01:00
xvy
ac5168bd7a Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-14 12:07:15 +01:00
xvy
2454285f7f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-14 08:45:48 +01:00
xvy
a6c87856c0 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-14 05:41:27 +01:00
xvy
be8e164436 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-14 05:13:47 +01:00
xvy
01127733f5 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-14 04:03:07 +01:00
xvy
cdb8af5672 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-14 01:55:31 +01:00
Daniel Stasiak
346fdd7acc Translated using Weblate (Polish)
Currently translated at 87.0% (16714 of 19203 strings)
2025-03-14 00:10:00 +01:00
Nut.andor
a474684405 debug teleport #targets 2025-03-13 21:12:10 +01:00
Daniel Stasiak
98979f5d61 Translated using Weblate (Polish)
Currently translated at 87.0% (16710 of 19203 strings)
2025-03-13 18:04:50 +01:00
Daniel Stasiak
1cf308efa7 Translated using Weblate (Polish)
Currently translated at 86.9% (16695 of 19203 strings)
2025-03-13 03:06:13 +01:00
Daniel Stasiak
fd56b4434e Translated using Weblate (Polish)
Currently translated at 86.9% (16695 of 19203 strings)
2025-03-12 22:00:47 +01:00
Daniel Stasiak
fd15bd78f7 Translated using Weblate (Polish)
Currently translated at 86.8% (16682 of 19203 strings)
2025-03-12 20:33:22 +01:00
xvy
f830445a62 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-12 07:05:08 +01:00
Daniel Stasiak
2af0874c39 Translated using Weblate (Polish)
Currently translated at 86.8% (16678 of 19203 strings)
2025-03-12 04:08:37 +01:00
xvy
eda2755e38 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (612 of 612 strings)
2025-03-11 09:29:46 +01:00
xvy
81f0d701b5 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-11 09:29:45 +01:00
Daniel Stasiak
c6f93ffa11 Translated using Weblate (Polish)
Currently translated at 86.7% (16662 of 19203 strings)
2025-03-11 09:29:44 +01:00
xvy
d5d0b56593 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-10 10:45:10 +01:00
xvy
f328da34c1 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-10 04:22:49 +01:00
xvy
c6b34c8485 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-10 03:04:00 +01:00
Nut.andor
c926366fd5 debug teleport #targets 2025-03-09 21:59:04 +01:00
xvy
c6330e23e5 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-09 21:43:33 +01:00
Daniel Stasiak
a137247483 Translated using Weblate (Polish)
Currently translated at 86.6% (16647 of 19203 strings)
2025-03-09 21:43:31 +01:00
xvy
99e056b022 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-09 14:08:14 +01:00
xvy
f8314567f2 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-09 12:58:51 +01:00
xvy
cd430eb528 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-09 07:04:00 +01:00
Daniel Stasiak
929cb81ea5 Translated using Weblate (Polish)
Currently translated at 86.5% (16617 of 19203 strings)
2025-03-09 04:07:26 +01:00
xvy
dfc2b9410c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-08 15:14:00 +01:00
Daniel Stasiak
c58095a689 Translated using Weblate (Polish)
Currently translated at 86.4% (16601 of 19203 strings)
2025-03-07 23:27:41 +01:00
Daniel Stasiak
1994ca69f2 Translated using Weblate (Polish)
Currently translated at 86.4% (16596 of 19203 strings)
2025-03-07 22:43:16 +01:00
Daniel Stasiak
34413664a5 Translated using Weblate (Polish)
Currently translated at 86.4% (16593 of 19203 strings)
2025-03-07 22:36:20 +01:00
Daniel Stasiak
af0c316d33 Translated using Weblate (Polish)
Currently translated at 86.3% (16590 of 19203 strings)
2025-03-07 20:05:32 +01:00
Daniel Stasiak
918838b7eb Translated using Weblate (Polish)
Currently translated at 86.3% (16589 of 19203 strings)
2025-03-06 23:09:29 +01:00
Daniel Stasiak
1ada919cf2 Translated using Weblate (Polish)
Currently translated at 86.3% (16579 of 19203 strings)
2025-03-06 19:27:42 +01:00
Daniel Stasiak
871b11ec2f Translated using Weblate (Polish)
Currently translated at 86.2% (16571 of 19203 strings)
2025-03-06 02:33:41 +01:00
xvy
ff9eebec79 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-05 06:58:23 +01:00
xvy
7c62660192 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-05 06:27:22 +01:00
xvy
86c177ddd8 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-05 06:08:33 +01:00
xvy
20a9e0170e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-05 06:01:22 +01:00
xvy
3ee260800d Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-05 03:40:48 +01:00
xvy
4168d88f6c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-05 02:49:36 +01:00
xvy
396b08d9c1 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-05 02:42:44 +01:00
Daniel Stasiak
1800c36918 Translated using Weblate (Polish)
Currently translated at 86.1% (16552 of 19203 strings)
2025-03-04 22:55:30 +01:00
JohannesBoanerges
dbbe58e780 Translated using Weblate (German)
Currently translated at 91.7% (17625 of 19203 strings)
2025-03-04 19:05:15 +01:00
Raphi
2b0a0e0662 Translated using Weblate (German)
Currently translated at 91.6% (17607 of 19203 strings)
2025-03-04 18:26:39 +01:00
JohannesBoanerges
0a3b6182bb Translated using Weblate (German)
Currently translated at 91.6% (17607 of 19203 strings)
2025-03-04 18:26:39 +01:00
xvy
795d44fe64 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-04 09:36:31 +01:00
xvy
7f41df5932 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-04 02:23:40 +01:00
Daniel Stasiak
012e0d12f7 Translated using Weblate (Polish)
Currently translated at 86.0% (16531 of 19203 strings)
2025-03-03 19:11:01 +01:00
xvy
93e2117b21 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-03 08:32:39 +01:00
Daniel Stasiak
b38ad51811 Translated using Weblate (Polish)
Currently translated at 85.9% (16506 of 19203 strings)
2025-03-03 05:55:04 +01:00
Kevin Rojas Costa Rica
ea14f8fd67 Translated using Weblate (Spanish)
Currently translated at 74.9% (14388 of 19203 strings)
2025-03-02 19:50:52 +01:00
Kevin Rojas Costa Rica
cecbe8aeb3 Translated using Weblate (Spanish)
Currently translated at 74.8% (14374 of 19203 strings)
2025-03-02 05:17:45 +01:00
Kevin Rojas Costa Rica
bde5140d00 Translated using Weblate (Spanish)
Currently translated at 74.8% (14372 of 19203 strings)
2025-03-02 04:11:21 +01:00
Daniel Stasiak
b4fdfb2184 Translated using Weblate (Polish)
Currently translated at 85.8% (16488 of 19203 strings)
2025-03-02 00:24:21 +01:00
Daniel Stasiak
05594baea5 Translated using Weblate (Polish)
Currently translated at 85.8% (16478 of 19203 strings)
2025-03-01 21:24:12 +01:00
xvy
406ee85a32 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-03-01 08:04:38 +01:00
Daniel Stasiak
f7d7aed8ff Translated using Weblate (Polish)
Currently translated at 85.7% (16457 of 19203 strings)
2025-03-01 00:19:26 +01:00
xvy
b3c2c92dbc Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-28 15:08:12 +01:00
xvy
abc9ac8b0a Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-28 04:46:53 +01:00
xvy
16ac1c1bc8 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-28 04:44:16 +01:00
xvy
8ed9e39e32 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-28 04:42:57 +01:00
xvy
f72242ed47 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-28 04:41:43 +01:00
xvy
e02bb34c95 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-28 02:59:25 +01:00
xvy
781731bb7d Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-28 02:54:23 +01:00
xvy
781cefa5d2 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-28 02:52:03 +01:00
xvy
a6669dff12 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-28 02:47:32 +01:00
xvy
136a867939 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-28 02:42:18 +01:00
Daniel Stasiak
ae22a78fc3 Translated using Weblate (Polish)
Currently translated at 85.6% (16439 of 19203 strings)
2025-02-28 02:42:15 +01:00
Kevin Rojas Costa Rica
53408496e5 Translated using Weblate (Spanish)
Currently translated at 74.8% (14367 of 19203 strings)
2025-02-28 02:42:13 +01:00
xvy
759635947d Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-27 15:31:18 +01:00
xvy
b0939becc9 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-27 09:21:28 +01:00
xvy
42d3b81f18 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-27 08:43:39 +01:00
xvy
bd5beff711 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-27 07:50:33 +01:00
xvy
4f298d55fc Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-27 04:45:19 +01:00
xvy
cddf1c8a3b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-27 01:55:31 +01:00
Daniel Stasiak
5dbb45e08f Translated using Weblate (Polish)
Currently translated at 85.4% (16404 of 19203 strings)
2025-02-27 01:55:28 +01:00
ilya
dd13229ce4 Translated using Weblate (Russian)
Currently translated at 100.0% (612 of 612 strings)
2025-02-27 01:55:28 +01:00
xvy
4edeb85d97 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-26 09:05:50 +01:00
Burak Hüseyin Ekseli
59fc1a7cf5 Translated using Weblate (Turkish)
Currently translated at 32.0% (6157 of 19203 strings)
2025-02-26 09:05:48 +01:00
xvy
d690d061d2 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-26 06:51:49 +01:00
xvy
0ce85fe6c8 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-26 06:20:14 +01:00
Daniel Stasiak
fab0f57a28 Translated using Weblate (Polish)
Currently translated at 85.3% (16387 of 19203 strings)
2025-02-26 01:21:00 +01:00
Daniel Stasiak
b181555d23 Translated using Weblate (Polish)
Currently translated at 85.3% (16382 of 19203 strings)
2025-02-25 23:03:43 +01:00
Renamed1986
c02a8a37d3 Translated using Weblate (Russian)
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-25 16:39:06 +01:00
Nut.andor
b341d7e6f1 Pull Request #86: Anti cheat checksum 2025-02-25 15:32:58 +01:00
OMGeeky
31f25a963f fix whitespace formatting
Signed-off-by: OMGeeky <aalaalgmx@gmail.com>
2025-02-25 15:28:52 +01:00
Renamed1986
4e7ecb5c85 Translated using Weblate (Russian)
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-25 15:11:52 +01:00
xvy
aafff1dab6 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-25 09:43:21 +01:00
xvy
36c99a861d Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-25 08:47:01 +01:00
xvy
27c4de04db Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-25 07:14:41 +01:00
xvy
ae617c94fe Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-25 04:15:34 +01:00
xvy
3f6f76f5cd Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-25 03:15:57 +01:00
Burak Hüseyin Ekseli
adf3215e3a Translated using Weblate (Turkish)
Currently translated at 31.9% (6143 of 19203 strings)
2025-02-25 00:03:11 +01:00
Burak Hüseyin Ekseli
0b9be84c80 Translated using Weblate (Turkish)
Currently translated at 31.6% (6087 of 19203 strings)
2025-02-24 23:01:20 +01:00
Burak Hüseyin Ekseli
e58c0db0f2 Translated using Weblate (Turkish)
Currently translated at 31.6% (6082 of 19203 strings)
2025-02-24 22:56:04 +01:00
Daniel Stasiak
1f33eab415 Translated using Weblate (Polish)
Currently translated at 85.2% (16376 of 19203 strings)
2025-02-24 22:56:02 +01:00
ilya
c389100211 Translated using Weblate (Russian)
Currently translated at 100.0% (612 of 612 strings)
2025-02-24 22:56:00 +01:00
xvy
0544940b9b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-24 21:21:13 +01:00
Daniel Stasiak
70acf9303f Translated using Weblate (Polish)
Currently translated at 85.2% (16372 of 19203 strings)
2025-02-24 21:21:11 +01:00
ilya
159b82a75e Translated using Weblate (Russian)
Currently translated at 100.0% (612 of 612 strings)
2025-02-24 21:21:09 +01:00
OMGeeky
30030031b2 add checksum to savegame to track if the savegame has been modified
Signed-off-by: OMGeeky <aalaalgmx@gmail.com>
2025-02-24 21:04:22 +01:00
Nut.andor
e548a8110e duplicates removed 2025-02-24 17:34:57 +01:00
xvy
4a33bac877 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-24 06:07:27 +01:00
Daniel Stasiak
6999e08d95 Translated using Weblate (Polish)
Currently translated at 85.1% (16352 of 19203 strings)
2025-02-24 06:07:26 +01:00
Daniel Stasiak
08357c227c Translated using Weblate (Polish)
Currently translated at 85.1% (16350 of 19203 strings)
2025-02-23 21:47:27 +01:00
ilya
c0b156a1e7 Translated using Weblate (Russian)
Currently translated at 100.0% (612 of 612 strings)
2025-02-23 21:47:25 +01:00
xvy
0ffae1e118 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-23 10:37:23 +01:00
Daniel Stasiak
d9af9e8883 Translated using Weblate (Polish)
Currently translated at 84.9% (16319 of 19203 strings)
2025-02-23 10:37:21 +01:00
ilya
57e3e16b89 Translated using Weblate (Russian)
Currently translated at 100.0% (612 of 612 strings)
2025-02-23 10:37:19 +01:00
Daniel Stasiak
806cc59521 Translated using Weblate (Polish)
Currently translated at 84.9% (16311 of 19203 strings)
2025-02-22 19:12:16 +01:00
Daniel Stasiak
0e42043b3d Translated using Weblate (Polish)
Currently translated at 84.8% (16289 of 19203 strings)
2025-02-22 03:16:37 +01:00
Daniel Stasiak
1020c7e0ed Translated using Weblate (Polish)
Currently translated at 84.7% (16279 of 19203 strings)
2025-02-21 22:21:35 +01:00
xvy
c65b99ad86 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-21 10:29:37 +01:00
Burak Hüseyin Ekseli
5bd06db0b0 Translated using Weblate (Turkish)
Currently translated at 31.6% (6081 of 19203 strings)
2025-02-21 10:29:36 +01:00
Daniel Stasiak
a6cd41c170 Translated using Weblate (Polish)
Currently translated at 84.7% (16275 of 19203 strings)
2025-02-20 21:59:18 +01:00
Burak Hüseyin Ekseli
5fb7ffef30 Translated using Weblate (Turkish)
Currently translated at 31.5% (6061 of 19203 strings)
2025-02-20 11:03:14 +01:00
xvy
8230667037 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-20 10:25:25 +01:00
Burak Hüseyin Ekseli
1a9bddfb08 Translated using Weblate (Turkish)
Currently translated at 31.4% (6047 of 19203 strings)
2025-02-20 10:25:24 +01:00
xvy
634ff7afaf Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-20 08:52:00 +01:00
xvy
25260bf8c1 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-20 06:58:55 +01:00
Daniel Stasiak
f52e88403c Translated using Weblate (Polish)
Currently translated at 84.6% (16252 of 19203 strings)
2025-02-20 02:36:47 +01:00
Daniel Stasiak
1623228c59 Translated using Weblate (Polish)
Currently translated at 84.5% (16230 of 19203 strings)
2025-02-19 21:31:01 +01:00
Daniel Stasiak
765b76d01c Translated using Weblate (Polish)
Currently translated at 84.5% (16227 of 19203 strings)
2025-02-19 21:10:24 +01:00
Burak Hüseyin Ekseli
3ace8c8163 Translated using Weblate (Turkish)
Currently translated at 30.9% (5939 of 19203 strings)
2025-02-19 18:15:38 +01:00
Burak Hüseyin Ekseli
263ba70577 Translated using Weblate (Turkish)
Currently translated at 30.8% (5922 of 19203 strings)
2025-02-19 18:09:09 +01:00
Burak Hüseyin Ekseli
7787b4fa88 Translated using Weblate (Turkish)
Currently translated at 30.4% (5855 of 19203 strings)
2025-02-19 17:27:24 +01:00
Burak Hüseyin Ekseli
54d358a912 Translated using Weblate (Turkish)
Currently translated at 30.4% (5854 of 19203 strings)
2025-02-19 17:26:37 +01:00
Burak Hüseyin Ekseli
f5a4cc6298 Translated using Weblate (Turkish)
Currently translated at 30.4% (5853 of 19203 strings)
2025-02-19 17:26:10 +01:00
Burak Hüseyin Ekseli
c71db30dc9 Translated using Weblate (Turkish)
Currently translated at 30.4% (5851 of 19203 strings)
2025-02-19 17:25:09 +01:00
Burak Hüseyin Ekseli
522d63a7d5 Translated using Weblate (Turkish)
Currently translated at 30.4% (5850 of 19203 strings)
2025-02-19 17:24:59 +01:00
Burak Hüseyin Ekseli
77e2e64ee8 Translated using Weblate (Turkish)
Currently translated at 30.4% (5848 of 19203 strings)
2025-02-19 11:26:29 +01:00
xvy
19c4ae6180 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-19 09:51:00 +01:00
xvy
51c71c0106 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-19 08:08:45 +01:00
Burak Hüseyin Ekseli
05528f223f Translated using Weblate (Turkish)
Currently translated at 30.3% (5826 of 19203 strings)
2025-02-19 07:31:32 +01:00
Burak Hüseyin Ekseli
9cc5ae0d06 Translated using Weblate (Turkish)
Currently translated at 30.2% (5802 of 19203 strings)
2025-02-19 07:20:44 +01:00
xvy
c535d5339b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-19 06:16:40 +01:00
xvy
530c39bfe7 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-19 05:18:13 +01:00
xvy
ca8330936e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-19 04:40:39 +01:00
xvy
16ab2a9000 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-19 04:11:34 +01:00
xvy
7ee8808930 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-19 03:36:12 +01:00
xvy
25ed3aa460 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-19 02:38:07 +01:00
Daniel Stasiak
e6af5b9ff8 Translated using Weblate (Polish)
Currently translated at 84.4% (16226 of 19203 strings)
2025-02-18 22:25:19 +01:00
Daniel Stasiak
d05f9f1f17 Translated using Weblate (Polish)
Currently translated at 84.4% (16219 of 19203 strings)
2025-02-18 20:29:29 +01:00
xvy
dea3386a8b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-18 11:28:55 +01:00
xvy
dee12529d9 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-18 07:51:06 +01:00
xvy
ff83682d4a Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-18 01:56:23 +01:00
Daniel Stasiak
b5681143cb Translated using Weblate (Polish)
Currently translated at 84.3% (16201 of 19203 strings)
2025-02-18 00:33:46 +01:00
Nut.andor
476c972416 tel #9 2025-02-18 00:04:33 +01:00
xvy
2f6b6e115e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-17 20:07:58 +01:00
Burak Hüseyin Ekseli
676e666f78 Translated using Weblate (Turkish)
Currently translated at 30.1% (5785 of 19203 strings)
2025-02-17 20:07:57 +01:00
xvy
d703dc2304 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-17 09:22:05 +01:00
xvy
ace4c2a65a Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-17 09:18:13 +01:00
xvy
23189efa79 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-17 07:38:55 +01:00
xvy
bdbacfe74c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-17 04:44:10 +01:00
Daniel Stasiak
3dbc1f82e6 Translated using Weblate (Polish)
Currently translated at 84.3% (16197 of 19203 strings)
2025-02-16 21:47:38 +01:00
Daniel Stasiak
77709bfea2 Translated using Weblate (Polish)
Currently translated at 84.2% (16175 of 19203 strings)
2025-02-16 05:05:23 +01:00
Daniel Stasiak
db46ecf7af Translated using Weblate (Polish)
Currently translated at 84.1% (16160 of 19203 strings)
2025-02-15 20:47:35 +01:00
Daniel Stasiak
0dfbd223eb Translated using Weblate (Polish)
Currently translated at 84.1% (16155 of 19203 strings)
2025-02-14 22:11:38 +01:00
Daniel Stasiak
c166cb5c6d Translated using Weblate (Polish)
Currently translated at 84.0% (16146 of 19203 strings)
2025-02-14 21:09:41 +01:00
Burak Hüseyin Ekseli
49927184a2 Translated using Weblate (Turkish)
Currently translated at 29.8% (5728 of 19203 strings)
2025-02-14 14:04:48 +01:00
xvy
769600aff5 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-14 09:18:30 +01:00
Burak Hüseyin Ekseli
1aaa813f80 Translated using Weblate (Turkish)
Currently translated at 29.7% (5719 of 19203 strings)
2025-02-14 09:18:28 +01:00
Daniel Stasiak
e49e54dfb0 Translated using Weblate (Polish)
Currently translated at 84.0% (16143 of 19203 strings)
2025-02-14 09:18:25 +01:00
Arnaud
1c761123ef Translated using Weblate (Finnish)
Currently translated at 1.5% (301 of 19203 strings)
2025-02-13 18:02:01 +01:00
Burak Hüseyin Ekseli
dafd984f4f Translated using Weblate (Turkish)
Currently translated at 29.6% (5697 of 19203 strings)
2025-02-13 18:01:58 +01:00
Daniel Stasiak
dd7dc9e4de Translated using Weblate (Polish)
Currently translated at 83.9% (16123 of 19203 strings)
2025-02-13 18:01:55 +01:00
xvy
8d4b35c929 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-12 09:02:02 +01:00
Daniel Stasiak
f0b94fa560 Translated using Weblate (Polish)
Currently translated at 83.8% (16106 of 19203 strings)
2025-02-12 09:01:59 +01:00
xvy
b13a20de5a Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-11 03:01:40 +01:00
Daniel Stasiak
8223afb1b4 Translated using Weblate (Polish)
Currently translated at 83.7% (16092 of 19203 strings)
2025-02-11 03:01:38 +01:00
VeridisQuo
21f049fc49 Translated using Weblate (Esperanto)
Currently translated at 72.0% (441 of 612 strings)
2025-02-10 16:01:57 +01:00
xvy
13ce88d7dd Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-10 16:01:56 +01:00
Daniel Stasiak
5dc7c8d6a1 Translated using Weblate (Polish)
Currently translated at 83.7% (16078 of 19203 strings)
2025-02-10 16:01:53 +01:00
Daniel Stasiak
e989503238 Translated using Weblate (Polish)
Currently translated at 83.6% (16070 of 19203 strings)
2025-02-09 15:15:06 +01:00
xvy
0514f1facd Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-09 11:19:53 +01:00
Daniel Stasiak
6f81dcf97e Translated using Weblate (Polish)
Currently translated at 83.6% (16063 of 19203 strings)
2025-02-09 11:19:52 +01:00
xvy
5bb0290d10 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-08 19:10:15 +01:00
Anderson Nogueira Silva
a5a4d07282 Translated using Weblate (Portuguese (Brazil))
Currently translated at 81.4% (15647 of 19203 strings)
2025-02-08 19:10:13 +01:00
Daniel Stasiak
67a3670641 Translated using Weblate (Polish)
Currently translated at 83.5% (16039 of 19203 strings)
2025-02-08 19:10:12 +01:00
Miroslav Iliev
16bff85b1f Translated using Weblate (Bulgarian)
Currently translated at 75.0% (459 of 612 strings)
2025-02-07 21:02:09 +00:00
xvy
a14bcbf9a5 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-07 21:02:08 +00:00
Daniel Stasiak
948a785474 Translated using Weblate (Polish)
Currently translated at 83.4% (16026 of 19203 strings)
2025-02-07 21:02:05 +00:00
Nut.andor
dfeafef1a9 newb sprites 2025-02-06 16:07:49 +01:00
Nut.andor
71ce482587 newb sprites 2025-02-06 14:58:15 +01:00
Nut.andor
94672e2fc0 debug teleport #targets 2025-02-06 14:58:14 +01:00
VeridisQuo
d41e83dd86 Translated using Weblate (Esperanto)
Currently translated at 0.5% (109 of 19202 strings)
2025-02-06 12:02:17 +00:00
VeridisQuo
dea99e8770 Translated using Weblate (Esperanto)
Currently translated at 63.7% (390 of 612 strings)
2025-02-06 12:02:15 +00:00
xvy
e0d316f953 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-06 12:02:13 +00:00
Daniel Stasiak
b77eba6186 Translated using Weblate (Polish)
Currently translated at 83.2% (15978 of 19203 strings)
2025-02-06 12:02:10 +00:00
xvy
73e93046bc Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-05 07:02:06 +01:00
Daniel Stasiak
fd5568710c Translated using Weblate (Polish)
Currently translated at 83.1% (15966 of 19203 strings)
2025-02-04 04:13:31 +01:00
Ricky Tigg
6caf00b7ab Translated using Weblate (Finnish)
Currently translated at 1.5% (300 of 19203 strings)
2025-02-03 20:02:42 +00:00
xvy
59776a258e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-03 20:02:40 +00:00
Daniel Stasiak
2cd76c4e5f Translated using Weblate (Polish)
Currently translated at 83.0% (15950 of 19203 strings)
2025-02-03 20:02:37 +00:00
xvy
59fdab737f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-02 20:02:10 +01:00
Anderson Nogueira Silva
823959e801 Translated using Weblate (Portuguese (Brazil))
Currently translated at 81.3% (15624 of 19203 strings)
2025-02-02 20:02:08 +01:00
xvy
8c3fe791eb Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-01 19:10:04 +01:00
Anderson Nogueira Silva
2b98e295ed Translated using Weblate (Portuguese (Brazil))
Currently translated at 81.3% (15613 of 19203 strings)
2025-02-01 19:10:02 +01:00
xvy
dd0efabce9 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-02-01 05:40:17 +01:00
Daniel Stasiak
a0b5516608 Translated using Weblate (Polish)
Currently translated at 83.0% (15939 of 19203 strings)
2025-01-31 23:02:04 +01:00
Ricky Tigg
401fd815f1 Translated using Weblate (Finnish)
Currently translated at 33.3% (204 of 612 strings)
2025-01-31 19:23:15 +01:00
Ricky Tigg
b83f339052 Translated using Weblate (Finnish)
Currently translated at 1.5% (300 of 19203 strings)
2025-01-31 19:23:14 +01:00
VeridisQuo
f41a104aa2 Translated using Weblate (Esperanto)
Currently translated at 0.5% (101 of 19202 strings)
2025-01-31 05:58:56 +01:00
VeridisQuo
a58db0d7a0 Translated using Weblate (Esperanto)
Currently translated at 61.2% (375 of 612 strings)
2025-01-31 05:58:56 +01:00
xvy
576438c5d6 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-31 05:58:55 +01:00
Daniel Stasiak
20b89ac790 Translated using Weblate (Polish)
Currently translated at 82.9% (15938 of 19203 strings)
2025-01-31 05:58:53 +01:00
Ron McNair
b0e3156592 Translated using Weblate (Esperanto)
Currently translated at 56.2% (344 of 612 strings)
2025-01-30 10:21:44 +01:00
Ron McNair
ad624f42a0 Translated using Weblate (Esperanto)
Currently translated at 0.5% (100 of 19202 strings)
2025-01-30 06:57:47 +01:00
Ron McNair
7c5dc8bfcb Translated using Weblate (Esperanto)
Currently translated at 54.5% (334 of 612 strings)
2025-01-30 06:57:45 +01:00
Daniel Stasiak
c65f503a24 Translated using Weblate (Polish)
Currently translated at 82.9% (15933 of 19203 strings)
2025-01-30 06:57:44 +01:00
xvy
c91b30bdcf Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-29 16:02:58 +01:00
Daniel Stasiak
f7c078b873 Translated using Weblate (Polish)
Currently translated at 82.9% (15924 of 19203 strings)
2025-01-29 16:02:56 +01:00
Daniel Stasiak
eeccddaf9c Translated using Weblate (Polish)
Currently translated at 82.7% (15885 of 19203 strings)
2025-01-28 01:52:47 +01:00
Daniel Stasiak
6ff9098630 Translated using Weblate (Polish)
Currently translated at 82.6% (15864 of 19203 strings)
2025-01-27 20:01:53 +00:00
xvy
bdf8811ea1 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-26 20:01:53 +01:00
Daniel Stasiak
0e4ce207ad Translated using Weblate (Polish)
Currently translated at 82.4% (15836 of 19203 strings)
2025-01-26 20:01:51 +01:00
xvy
bb31dec6dd Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-25 19:11:14 +01:00
Daniel Stasiak
e63b684101 Translated using Weblate (Polish)
Currently translated at 82.2% (15804 of 19203 strings)
2025-01-25 00:06:28 +01:00
xvy
cac7ce19a0 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-24 11:23:57 +01:00
Daniel Stasiak
608e27cd92 Translated using Weblate (Polish)
Currently translated at 82.2% (15795 of 19203 strings)
2025-01-24 11:23:55 +01:00
xvy
5b6ef25d2c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-23 13:02:40 +01:00
Daniel Stasiak
2551ef08a0 Translated using Weblate (Polish)
Currently translated at 82.0% (15761 of 19203 strings)
2025-01-23 13:02:36 +01:00
xvy
69ebcb3aff Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-22 11:34:32 +01:00
Daniel Stasiak
4e73ec5560 Translated using Weblate (Polish)
Currently translated at 82.0% (15757 of 19203 strings)
2025-01-22 11:34:30 +01:00
xvy
a50b29c9f0 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-22 05:47:00 +00:00
Daniel Stasiak
770ebc3819 Translated using Weblate (Polish)
Currently translated at 82.0% (15748 of 19203 strings)
2025-01-22 05:46:47 +00:00
Kevin Rojas Costa Rica
1ee2b3615b Translated using Weblate (Spanish)
Currently translated at 74.7% (14360 of 19203 strings)
2025-01-22 05:46:45 +00:00
Kevin Rojas Costa Rica
33b30cddd9 Translated using Weblate (Spanish)
Currently translated at 74.7% (14345 of 19203 strings)
2025-01-21 05:39:09 +01:00
Palkia
f29fa33aa0 Translated using Weblate (Spanish)
Currently translated at 74.7% (14345 of 19203 strings)
2025-01-21 05:39:09 +01:00
Kevin Rojas Costa Rica
37227533ef Translated using Weblate (Spanish)
Currently translated at 100.0% (612 of 612 strings)
2025-01-21 05:35:07 +01:00
Daniel Stasiak
082cd32d4e Translated using Weblate (Polish)
Currently translated at 81.8% (15718 of 19203 strings)
2025-01-21 05:35:07 +01:00
Palkia
322a1f77aa Translated using Weblate (Spanish)
Currently translated at 74.7% (14345 of 19203 strings)
2025-01-21 05:35:06 +01:00
Wladimir Castañeda Sánchez
6015408b76 Translated using Weblate (Spanish)
Currently translated at 74.7% (14345 of 19203 strings)
2025-01-21 05:35:05 +01:00
Alejandro Ruiz Medina
f60c35b2eb Translated using Weblate (Spanish)
Currently translated at 74.7% (14345 of 19203 strings)
2025-01-21 05:35:05 +01:00
Kevin Rojas Costa Rica
1e8e4bdf76 Translated using Weblate (Spanish)
Currently translated at 74.7% (14345 of 19203 strings)
2025-01-21 05:35:05 +01:00
Ricky Tigg
a041dcd4d5 Translated using Weblate (Finnish)
Currently translated at 30.5% (187 of 612 strings)
2025-01-20 10:20:21 +01:00
Ricky Tigg
b463422264 Translated using Weblate (Finnish)
Currently translated at 1.5% (300 of 19203 strings)
2025-01-20 10:20:20 +01:00
Daniel Stasiak
b039e4966e Translated using Weblate (Polish)
Currently translated at 81.7% (15707 of 19203 strings)
2025-01-20 10:20:19 +01:00
Ricky Tigg
fceaf6aa89 Translated using Weblate (Finnish)
Currently translated at 0.3% (69 of 19203 strings)
2025-01-19 12:00:23 +01:00
Ricky Tigg
a6ce31c499 Translated using Weblate (Finnish)
Currently translated at 8.1% (50 of 612 strings)
2025-01-19 11:59:50 +01:00
Ricky Tigg
025d6cb3c6 Translated using Weblate (Finnish)
Currently translated at 0.3% (67 of 19203 strings)
2025-01-19 11:59:50 +01:00
Ricky Tigg
448add9cda Translated using Weblate (Finnish)
Currently translated at 7.8% (48 of 612 strings)
2025-01-19 11:48:35 +01:00
Ricky Tigg
86b521e5ec Translated using Weblate (Finnish)
Currently translated at 0.2% (57 of 19203 strings)
2025-01-19 11:48:35 +01:00
Ricky Tigg
7986e5280d Translated using Weblate (Finnish)
Currently translated at 7.6% (47 of 612 strings)
2025-01-19 11:47:33 +01:00
Ricky Tigg
9aa216ea6d Translated using Weblate (Finnish)
Currently translated at 0.2% (55 of 19203 strings)
2025-01-19 11:47:33 +01:00
Ricky Tigg
e2ea022f69 Translated using Weblate (Finnish)
Currently translated at 7.1% (44 of 612 strings)
2025-01-19 11:43:38 +01:00
Ricky Tigg
01886f1f54 Translated using Weblate (Finnish)
Currently translated at 0.2% (51 of 19203 strings)
2025-01-19 11:43:38 +01:00
Ricky Tigg
fc35dc0d2b Translated using Weblate (Finnish)
Currently translated at 0.2% (41 of 19203 strings)
2025-01-19 11:34:54 +01:00
Ricky Tigg
063cd69354 Translated using Weblate (Finnish)
Currently translated at 0.2% (40 of 19203 strings)
2025-01-19 11:34:36 +01:00
Ricky Tigg
6126d2ebb6 Translated using Weblate (Finnish)
Currently translated at 0.2% (39 of 19203 strings)
2025-01-19 11:34:21 +01:00
Ricky Tigg
a43e8daaf3 Translated using Weblate (Finnish)
Currently translated at 0.1% (38 of 19203 strings)
2025-01-19 11:33:53 +01:00
Ricky Tigg
1b1b33c73f Translated using Weblate (Finnish)
Currently translated at 0.1% (37 of 19203 strings)
2025-01-19 11:32:44 +01:00
Ricky Tigg
4a86673a59 Translated using Weblate (Finnish)
Currently translated at 0.1% (36 of 19203 strings)
2025-01-19 11:32:24 +01:00
Patryck Cardozo
577d1b9d58 Translated using Weblate (Portuguese (Brazil))
Currently translated at 81.1% (15584 of 19203 strings)
2025-01-19 11:32:23 +01:00
Patryck Cardozo
cd008a5629 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.6% (610 of 612 strings)
2025-01-19 11:32:22 +01:00
n1ck
0a7225ebb2 Translated using Weblate (Spanish)
Currently translated at 99.6% (610 of 612 strings)
2025-01-18 19:12:47 +01:00
xvy
1036c7b659 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-18 19:12:47 +01:00
Patryck Cardozo
7ccadb3acf Translated using Weblate (Portuguese (Brazil))
Currently translated at 80.9% (15542 of 19203 strings)
2025-01-18 19:12:45 +01:00
Patryck Cardozo
ac3f4b1957 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.6% (610 of 612 strings)
2025-01-18 19:12:43 +01:00
Ricky Tigg
a024440fcc Translated using Weblate (Finnish)
Currently translated at 0.1% (35 of 19203 strings)
2025-01-17 19:00:55 +00:00
xvy
7c064ac9dc Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-17 19:00:53 +00:00
Filip
255fd90757 Translated using Weblate (Polish)
Currently translated at 81.7% (15695 of 19203 strings)
2025-01-17 19:00:50 +00:00
Daniel Stasiak
d81d5470a2 Translated using Weblate (Polish)
Currently translated at 81.7% (15695 of 19203 strings)
2025-01-17 19:00:49 +00:00
Renamed1986
6293f1e3c9 Translated using Weblate (Russian)
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-16 19:00:37 +01:00
Daniel Stasiak
01d47c0ff7 Translated using Weblate (Polish)
Currently translated at 81.3% (15617 of 19203 strings)
2025-01-16 19:00:34 +01:00
Nut.andor
3405b7692c newb sprites 2025-01-16 16:16:31 +01:00
xvy
5edeecc6e4 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-15 14:04:12 +01:00
xvy
048433caeb Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-15 07:22:35 +01:00
xvy
7f5e8dbd1f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-15 03:33:39 +01:00
Daniel Stasiak
3d7238e835 Translated using Weblate (Polish)
Currently translated at 81.1% (15586 of 19203 strings)
2025-01-15 03:33:38 +01:00
Bob Idle
300391b97b Translated using Weblate (German)
Currently translated at 91.6% (17597 of 19203 strings)
2025-01-15 03:33:36 +01:00
xvy
7795b12f85 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-14 05:00:47 +00:00
Daniel Stasiak
d94ec642ef Translated using Weblate (Polish)
Currently translated at 80.9% (15542 of 19203 strings)
2025-01-14 05:00:45 +00:00
Nut.andor
ed11bf58a3 debug teleport #targets 2025-01-13 04:39:31 +01:00
Nut.andor
f237694d21 broken_1 + entrance_1 2025-01-13 01:37:34 +01:00
Bob Idle
3642c425ca Translated using Weblate (Czech)
Currently translated at 99.6% (610 of 612 strings)
2025-01-12 23:24:12 +01:00
xvy
418b1827ab Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-12 23:24:12 +01:00
Daniel Stasiak
2293dc1f6d Translated using Weblate (Polish)
Currently translated at 80.8% (15517 of 19203 strings)
2025-01-12 23:24:09 +01:00
Bob Idle
b57f137334 Translated using Weblate (German)
Currently translated at 91.6% (17597 of 19203 strings)
2025-01-12 23:24:07 +01:00
Bob Idle
df7df92a7a Translated using Weblate (German)
Currently translated at 100.0% (612 of 612 strings)
2025-01-12 23:24:06 +01:00
Daniel Stasiak
6b1e74f2c9 Translated using Weblate (Polish)
Currently translated at 80.6% (15482 of 19203 strings)
2025-01-12 10:17:28 +01:00
Daniel Stasiak
a2c999e5af Translated using Weblate (Polish)
Currently translated at 80.4% (15445 of 19203 strings)
2025-01-11 20:19:36 +01:00
xvy
22426e4f39 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-11 19:14:14 +01:00
Daniel Stasiak
855aeed779 Translated using Weblate (Polish)
Currently translated at 80.3% (15426 of 19203 strings)
2025-01-11 02:04:15 +01:00
Filip
894bdb15c4 Translated using Weblate (Polish)
Currently translated at 80.1% (15390 of 19203 strings)
2025-01-10 20:40:45 +01:00
Lacrom
7208030e79 Translated using Weblate (French)
Currently translated at 84.3% (16207 of 19203 strings)
2025-01-10 20:40:43 +01:00
Lacrom
27dcd1bf5b Translated using Weblate (French)
Currently translated at 99.8% (611 of 612 strings)
2025-01-10 20:40:41 +01:00
A-Nicoladie[FR]
e8a7cd4bf7 Translated using Weblate (French)
Currently translated at 99.8% (611 of 612 strings)
2025-01-10 14:52:15 +01:00
Filip
2c5ec1179e Translated using Weblate (Polish)
Currently translated at 80.1% (15390 of 19203 strings)
2025-01-10 14:41:48 +01:00
Lacrom
e141383873 Translated using Weblate (French)
Currently translated at 99.8% (611 of 612 strings)
2025-01-10 14:41:46 +01:00
Filip
4b8a0d799f Translated using Weblate (Polish)
Currently translated at 80.1% (15390 of 19203 strings)
2025-01-09 23:37:10 +01:00
Daniel Stasiak
50a2f1c9ba Translated using Weblate (Polish)
Currently translated at 80.1% (15390 of 19203 strings)
2025-01-09 23:37:10 +01:00
Miroslav Iliev
67c872397a Translated using Weblate (Bulgarian)
Currently translated at 74.6% (457 of 612 strings)
2025-01-09 11:33:41 +01:00
Ludvík Remešek
9ddb4c9886 Translated using Weblate (Czech)
Currently translated at 76.3% (14653 of 19203 strings)
2025-01-09 11:33:39 +01:00
Filip
db8e186c67 Translated using Weblate (Polish)
Currently translated at 79.9% (15344 of 19203 strings)
2025-01-09 11:33:37 +01:00
Daniel Stasiak
39a428eeef Translated using Weblate (Polish)
Currently translated at 79.9% (15344 of 19203 strings)
2025-01-09 11:33:37 +01:00
Bob Idle
961bb44d0f Translated using Weblate (Arabic)
Currently translated at 99.6% (610 of 612 strings)
2025-01-08 21:40:07 +01:00
Bob Idle
aeca5fd252 Translated using Weblate (Czech)
Currently translated at 99.5% (609 of 612 strings)
2025-01-08 21:40:07 +01:00
Bob Idle
e57bc41353 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 99.6% (610 of 612 strings)
2025-01-08 21:40:07 +01:00
Bob Idle
9a758bd279 Translated using Weblate (Basque)
Currently translated at 60.4% (370 of 612 strings)
2025-01-08 21:40:06 +01:00
Filip
ed08c442ac Translated using Weblate (Polish)
Currently translated at 79.6% (15300 of 19203 strings)
2025-01-08 21:40:06 +01:00
Daniel Stasiak
409867553c Translated using Weblate (Polish)
Currently translated at 79.6% (15300 of 19203 strings)
2025-01-08 21:40:06 +01:00
Bob Idle
d8e73cac6b Translated using Weblate (German)
Currently translated at 91.6% (17591 of 19203 strings)
2025-01-08 21:40:04 +01:00
Raphi
074a3d088c Translated using Weblate (German)
Currently translated at 91.6% (17591 of 19203 strings)
2025-01-08 21:40:03 +01:00
Bob Idle
fb42410d7e Translated using Weblate (German)
Currently translated at 99.6% (610 of 612 strings)
2025-01-08 21:40:02 +01:00
Daniel Stasiak
d3323118e7 Translated using Weblate (Polish)
Currently translated at 79.5% (15283 of 19203 strings)
2025-01-07 22:48:41 +01:00
Bob Idle
5ae8027a18 Translated using Weblate (German)
Currently translated at 91.5% (17587 of 19203 strings)
2025-01-07 22:48:39 +01:00
Raphi
e390fcbdbc Translated using Weblate (German)
Currently translated at 91.5% (17587 of 19203 strings)
2025-01-07 22:48:39 +01:00
Daniel Stasiak
8f87fe8355 Translated using Weblate (Polish)
Currently translated at 79.4% (15257 of 19203 strings)
2025-01-07 02:08:54 +01:00
Daniel Stasiak
5fd930497b Translated using Weblate (Polish)
Currently translated at 100.0% (612 of 612 strings)
2025-01-07 02:08:52 +01:00
xvy
3da566d39c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-05 22:01:23 +00:00
Daniel Stasiak
ea23161d42 Translated using Weblate (Polish)
Currently translated at 79.1% (15195 of 19203 strings)
2025-01-05 22:01:21 +00:00
Ruben Rodriguez Martin
a1e4b55597 Translated using Weblate (Spanish)
Currently translated at 74.5% (14321 of 19203 strings)
2025-01-05 22:01:19 +00:00
Nut.andor
de1f850cfd newb sprites 2025-01-04 20:43:47 +01:00
xvy
62a54d4ee7 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-04 19:12:37 +01:00
Daniel Stasiak
2714514680 Translated using Weblate (Polish)
Currently translated at 78.8% (15147 of 19203 strings)
2025-01-04 19:12:35 +01:00
Miroslav Iliev
a1cb6b3b35 Translated using Weblate (Bulgarian)
Currently translated at 73.6% (451 of 612 strings)
2025-01-03 21:01:37 +00:00
Daniel Stasiak
cc44cb7027 Translated using Weblate (Polish)
Currently translated at 78.8% (15135 of 19203 strings)
2025-01-03 21:01:35 +00:00
xvy
fc1dedc570 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (612 of 612 strings)
2025-01-02 21:00:43 +01:00
Filip
d64fa699b4 Translated using Weblate (Polish)
Currently translated at 78.6% (15110 of 19203 strings)
2025-01-02 21:00:41 +01:00
Daniel Stasiak
d22bb347fe Translated using Weblate (Polish)
Currently translated at 78.6% (15110 of 19203 strings)
2025-01-02 21:00:40 +01:00
xvy
d6739f3253 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2025-01-01 19:00:42 +00:00
Daniel Stasiak
d810aef5cd Translated using Weblate (Polish)
Currently translated at 78.4% (15072 of 19203 strings)
2025-01-01 19:00:40 +00:00
xvy
a23c4d2165 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2024-12-31 16:09:18 +01:00
Daniel Stasiak
eb2e2ced32 Translated using Weblate (Polish)
Currently translated at 78.1% (15015 of 19203 strings)
2024-12-30 23:17:46 +01:00
Daniel Stasiak
046aa71d6b Translated using Weblate (Polish)
Currently translated at 78.0% (14984 of 19203 strings)
2024-12-30 19:00:58 +00:00
xvy
6b6177e078 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (612 of 612 strings)
2024-12-29 19:05:38 +01:00
xvy
a14df5951e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2024-12-29 19:05:37 +01:00
Daniel Stasiak
f312440541 Translated using Weblate (Polish)
Currently translated at 77.6% (14905 of 19203 strings)
2024-12-29 19:05:34 +01:00
Filip
b97cc203fd Translated using Weblate (Polish)
Currently translated at 100.0% (612 of 612 strings)
2024-12-29 19:05:33 +01:00
Nut.andor
1286c0802c debug teleport #targets 2024-12-29 02:41:17 +01:00
Daniel Stasiak
672cbc99db Translated using Weblate (Polish)
Currently translated at 77.5% (14883 of 19203 strings)
2024-12-28 19:11:56 +01:00
Nut.andor
35034b4e9f Merge branch 'pulls/1829009049/82' into AT_Source_Next_Release 2024-12-28 04:21:23 +01:00
Nut.andor
6f52c4b39d italic 2024-12-28 04:08:15 +01:00
Nut.andor
aa2c9c08e0 Actor condition descriptions 2024-12-28 03:09:19 +01:00
Nut.andor
c6e4bc90f9 Merge branch 'pulls/1829009049/81' into AT_Source_Next_Release 2024-12-28 03:07:53 +01:00
Nut.andor
e0053aedd0 lower the prerequisite levels on the internal bleeding for more critical and better critical from 3 to 2 2024-12-28 03:01:17 +01:00
Miroslav Iliev
0858ac8f7f Translated using Weblate (Bulgarian)
Currently translated at 1.5% (297 of 19203 strings)
2024-12-27 22:20:56 +01:00
Daniel Stasiak
783bc925df Translated using Weblate (Polish)
Currently translated at 77.4% (14881 of 19203 strings)
2024-12-27 22:20:54 +01:00
Frei Tags
a3cce7f3b3 Translated using Weblate (German)
Currently translated at 91.5% (17580 of 19203 strings)
2024-12-27 22:20:51 +01:00
Miroslav Iliev
ae8c0b6d1e Translated using Weblate (Bulgarian)
Currently translated at 1.3% (252 of 19203 strings)
2024-12-27 13:00:36 +01:00
xvy
129ccfea7b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2024-12-27 13:00:32 +01:00
Daniel Stasiak
a58287e4d7 Translated using Weblate (Polish)
Currently translated at 77.3% (14852 of 19203 strings)
2024-12-27 13:00:29 +01:00
Daniel Stasiak
6bda903fe7 Translated using Weblate (Polish)
Currently translated at 100.0% (612 of 612 strings)
2024-12-27 13:00:26 +01:00
Nut.andor
559ed8a72c Pull Request #82: Actor condition descriptions 2024-12-27 12:58:19 +01:00
OMGeeky
7e525786fc cleanup 2024-12-27 12:56:37 +01:00
OMGeeky
0734d17b1e Add descriptions to actor conditions 2024-12-27 12:49:21 +01:00
xvy
034a4faef5 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2024-12-26 11:48:05 +01:00
Miroslav Iliev
4632ad011d Translated using Weblate (Bulgarian)
Currently translated at 73.2% (448 of 612 strings)
2024-12-26 07:00:47 +01:00
Miroslav Iliev
c9ce488c1b Translated using Weblate (Bulgarian)
Currently translated at 1.0% (206 of 19203 strings)
2024-12-26 07:00:46 +01:00
xvy
fe270d8c17 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2024-12-26 07:00:44 +01:00
Daniel Stasiak
bd971ff792 Translated using Weblate (Polish)
Currently translated at 77.1% (14815 of 19203 strings)
2024-12-26 07:00:41 +01:00
xvy
de7af46fb3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2024-12-24 09:00:32 +01:00
aircqsj
b08e690150 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (19203 of 19203 strings)
2024-12-24 09:00:30 +01:00
Nut.andor
2a7c021572 Newb actorconditions 2024-12-23 01:42:34 +01:00
xvy
9b256c1fca Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.3% (18887 of 19203 strings)
2024-12-22 20:03:05 +01:00
aircqsj
597683ed35 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.3% (18887 of 19203 strings)
2024-12-22 20:03:04 +01:00
xvy
a195722f6f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.8% (18783 of 19203 strings)
2024-12-22 10:05:34 +01:00
aircqsj
fa85588c48 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.8% (18783 of 19203 strings)
2024-12-22 10:05:33 +01:00
xvy
253d9bfd10 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.2% (18677 of 19203 strings)
2024-12-22 06:52:04 +01:00
aircqsj
7010321939 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.2% (18677 of 19203 strings)
2024-12-22 06:52:04 +01:00
xvy
59d63ad7f9 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.1% (18649 of 19203 strings)
2024-12-22 05:53:42 +01:00
aircqsj
961d91ae53 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 97.0% (18632 of 19203 strings)
2024-12-22 05:05:52 +01:00
xvy
dd54abe829 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 96.9% (18616 of 19203 strings)
2024-12-21 19:12:38 +01:00
aircqsj
fd33f93baa Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 96.9% (18616 of 19203 strings)
2024-12-21 19:12:38 +01:00
aircqsj
8d4fedd911 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 96.5% (18531 of 19203 strings)
2024-12-21 13:00:34 +01:00
Daniel Stasiak
c28da080da Translated using Weblate (Polish)
Currently translated at 76.9% (14772 of 19203 strings)
2024-12-21 13:00:31 +01:00
Nut.andor
9d3f5bfab5 Pull Request #81: lower the prerequisite levels on the internal bleeding for more critical and better critical from 3 to 2 2024-12-20 18:57:49 +01:00
jgemmajr
b505a4ea41 lower the prerequisite levels on the internal bleeding for more critical and better critical from 3 to 2 2024-12-20 12:56:06 -05:00
aircqsj
bfe41bc7c4 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 96.0% (18447 of 19203 strings)
2024-12-20 09:28:39 +01:00
Daniel Stasiak
ac739622e5 Translated using Weblate (Polish)
Currently translated at 76.9% (14769 of 19203 strings)
2024-12-20 09:28:37 +01:00
Mateusz Mendel
44d4ef7430 Translated using Weblate (Polish)
Currently translated at 76.8% (14765 of 19203 strings)
2024-12-19 20:23:03 +01:00
Daniel Stasiak
9322969adf Translated using Weblate (Polish)
Currently translated at 76.8% (14765 of 19203 strings)
2024-12-19 20:23:02 +01:00
Daniel Stasiak
b038a2b139 Translated using Weblate (Polish)
Currently translated at 76.8% (14764 of 19203 strings)
2024-12-19 20:21:38 +01:00
Mateusz Mendel
bbd1afc0bf Translated using Weblate (Polish)
Currently translated at 76.8% (14764 of 19203 strings)
2024-12-19 20:21:38 +01:00
Mateusz Mendel
c3e23bdc6b Translated using Weblate (Polish)
Currently translated at 76.8% (14763 of 19203 strings)
2024-12-19 20:18:03 +01:00
Daniel Stasiak
1de35e79d3 Translated using Weblate (Polish)
Currently translated at 76.8% (14763 of 19203 strings)
2024-12-19 20:18:03 +01:00
Mateusz Mendel
423b3d5cb6 Translated using Weblate (Polish)
Currently translated at 76.8% (14762 of 19203 strings)
2024-12-19 17:28:40 +01:00
Daniel Stasiak
bb08710f50 Translated using Weblate (Polish)
Currently translated at 76.8% (14762 of 19203 strings)
2024-12-19 17:28:40 +01:00
xvy
5166fb44bf Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.8% (18415 of 19203 strings)
2024-12-19 17:24:14 +01:00
aircqsj
21e237791e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.8% (18415 of 19203 strings)
2024-12-19 17:24:13 +01:00
Mateusz Mendel
74cb3527d2 Translated using Weblate (Polish)
Currently translated at 76.8% (14761 of 19203 strings)
2024-12-19 17:24:12 +01:00
xvy
2ca1e8959c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.8% (18407 of 19203 strings)
2024-12-19 13:35:20 +01:00
aircqsj
26f03e46df Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.8% (18407 of 19203 strings)
2024-12-19 13:35:20 +01:00
aircqsj
eba4eef677 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.6% (18376 of 19203 strings)
2024-12-19 07:58:45 +01:00
xvy
25070675e5 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.6% (18376 of 19203 strings)
2024-12-19 07:58:44 +01:00
Daniel Stasiak
8c2870dd2f Translated using Weblate (Polish)
Currently translated at 76.8% (14760 of 19203 strings)
2024-12-19 07:58:43 +01:00
Nut.andor
94f93391d0 dev version 2024-12-19 00:27:39 +01:00
Nut.andor
297c6fad79 map_cavewall_3 2024-12-19 00:25:48 +01:00
Mateusz Mendel
fb3ccfa95c Translated using Weblate (Polish)
Currently translated at 76.8% (14760 of 19203 strings)
2024-12-18 21:54:00 +01:00
Daniel Stasiak
30ef789bf8 Translated using Weblate (Polish)
Currently translated at 76.8% (14760 of 19203 strings)
2024-12-18 21:53:59 +01:00
Daniel Stasiak
a68721b89d Translated using Weblate (Polish)
Currently translated at 76.8% (14758 of 19203 strings)
2024-12-18 21:27:18 +01:00
Mateusz Mendel
b49dbea3c0 Translated using Weblate (Polish)
Currently translated at 76.8% (14758 of 19203 strings)
2024-12-18 21:27:18 +01:00
Mateusz Mendel
49b2d75d30 Translated using Weblate (Polish)
Currently translated at 76.8% (14757 of 19203 strings)
2024-12-18 21:26:29 +01:00
Daniel Stasiak
fd46024890 Translated using Weblate (Polish)
Currently translated at 76.8% (14757 of 19203 strings)
2024-12-18 21:26:29 +01:00
Mateusz Mendel
a6e1e8c5f3 Translated using Weblate (Polish)
Currently translated at 76.8% (14756 of 19203 strings)
2024-12-18 21:23:47 +01:00
xvy
dd786d561d Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (612 of 612 strings)
2024-12-18 21:00:25 +01:00
aircqsj
e4d395ff2f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.6% (18367 of 19203 strings)
2024-12-18 21:00:23 +01:00
Daniel Stasiak
41bfd3186d Translated using Weblate (Polish)
Currently translated at 76.8% (14755 of 19203 strings)
2024-12-18 21:00:21 +01:00
Nut.andor
acdded3d97 next version 2024-12-18 00:44:57 +01:00
Mateusz Mendel
08992142ae Translated using Weblate (Polish)
Currently translated at 76.8% (14755 of 19203 strings)
2024-12-17 20:47:42 +01:00
Daniel Stasiak
89736c1dd2 Translated using Weblate (Polish)
Currently translated at 76.8% (14755 of 19203 strings)
2024-12-17 20:47:42 +01:00
Mateusz Mendel
469ee9435d Translated using Weblate (Polish)
Currently translated at 76.8% (14750 of 19203 strings)
2024-12-17 19:58:04 +01:00
Daniel Stasiak
8fcdb29078 Translated using Weblate (Polish)
Currently translated at 76.8% (14750 of 19203 strings)
2024-12-17 19:58:04 +01:00
Mateusz Mendel
ac861ff575 Translated using Weblate (Polish)
Currently translated at 76.8% (14749 of 19203 strings)
2024-12-17 17:28:44 +01:00
Daniel Stasiak
5be353d52c Translated using Weblate (Polish)
Currently translated at 76.8% (14749 of 19203 strings)
2024-12-17 17:28:43 +01:00
Daniel Stasiak
3f27b198ed Translated using Weblate (Polish)
Currently translated at 76.8% (14748 of 19203 strings)
2024-12-17 17:27:29 +01:00
Mateusz Mendel
24cbbd1149 Translated using Weblate (Polish)
Currently translated at 76.8% (14748 of 19203 strings)
2024-12-17 17:27:28 +01:00
Mateusz Mendel
68b495b753 Translated using Weblate (Polish)
Currently translated at 76.7% (14747 of 19203 strings)
2024-12-17 17:25:42 +01:00
Daniel Stasiak
47959f28a8 Translated using Weblate (Polish)
Currently translated at 76.7% (14747 of 19203 strings)
2024-12-17 17:25:42 +01:00
Daniel Stasiak
2f0c0cd3f6 Translated using Weblate (Polish)
Currently translated at 76.7% (14746 of 19203 strings)
2024-12-17 17:24:40 +01:00
Mateusz Mendel
da9b758f13 Translated using Weblate (Polish)
Currently translated at 76.7% (14746 of 19203 strings)
2024-12-17 17:24:40 +01:00
xvy
b141bc0ded Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (612 of 612 strings)
2024-12-17 17:19:14 +01:00
Ricky Tigg
5943ef866d Translated using Weblate (Finnish)
Currently translated at 6.8% (42 of 612 strings)
2024-12-17 17:19:14 +01:00
xvy
394f10be06 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.4% (18330 of 19203 strings)
2024-12-17 17:19:14 +01:00
Mateusz Mendel
2ee59101ef Translated using Weblate (Polish)
Currently translated at 76.7% (14745 of 19203 strings)
2024-12-17 17:19:12 +01:00
Daniel Stasiak
c1e250d801 Translated using Weblate (Polish)
Currently translated at 76.7% (14745 of 19203 strings)
2024-12-17 17:19:11 +01:00
Nut.andor
ad25c04cb2 translations 2024-12-17 00:52:12 +01:00
Nut.andor
c4fc48b1da translations 2024-12-17 00:46:40 +01:00
Nut.andor
9bce4f98fb Merge branch 'v0.8.12.1' 2024-12-16 23:58:39 +01:00
Nut.andor
4e0ead101d licence 2024-12-16 23:56:51 +01:00
Nut.andor
339ce72b53 mo 2024-12-16 23:47:34 +01:00
Nut.andor
d5a09c33c2 potc 2024-12-16 23:41:13 +01:00
Nut.andor
4e7a361271 content next_release 2024-12-16 23:25:08 +01:00
Nut.andor
613d521adf version, copyright until 2025 2024-12-16 23:22:14 +01:00
Mateusz Mendel
493014e350 Translated using Weblate (Polish)
Currently translated at 76.7% (14735 of 19195 strings)
2024-12-16 23:11:13 +01:00
Daniel Stasiak
7c1996b02b Translated using Weblate (Polish)
Currently translated at 76.7% (14735 of 19195 strings)
2024-12-16 23:11:13 +01:00
Mateusz Mendel
abe7200237 Translated using Weblate (Polish)
Currently translated at 76.7% (14734 of 19195 strings)
2024-12-16 20:18:58 +01:00
Daniel Stasiak
3d1d586224 Translated using Weblate (Polish)
Currently translated at 76.7% (14734 of 19195 strings)
2024-12-16 20:18:58 +01:00
Mateusz Mendel
e8abd8a66e Translated using Weblate (Polish)
Currently translated at 76.7% (14733 of 19195 strings)
2024-12-16 20:18:27 +01:00
Daniel Stasiak
8629fd4be9 Translated using Weblate (Polish)
Currently translated at 76.7% (14733 of 19195 strings)
2024-12-16 20:18:27 +01:00
Mateusz Mendel
05d3c4ab0b Translated using Weblate (Polish)
Currently translated at 76.7% (14732 of 19195 strings)
2024-12-16 20:07:03 +01:00
Mateusz Mendel
5bd303eb05 Translated using Weblate (Polish)
Currently translated at 76.7% (14731 of 19195 strings)
2024-12-16 20:06:20 +01:00
Daniel Stasiak
a8d7140e0d Translated using Weblate (Polish)
Currently translated at 76.7% (14731 of 19195 strings)
2024-12-16 20:06:19 +01:00
Mateusz Mendel
16a4be63e3 Translated using Weblate (Polish)
Currently translated at 76.7% (14730 of 19195 strings)
2024-12-16 20:05:44 +01:00
Daniel Stasiak
7c3a3b6eb2 Translated using Weblate (Polish)
Currently translated at 76.7% (14730 of 19195 strings)
2024-12-16 20:05:44 +01:00
Mateusz Mendel
af655ea2a3 Translated using Weblate (Polish)
Currently translated at 76.7% (14729 of 19195 strings)
2024-12-16 20:05:06 +01:00
Daniel Stasiak
ed7cb17370 Translated using Weblate (Polish)
Currently translated at 76.7% (14729 of 19195 strings)
2024-12-16 20:05:06 +01:00
xvy
0d7207ae29 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.4% (18328 of 19195 strings)
2024-12-16 20:02:49 +01:00
Mateusz Mendel
60be50a75a Translated using Weblate (Polish)
Currently translated at 76.7% (14728 of 19195 strings)
2024-12-16 20:02:48 +01:00
xvy
619c60c402 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.4% (18326 of 19195 strings)
2024-12-16 14:27:19 +01:00
Daniel Stasiak
d45bf048eb Translated using Weblate (Polish)
Currently translated at 76.7% (14727 of 19195 strings)
2024-12-16 14:27:17 +01:00
Nut.andor
8e9b1cee73 v0.8.12.1 2024-12-16 01:39:53 +01:00
Nut.andor
9679580b1e monsters_johny 2024-12-15 23:55:07 +01:00
Daniel Stasiak
1b37a12dc4 Translated using Weblate (Polish)
Currently translated at 76.7% (14727 of 19195 strings)
2024-12-15 21:47:24 +01:00
Mateusz Mendel
f5813f4897 Translated using Weblate (Polish)
Currently translated at 76.7% (14727 of 19195 strings)
2024-12-15 21:47:23 +01:00
Mateusz Mendel
e23ba310c5 Translated using Weblate (Polish)
Currently translated at 76.7% (14726 of 19195 strings)
2024-12-15 21:44:19 +01:00
Daniel Stasiak
65459a8c28 Translated using Weblate (Polish)
Currently translated at 76.7% (14726 of 19195 strings)
2024-12-15 21:44:19 +01:00
Mateusz Mendel
61ff33f6eb Translated using Weblate (Polish)
Currently translated at 76.7% (14725 of 19195 strings)
2024-12-15 21:43:16 +01:00
Daniel Stasiak
c94a220f1d Translated using Weblate (Polish)
Currently translated at 76.7% (14725 of 19195 strings)
2024-12-15 21:43:16 +01:00
Mateusz Mendel
342673ee60 Translated using Weblate (Polish)
Currently translated at 76.7% (14724 of 19195 strings)
2024-12-15 21:40:42 +01:00
Daniel Stasiak
e2a4b1575a Translated using Weblate (Polish)
Currently translated at 76.7% (14724 of 19195 strings)
2024-12-15 21:40:42 +01:00
Mateusz Mendel
a5fb4d8761 Translated using Weblate (Polish)
Currently translated at 76.7% (14723 of 19195 strings)
2024-12-15 21:31:31 +01:00
Daniel Stasiak
dfa31e8501 Translated using Weblate (Polish)
Currently translated at 76.7% (14723 of 19195 strings)
2024-12-15 21:31:30 +01:00
Mateusz Mendel
2603a0454a Translated using Weblate (Polish)
Currently translated at 76.6% (14722 of 19195 strings)
2024-12-15 21:26:16 +01:00
Daniel Stasiak
e7526d56ec Translated using Weblate (Polish)
Currently translated at 76.6% (14722 of 19195 strings)
2024-12-15 21:26:15 +01:00
Daniel Stasiak
6bd38fcfc1 Translated using Weblate (Polish)
Currently translated at 76.6% (14721 of 19195 strings)
2024-12-15 21:24:14 +01:00
Mateusz Mendel
a10d781d4b Translated using Weblate (Polish)
Currently translated at 76.6% (14721 of 19195 strings)
2024-12-15 21:24:14 +01:00
Mateusz Mendel
3c8d66b0cd Translated using Weblate (Polish)
Currently translated at 76.6% (14720 of 19195 strings)
2024-12-15 21:23:17 +01:00
Daniel Stasiak
bb36bbaca6 Translated using Weblate (Polish)
Currently translated at 76.6% (14720 of 19195 strings)
2024-12-15 21:23:17 +01:00
Mateusz Mendel
6f2ca0edc5 Translated using Weblate (Polish)
Currently translated at 76.6% (14719 of 19195 strings)
2024-12-15 21:20:23 +01:00
Daniel Stasiak
1ddc1ca6ef Translated using Weblate (Polish)
Currently translated at 76.6% (14719 of 19195 strings)
2024-12-15 21:20:23 +01:00
Mateusz Mendel
c6a89e52b0 Translated using Weblate (Polish)
Currently translated at 76.6% (14718 of 19195 strings)
2024-12-15 21:19:02 +01:00
Daniel Stasiak
275492e96c Translated using Weblate (Polish)
Currently translated at 76.6% (14718 of 19195 strings)
2024-12-15 21:19:01 +01:00
Mateusz Mendel
ccccb852d0 Translated using Weblate (Polish)
Currently translated at 76.6% (14717 of 19195 strings)
2024-12-15 21:16:24 +01:00
Daniel Stasiak
2638d996e6 Translated using Weblate (Polish)
Currently translated at 76.6% (14717 of 19195 strings)
2024-12-15 21:16:24 +01:00
Mateusz Mendel
b51eb8b88e Translated using Weblate (Polish)
Currently translated at 76.6% (14716 of 19195 strings)
2024-12-15 21:14:47 +01:00
Daniel Stasiak
86858e629a Translated using Weblate (Polish)
Currently translated at 76.6% (14716 of 19195 strings)
2024-12-15 21:14:47 +01:00
Nut.andor
ed83ff3e0e Merge branch 'pulls/1829009049/80' into AT_Source_Next_Release 2024-12-15 20:49:53 +01:00
Nut.andor
a44d104368 some more potential animation freeze fixes 2024-12-15 20:46:47 +01:00
Nut.andor
4be6aff55e Merge branch 'pulls/1829009049/78' into AT_Source_Next_Release 2024-12-15 20:45:25 +01:00
Nut.andor
0e66d836c8 fix getting stuck in combat when animations are disabled 2024-12-15 20:42:26 +01:00
Nut.andor
c0b44dd808 Pull Request #80: some more potential animation freeze fixes 2024-12-15 19:59:30 +01:00
Nut.andor
600c3fee23 Pull Request #78: fix getting stuck in combat when animations are disabled 2024-12-15 19:58:03 +01:00
OMGeeky
2e2983f527 some more potential animation freeze fixes 2024-12-15 19:57:46 +01:00
Mateusz Mendel
ce3f6c683b Translated using Weblate (Polish)
Currently translated at 76.6% (14715 of 19195 strings)
2024-12-14 22:17:08 +01:00
Daniel Stasiak
54be36ded1 Translated using Weblate (Polish)
Currently translated at 76.6% (14714 of 19195 strings)
2024-12-14 19:12:33 +01:00
Mateusz Mendel
3a3ba9e15e Translated using Weblate (Polish)
Currently translated at 76.6% (14714 of 19195 strings)
2024-12-13 20:41:45 +01:00
Daniel Stasiak
f1674682ca Translated using Weblate (Polish)
Currently translated at 76.6% (14714 of 19195 strings)
2024-12-13 20:41:45 +01:00
Mateusz Mendel
4bc7b06cdf Translated using Weblate (Polish)
Currently translated at 76.6% (14713 of 19195 strings)
2024-12-13 20:33:09 +01:00
Daniel Stasiak
e50a5c8abe Translated using Weblate (Polish)
Currently translated at 76.6% (14713 of 19195 strings)
2024-12-13 20:33:08 +01:00
Daniel Stasiak
becfe04039 Translated using Weblate (Polish)
Currently translated at 76.6% (14712 of 19195 strings)
2024-12-13 20:17:38 +01:00
Mateusz Mendel
0d013f051c Translated using Weblate (Polish)
Currently translated at 76.6% (14712 of 19195 strings)
2024-12-13 20:17:38 +01:00
Daniel Stasiak
f8c47f5db2 Translated using Weblate (Polish)
Currently translated at 76.6% (14711 of 19195 strings)
2024-12-13 20:08:57 +01:00
Mateusz Mendel
44863a8cce Translated using Weblate (Polish)
Currently translated at 76.6% (14711 of 19195 strings)
2024-12-13 20:08:57 +01:00
Mateusz Mendel
50e9de92b5 Translated using Weblate (Polish)
Currently translated at 76.6% (14710 of 19195 strings)
2024-12-13 20:08:27 +01:00
Daniel Stasiak
a543c2e0c9 Translated using Weblate (Polish)
Currently translated at 76.6% (14710 of 19195 strings)
2024-12-13 20:08:27 +01:00
Daniel Stasiak
e38b8b8a62 Translated using Weblate (Polish)
Currently translated at 76.6% (14709 of 19195 strings)
2024-12-13 20:07:03 +01:00
Mateusz Mendel
2dd73a7bd7 Translated using Weblate (Polish)
Currently translated at 76.6% (14709 of 19195 strings)
2024-12-13 20:07:03 +01:00
Mateusz Mendel
9796dcf14f Translated using Weblate (Polish)
Currently translated at 76.6% (14708 of 19195 strings)
2024-12-13 20:05:24 +01:00
Mateusz Mendel
a273e3e7cc Translated using Weblate (Polish)
Currently translated at 76.6% (14707 of 19195 strings)
2024-12-13 20:04:32 +01:00
Daniel Stasiak
4c4e4b8f87 Translated using Weblate (Polish)
Currently translated at 76.6% (14707 of 19195 strings)
2024-12-13 20:04:32 +01:00
Mateusz Mendel
93a1bbe799 Translated using Weblate (Polish)
Currently translated at 76.6% (14706 of 19195 strings)
2024-12-12 22:05:36 +01:00
Daniel Stasiak
bacdc49475 Translated using Weblate (Polish)
Currently translated at 76.6% (14706 of 19195 strings)
2024-12-12 22:05:36 +01:00
Daniel Stasiak
9d8202c6c2 Translated using Weblate (Polish)
Currently translated at 76.6% (14705 of 19195 strings)
2024-12-12 22:00:41 +01:00
Mateusz Mendel
c2da850956 Translated using Weblate (Polish)
Currently translated at 76.6% (14705 of 19195 strings)
2024-12-12 22:00:40 +01:00
Daniel Stasiak
c5f455dd3d Translated using Weblate (Polish)
Currently translated at 76.6% (14704 of 19195 strings)
2024-12-12 22:00:05 +01:00
Mateusz Mendel
96eddd238c Translated using Weblate (Polish)
Currently translated at 76.6% (14704 of 19195 strings)
2024-12-12 22:00:05 +01:00
Daniel Stasiak
9024a4cb88 Translated using Weblate (Polish)
Currently translated at 76.5% (14703 of 19195 strings)
2024-12-12 21:57:07 +01:00
Mateusz Mendel
6aab08e63b Translated using Weblate (Polish)
Currently translated at 76.5% (14703 of 19195 strings)
2024-12-12 21:57:06 +01:00
Mateusz Mendel
37d9825380 Translated using Weblate (Polish)
Currently translated at 76.5% (14702 of 19195 strings)
2024-12-12 21:55:11 +01:00
Daniel Stasiak
3244a981bb Translated using Weblate (Polish)
Currently translated at 76.5% (14702 of 19195 strings)
2024-12-12 21:55:11 +01:00
Daniel Stasiak
6b85391ea5 Translated using Weblate (Polish)
Currently translated at 76.5% (14701 of 19195 strings)
2024-12-12 21:41:52 +01:00
Mateusz Mendel
076bd83f48 Translated using Weblate (Polish)
Currently translated at 76.5% (14701 of 19195 strings)
2024-12-12 21:41:52 +01:00
xvy
d89051b156 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.3% (18305 of 19195 strings)
2024-12-12 21:41:04 +01:00
Daniel Stasiak
f7cbeb29cd Translated using Weblate (Polish)
Currently translated at 76.5% (14700 of 19195 strings)
2024-12-12 21:41:02 +01:00
Mateusz Mendel
0e8cf13c7b Translated using Weblate (Polish)
Currently translated at 76.5% (14700 of 19195 strings)
2024-12-12 21:41:02 +01:00
Mateusz Mendel
8ec4acc5fe Translated using Weblate (Polish)
Currently translated at 76.5% (14699 of 19195 strings)
2024-12-11 21:15:07 +01:00
Daniel Stasiak
ecc4d2ef56 Translated using Weblate (Polish)
Currently translated at 76.5% (14699 of 19195 strings)
2024-12-11 21:15:07 +01:00
Mateusz Mendel
b7c367a127 Translated using Weblate (Polish)
Currently translated at 76.5% (14698 of 19195 strings)
2024-12-11 21:03:29 +01:00
Daniel Stasiak
3b29116878 Translated using Weblate (Polish)
Currently translated at 76.5% (14698 of 19195 strings)
2024-12-11 21:03:29 +01:00
xvy
c4014ca1b8 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.1% (18266 of 19195 strings)
2024-12-10 13:00:37 +01:00
Renamed1986
a326797635 Translated using Weblate (Russian)
Currently translated at 100.0% (19195 of 19195 strings)
2024-12-10 13:00:34 +01:00
Mateusz Mendel
82908628e1 Translated using Weblate (Polish)
Currently translated at 76.5% (14697 of 19195 strings)
2024-12-10 13:00:30 +01:00
Daniel Stasiak
9e5831bbcd Translated using Weblate (Polish)
Currently translated at 76.5% (14697 of 19195 strings)
2024-12-08 23:09:42 +01:00
Mateusz Mendel
d0eae0a787 Translated using Weblate (Polish)
Currently translated at 76.5% (14697 of 19195 strings)
2024-12-08 23:09:42 +01:00
Daniel Stasiak
6240295643 Translated using Weblate (Polish)
Currently translated at 76.5% (14696 of 19195 strings)
2024-12-08 20:28:25 +01:00
Mateusz Mendel
0ce66f250c Translated using Weblate (Polish)
Currently translated at 76.5% (14696 of 19195 strings)
2024-12-08 20:28:24 +01:00
Mateusz Mendel
1f84e9688e Translated using Weblate (Polish)
Currently translated at 76.5% (14695 of 19195 strings)
2024-12-08 20:27:43 +01:00
Daniel Stasiak
864a2de665 Translated using Weblate (Polish)
Currently translated at 76.5% (14695 of 19195 strings)
2024-12-08 20:27:43 +01:00
Mateusz Mendel
b0365a4fb3 Translated using Weblate (Polish)
Currently translated at 76.5% (14694 of 19195 strings)
2024-12-08 16:47:40 +01:00
Daniel Stasiak
52b0f50813 Translated using Weblate (Polish)
Currently translated at 76.5% (14694 of 19195 strings)
2024-12-08 16:47:39 +01:00
Mateusz Mendel
4ae7c7e9b6 Translated using Weblate (Polish)
Currently translated at 76.5% (14693 of 19195 strings)
2024-12-08 16:45:02 +01:00
Daniel Stasiak
1c525cafc0 Translated using Weblate (Polish)
Currently translated at 76.5% (14693 of 19195 strings)
2024-12-08 16:45:02 +01:00
Daniel Stasiak
306089c2cf Translated using Weblate (Polish)
Currently translated at 76.5% (14692 of 19195 strings)
2024-12-08 16:43:20 +01:00
Mateusz Mendel
432149f832 Translated using Weblate (Polish)
Currently translated at 76.5% (14692 of 19195 strings)
2024-12-08 16:43:20 +01:00
Kanoero
835a3a2de9 Translated using Weblate (Spanish)
Currently translated at 74.4% (14290 of 19195 strings)
2024-12-08 16:43:19 +01:00
Daniel Stasiak
d778703497 Translated using Weblate (Polish)
Currently translated at 76.5% (14691 of 19195 strings)
2024-12-08 16:21:26 +01:00
Mateusz Mendel
dd1fd5c99a Translated using Weblate (Polish)
Currently translated at 76.5% (14691 of 19195 strings)
2024-12-08 16:21:26 +01:00
Kanoero
d18b9a9f4b Translated using Weblate (Spanish)
Currently translated at 74.4% (14289 of 19195 strings)
2024-12-08 16:21:25 +01:00
Mateusz Mendel
bedc4028a4 Translated using Weblate (Polish)
Currently translated at 76.5% (14690 of 19195 strings)
2024-12-08 16:19:14 +01:00
Daniel Stasiak
bf139e00b8 Translated using Weblate (Polish)
Currently translated at 76.5% (14690 of 19195 strings)
2024-12-08 16:19:14 +01:00
Kanoero
12c409723a Translated using Weblate (Spanish)
Currently translated at 74.4% (14284 of 19195 strings)
2024-12-08 16:19:12 +01:00
Mateusz Mendel
c098baee3d Translated using Weblate (Polish)
Currently translated at 76.5% (14689 of 19195 strings)
2024-12-08 16:18:00 +01:00
Daniel Stasiak
eda9cadfb2 Translated using Weblate (Polish)
Currently translated at 76.5% (14689 of 19195 strings)
2024-12-08 16:18:00 +01:00
Kanoero
b30c118ed2 Translated using Weblate (Spanish)
Currently translated at 74.4% (14283 of 19195 strings)
2024-12-08 16:17:59 +01:00
Mateusz Mendel
c409f95440 Translated using Weblate (Polish)
Currently translated at 76.5% (14688 of 19195 strings)
2024-12-08 16:16:35 +01:00
Daniel Stasiak
c49cf502e2 Translated using Weblate (Polish)
Currently translated at 76.5% (14688 of 19195 strings)
2024-12-08 16:16:34 +01:00
Kanoero
7de790a43c Translated using Weblate (Spanish)
Currently translated at 74.3% (14280 of 19195 strings)
2024-12-08 16:16:33 +01:00
Daniel Stasiak
e63ae7f231 Translated using Weblate (Polish)
Currently translated at 76.5% (14687 of 19195 strings)
2024-12-08 16:15:44 +01:00
Mateusz Mendel
a42cc9848f Translated using Weblate (Polish)
Currently translated at 76.5% (14687 of 19195 strings)
2024-12-08 16:15:43 +01:00
Kanoero
14011b2512 Translated using Weblate (Spanish)
Currently translated at 74.3% (14277 of 19195 strings)
2024-12-08 16:15:42 +01:00
Daniel Stasiak
0a14d737d6 Translated using Weblate (Polish)
Currently translated at 76.5% (14686 of 19195 strings)
2024-12-08 16:13:46 +01:00
Mateusz Mendel
a23e6e3961 Translated using Weblate (Polish)
Currently translated at 76.5% (14686 of 19195 strings)
2024-12-08 16:13:46 +01:00
Daniel Stasiak
0af2e2bb47 Translated using Weblate (Polish)
Currently translated at 76.5% (14685 of 19195 strings)
2024-12-08 16:09:45 +01:00
Mateusz Mendel
b24339d5bf Translated using Weblate (Polish)
Currently translated at 76.5% (14685 of 19195 strings)
2024-12-08 16:09:45 +01:00
Mateusz Mendel
13dbe214e8 Translated using Weblate (Polish)
Currently translated at 76.4% (14684 of 19195 strings)
2024-12-08 16:05:01 +01:00
Daniel Stasiak
30c34aa23a Translated using Weblate (Polish)
Currently translated at 76.4% (14684 of 19195 strings)
2024-12-08 16:05:01 +01:00
Daniel Stasiak
dc3b6e8a9a Translated using Weblate (Polish)
Currently translated at 76.4% (14683 of 19195 strings)
2024-12-08 16:01:08 +01:00
Mateusz Mendel
0440de6040 Translated using Weblate (Polish)
Currently translated at 76.4% (14683 of 19195 strings)
2024-12-08 16:01:07 +01:00
Daniel Stasiak
049b4923c5 Translated using Weblate (Polish)
Currently translated at 76.4% (14682 of 19195 strings)
2024-12-08 15:56:25 +01:00
Mateusz Mendel
729745d9b7 Translated using Weblate (Polish)
Currently translated at 76.4% (14682 of 19195 strings)
2024-12-08 15:56:24 +01:00
Daniel Stasiak
1ea442978c Translated using Weblate (Polish)
Currently translated at 76.4% (14681 of 19195 strings)
2024-12-08 15:54:51 +01:00
Mateusz Mendel
ee8fc07bd5 Translated using Weblate (Polish)
Currently translated at 76.4% (14681 of 19195 strings)
2024-12-08 15:54:51 +01:00
Mateusz Mendel
53942408fe Translated using Weblate (Polish)
Currently translated at 76.4% (14680 of 19195 strings)
2024-12-08 15:51:46 +01:00
Daniel Stasiak
da3600c64e Translated using Weblate (Polish)
Currently translated at 76.4% (14680 of 19195 strings)
2024-12-08 15:51:46 +01:00
Kanoero
b6b59156c8 Translated using Weblate (Spanish)
Currently translated at 74.3% (14275 of 19195 strings)
2024-12-08 15:51:45 +01:00
Daniel Stasiak
0ba4b4e986 Translated using Weblate (Polish)
Currently translated at 76.4% (14679 of 19195 strings)
2024-12-08 13:26:48 +01:00
Mateusz Mendel
84d9e84819 Translated using Weblate (Polish)
Currently translated at 76.4% (14679 of 19195 strings)
2024-12-08 13:26:47 +01:00
xvy
9d766567ed Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 95.0% (18236 of 19195 strings)
2024-12-08 13:23:34 +01:00
Mateusz Mendel
7bcabc2b8a Translated using Weblate (Polish)
Currently translated at 76.4% (14678 of 19195 strings)
2024-12-08 13:23:32 +01:00
Daniel Stasiak
0a4fa6a66c Translated using Weblate (Polish)
Currently translated at 76.4% (14678 of 19195 strings)
2024-12-08 13:23:32 +01:00
xvy
ce3e0abfb1 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 94.9% (18235 of 19195 strings)
2024-12-08 12:42:57 +01:00
Mateusz Mendel
b77fd7b6b8 Translated using Weblate (Polish)
Currently translated at 76.4% (14677 of 19195 strings)
2024-12-08 12:42:55 +01:00
Daniel Stasiak
9e4633ddc9 Translated using Weblate (Polish)
Currently translated at 76.4% (14677 of 19195 strings)
2024-12-08 12:42:55 +01:00
xvy
a18ffd913f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 94.9% (18231 of 19195 strings)
2024-12-08 11:32:35 +01:00
Mateusz Mendel
8fe35fb802 Translated using Weblate (Polish)
Currently translated at 76.4% (14674 of 19195 strings)
2024-12-08 11:32:33 +01:00
Daniel Stasiak
6080a5c667 Translated using Weblate (Polish)
Currently translated at 76.4% (14674 of 19195 strings)
2024-12-08 11:32:33 +01:00
Daniel Stasiak
5da0007e34 Translated using Weblate (Polish)
Currently translated at 76.4% (14670 of 19195 strings)
2024-12-07 19:12:24 +01:00
Kanoero
948c7eab32 Translated using Weblate (Spanish)
Currently translated at 74.3% (14266 of 19195 strings)
2024-12-07 19:12:23 +01:00
Mateusz Mendel
77c228f4d7 Translated using Weblate (Polish)
Currently translated at 76.4% (14670 of 19195 strings)
2024-12-07 16:37:53 +01:00
Filip
fdeba4db23 Translated using Weblate (Polish)
Currently translated at 76.4% (14669 of 19195 strings)
2024-12-07 10:01:06 +00:00
Daniel Stasiak
0ab3237f41 Translated using Weblate (Polish)
Currently translated at 76.4% (14669 of 19195 strings)
2024-12-07 10:01:05 +00:00
Filip
4045acadbf Translated using Weblate (Polish)
Currently translated at 76.4% (14669 of 19195 strings)
2024-12-05 23:00:26 +00:00
Daniel Stasiak
de4d1013ca Translated using Weblate (Polish)
Currently translated at 76.4% (14669 of 19195 strings)
2024-12-05 23:00:24 +00:00
Filip
72957d74c6 Translated using Weblate (Polish)
Currently translated at 100.0% (612 of 612 strings)
2024-12-05 23:00:22 +00:00
Daniel Stasiak
48ec4290f9 Translated using Weblate (Polish)
Currently translated at 76.4% (14669 of 19195 strings)
2024-12-04 21:05:18 +01:00
Daniel Stasiak
5f98f09924 Translated using Weblate (Polish)
Currently translated at 76.4% (14669 of 19195 strings)
2024-12-03 18:10:41 +01:00
Daniel Stasiak
b2099b24ef Translated using Weblate (Polish)
Currently translated at 76.4% (14669 of 19195 strings)
2024-12-03 15:00:29 +01:00
Renamed1986
31c309e25c Translated using Weblate (Russian)
Currently translated at 100.0% (19195 of 19195 strings)
2024-12-02 14:34:39 +01:00
Mateusz Mendel
0294078887 Translated using Weblate (Polish)
Currently translated at 76.4% (14669 of 19195 strings)
2024-12-02 14:34:38 +01:00
Daniel Stasiak
dc8e933fc1 Translated using Weblate (Polish)
Currently translated at 76.4% (14669 of 19195 strings)
2024-12-02 14:34:38 +01:00
தமிழ்நேரம்
f84939d540 Translated using Weblate (Tamil)
Currently translated at 100.0% (612 of 612 strings)
2024-12-01 20:00:40 +01:00
தமிழ்நேரம்
a635cd9124 Translated using Weblate (Tamil)
Currently translated at 100.0% (19194 of 19194 strings)
2024-12-01 20:00:39 +01:00
Renamed1986
7551af1ef3 Translated using Weblate (Russian)
Currently translated at 100.0% (19195 of 19195 strings)
2024-12-01 20:00:21 +01:00
Renamed1986
9ed794211b Translated using Weblate (Russian)
Currently translated at 100.0% (612 of 612 strings)
2024-12-01 20:00:20 +01:00
தமிழ்நேரம்
34a21a117d Translated using Weblate (Tamil)
Currently translated at 99.8% (611 of 612 strings)
2024-11-30 19:21:49 +01:00
தமிழ்நேரம்
7d67052e5b Translated using Weblate (Tamil)
Currently translated at 94.4% (18122 of 19194 strings)
2024-11-30 19:21:43 +01:00
Renamed1986
c9afe544f6 Translated using Weblate (Russian)
Currently translated at 99.4% (19088 of 19195 strings)
2024-11-30 19:21:06 +01:00
தமிழ்நேரம்
712b358dca Translated using Weblate (Tamil)
Currently translated at 53.6% (10288 of 19194 strings)
2024-11-30 04:04:04 +01:00
Daniel Stasiak
9a1cc68e9b Translated using Weblate (Polish)
Currently translated at 76.3% (14661 of 19195 strings)
2024-11-30 04:03:47 +01:00
Mateusz Mendel
ae26fff462 Translated using Weblate (Polish)
Currently translated at 76.3% (14661 of 19195 strings)
2024-11-29 22:40:33 +01:00
Daniel Stasiak
99c2c91320 Translated using Weblate (Polish)
Currently translated at 76.3% (14661 of 19195 strings)
2024-11-29 22:40:33 +01:00
Mateusz Mendel
63c6433182 Translated using Weblate (Polish)
Currently translated at 76.3% (14660 of 19195 strings)
2024-11-29 22:38:42 +01:00
Daniel Stasiak
6e550282c3 Translated using Weblate (Polish)
Currently translated at 76.3% (14660 of 19195 strings)
2024-11-29 22:38:41 +01:00
Daniel Stasiak
74cdcc35eb Translated using Weblate (Polish)
Currently translated at 76.3% (14659 of 19195 strings)
2024-11-29 22:17:17 +01:00
Mateusz Mendel
bbad939e48 Translated using Weblate (Polish)
Currently translated at 76.3% (14659 of 19195 strings)
2024-11-29 22:17:17 +01:00
Daniel Stasiak
b71bbbaa31 Translated using Weblate (Polish)
Currently translated at 76.3% (14658 of 19195 strings)
2024-11-29 22:04:07 +01:00
Mateusz Mendel
4dd86f9091 Translated using Weblate (Polish)
Currently translated at 76.3% (14658 of 19195 strings)
2024-11-29 22:04:06 +01:00
Mateusz Mendel
95d93bb95c Translated using Weblate (Polish)
Currently translated at 76.3% (14657 of 19195 strings)
2024-11-29 21:57:57 +01:00
Daniel Stasiak
7f4e97905e Translated using Weblate (Polish)
Currently translated at 76.3% (14657 of 19195 strings)
2024-11-29 21:57:57 +01:00
Mateusz Mendel
0ebfd13818 Translated using Weblate (Polish)
Currently translated at 76.3% (14656 of 19195 strings)
2024-11-29 21:56:37 +01:00
Daniel Stasiak
b1d24ec3a6 Translated using Weblate (Polish)
Currently translated at 76.3% (14656 of 19195 strings)
2024-11-29 21:56:37 +01:00
Renamed1986
80021fc4b4 Translated using Weblate (Russian)
Currently translated at 98.8% (18975 of 19195 strings)
2024-11-29 21:55:04 +01:00
Daniel Stasiak
fd9ba71635 Translated using Weblate (Polish)
Currently translated at 76.3% (14655 of 19195 strings)
2024-11-29 21:55:03 +01:00
Mateusz Mendel
4f1cfcfc16 Translated using Weblate (Polish)
Currently translated at 76.3% (14655 of 19195 strings)
2024-11-29 21:55:02 +01:00
Renamed1986
e4af9b137f Translated using Weblate (Russian)
Currently translated at 98.5% (18926 of 19195 strings)
2024-11-29 20:36:24 +01:00
Mateusz Mendel
1c20a251d1 Translated using Weblate (Polish)
Currently translated at 76.3% (14654 of 19195 strings)
2024-11-29 20:36:24 +01:00
Daniel Stasiak
74b24fc1cf Translated using Weblate (Polish)
Currently translated at 76.3% (14654 of 19195 strings)
2024-11-29 20:36:23 +01:00
Daniel Stasiak
e9e49d6b5f Translated using Weblate (Polish)
Currently translated at 76.3% (14653 of 19195 strings)
2024-11-29 20:21:11 +01:00
Mateusz Mendel
d9e643c74d Translated using Weblate (Polish)
Currently translated at 76.3% (14653 of 19195 strings)
2024-11-29 20:21:10 +01:00
தமிழ்நேரம்
af1acf6242 Translated using Weblate (Tamil)
Currently translated at 17.2% (3317 of 19194 strings)
2024-11-29 20:15:58 +01:00
Mateusz Mendel
fbcc9cfbc9 Translated using Weblate (Polish)
Currently translated at 76.3% (14652 of 19195 strings)
2024-11-29 20:15:45 +01:00
Daniel Stasiak
45a5796aa5 Translated using Weblate (Polish)
Currently translated at 76.3% (14652 of 19195 strings)
2024-11-29 20:15:44 +01:00
Daniel Stasiak
4214186be6 Translated using Weblate (Polish)
Currently translated at 76.3% (14651 of 19195 strings)
2024-11-29 09:02:41 +01:00
Mateusz Mendel
5760a3215f Translated using Weblate (Polish)
Currently translated at 76.3% (14651 of 19195 strings)
2024-11-29 03:25:07 +01:00
தமிழ்நேரம்
19e63a1452 Added translation using Weblate (Tamil) 2024-11-29 03:20:17 +01:00
Daniel Stasiak
f4eaf5009d Translated using Weblate (Polish)
Currently translated at 76.3% (14650 of 19195 strings)
2024-11-29 03:20:06 +01:00
Daniel Stasiak
d5e3211f56 Translated using Weblate (Polish)
Currently translated at 76.3% (14650 of 19195 strings)
2024-11-29 03:18:46 +01:00
Mateusz Mendel
dcdd747f9a Translated using Weblate (Polish)
Currently translated at 76.3% (14650 of 19195 strings)
2024-11-29 03:18:46 +01:00
Mateusz Mendel
dc010dffd2 Translated using Weblate (Polish)
Currently translated at 76.3% (14649 of 19195 strings)
2024-11-29 03:10:36 +01:00
Daniel Stasiak
b5ec8028ab Translated using Weblate (Polish)
Currently translated at 76.3% (14649 of 19195 strings)
2024-11-29 03:10:36 +01:00
Daniel Stasiak
c4261edbe9 Translated using Weblate (Polish)
Currently translated at 76.3% (14648 of 19195 strings)
2024-11-29 03:00:32 +01:00
Mateusz Mendel
d5ae67a609 Translated using Weblate (Polish)
Currently translated at 76.3% (14648 of 19195 strings)
2024-11-29 03:00:32 +01:00
Renamed1986
ae17446a71 Translated using Weblate (Russian)
Currently translated at 98.5% (18925 of 19195 strings)
2024-11-29 02:35:20 +01:00
Greg
e47c43298c Translated using Weblate (Polish)
Currently translated at 76.3% (14646 of 19195 strings)
2024-11-29 02:35:11 +01:00
Daniel Stasiak
b0729b9f14 Translated using Weblate (Polish)
Currently translated at 76.3% (14646 of 19195 strings)
2024-11-29 02:35:11 +01:00
Renamed1986
fbf5c4a43f Translated using Weblate (Russian)
Currently translated at 98.3% (18884 of 19195 strings)
2024-11-28 21:04:44 +01:00
Mateusz Mendel
a03544cac4 Translated using Weblate (Polish)
Currently translated at 76.2% (14645 of 19195 strings)
2024-11-28 21:04:43 +01:00
Greg
34c64bc7b2 Translated using Weblate (Polish)
Currently translated at 76.2% (14645 of 19195 strings)
2024-11-28 21:04:43 +01:00
Daniel Stasiak
aa4297c290 Translated using Weblate (Polish)
Currently translated at 76.2% (14645 of 19195 strings)
2024-11-28 21:04:42 +01:00
Renamed1986
b51ab87986 Translated using Weblate (Russian)
Currently translated at 97.9% (18795 of 19195 strings)
2024-11-27 23:00:37 +01:00
Daniel Stasiak
71e99e7d33 Translated using Weblate (Polish)
Currently translated at 76.2% (14638 of 19195 strings)
2024-11-27 23:00:35 +01:00
Mateusz Mendel
4921a15f75 Translated using Weblate (Polish)
Currently translated at 76.2% (14638 of 19195 strings)
2024-11-26 22:10:29 +01:00
Daniel Stasiak
e2f6169576 Translated using Weblate (Polish)
Currently translated at 76.2% (14638 of 19195 strings)
2024-11-26 22:10:29 +01:00
Mateusz Mendel
91cc24a6d7 Translated using Weblate (Polish)
Currently translated at 76.2% (14637 of 19195 strings)
2024-11-26 22:08:02 +01:00
Daniel Stasiak
c372d88f01 Translated using Weblate (Polish)
Currently translated at 76.2% (14637 of 19195 strings)
2024-11-26 22:08:02 +01:00
Renamed1986
992aeaf1b1 Translated using Weblate (Russian)
Currently translated at 97.5% (18724 of 19195 strings)
2024-11-26 21:30:19 +01:00
Daniel Stasiak
469dbf0850 Translated using Weblate (Polish)
Currently translated at 76.2% (14636 of 19195 strings)
2024-11-26 21:30:18 +01:00
gmkeebiy
57c16b5081 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 94.9% (18231 of 19195 strings)
2024-11-26 08:56:44 +01:00
Daniel Stasiak
35da35512c Translated using Weblate (Polish)
Currently translated at 76.2% (14636 of 19195 strings)
2024-11-26 08:56:43 +01:00
Than
d1c2e582bf Translated using Weblate (Vietnamese)
Currently translated at 2.0% (401 of 19194 strings)
2024-11-25 21:00:34 +01:00
sprin
44a423297a Translated using Weblate (Catalan)
Currently translated at 13.4% (2580 of 19195 strings)
2024-11-25 21:00:32 +01:00
Renamed1986
81bc3ff6a0 Translated using Weblate (Russian)
Currently translated at 97.4% (18707 of 19195 strings)
2024-11-25 21:00:29 +01:00
Daniel Stasiak
17db1d77e6 Translated using Weblate (Polish)
Currently translated at 76.2% (14636 of 19195 strings)
2024-11-25 21:00:26 +01:00
Vi Quang Thanh
476c1f0688 Translated using Weblate (Vietnamese)
Currently translated at 99.5% (609 of 612 strings)
2024-11-24 20:00:28 +01:00
Vi Quang Thanh
530da597bb Translated using Weblate (Vietnamese)
Currently translated at 2.0% (391 of 19194 strings)
2024-11-24 20:00:26 +01:00
Renamed1986
cd1650da2b Translated using Weblate (Russian)
Currently translated at 97.0% (18626 of 19195 strings)
2024-11-24 20:00:25 +01:00
Daniel Stasiak
f6c608f95e Translated using Weblate (Polish)
Currently translated at 76.2% (14632 of 19195 strings)
2024-11-24 20:00:21 +01:00
Renamed1986
1a0d02c1b1 Translated using Weblate (Russian)
Currently translated at 100.0% (612 of 612 strings)
2024-11-24 20:00:19 +01:00
Renamed1986
84aa4c3637 Translated using Weblate (Russian)
Currently translated at 94.9% (18225 of 19195 strings)
2024-11-23 19:12:55 +01:00
Daniel Stasiak
e4467d006a Translated using Weblate (Polish)
Currently translated at 76.2% (14632 of 19195 strings)
2024-11-23 19:12:54 +01:00
Kanoero
f66685533e Translated using Weblate (Spanish)
Currently translated at 73.9% (14195 of 19195 strings)
2024-11-23 19:12:52 +01:00
Renamed1986
8271d76a61 Translated using Weblate (Russian)
Currently translated at 99.6% (610 of 612 strings)
2024-11-23 19:12:51 +01:00
Mateusz Mendel
e9b46bea86 Translated using Weblate (Polish)
Currently translated at 76.2% (14632 of 19195 strings)
2024-11-22 22:54:44 +01:00
Daniel Stasiak
c9b21f8af8 Translated using Weblate (Polish)
Currently translated at 76.2% (14632 of 19195 strings)
2024-11-22 22:54:44 +01:00
Daniel Stasiak
6499d247f8 Translated using Weblate (Polish)
Currently translated at 76.2% (14631 of 19195 strings)
2024-11-22 22:39:40 +01:00
Mateusz Mendel
90fdce0759 Translated using Weblate (Polish)
Currently translated at 76.2% (14631 of 19195 strings)
2024-11-22 22:39:40 +01:00
Daniel Stasiak
2a4de617b8 Translated using Weblate (Polish)
Currently translated at 76.2% (14630 of 19195 strings)
2024-11-22 22:33:19 +01:00
Mateusz Mendel
c368190ceb Translated using Weblate (Polish)
Currently translated at 76.2% (14630 of 19195 strings)
2024-11-22 22:33:19 +01:00
Daniel Stasiak
66aea0b0cb Translated using Weblate (Polish)
Currently translated at 76.2% (14629 of 19195 strings)
2024-11-22 22:27:47 +01:00
Mateusz Mendel
328eea4fbb Translated using Weblate (Polish)
Currently translated at 76.2% (14629 of 19195 strings)
2024-11-22 22:27:47 +01:00
Mateusz Mendel
d73cde51a7 Translated using Weblate (Polish)
Currently translated at 76.2% (14627 of 19195 strings)
2024-11-22 09:07:53 +01:00
Daniel Stasiak
9a70eb3d6c Translated using Weblate (Polish)
Currently translated at 76.2% (14627 of 19195 strings)
2024-11-22 09:07:52 +01:00
Mateusz Mendel
3d0bfa15ba Translated using Weblate (Polish)
Currently translated at 76.1% (14625 of 19195 strings)
2024-11-22 09:00:58 +01:00
Nut.andor
4f3fc4b4d3 Revert "fix walkable"
This reverts commit 76fc648a5f.
2024-11-21 23:17:30 +01:00
Nut.andor
76fc648a5f fix walkable 2024-11-21 23:16:32 +01:00
Daniel Stasiak
2c0b9d699e Translated using Weblate (Polish)
Currently translated at 76.1% (14624 of 19195 strings)
2024-11-21 21:52:58 +01:00
xvy
b4710cf7bf Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (612 of 612 strings)
2024-11-21 17:30:20 +01:00
xvy
20b0910845 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 94.9% (18232 of 19195 strings)
2024-11-21 17:30:20 +01:00
Mateusz Mendel
6fb4aadb0e Translated using Weblate (Polish)
Currently translated at 76.1% (14624 of 19195 strings)
2024-11-21 17:30:19 +01:00
Daniel Stasiak
ccd4e202d2 Translated using Weblate (Polish)
Currently translated at 76.1% (14624 of 19195 strings)
2024-11-21 17:30:18 +01:00
xvy
2077e3707f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (612 of 612 strings)
2024-11-20 21:00:26 +01:00
xvy
f37db77423 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 94.9% (18230 of 19195 strings)
2024-11-20 21:00:25 +01:00
Daniel Stasiak
5836f0bf8a Translated using Weblate (Polish)
Currently translated at 76.1% (14618 of 19195 strings)
2024-11-20 21:00:22 +01:00
Mateusz Bergmann
486c8a903c Translated using Weblate (Polish)
Currently translated at 76.1% (14618 of 19195 strings)
2024-11-20 21:00:21 +01:00
Nut.andor
5e230c4700 Merge branch 'pulls/1829009049/78' into AT_Source_Next_Release 2024-11-19 22:56:57 +01:00
Nut.andor
807b95ae38 fix getting stuck in combat when animations are disabled 2024-11-19 22:53:14 +01:00
Nut.andor
21bbdcd9ba Prepare next dev version 2024-11-19 22:26:16 +01:00
Mateusz Bergmann
a536ec0012 Translated using Weblate (Polish)
Currently translated at 76.1% (14612 of 19195 strings)
2024-11-19 20:49:48 +01:00
Daniel Stasiak
0cd5e0daf7 Translated using Weblate (Polish)
Currently translated at 76.1% (14612 of 19195 strings)
2024-11-19 20:49:48 +01:00
Daniel Stasiak
9c97207f7c Translated using Weblate (Polish)
Currently translated at 76.1% (14611 of 19195 strings)
2024-11-19 20:45:40 +01:00
Mateusz Bergmann
491b15a95a Translated using Weblate (Polish)
Currently translated at 76.1% (14611 of 19195 strings)
2024-11-19 20:45:40 +01:00
Daniel Stasiak
56d1b22f66 Translated using Weblate (Polish)
Currently translated at 76.1% (14610 of 19195 strings)
2024-11-19 20:44:23 +01:00
Mateusz Bergmann
db1605abc0 Translated using Weblate (Polish)
Currently translated at 76.1% (14610 of 19195 strings)
2024-11-19 20:44:23 +01:00
Mateusz Bergmann
0279612052 Translated using Weblate (Polish)
Currently translated at 76.1% (14609 of 19195 strings)
2024-11-19 20:43:59 +01:00
Daniel Stasiak
45a7fd5ea6 Translated using Weblate (Polish)
Currently translated at 76.1% (14609 of 19195 strings)
2024-11-19 20:43:59 +01:00
Daniel Stasiak
b52670bc44 Translated using Weblate (Polish)
Currently translated at 76.0% (14607 of 19195 strings)
2024-11-19 20:42:23 +01:00
Mateusz Bergmann
a7c34e0832 Translated using Weblate (Polish)
Currently translated at 76.0% (14607 of 19195 strings)
2024-11-19 20:42:22 +01:00
Daniel Stasiak
1fc86e9ed6 Translated using Weblate (Polish)
Currently translated at 76.0% (14606 of 19195 strings)
2024-11-19 20:41:07 +01:00
Mateusz Bergmann
619a531279 Translated using Weblate (Polish)
Currently translated at 76.0% (14606 of 19195 strings)
2024-11-19 20:41:06 +01:00
Daniel Stasiak
6562a72e55 Translated using Weblate (Polish)
Currently translated at 76.0% (14605 of 19195 strings)
2024-11-19 20:40:15 +01:00
Mateusz Bergmann
09f5292e46 Translated using Weblate (Polish)
Currently translated at 76.0% (14605 of 19195 strings)
2024-11-19 20:40:14 +01:00
Mateusz Bergmann
0d021faaed Translated using Weblate (Polish)
Currently translated at 76.0% (14604 of 19195 strings)
2024-11-19 20:36:35 +01:00
Daniel Stasiak
6c5baa93b8 Translated using Weblate (Polish)
Currently translated at 76.0% (14604 of 19195 strings)
2024-11-19 20:36:34 +01:00
Mateusz Bergmann
666f7e7c35 Translated using Weblate (Polish)
Currently translated at 76.0% (14603 of 19195 strings)
2024-11-19 17:28:37 +01:00
Daniel Stasiak
7e56886659 Translated using Weblate (Polish)
Currently translated at 76.0% (14603 of 19195 strings)
2024-11-19 17:28:36 +01:00
Daniel Stasiak
1d5513fba3 Translated using Weblate (Polish)
Currently translated at 76.0% (14602 of 19195 strings)
2024-11-19 17:27:55 +01:00
Mateusz Bergmann
76e307a836 Translated using Weblate (Polish)
Currently translated at 76.0% (14602 of 19195 strings)
2024-11-19 17:27:54 +01:00
Mateusz Bergmann
517225e30f Translated using Weblate (Polish)
Currently translated at 76.0% (14601 of 19195 strings)
2024-11-19 17:21:47 +01:00
Daniel Stasiak
c49fc826af Translated using Weblate (Polish)
Currently translated at 76.0% (14601 of 19195 strings)
2024-11-19 17:21:47 +01:00
Mateusz Bergmann
1eca0493d8 Translated using Weblate (Polish)
Currently translated at 76.0% (14600 of 19195 strings)
2024-11-19 17:21:06 +01:00
Daniel Stasiak
9c2a1ca590 Translated using Weblate (Polish)
Currently translated at 76.0% (14600 of 19195 strings)
2024-11-19 17:21:06 +01:00
Daniel Stasiak
5481be03e6 Translated using Weblate (Polish)
Currently translated at 76.0% (14599 of 19195 strings)
2024-11-19 17:18:18 +01:00
Mateusz Bergmann
f5d70d6f56 Translated using Weblate (Polish)
Currently translated at 76.0% (14599 of 19195 strings)
2024-11-19 17:18:18 +01:00
Mateusz Bergmann
5ab714bb01 Translated using Weblate (Polish)
Currently translated at 76.0% (14597 of 19195 strings)
2024-11-19 17:17:22 +01:00
Daniel Stasiak
409a67b5be Translated using Weblate (Polish)
Currently translated at 76.0% (14597 of 19195 strings)
2024-11-19 17:17:22 +01:00
Daniel Stasiak
4e1a6ad392 Translated using Weblate (Polish)
Currently translated at 76.0% (14596 of 19195 strings)
2024-11-19 17:16:31 +01:00
Mateusz Bergmann
9d1e63bd90 Translated using Weblate (Polish)
Currently translated at 76.0% (14596 of 19195 strings)
2024-11-19 17:16:31 +01:00
Daniel Stasiak
62724cdd71 Translated using Weblate (Polish)
Currently translated at 76.0% (14595 of 19195 strings)
2024-11-19 17:15:27 +01:00
Mateusz Bergmann
176d4a3072 Translated using Weblate (Polish)
Currently translated at 76.0% (14595 of 19195 strings)
2024-11-19 17:15:27 +01:00
Daniel Stasiak
f771864875 Translated using Weblate (Polish)
Currently translated at 76.0% (14594 of 19195 strings)
2024-11-19 17:14:48 +01:00
Mateusz Bergmann
4a6707c7a8 Translated using Weblate (Polish)
Currently translated at 76.0% (14594 of 19195 strings)
2024-11-19 17:14:48 +01:00
Mateusz Bergmann
14ee38edf2 Translated using Weblate (Polish)
Currently translated at 76.0% (14593 of 19195 strings)
2024-11-19 17:14:14 +01:00
Nut.andor
a8e2462e47 Pull Request #78: fix getting stuck in combat when animations are disabled 2024-11-19 17:13:02 +01:00
OMGeeky
3faf696f46 fix getting stuck in combat when animations are disabled 2024-11-19 17:12:20 +01:00
Daniel Stasiak
d22530938d Translated using Weblate (Polish)
Currently translated at 76.0% (14592 of 19195 strings)
2024-11-19 17:09:14 +01:00
Mateusz Bergmann
9bfe080447 Translated using Weblate (Polish)
Currently translated at 76.0% (14592 of 19195 strings)
2024-11-19 17:09:14 +01:00
Mateusz Bergmann
b083b47781 Translated using Weblate (Polish)
Currently translated at 76.0% (14591 of 19195 strings)
2024-11-19 17:07:31 +01:00
Daniel Stasiak
0fc7709584 Translated using Weblate (Polish)
Currently translated at 76.0% (14591 of 19195 strings)
2024-11-19 17:07:31 +01:00
Daniel Stasiak
f31382698f Translated using Weblate (Polish)
Currently translated at 76.0% (14590 of 19195 strings)
2024-11-19 17:06:32 +01:00
Mateusz Bergmann
358594d9e4 Translated using Weblate (Polish)
Currently translated at 76.0% (14590 of 19195 strings)
2024-11-19 17:06:31 +01:00
Daniel Stasiak
6ced7c4c39 Translated using Weblate (Polish)
Currently translated at 76.0% (14589 of 19195 strings)
2024-11-19 17:05:34 +01:00
Mateusz Bergmann
dc83dd2d95 Translated using Weblate (Polish)
Currently translated at 76.0% (14589 of 19195 strings)
2024-11-19 17:05:33 +01:00
Mateusz Bergmann
e3b56d85cd Translated using Weblate (Polish)
Currently translated at 75.9% (14588 of 19195 strings)
2024-11-19 17:03:45 +01:00
Daniel Stasiak
448610894a Translated using Weblate (Polish)
Currently translated at 75.9% (14588 of 19195 strings)
2024-11-19 17:03:45 +01:00
Mateusz Bergmann
9953b315b5 Translated using Weblate (Polish)
Currently translated at 75.9% (14587 of 19195 strings)
2024-11-19 17:02:05 +01:00
Daniel Stasiak
8f669e0a33 Translated using Weblate (Polish)
Currently translated at 75.9% (14587 of 19195 strings)
2024-11-19 17:02:05 +01:00
Mateusz Bergmann
9fbafa29a2 Translated using Weblate (Polish)
Currently translated at 75.9% (14586 of 19195 strings)
2024-11-19 11:22:13 +01:00
Daniel Stasiak
461c40ed8c Translated using Weblate (Polish)
Currently translated at 75.9% (14586 of 19195 strings)
2024-11-19 11:22:13 +01:00
Nut.andor
a3401f05b4 Prepare next version 2024-11-19 07:26:29 +01:00
Nut.andor
2e3c134e09 Merge branch 'master' into AT_Source_Next_Release 2024-11-19 07:24:50 +01:00
Nut
e3b03fa3e5 Merge pull request #77 from AndorsTrailRelease/master_tmp20241119
Master tmp20241119
2024-11-19 07:17:44 +01:00
Nut.andor
d25d7916b0 Merge remote-tracking branch 'hosted.weblate/master' 2024-11-19 06:48:34 +01:00
Daniel Stasiak
1a43fad4bb Translated using Weblate (Polish)
Currently translated at 80.0% (14586 of 18227 strings)
2024-11-19 06:42:36 +01:00
Mateusz Bergmann
c5e1806b9f Translated using Weblate (Polish)
Currently translated at 80.0% (14586 of 18227 strings)
2024-11-19 06:42:35 +01:00
Mateusz Mendel
dee12635a1 Translated using Weblate (Polish)
Currently translated at 80.0% (14586 of 18227 strings)
2024-11-19 06:42:35 +01:00
Nut.andor
5fac187f80 Merge remote-tracking branch 'hosted.weblate/master' 2024-11-19 06:40:41 +01:00
Nut.andor
4d18951e94 version 2024-11-19 06:00:15 +01:00
Nut.andor
4986bbd9a2 Merge branch 'master' into AT_Source_Next_Release 2024-11-19 05:58:43 +01:00
Nut.andor
48ac678c9c Merge branch 'v0.8.12' 2024-11-19 05:49:38 +01:00
Than
3a343b12ee Translated using Weblate (Vietnamese)
Currently translated at 1.8% (346 of 18226 strings)
2024-11-18 17:00:32 +01:00
Daniel Stasiak
1174495f67 Translated using Weblate (Polish)
Currently translated at 79.9% (14564 of 18227 strings)
2024-11-18 17:00:30 +01:00
Than
e0b62484f4 Translated using Weblate (Vietnamese)
Currently translated at 1.8% (336 of 18226 strings)
2024-11-16 03:00:33 +00:00
Daniel Stasiak
a2c41fd470 Translated using Weblate (Polish)
Currently translated at 79.9% (14564 of 18227 strings)
2024-11-16 03:00:31 +00:00
Nut Andor
6633bf15e6 Translated using Weblate (German)
Currently translated at 96.3% (17568 of 18227 strings)
2024-11-16 03:00:29 +00:00
Nut.andor
64644ca5be whatsnew 2024-11-16 02:14:53 +01:00
Nut.andor
31d83b0f44 fix freeze bug
boat
(cherry picked from AT_Source_Next_Release)
2024-11-16 02:06:31 +01:00
Nut.andor
98ceed6ea6 potc 2024-11-15 03:08:20 +01:00
Nut.andor
85c71fb49f content feygard_1 2024-11-15 02:52:06 +01:00
Nut.andor
b91388c085 whatsnew 2024-11-15 02:33:44 +01:00
Nut.andor
6faf448a29 Merge remote-tracking branch 'hosted.weblate/master' into v0.8.12 2024-11-15 02:26:36 +01:00
Nut.andor
fbe17cdeab Merge remote-tracking branch 'hosted.weblate/master' into AT_Source_Next_Release 2024-11-15 02:25:40 +01:00
Nut.andor
d6fe78132a potcbeta 2024-11-15 02:19:33 +01:00
Nut.andor
58b52e9069 fix freeze bug 2024-11-15 02:12:16 +01:00
Anupam Malhotra
7359e55047 Translated using Weblate (Hindi)
Currently translated at 0.3% (70 of 18226 strings)
2024-11-14 21:00:28 +01:00
Daniel Stasiak
a5a97bedba Translated using Weblate (Polish)
Currently translated at 79.9% (14564 of 18227 strings)
2024-11-14 21:00:26 +01:00
Than
bcb317d799 Translated using Weblate (Vietnamese)
Currently translated at 1.7% (313 of 18226 strings)
2024-11-13 07:53:01 +01:00
xvy
521358a8b8 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-11-13 07:53:00 +01:00
Daniel Stasiak
901bc3ba43 Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-11-13 07:52:58 +01:00
Than
3ea543213a Translated using Weblate (Vietnamese)
Currently translated at 1.5% (283 of 18226 strings)
2024-11-11 16:01:07 +00:00
Daniel Stasiak
e54ddf5d6c Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-11-11 16:01:04 +00:00
Nut.andor
6dac9a365d whatsnew 2024-11-10 22:33:37 +01:00
xvy
349baa17d3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-11-10 11:31:55 +01:00
xvy
00b84109c8 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-11-09 19:12:25 +01:00
Than
01f2bcc8c6 Translated using Weblate (Vietnamese)
Currently translated at 1.3% (240 of 18226 strings)
2024-11-09 02:00:31 +01:00
xvy
78308b5d98 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-11-09 02:00:23 +01:00
Daniel Stasiak
891664c8ff Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-11-09 02:00:21 +01:00
Than
07dd3d81ff Translated using Weblate (Vietnamese)
Currently translated at 0.8% (156 of 18226 strings)
2024-11-07 21:00:31 +00:00
Daniel Stasiak
9196b56a3d Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-11-07 21:00:30 +00:00
Than
fa70ba8fb6 Translated using Weblate (Vietnamese)
Currently translated at 0.7% (139 of 18226 strings)
2024-11-06 21:00:48 +01:00
Daniel Stasiak
6e4e60a713 Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-11-06 21:00:45 +01:00
Daniel Stasiak
2caff38db9 Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-11-05 18:00:23 +01:00
Nut.andor
103cefad0d fix actorcondition removal bug 2024-11-05 14:49:22 +01:00
Daniel Stasiak
1b6d1ce5f1 Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-11-02 19:14:14 +01:00
Kanoero
8fcd6c73b6 Translated using Weblate (Spanish)
Currently translated at 77.7% (14180 of 18227 strings)
2024-11-02 19:14:13 +01:00
Renamed1986
b5eb47aff8 Translated using Weblate (Russian)
Currently translated at 100.0% (18227 of 18227 strings)
2024-11-01 22:00:28 +01:00
Daniel Stasiak
87ddae5571 Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-11-01 22:00:26 +01:00
Nut.andor
58a47ad70c map_boats_1 should be bigger 2024-11-01 08:25:18 +01:00
Daniel Stasiak
e06de09e15 Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-10-30 21:00:15 +00:00
Daniel Stasiak
9ca3833117 Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-10-29 20:00:27 +01:00
Nut.andor
bd4efa9434 Credits 2024-10-27 22:56:15 +01:00
Nut.andor
c07bbb8ef6 Merge branch 'master-hosted.weblate' into AT_Source_Next_Release 2024-10-27 22:39:08 +01:00
Nut.andor
503a0725b9 Small boats added (prototype) 2024-10-27 18:51:30 +01:00
Daniel Stasiak
2760e081ac Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-10-26 19:12:37 +02:00
Nut.andor
8e2bea1f35 Add beagles 2024-10-25 21:29:54 +02:00
xvy
4369a3dfb3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-10-25 18:15:53 +02:00
Daniel Stasiak
a844e05946 Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-10-25 18:15:50 +02:00
Raphi
401b79fcf3 Translated using Weblate (German)
Currently translated at 96.3% (17568 of 18227 strings)
2024-10-25 18:15:44 +02:00
Nut.andor
0cf139035a FormatReference 2024-10-25 02:17:17 +02:00
Daniel Stasiak
a332b06266 Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-10-24 08:15:45 +02:00
Anupam Malhotra
0eb4a1512f Translated using Weblate (Hindi)
Currently translated at 0.2% (39 of 18226 strings)
2024-10-22 18:17:09 +02:00
Daniel Stasiak
0ecda7eb62 Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-10-22 18:17:04 +02:00
Daniel Stasiak
4cacf8de1e Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-10-21 14:41:00 +02:00
Daniel Stasiak
6086a54f0f Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-10-21 01:24:32 +02:00
Daniel Stasiak
f376bd3445 Translated using Weblate (Polish)
Currently translated at 79.8% (14563 of 18227 strings)
2024-10-20 19:15:48 +02:00
Daniel Stasiak
e722852f93 Translated using Weblate (Polish)
Currently translated at 79.8% (14561 of 18227 strings)
2024-10-19 19:14:23 +02:00
Mateusz Mendel
9e9102fdc0 Translated using Weblate (Polish)
Currently translated at 79.8% (14561 of 18227 strings)
2024-10-19 19:14:22 +02:00
Daniel Stasiak
491e95e4a1 Translated using Weblate (Polish)
Currently translated at 79.8% (14559 of 18227 strings)
2024-10-19 19:10:26 +02:00
Mateusz Mendel
31755b480a Translated using Weblate (Polish)
Currently translated at 79.8% (14559 of 18227 strings)
2024-10-19 18:42:01 +02:00
Daniel Stasiak
d89aed8dc5 Translated using Weblate (Polish)
Currently translated at 79.8% (14559 of 18227 strings)
2024-10-19 18:42:00 +02:00
Mateusz Mendel
931597abcb Translated using Weblate (Polish)
Currently translated at 79.8% (14558 of 18227 strings)
2024-10-19 13:45:05 +02:00
Daniel Stasiak
77ab35da91 Translated using Weblate (Polish)
Currently translated at 79.8% (14558 of 18227 strings)
2024-10-19 13:45:04 +02:00
Nut.andor
0684fd8e25 Revert "easy fixes"
This reverts commit 97cabf62b8.
2024-10-19 02:35:04 +02:00
Nut.andor
97cabf62b8 easy fixes 2024-10-19 02:30:40 +02:00
Nut.andor
53a1b513fb whatsnew 2024-10-19 00:58:57 +02:00
Mateusz Mendel
053336faca Translated using Weblate (Polish)
Currently translated at 79.8% (14554 of 18227 strings)
2024-10-18 22:10:52 +02:00
Daniel Stasiak
dbe096a8d5 Translated using Weblate (Polish)
Currently translated at 79.8% (14554 of 18227 strings)
2024-10-18 22:10:52 +02:00
Mateusz Mendel
f78d1a6d84 Translated using Weblate (Polish)
Currently translated at 79.8% (14553 of 18227 strings)
2024-10-18 22:09:14 +02:00
Daniel Stasiak
01d1cb6212 Translated using Weblate (Polish)
Currently translated at 79.8% (14553 of 18227 strings)
2024-10-18 22:09:14 +02:00
Daniel Stasiak
c606e7c296 Translated using Weblate (Polish)
Currently translated at 79.8% (14552 of 18227 strings)
2024-10-18 22:07:29 +02:00
Mateusz Mendel
5ac2f44d52 Translated using Weblate (Polish)
Currently translated at 79.8% (14552 of 18227 strings)
2024-10-18 22:07:29 +02:00
Mateusz Mendel
9b7b79ac9f Translated using Weblate (Polish)
Currently translated at 79.8% (14550 of 18227 strings)
2024-10-18 22:03:05 +02:00
Daniel Stasiak
99deee6a14 Translated using Weblate (Polish)
Currently translated at 79.8% (14550 of 18227 strings)
2024-10-18 22:03:05 +02:00
Daniel Stasiak
196302ed3e Translated using Weblate (Polish)
Currently translated at 79.8% (14549 of 18227 strings)
2024-10-18 22:00:44 +02:00
Mateusz Mendel
f40589a461 Translated using Weblate (Polish)
Currently translated at 79.8% (14549 of 18227 strings)
2024-10-18 22:00:44 +02:00
Mateusz Mendel
ef2e01085a Translated using Weblate (Polish)
Currently translated at 79.8% (14548 of 18227 strings)
2024-10-18 21:58:21 +02:00
Daniel Stasiak
8f939fd4af Translated using Weblate (Polish)
Currently translated at 79.8% (14548 of 18227 strings)
2024-10-18 21:58:20 +02:00
Daniel Stasiak
4a546d9ff1 Translated using Weblate (Polish)
Currently translated at 79.8% (14547 of 18227 strings)
2024-10-18 21:56:03 +02:00
Mateusz Mendel
d75c99f7ee Translated using Weblate (Polish)
Currently translated at 79.8% (14547 of 18227 strings)
2024-10-18 21:56:02 +02:00
Mateusz Mendel
f10a3d99c5 Translated using Weblate (Polish)
Currently translated at 79.7% (14545 of 18227 strings)
2024-10-18 21:52:12 +02:00
Daniel Stasiak
fb23e577e8 Translated using Weblate (Polish)
Currently translated at 79.7% (14545 of 18227 strings)
2024-10-18 21:52:12 +02:00
Mateusz Mendel
6861451f8f Translated using Weblate (Polish)
Currently translated at 79.7% (14544 of 18227 strings)
2024-10-18 21:51:14 +02:00
Daniel Stasiak
770082a811 Translated using Weblate (Polish)
Currently translated at 79.7% (14544 of 18227 strings)
2024-10-18 21:51:14 +02:00
Mateusz Mendel
43cf2b1105 Translated using Weblate (Polish)
Currently translated at 79.7% (14543 of 18227 strings)
2024-10-18 19:44:46 +02:00
Daniel Stasiak
88e2a65b5d Translated using Weblate (Polish)
Currently translated at 79.7% (14543 of 18227 strings)
2024-10-18 19:44:46 +02:00
Mateusz Mendel
1333610ef0 Translated using Weblate (Polish)
Currently translated at 79.7% (14540 of 18227 strings)
2024-10-18 07:41:11 +02:00
Daniel Stasiak
731411cdfa Translated using Weblate (Polish)
Currently translated at 79.7% (14540 of 18227 strings)
2024-10-18 07:41:10 +02:00
Mateusz Mendel
10da65860a Translated using Weblate (Polish)
Currently translated at 79.7% (14539 of 18227 strings)
2024-10-17 20:41:50 +02:00
Daniel Stasiak
6f637e01b6 Translated using Weblate (Polish)
Currently translated at 79.7% (14539 of 18227 strings)
2024-10-17 20:41:50 +02:00
Daniel Stasiak
a356a456d5 Translated using Weblate (Polish)
Currently translated at 79.7% (14538 of 18227 strings)
2024-10-17 20:38:52 +02:00
Mateusz Mendel
55f4141157 Translated using Weblate (Polish)
Currently translated at 79.7% (14538 of 18227 strings)
2024-10-17 20:38:52 +02:00
Mateusz Mendel
b2a3c926c5 Translated using Weblate (Polish)
Currently translated at 79.7% (14537 of 18227 strings)
2024-10-17 20:36:20 +02:00
xvy
e79c26e234 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-10-16 15:15:48 +02:00
Daniel Stasiak
cb293885e2 Translated using Weblate (Polish)
Currently translated at 79.7% (14536 of 18227 strings)
2024-10-16 15:15:46 +02:00
Daniel Stasiak
92db832044 Translated using Weblate (Polish)
Currently translated at 79.7% (14534 of 18227 strings)
2024-10-15 14:48:43 +02:00
Mateusz Mendel
42f20efe3b Translated using Weblate (Polish)
Currently translated at 79.7% (14534 of 18227 strings)
2024-10-15 14:48:42 +02:00
Daniel Stasiak
14866a1432 Translated using Weblate (Polish)
Currently translated at 79.7% (14533 of 18227 strings)
2024-10-15 14:46:58 +02:00
Mateusz Mendel
7d61704575 Translated using Weblate (Polish)
Currently translated at 79.7% (14533 of 18227 strings)
2024-10-15 14:46:57 +02:00
Mateusz Mendel
c8e8d0b7b9 Translated using Weblate (Polish)
Currently translated at 79.7% (14532 of 18227 strings)
2024-10-15 14:46:03 +02:00
Daniel Stasiak
dda03b21d7 Translated using Weblate (Polish)
Currently translated at 79.7% (14532 of 18227 strings)
2024-10-15 14:46:02 +02:00
Daniel Stasiak
64e8bf3abb Translated using Weblate (Polish)
Currently translated at 79.7% (14530 of 18227 strings)
2024-10-15 14:44:52 +02:00
Mateusz Mendel
da671b00cf Translated using Weblate (Polish)
Currently translated at 79.7% (14530 of 18227 strings)
2024-10-15 14:44:52 +02:00
Mateusz Mendel
6d918bd3d5 Translated using Weblate (Polish)
Currently translated at 79.7% (14529 of 18227 strings)
2024-10-15 14:44:00 +02:00
Daniel Stasiak
dbf4e05d59 Translated using Weblate (Polish)
Currently translated at 79.7% (14529 of 18227 strings)
2024-10-15 14:44:00 +02:00
Mateusz Mendel
9224cf8b99 Translated using Weblate (Polish)
Currently translated at 79.7% (14527 of 18227 strings)
2024-10-15 14:39:37 +02:00
Daniel Stasiak
00051ec7fe Translated using Weblate (Polish)
Currently translated at 79.6% (14526 of 18227 strings)
2024-10-14 22:58:45 +02:00
Daniel Stasiak
44686c6459 Translated using Weblate (Polish)
Currently translated at 79.6% (14526 of 18227 strings)
2024-10-14 08:26:16 +02:00
Mateusz Mendel
09f3a7f27e Translated using Weblate (Polish)
Currently translated at 79.6% (14526 of 18227 strings)
2024-10-14 08:26:16 +02:00
Mateusz Mendel
51a09a7a99 Translated using Weblate (Polish)
Currently translated at 79.6% (14525 of 18227 strings)
2024-10-14 08:23:52 +02:00
Daniel Stasiak
ebdea1e9b1 Translated using Weblate (Polish)
Currently translated at 79.6% (14525 of 18227 strings)
2024-10-14 08:23:52 +02:00
Daniel Stasiak
f3d3adac2e Translated using Weblate (Polish)
Currently translated at 79.6% (14524 of 18227 strings)
2024-10-14 08:19:44 +02:00
Mateusz Mendel
b55f90efde Translated using Weblate (Polish)
Currently translated at 79.6% (14524 of 18227 strings)
2024-10-14 08:19:44 +02:00
Mateusz Mendel
c5e6e09071 Translated using Weblate (Polish)
Currently translated at 79.6% (14523 of 18227 strings)
2024-10-14 08:19:20 +02:00
Daniel Stasiak
9895847f8b Translated using Weblate (Polish)
Currently translated at 79.6% (14523 of 18227 strings)
2024-10-14 08:19:20 +02:00
Daniel Stasiak
992f265292 Translated using Weblate (Polish)
Currently translated at 79.6% (14522 of 18227 strings)
2024-10-14 08:17:19 +02:00
Mateusz Mendel
f4a4a7c124 Translated using Weblate (Polish)
Currently translated at 79.6% (14522 of 18227 strings)
2024-10-14 08:17:19 +02:00
Mateusz Mendel
129d037379 Translated using Weblate (Polish)
Currently translated at 79.6% (14519 of 18227 strings)
2024-10-13 16:23:29 +02:00
Daniel Stasiak
f0e438044f Translated using Weblate (Polish)
Currently translated at 79.6% (14519 of 18227 strings)
2024-10-13 16:23:29 +02:00
Mateusz Mendel
9ef0e56aa8 Translated using Weblate (Polish)
Currently translated at 79.6% (14518 of 18227 strings)
2024-10-13 16:22:07 +02:00
Raphi
6b74350edf Translated using Weblate (German)
Currently translated at 96.3% (17566 of 18227 strings)
2024-10-11 19:53:37 +02:00
Daniel Stasiak
5f6e38de30 Translated using Weblate (Polish)
Currently translated at 79.6% (14517 of 18227 strings)
2024-10-11 08:57:45 +02:00
Mateusz Mendel
1ee940c40c Translated using Weblate (Polish)
Currently translated at 79.6% (14517 of 18227 strings)
2024-10-11 08:57:44 +02:00
Mateusz Mendel
2ca5dd9b31 Translated using Weblate (Polish)
Currently translated at 79.6% (14515 of 18227 strings)
2024-10-11 08:11:59 +02:00
ACsediment
08a4c18c8f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-10-09 01:15:40 +02:00
Nut.andor
e4cc3bb89c rotated tiles doesn't crash the engine anymore (when VALIDATEDATA off) 2024-10-07 22:11:42 +02:00
Nut.andor
6f56e1fb3d ⩩johny(異邦人)(白人)(差別者)(右翼)筋骨隆々⩩ — heute um 14:26 Uhr
there are some spritesheets to be updated
2024-10-07 20:52:00 +02:00
Nut.andor
c49b63b50e Burhczyd typos 2024-10-05 01:47:41 +02:00
sprin
0fcb5aa2c6 Translated using Weblate (Catalan)
Currently translated at 14.1% (2578 of 18227 strings)
2024-10-05 01:16:29 +02:00
Nut Andor
d8c055dbb4 Translated using Weblate (German)
Currently translated at 96.2% (17546 of 18227 strings)
2024-10-05 01:16:26 +02:00
xvy
280c636823 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-10-03 04:16:22 +00:00
Nut.andor
bce6cdb618 repair link to wiki
typo
whatsnew
2024-10-02 19:21:06 +02:00
Nut
3486f95a81 Update readme.md
repair link to (slightly outdated) wiki
2024-10-02 19:13:22 +02:00
Nut
ea427419ef Update contributors.md
it was about time to update the contributor list
2024-10-02 00:23:03 +02:00
Nut
38467803b8 Update readme.md
The team had changed a bit already ...
2024-10-02 00:02:51 +02:00
Nut.andor
6a25253698 Merge remote-tracking branch 'hosted.weblate/master' into AT_Source_Next_Release 2024-09-30 23:01:58 +02:00
Nut Andor
31b15baf90 Translated using Weblate (German)
Currently translated at 96.2% (17546 of 18227 strings)
2024-09-30 23:00:55 +02:00
Nut.andor
b906e4dd99 Merge remote-tracking branch 'hosted.weblate/master' into AT_Source_Next_Release 2024-09-30 19:09:25 +02:00
xvy
5022c94a13 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-09-30 07:22:23 +02:00
Nut.andor
f6f3c2041b whatsnew 2024-09-29 02:17:55 +02:00
Nut.andor
5c3bdf40f9 whatsnew 2024-09-29 02:17:26 +02:00
Nut.andor
db3335513a FormatReference 2024-09-29 02:17:26 +02:00
xvy
a815562f82 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-09-23 20:01:49 +02:00
xvy
36d4cb716e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-09-23 15:15:41 +02:00
Nut.andor
2a62f69623 wrong language 2024-09-22 14:37:02 +02:00
Nut.andor
6d1ffdedc8 Rebuild world map 2024-09-22 14:37:02 +02:00
Nut.andor
7f67ff266c Merge branch 'pulls/1829009049/24' into AT_Source_Next_Release
# Conflicts:
#	AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/WorldSetup.java
#	AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/controller/WorldMapController.java
#	AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/savegames/Savegames.java
2024-09-22 03:10:49 +02:00
Nut.andor
5afdbd82bb further changes necessary 2024-09-22 03:07:13 +02:00
Nut.andor
21763301ca Rebuild world map
# Conflicts:
#	AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/controller/WorldMapController.java
#	AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/model/ModelContainer.java
2024-09-22 03:01:58 +02:00
Nut.andor
0268f4e707 Merge branch 'pulls/1829009049/76' into AT_Source_Next_Release 2024-09-22 01:25:36 +02:00
Nut.andor
b66e75027d Merge branch 'pulls/1829009049/75' into AT_Source_Next_Release 2024-09-22 01:25:23 +02:00
Nut.andor
934755cf4e map_cavewall_4 2024-09-22 01:23:46 +02:00
Nut.andor
148280d29e map_cavewall_4 2024-09-22 01:21:20 +02:00
Daniel Stasiak
0cc89d6e86 Translated using Weblate (Polish)
Currently translated at 79.6% (14514 of 18227 strings)
2024-09-20 21:40:47 +02:00
Filip
395bb7b213 Translated using Weblate (Polish)
Currently translated at 79.6% (14514 of 18227 strings)
2024-09-19 21:25:33 +02:00
Daniel Stasiak
af5a992cfc Translated using Weblate (Polish)
Currently translated at 79.6% (14514 of 18227 strings)
2024-09-19 21:25:32 +02:00
Filip
c76ae59ae2 Translated using Weblate (Polish)
Currently translated at 79.6% (14513 of 18227 strings)
2024-09-19 21:18:24 +02:00
xvy
2a884b7c7c Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-09-19 09:40:55 +02:00
xvy
3a87e6159b Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-09-18 07:48:05 +02:00
Ryan C
6ec5273d21 Translated using Weblate (Filipino)
Currently translated at 47.5% (291 of 612 strings)
2024-09-16 18:09:16 +02:00
Ryan C
bff5215bb9 Translated using Weblate (Filipino)
Currently translated at 1.6% (306 of 18226 strings)
2024-09-16 18:09:16 +02:00
Natalia N
f609d4132a Translated using Weblate (German)
Currently translated at 96.2% (17542 of 18227 strings)
2024-09-16 18:09:13 +02:00
Nut.andor
6cc3e428d3 remove en_devel.po 2024-09-16 01:51:13 +02:00
Daniel Stasiak
28eb643f49 Translated using Weblate (Polish)
Currently translated at 79.6% (14509 of 18227 strings)
2024-09-15 14:29:45 +02:00
Natalia N
b7d9dc08ec Translated using Weblate (German)
Currently translated at 95.9% (17491 of 18227 strings)
2024-09-15 14:29:43 +02:00
Nut.andor
2ca9a78280 Revert "Auxiliary commit to revert individual files from a24aaeb7e82ccd4fe1e2d0e4240e29bfedcfc028"
This reverts commit e8f8a9c9ddbb090e3c7e242d505500099e6bc771.
2024-09-15 03:44:37 +02:00
Nut.andor
2df651f342 Merge remote-tracking branch 'hosted.weblate/master' 2024-09-15 03:24:16 +02:00
Nut.andor
b16129abfa Merge branch 'pulls/1829009049/76' 2024-09-15 03:23:33 +02:00
Nut.andor
787b739fa3 Merge branch 'pulls/1829009049/75' 2024-09-15 03:23:08 +02:00
Nut.andor
f4d62d1590 Fix visual bugs 2024-09-15 03:16:12 +02:00
Nut.andor
03ca432a36 Visual Glitch Fix 2024-09-15 03:15:59 +02:00
Nut.andor
28804f9034 Merge remote-tracking branch 'hosted.weblate/master' into AT_Source_Next_Release 2024-09-15 02:10:37 +02:00
Nut Andor
7b276046ed Translated using Weblate (Czech)
Currently translated at 79.9% (14581 of 18227 strings)
2024-09-15 02:10:01 +02:00
Nut Andor
c538088760 Translated using Weblate (Portuguese (Brazil))
Currently translated at 84.9% (15476 of 18227 strings)
2024-09-15 02:10:00 +02:00
Nut Andor
1074bbb09e Translated using Weblate (Indonesian)
Currently translated at 89.6% (16345 of 18227 strings)
2024-09-15 02:09:58 +02:00
Nut Andor
2c503bdf88 Translated using Weblate (French)
Currently translated at 88.8% (16201 of 18227 strings)
2024-09-15 02:09:56 +02:00
Nut Andor
2f242e6607 Translated using Weblate (German)
Currently translated at 95.6% (17442 of 18227 strings)
2024-09-15 02:09:54 +02:00
Nut.andor
0cee97e5f6 Merge remote-tracking branch 'hosted.weblate/master' into AT_Source_Next_Release 2024-09-15 01:19:34 +02:00
Natalia N
90f12a94a8 Translated using Weblate (German)
Currently translated at 95.6% (17442 of 18227 strings)
2024-09-15 00:00:55 +02:00
Nut Andor
91fb604806 Translated using Weblate (Czech)
Currently translated at 80.0% (14582 of 18227 strings)
2024-09-14 19:11:20 +02:00
Nut Andor
a54df11cc7 Translated using Weblate (Turkish)
Currently translated at 30.6% (5584 of 18227 strings)
2024-09-14 19:11:18 +02:00
Nut Andor
b8e903af3e Translated using Weblate (Indonesian)
Currently translated at 89.6% (16345 of 18227 strings)
2024-09-14 19:11:16 +02:00
Natalia N
2c4491c707 Translated using Weblate (German)
Currently translated at 95.5% (17408 of 18227 strings)
2024-09-14 19:11:15 +02:00
Natalia N
d13865f599 Translated using Weblate (German)
Currently translated at 95.2% (17356 of 18227 strings)
2024-09-13 09:32:20 +00:00
Nut.andor
a0bfee0c6a whatsnew 2024-09-12 23:58:19 +02:00
Nut.andor
69eb9eda25 whatsnew 2024-09-12 23:52:27 +02:00
Nut.andor
ba3b37a0a3 fix duplicate tilesets 2024-09-12 22:27:08 +02:00
Nut.andor
bf13c485bd map_brightport 16x7 2024-09-12 00:54:19 +02:00
Natalia N
c537e7554a Translated using Weblate (German)
Currently translated at 94.5% (17237 of 18227 strings)
2024-09-11 22:23:11 +02:00
Natalia N
7b030434b9 Translated using Weblate (German)
Currently translated at 94.4% (17223 of 18227 strings)
2024-09-09 07:33:44 +02:00
Filip
03c45bf7f4 Translated using Weblate (Polish)
Currently translated at 79.6% (14509 of 18227 strings)
2024-09-08 18:09:19 +00:00
Natalia N
daed8ccfa7 Translated using Weblate (German)
Currently translated at 94.4% (17220 of 18227 strings)
2024-09-08 18:09:17 +00:00
Nut.andor
32b19fbb33 Pull Request #76: Fix visual bugs 2024-09-07 15:42:32 +02:00
OMGeeky
b1c2a4ef8c remove unused stuff 2024-09-07 15:36:00 +02:00
OMGeeky
af3109b9d9 Fix visual Bugs & slowdowns 2024-09-07 15:06:04 +02:00
Natalia N
130c694c8d Translated using Weblate (German)
Currently translated at 94.1% (17163 of 18227 strings)
2024-09-07 14:09:16 +02:00
Nut.andor
c6801505c2 Pull Request #75: Visual Glitch Fix 2024-09-07 12:30:48 +02:00
Ian
bac004ae33 Visual Glitch Fix
-Fix the issue where the application is not able to handle multiple effects simultanously
2024-09-07 18:23:07 +08:00
Nut.andor
abb8998117 map_brightport 8x5 2024-09-07 00:41:11 +02:00
xvy
9ca1188baa Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-09-06 08:15:44 +02:00
Natalia N
61267a502a Translated using Weblate (German)
Currently translated at 93.7% (17088 of 18227 strings)
2024-09-06 08:15:42 +02:00
xvy
9dd287f16e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-09-05 16:09:29 +02:00
Natalia N
55989a4d55 Translated using Weblate (German)
Currently translated at 93.4% (17040 of 18227 strings)
2024-09-05 16:09:26 +02:00
xvy
0b0d433043 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-09-04 14:47:48 +02:00
xvy
a6480db012 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-09-03 19:09:23 +00:00
Natalia N
7c5b89766a Translated using Weblate (German)
Currently translated at 92.9% (16933 of 18227 strings)
2024-09-03 19:09:21 +00:00
xvy
1c8145116f Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-09-02 18:09:21 +02:00
xvy
fdbf58dfa3 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-09-01 11:09:03 +02:00
xvy
8730ebf67a Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-31 19:10:07 +02:00
Nut.andor
4c1e1d68b5 Endless actorcondition 998 that gets removed by sleep 2024-08-30 23:51:23 +02:00
Nut.andor
e5acb89f1b authors 2024-08-30 22:56:00 +02:00
xvy
b8c3119481 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-30 10:09:18 +00:00
xvy
15f3fd1206 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-29 05:09:16 +00:00
Nut.andor
950310906e new map_brightport.png 2024-08-28 20:56:14 +02:00
xvy
7853718f29 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-27 11:40:19 +02:00
Nut.andor
4f2733324f Merge branch 'pulls/1829009049/74' into AT_Source_Next_Release 2024-08-25 23:10:48 +02:00
Nut.andor
7379277b1d Pass time debug button 2024-08-25 23:05:59 +02:00
Nut.andor
6387b87ced Add tick-increase Debug-Button (for testing timers) 2024-08-25 23:04:31 +02:00
Nut.andor
f01c5ff237 Only add the loot once 2024-08-25 23:00:27 +02:00
Nut.andor
5843be57c0 Pull Request #74: Add tick-increase Debug-Button (for testing timers) 2024-08-25 14:04:07 +02:00
OMGeeky
4a62613375 Add tick-increase Debug-Button (for testing timers) 2024-08-25 14:00:39 +02:00
Nut.andor
bec17c65e4 Pull Request #73: Only add the loot once 2024-08-25 13:31:29 +02:00
OMGeeky
315e34185a Only add the loot once to the killedMonsterBags
without this, the loot might be added multiple times to the UI when showing what has been dropped, allowing the player to get more items than they should be allowed to
2024-08-25 13:23:25 +02:00
Daniel Stasiak
5510d88988 Translated using Weblate (Polish)
Currently translated at 79.6% (14509 of 18227 strings)
2024-08-25 08:11:13 +02:00
Mateusz Mendel
803e9a33e0 Translated using Weblate (Polish)
Currently translated at 79.6% (14509 of 18227 strings)
2024-08-24 19:36:28 +02:00
xvy
b346f32e77 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-24 09:09:13 +00:00
Nut.andor
585852ecb1 items_misc_2 2024-08-23 00:32:40 +02:00
xvy
6fcc65acd7 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-22 20:45:11 +02:00
Daniel Stasiak
19c67b23f1 Translated using Weblate (Polish)
Currently translated at 79.5% (14508 of 18227 strings)
2024-08-21 20:09:22 +02:00
Daniel Stasiak
bd59044951 Translated using Weblate (Polish)
Currently translated at 79.5% (14508 of 18227 strings)
2024-08-20 19:39:38 +02:00
Mateusz Mendel
6255808ed0 Translated using Weblate (Polish)
Currently translated at 79.5% (14508 of 18227 strings)
2024-08-20 19:39:38 +02:00
Frei Tags
77476364cc Translated using Weblate (German)
Currently translated at 92.5% (16865 of 18227 strings)
2024-08-20 19:39:36 +02:00
Bernhardus Z
25a6f050ef Translated using Weblate (German)
Currently translated at 92.5% (16865 of 18227 strings)
2024-08-20 19:39:36 +02:00
Bernhardus Z
990dd40414 Translated using Weblate (German)
Currently translated at 92.5% (16862 of 18227 strings)
2024-08-20 11:10:53 +02:00
Frei Tags
0d2574d31b Translated using Weblate (German)
Currently translated at 92.5% (16862 of 18227 strings)
2024-08-20 11:10:53 +02:00
Bernhardus Z
01dac76b85 Translated using Weblate (German)
Currently translated at 92.5% (16861 of 18227 strings)
2024-08-20 11:10:04 +02:00
xvy
d9602a5e41 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-20 09:29:43 +02:00
xvy
5a0a90ca60 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-19 12:38:40 +02:00
xvy
10284e801f Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-18 22:50:39 +02:00
Neko Alpha
a060552907 Translated using Weblate (Spanish)
Currently translated at 77.7% (14172 of 18227 strings)
2024-08-18 22:50:37 +02:00
xvy
01a2cadcd3 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-17 19:09:56 +02:00
Nut.andor
d87e584601 Teleport WX 2024-08-17 19:04:30 +02:00
xvy
fdf8a71acb Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-17 15:09:34 +00:00
Daniel Stasiak
9d46fa2583 Translated using Weblate (Polish)
Currently translated at 79.5% (14505 of 18227 strings)
2024-08-17 15:09:31 +00:00
Nut.andor
bfeab1abfa Merge branch 'pulls/1829009049/72' into AT_Source_Next_Release 2024-08-17 12:15:45 +02:00
Nut.andor
7c30577374 Reduce the Item use cost penalty like the move and attack cost penalt… 2024-08-17 12:13:19 +02:00
Nut.andor
e164e50f93 Pull Request #72: Reduce the Item use cost penalty like the move and attack cost penalt… 2024-08-15 20:20:38 +02:00
OMGeeky
f6d3cd59c0 Reduce the Item use cost penalty like the move and attack cost penalties with the heavy armor skill 2024-08-15 20:18:57 +02:00
xvy
11196ce1d4 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-15 16:09:21 +02:00
Vi Quang Thanh
db0cfd430c Translated using Weblate (Vietnamese)
Currently translated at 0.4% (88 of 18226 strings)
2024-08-14 03:26:32 +02:00
xvy
7353f44265 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-14 03:26:30 +02:00
Vi Quang Thanh
3b19458c3d Translated using Weblate (Vietnamese)
Currently translated at 100.0% (612 of 612 strings)
2024-08-13 01:09:21 +00:00
Vi Quang Thanh
f2d1f8144c Translated using Weblate (Vietnamese)
Currently translated at 0.3% (72 of 18226 strings)
2024-08-13 01:09:18 +00:00
xvy
f39de931c8 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-13 01:09:15 +00:00
Vi Quang Thanh
b1a25b485f Translated using Weblate (Vietnamese)
Currently translated at 44.1% (270 of 612 strings)
2024-08-11 21:44:31 +02:00
Vi Quang Thanh
98830faed4 Translated using Weblate (Vietnamese)
Currently translated at 0.2% (45 of 18226 strings)
2024-08-11 21:44:30 +02:00
xvy
198ab0c927 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-11 21:44:28 +02:00
xvy
6e8f45b32b Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-10 19:10:26 +02:00
xvy
5d534c9b0a Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-10 05:09:27 +00:00
Renamed1986
15ba35fbb2 Translated using Weblate (Russian)
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-10 05:09:24 +00:00
xvy
5258ffebbe Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-09 05:25:52 +02:00
xvy
2733ccdf8a Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-07 18:36:03 +02:00
Jason Cai
52ec176455 Translated using Weblate (English (Developer))
Currently translated at 2.1% (13 of 612 strings)
2024-08-07 08:09:16 +02:00
Jason Cai
a24aaeb7e8 Translated using Weblate (English (Developer))
Currently translated at 0.1% (8 of 18226 strings)
2024-08-07 08:09:15 +02:00
aircqsj
837dbf8393 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-07 08:09:13 +02:00
xvy
da97a0857b Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-07 08:09:13 +02:00
xvy
df30d586e2 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-06 06:26:56 +02:00
xvy
49d7b2fbff Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-08-05 14:09:38 +02:00
sprin
beec49c9e5 Translated using Weblate (Catalan)
Currently translated at 13.8% (2528 of 18227 strings)
2024-08-05 14:09:37 +02:00
xvy
3cdc6ae8c1 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-05 14:09:35 +02:00
sprin
0dcb04e46b Translated using Weblate (Catalan)
Currently translated at 13.8% (2522 of 18227 strings)
2024-08-04 13:25:40 +02:00
xvy
60fe0f38bf Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-04 13:25:38 +02:00
sprin
0cf8cdd4c1 Translated using Weblate (Spanish)
Currently translated at 77.6% (14159 of 18227 strings)
2024-08-04 13:25:36 +02:00
sprin
2d7c1ed049 Translated using Weblate (Catalan)
Currently translated at 100.0% (612 of 612 strings)
2024-08-03 19:09:56 +02:00
sprin
49f816be4e Translated using Weblate (Catalan)
Currently translated at 13.8% (2518 of 18227 strings)
2024-08-03 19:09:55 +02:00
xvy
433230dc19 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-03 19:09:53 +02:00
sprin
59399e7819 Translated using Weblate (Spanish)
Currently translated at 77.5% (14127 of 18227 strings)
2024-08-03 19:09:50 +02:00
xvy
8342f05fb4 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-02 23:18:57 +02:00
xvy
881f556c29 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-02 13:07:22 +02:00
xvy
09808990ee Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-08-01 16:09:23 +02:00
xvy
80d54af2a0 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-07-31 15:09:31 +02:00
xvy
282fc90f98 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-07-30 14:03:55 +02:00
xvy
f093b2d3ac Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-07-30 04:09:25 +00:00
xvy
87ba301091 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (18227 of 18227 strings)
2024-07-29 05:09:23 +02:00
xvy
58eb2066f5 Translated using Weblate (Chinese (Simplified))
Currently translated at 99.6% (18164 of 18227 strings)
2024-07-27 19:10:48 +02:00
xvy
e43cead809 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.9% (18037 of 18227 strings)
2024-07-27 06:09:28 +02:00
xvy
7f90039de7 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.7% (17995 of 18227 strings)
2024-07-25 19:09:24 +02:00
xvy
8bafff9855 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.3% (17927 of 18227 strings)
2024-07-24 18:08:13 +02:00
xvy
dc28c9787d Translated using Weblate (Chinese (Simplified))
Currently translated at 98.2% (17915 of 18227 strings)
2024-07-24 17:09:24 +02:00
Daniel Stasiak
4bc9e3e2bf Translated using Weblate (Polish)
Currently translated at 79.5% (14505 of 18227 strings)
2024-07-24 17:09:21 +02:00
xvy
dd71112dc6 Translated using Weblate (Chinese (Simplified))
Currently translated at 97.1% (17708 of 18227 strings)
2024-07-23 15:52:47 +02:00
xvy
29411ae0e8 Translated using Weblate (Chinese (Simplified))
Currently translated at 97.0% (17685 of 18227 strings)
2024-07-23 13:13:32 +02:00
xvy
ceb85adcd6 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.8% (17653 of 18227 strings)
2024-07-23 05:23:24 +02:00
xvy
960525bb40 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.8% (17653 of 18227 strings)
2024-07-22 19:37:46 +02:00
xvy
f9f46e38b4 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.8% (17650 of 18227 strings)
2024-07-22 18:23:14 +02:00
xvy
64220c320b Translated using Weblate (Chinese (Simplified))
Currently translated at 96.7% (17637 of 18227 strings)
2024-07-22 15:30:34 +02:00
xvy
28262aeedf Translated using Weblate (Chinese (Simplified))
Currently translated at 96.7% (17629 of 18227 strings)
2024-07-22 14:44:29 +02:00
Bernhardus Z
4b5af87739 Translated using Weblate (German)
Currently translated at 92.4% (16855 of 18227 strings)
2024-07-22 14:44:28 +02:00
xvy
0d901b2472 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.5% (17603 of 18227 strings)
2024-07-22 13:05:21 +02:00
xvy
a98c621931 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.5% (17598 of 18227 strings)
2024-07-22 12:44:55 +02:00
xvy
83360aebc7 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.3% (17559 of 18227 strings)
2024-07-22 06:08:55 +02:00
Daniel Stasiak
f47112c52e Translated using Weblate (Polish)
Currently translated at 79.5% (14502 of 18227 strings)
2024-07-22 03:26:32 +02:00
Anupam Malhotra
19bf9b0c3d Translated using Weblate (Hindi)
Currently translated at 0.1% (28 of 18226 strings)
2024-07-21 20:56:10 +02:00
xvy
a4f1cb7cfd Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-07-21 20:56:09 +02:00
xvy
aed7a92340 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.1% (17531 of 18227 strings)
2024-07-21 20:56:08 +02:00
Daniel Stasiak
3f6397a2a9 Translated using Weblate (Polish)
Currently translated at 79.5% (14493 of 18227 strings)
2024-07-21 20:56:07 +02:00
Kanoero
326a518630 Translated using Weblate (Spanish)
Currently translated at 77.5% (14126 of 18227 strings)
2024-07-21 20:56:05 +02:00
Nut.andor
84fa8e5547 debug buttons 2024-07-21 18:53:50 +02:00
xvy
1d5c1edad9 Translated using Weblate (Chinese (Simplified))
Currently translated at 95.7% (17447 of 18227 strings)
2024-07-20 19:12:36 +02:00
xvy
5b0e8d1d25 Translated using Weblate (Chinese (Simplified))
Currently translated at 95.4% (17390 of 18227 strings)
2024-07-20 07:20:36 +02:00
Nut.andor
c9b4da0823 better error message 2024-07-20 01:23:08 +02:00
Nut.andor
4c55c5c2a7 better error message 2024-07-20 00:37:42 +02:00
Nut.andor
ced33a4cda fixes that can't be done by ATCS 2024-07-19 23:48:39 +02:00
Nut.andor
50606e8424 Merge branch 'pulls/1829009049/69' into AT_Source_Next_Release 2024-07-19 23:47:24 +02:00
xvy
3a75b08962 Translated using Weblate (Chinese (Simplified))
Currently translated at 95.3% (17385 of 18227 strings)
2024-07-19 19:09:26 +02:00
Daniel Stasiak
5c0aa7acbb Translated using Weblate (Polish)
Currently translated at 79.5% (14493 of 18227 strings)
2024-07-19 19:09:22 +02:00
Nut.andor
845ea0926e debug buttons 2024-07-19 00:13:12 +02:00
xvy
b89cd7abc0 Translated using Weblate (Chinese (Simplified))
Currently translated at 94.8% (17292 of 18227 strings)
2024-07-18 15:09:28 +02:00
xvy
77659f6539 Translated using Weblate (Chinese (Simplified))
Currently translated at 94.7% (17266 of 18227 strings)
2024-07-17 14:09:23 +02:00
xvy
48343162f9 Translated using Weblate (Chinese (Simplified))
Currently translated at 94.1% (17165 of 18227 strings)
2024-07-16 13:09:38 +02:00
Renamed1986
d1be8b88d4 Translated using Weblate (Russian)
Currently translated at 100.0% (18227 of 18227 strings)
2024-07-16 13:09:35 +02:00
Daniel Stasiak
2aeea3aa13 Translated using Weblate (Polish)
Currently translated at 79.5% (14492 of 18227 strings)
2024-07-16 13:09:32 +02:00
Vũ Minh Long
f7ff8949c4 Translated using Weblate (Vietnamese)
Currently translated at 33.3% (204 of 612 strings)
2024-07-15 07:09:22 +02:00
Vũ Minh Long
565b69489a Translated using Weblate (Vietnamese)
Currently translated at 0.2% (44 of 18226 strings)
2024-07-15 07:09:21 +02:00
David Tamas Szabo
d5142d7f0a Translated using Weblate (Hungarian)
Currently translated at 22.9% (4191 of 18227 strings)
2024-07-15 07:09:20 +02:00
xvy
c83dbccdb7 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.9% (17133 of 18227 strings)
2024-07-15 07:09:18 +02:00
Nut.andor
d60c6b3aa8 remove duplicates 2024-07-14 22:46:34 +02:00
xvy
c8d30efc63 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.9% (17133 of 18227 strings)
2024-07-13 19:10:44 +02:00
Daniel Stasiak
274ae1d826 Translated using Weblate (Polish)
Currently translated at 79.5% (14492 of 18227 strings)
2024-07-13 19:10:42 +02:00
Remko van der Pluijm
085c66b7a4 Translated using Weblate (Dutch)
Currently translated at 6.6% (1214 of 18227 strings)
2024-07-13 19:10:41 +02:00
xvy
07ebbbd682 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-07-13 08:09:21 +02:00
xvy
8e4f5a6ae7 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.9% (17133 of 18227 strings)
2024-07-13 08:09:19 +02:00
xvy
cac8cf9d38 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-07-11 20:09:29 +02:00
Cain Rover
4861557cdb Translated using Weblate (Swedish)
Currently translated at 91.5% (560 of 612 strings)
2024-07-11 20:09:29 +02:00
xvy
1f71f60bf9 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.9% (17133 of 18227 strings)
2024-07-11 20:09:27 +02:00
Daniel Stasiak
9547e10def Translated using Weblate (Polish)
Currently translated at 79.5% (14492 of 18227 strings)
2024-07-11 20:09:24 +02:00
xvy
d51dfec557 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-07-10 15:09:27 +00:00
Cain Rover
89f46e67bf Translated using Weblate (Swedish)
Currently translated at 88.2% (540 of 612 strings)
2024-07-10 15:09:26 +00:00
xvy
d180e233c5 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.7% (17083 of 18227 strings)
2024-07-10 15:09:24 +00:00
Cain Rover
e0f7318ef3 Translated using Weblate (Swedish)
Currently translated at 82.8% (507 of 612 strings)
2024-07-09 15:38:22 +02:00
Cain Rover
29be76dcd5 Translated using Weblate (Swedish)
Currently translated at 82.8% (507 of 612 strings)
2024-07-09 15:02:34 +02:00
Cain Rover
32a9480fc0 Translated using Weblate (Swedish)
Currently translated at 3.8% (700 of 18227 strings)
2024-07-09 15:02:33 +02:00
xvy
e4c14dc6bb Translated using Weblate (Chinese (Simplified))
Currently translated at 93.7% (17083 of 18227 strings)
2024-07-09 15:02:31 +02:00
Kristoffer Grundström
4ef8e254c3 Translated using Weblate (Swedish)
Currently translated at 74.6% (457 of 612 strings)
2024-07-09 02:21:32 +02:00
Cain Rover
53d1cbc4a9 Translated using Weblate (Swedish)
Currently translated at 74.6% (457 of 612 strings)
2024-07-09 02:21:32 +02:00
Cain Rover
b2c345d052 Translated using Weblate (Swedish)
Currently translated at 3.8% (700 of 18227 strings)
2024-07-09 02:21:31 +02:00
xvy
383118f8ef Translated using Weblate (Chinese (Simplified))
Currently translated at 93.7% (17083 of 18227 strings)
2024-07-09 02:21:29 +02:00
xvy
8953854bb3 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.7% (17083 of 18227 strings)
2024-07-08 06:28:01 +02:00
Renamed1986
d378681461 Translated using Weblate (Russian)
Currently translated at 100.0% (18227 of 18227 strings)
2024-07-08 06:27:59 +02:00
Otávio Napoli
039bbe5308 Translated using Weblate (Portuguese (Brazil))
Currently translated at 84.9% (15476 of 18227 strings)
2024-07-08 06:27:55 +02:00
Nut.andor
d4a8ab316e added rope 2024-07-07 23:19:07 +02:00
Otávio Napoli
ffa6a0d7d9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 84.7% (15455 of 18227 strings)
2024-07-07 13:09:39 +02:00
xvy
8e9ceeb61a Translated using Weblate (Chinese (Simplified))
Currently translated at 93.7% (17083 of 18227 strings)
2024-07-06 15:56:18 +02:00
BlackWolf
dccba37195 Translated using Weblate (Hindi)
Currently translated at 0.1% (5 of 18226 strings)
2024-07-04 20:00:15 +02:00
Daniel Stasiak
7fc785c0a2 Translated using Weblate (Polish)
Currently translated at 79.5% (14492 of 18227 strings)
2024-07-03 17:09:13 +00:00
Daniel Stasiak
c5826dac0c Translated using Weblate (Polish)
Currently translated at 79.5% (14491 of 18227 strings)
2024-07-02 14:14:05 +02:00
xvy
a4986a87a3 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-07-01 03:59:39 +02:00
yumin
e26b7ae6dd Translated using Weblate (Chinese (Traditional))
Currently translated at 5.6% (1030 of 18227 strings)
2024-07-01 03:59:38 +02:00
Renamed1986
190ea5dfe2 Translated using Weblate (Russian)
Currently translated at 97.0% (17686 of 18227 strings)
2024-07-01 03:59:36 +02:00
Renamed1986
984892ea85 Translated using Weblate (Russian)
Currently translated at 96.7% (17627 of 18227 strings)
2024-06-30 06:09:52 +02:00
xvy
e52177fe5c Translated using Weblate (Chinese (Simplified))
Currently translated at 93.7% (17083 of 18227 strings)
2024-06-29 19:12:10 +02:00
xvy
7e24bfc9d1 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.7% (17083 of 18227 strings)
2024-06-29 07:24:16 +02:00
Daniel Stasiak
a52c01087e Translated using Weblate (Polish)
Currently translated at 79.5% (14491 of 18227 strings)
2024-06-28 22:01:16 +02:00
Renamed1986
a300a8f426 Translated using Weblate (Russian)
Currently translated at 95.8% (17477 of 18227 strings)
2024-06-28 18:48:23 +02:00
Mateusz Mendel
ed4ed55854 Translated using Weblate (Polish)
Currently translated at 79.4% (14490 of 18227 strings)
2024-06-28 18:48:21 +02:00
Daniel Stasiak
5889f57731 Translated using Weblate (Polish)
Currently translated at 79.4% (14490 of 18227 strings)
2024-06-28 18:48:21 +02:00
Daniel Stasiak
44e4de191e Translated using Weblate (Polish)
Currently translated at 79.4% (14489 of 18227 strings)
2024-06-28 14:33:04 +02:00
Mateusz Mendel
16f10facc3 Translated using Weblate (Polish)
Currently translated at 79.4% (14489 of 18227 strings)
2024-06-28 14:33:04 +02:00
Mateusz Mendel
efa8547c2a Translated using Weblate (Polish)
Currently translated at 79.4% (14488 of 18227 strings)
2024-06-28 14:32:26 +02:00
Daniel Stasiak
7037f0574b Translated using Weblate (Polish)
Currently translated at 79.4% (14488 of 18227 strings)
2024-06-28 14:32:25 +02:00
Daniel Stasiak
e59108291b Translated using Weblate (Polish)
Currently translated at 79.4% (14487 of 18227 strings)
2024-06-28 14:02:44 +02:00
Mateusz Mendel
55c671cc4b Translated using Weblate (Polish)
Currently translated at 79.4% (14487 of 18227 strings)
2024-06-28 14:02:44 +02:00
Daniel Stasiak
d8b6530e69 Translated using Weblate (Polish)
Currently translated at 79.4% (14486 of 18227 strings)
2024-06-28 14:01:54 +02:00
Mateusz Mendel
5d46a0419b Translated using Weblate (Polish)
Currently translated at 79.4% (14486 of 18227 strings)
2024-06-28 14:01:54 +02:00
Mateusz Mendel
d012f79822 Translated using Weblate (Polish)
Currently translated at 79.4% (14485 of 18227 strings)
2024-06-28 14:00:41 +02:00
Daniel Stasiak
818883a98a Translated using Weblate (Polish)
Currently translated at 79.4% (14485 of 18227 strings)
2024-06-28 14:00:40 +02:00
Mateusz Mendel
79669cb581 Translated using Weblate (Polish)
Currently translated at 79.4% (14484 of 18227 strings)
2024-06-28 14:00:16 +02:00
Daniel Stasiak
47f436e288 Translated using Weblate (Polish)
Currently translated at 79.4% (14484 of 18227 strings)
2024-06-28 14:00:15 +02:00
Daniel Stasiak
71ac706449 Translated using Weblate (Polish)
Currently translated at 79.4% (14482 of 18227 strings)
2024-06-28 13:58:38 +02:00
Mateusz Mendel
128c753057 Translated using Weblate (Polish)
Currently translated at 79.4% (14482 of 18227 strings)
2024-06-28 13:58:38 +02:00
Mateusz Mendel
b6a8074657 Translated using Weblate (Polish)
Currently translated at 79.4% (14481 of 18227 strings)
2024-06-28 13:57:45 +02:00
Daniel Stasiak
c2a347fb00 Translated using Weblate (Polish)
Currently translated at 79.4% (14481 of 18227 strings)
2024-06-28 13:57:44 +02:00
xvy
70709e0bf8 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-06-28 13:55:34 +02:00
xvy
16992d9d43 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.7% (17083 of 18227 strings)
2024-06-28 13:55:34 +02:00
Mateusz Mendel
aa819d7737 Translated using Weblate (Polish)
Currently translated at 79.4% (14480 of 18227 strings)
2024-06-28 13:55:33 +02:00
xvy
790749df12 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.7% (17083 of 18227 strings)
2024-06-28 00:37:21 +02:00
Palkia
a2cb909b52 Translated using Weblate (Spanish)
Currently translated at 100.0% (612 of 612 strings)
2024-06-27 16:09:31 +02:00
xvy
4058450016 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.6% (17066 of 18227 strings)
2024-06-27 16:09:30 +02:00
Daniel Stasiak
6233bad209 Translated using Weblate (Polish)
Currently translated at 79.4% (14479 of 18227 strings)
2024-06-27 16:09:27 +02:00
Mateusz Mendel
e52887b074 Translated using Weblate (Polish)
Currently translated at 79.4% (14479 of 18227 strings)
2024-06-27 16:09:26 +02:00
Palkia
f9f53d18fb Translated using Weblate (Spanish)
Currently translated at 77.3% (14101 of 18227 strings)
2024-06-27 16:09:23 +02:00
xvy
d4b30ecb15 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.6% (17066 of 18227 strings)
2024-06-26 12:49:41 +02:00
xvy
1c0bafba6e Translated using Weblate (Chinese (Simplified))
Currently translated at 93.5% (17060 of 18227 strings)
2024-06-26 11:43:34 +02:00
Mateusz Mendel
67fd45ea54 Translated using Weblate (Polish)
Currently translated at 79.4% (14479 of 18227 strings)
2024-06-26 01:09:25 +02:00
Daniel Stasiak
12cefe3d84 Translated using Weblate (Polish)
Currently translated at 79.4% (14479 of 18227 strings)
2024-06-26 01:09:25 +02:00
xvy
3d24e79b9a Translated using Weblate (Chinese (Simplified))
Currently translated at 93.5% (17060 of 18227 strings)
2024-06-25 11:14:17 +02:00
Daniel Stasiak
43bbd1d95c Translated using Weblate (Polish)
Currently translated at 79.4% (14477 of 18227 strings)
2024-06-25 11:14:14 +02:00
xvy
2065a29d04 Translated using Weblate (Chinese (Simplified))
Currently translated at 93.5% (17060 of 18227 strings)
2024-06-25 05:05:57 +02:00
Daniel Stasiak
c45fae6ab1 Translated using Weblate (Polish)
Currently translated at 79.4% (14477 of 18227 strings)
2024-06-25 05:05:55 +02:00
Daniel Stasiak
0d3ee38d0e Translated using Weblate (Polish)
Currently translated at 79.4% (14477 of 18227 strings)
2024-06-24 18:16:34 +02:00
Mateusz Mendel
7de1fe0f75 Translated using Weblate (Polish)
Currently translated at 79.4% (14476 of 18227 strings)
2024-06-24 15:13:58 +02:00
Daniel Stasiak
f499ee52a9 Translated using Weblate (Polish)
Currently translated at 79.4% (14476 of 18227 strings)
2024-06-24 15:13:57 +02:00
Mateusz Mendel
0b9dd43505 Translated using Weblate (Polish)
Currently translated at 79.4% (14475 of 18227 strings)
2024-06-24 15:11:50 +02:00
Daniel Stasiak
09a856944d Translated using Weblate (Polish)
Currently translated at 79.4% (14475 of 18227 strings)
2024-06-24 15:11:50 +02:00
Mateusz Mendel
ef6e997665 Translated using Weblate (Polish)
Currently translated at 79.3% (14472 of 18227 strings)
2024-06-24 14:37:12 +02:00
Daniel Stasiak
f62ab4ca00 Translated using Weblate (Polish)
Currently translated at 79.3% (14472 of 18227 strings)
2024-06-24 14:37:12 +02:00
Mateusz Mendel
bd084d6a44 Translated using Weblate (Polish)
Currently translated at 79.3% (14471 of 18227 strings)
2024-06-24 14:36:53 +02:00
Daniel Stasiak
0462d8c85d Translated using Weblate (Polish)
Currently translated at 79.3% (14471 of 18227 strings)
2024-06-24 14:36:53 +02:00
Mateusz Mendel
b5444303b9 Translated using Weblate (Polish)
Currently translated at 79.3% (14470 of 18227 strings)
2024-06-24 14:36:09 +02:00
Daniel Stasiak
5ea73d795d Translated using Weblate (Polish)
Currently translated at 79.3% (14470 of 18227 strings)
2024-06-24 14:36:09 +02:00
Daniel Stasiak
5c7d4db3a7 Translated using Weblate (Polish)
Currently translated at 79.3% (14469 of 18227 strings)
2024-06-24 14:34:57 +02:00
Mateusz Mendel
d0df9b88e8 Translated using Weblate (Polish)
Currently translated at 79.3% (14469 of 18227 strings)
2024-06-24 14:34:57 +02:00
Daniel Stasiak
9adb719b13 Translated using Weblate (Polish)
Currently translated at 79.3% (14468 of 18227 strings)
2024-06-24 14:33:47 +02:00
Mateusz Mendel
ba101cf562 Translated using Weblate (Polish)
Currently translated at 79.3% (14468 of 18227 strings)
2024-06-24 14:33:47 +02:00
Daniel Stasiak
d6fe5c9fb8 Translated using Weblate (Polish)
Currently translated at 79.3% (14467 of 18227 strings)
2024-06-24 14:30:39 +02:00
Mateusz Mendel
cbdc47335c Translated using Weblate (Polish)
Currently translated at 79.3% (14467 of 18227 strings)
2024-06-24 14:30:39 +02:00
Mateusz Mendel
1d5c3efd83 Translated using Weblate (Polish)
Currently translated at 79.3% (14466 of 18227 strings)
2024-06-24 14:28:31 +02:00
Daniel Stasiak
64f7b3ff26 Translated using Weblate (Polish)
Currently translated at 79.3% (14466 of 18227 strings)
2024-06-24 14:28:31 +02:00
Mateusz Mendel
da604679de Translated using Weblate (Polish)
Currently translated at 79.3% (14465 of 18227 strings)
2024-06-24 14:26:58 +02:00
Daniel Stasiak
8a057b66a0 Translated using Weblate (Polish)
Currently translated at 79.3% (14465 of 18227 strings)
2024-06-24 14:26:58 +02:00
Mateusz Mendel
d3ad383d83 Translated using Weblate (Polish)
Currently translated at 79.3% (14464 of 18227 strings)
2024-06-24 14:25:25 +02:00
Daniel Stasiak
ff003eff27 Translated using Weblate (Polish)
Currently translated at 79.3% (14464 of 18227 strings)
2024-06-24 14:25:25 +02:00
Mateusz Mendel
56ec8e02b5 Translated using Weblate (Polish)
Currently translated at 79.3% (14463 of 18227 strings)
2024-06-24 14:23:15 +02:00
Renamed1986
ca9aba5ec1 Translated using Weblate (Russian)
Currently translated at 94.5% (17227 of 18227 strings)
2024-06-24 04:38:53 +02:00
Raphi
d88832677f Translated using Weblate (German)
Currently translated at 92.4% (16851 of 18227 strings)
2024-06-22 19:12:27 +02:00
Nut.andor
570d9da321 Pull Request #69: remove duplicates 2024-06-22 15:19:50 +02:00
OMGeeky
99f4ab5e6b remove duplicates 2024-06-22 15:13:30 +02:00
Daniel Stasiak
1f1e4302ae Translated using Weblate (Polish)
Currently translated at 79.3% (14462 of 18227 strings)
2024-06-21 22:50:21 +02:00
Renamed1986
e8ea1e391c Translated using Weblate (Russian)
Currently translated at 93.7% (17091 of 18227 strings)
2024-06-21 12:48:56 +02:00
Filip
1b80638e78 Translated using Weblate (Polish)
Currently translated at 79.2% (14446 of 18227 strings)
2024-06-21 12:48:49 +02:00
Mateusz Mendel
b3a5564585 Translated using Weblate (Polish)
Currently translated at 79.2% (14446 of 18227 strings)
2024-06-20 02:13:30 +02:00
Filip
675ff6f979 Translated using Weblate (Polish)
Currently translated at 79.2% (14446 of 18227 strings)
2024-06-20 02:13:29 +02:00
Filip
995ee74fce Translated using Weblate (Polish)
Currently translated at 100.0% (612 of 612 strings)
2024-06-20 02:13:28 +02:00
Nut.andor
bf13ac460d Debug buttons 2024-06-19 23:33:35 +02:00
Nut.andor
c4eb2b2d3a Debug buttons 2024-06-19 23:24:32 +02:00
Daniel Stasiak
f1afbb6b1c Translated using Weblate (Polish)
Currently translated at 79.2% (14446 of 18227 strings)
2024-06-18 23:09:27 +02:00
Filip
3cf383a0d1 Translated using Weblate (Polish)
Currently translated at 79.2% (14446 of 18227 strings)
2024-06-18 23:09:26 +02:00
Mateusz Mendel
39f5100c50 Translated using Weblate (Polish)
Currently translated at 79.2% (14446 of 18227 strings)
2024-06-18 23:09:25 +02:00
Palkia
21ae554f42 Translated using Weblate (Spanish)
Currently translated at 77.2% (14074 of 18227 strings)
2024-06-18 23:09:22 +02:00
Filip
f77bb731bf Translated using Weblate (Polish)
Currently translated at 100.0% (612 of 612 strings)
2024-06-18 23:09:20 +02:00
Mateusz Mendel
e879aeea24 Translated using Weblate (Polish)
Currently translated at 79.2% (14445 of 18227 strings)
2024-06-17 22:50:34 +02:00
Daniel Stasiak
aa41356aa7 Translated using Weblate (Polish)
Currently translated at 79.2% (14445 of 18227 strings)
2024-06-17 22:50:34 +02:00
Daniel Stasiak
05e51309ba Translated using Weblate (Polish)
Currently translated at 79.2% (14444 of 18227 strings)
2024-06-17 22:49:55 +02:00
Mateusz Mendel
82212cbb13 Translated using Weblate (Polish)
Currently translated at 79.2% (14444 of 18227 strings)
2024-06-17 22:49:55 +02:00
Mateusz Mendel
42d68399d8 Translated using Weblate (Polish)
Currently translated at 79.2% (14442 of 18227 strings)
2024-06-17 22:43:03 +02:00
Daniel Stasiak
19c5957601 Translated using Weblate (Polish)
Currently translated at 79.2% (14442 of 18227 strings)
2024-06-17 22:43:03 +02:00
Mateusz Mendel
8a16efa9f6 Translated using Weblate (Polish)
Currently translated at 79.2% (14441 of 18227 strings)
2024-06-17 22:39:26 +02:00
Daniel Stasiak
ba6d541682 Translated using Weblate (Polish)
Currently translated at 79.2% (14441 of 18227 strings)
2024-06-17 22:39:26 +02:00
Mateusz Mendel
ccc3bc0b0d Translated using Weblate (Polish)
Currently translated at 79.2% (14440 of 18227 strings)
2024-06-17 22:37:28 +02:00
Daniel Stasiak
9778aabaed Translated using Weblate (Polish)
Currently translated at 79.2% (14440 of 18227 strings)
2024-06-17 22:37:28 +02:00
Mateusz Mendel
d7db07529e Translated using Weblate (Polish)
Currently translated at 79.2% (14437 of 18227 strings)
2024-06-17 22:31:21 +02:00
Daniel Stasiak
f7ff05e6e9 Translated using Weblate (Polish)
Currently translated at 79.2% (14437 of 18227 strings)
2024-06-17 22:31:21 +02:00
Mateusz Mendel
b1497a3f79 Translated using Weblate (Polish)
Currently translated at 79.2% (14436 of 18227 strings)
2024-06-17 22:28:02 +02:00
Daniel Stasiak
8640cf5f28 Translated using Weblate (Polish)
Currently translated at 79.2% (14436 of 18227 strings)
2024-06-17 22:28:02 +02:00
Mateusz Mendel
86be492cee Translated using Weblate (Polish)
Currently translated at 79.1% (14435 of 18227 strings)
2024-06-17 22:24:06 +02:00
Daniel Stasiak
e105dc68dd Translated using Weblate (Polish)
Currently translated at 79.1% (14435 of 18227 strings)
2024-06-17 22:24:06 +02:00
Mateusz Mendel
e17197d518 Translated using Weblate (Polish)
Currently translated at 79.1% (14434 of 18227 strings)
2024-06-17 22:21:32 +02:00
Nut.andor
0b2dbe53e3 Next version numbers 2024-06-17 20:51:52 +02:00
Nut.andor
a64c45586f whatsnew 2024-06-17 20:28:28 +02:00
daudiffa
106b43b7fd Translated using Weblate (Indonesian)
Currently translated at 89.6% (16345 of 18227 strings)
2024-06-17 11:04:15 +02:00
Nut.andor
e4aa742882 Merge branch 'v0.8.11' 2024-06-16 20:10:22 +02:00
Nut.andor
a4f67e6feb whatsnew + translation status 2024-06-16 20:07:14 +02:00
Nut.andor
794303eacd potc 2024-06-16 19:43:41 +02:00
Nut.andor
2b53d200f0 laeroth content 2024-06-16 19:37:13 +02:00
Nut.andor
d288c23e53 Merge remote-tracking branch 'hosted.weblate/master' into v0.8.11 2024-06-16 19:15:19 +02:00
Nut.andor
1e0ee6fc7f release name 2024-06-16 19:14:57 +02:00
Daniel Stasiak
86af20dcc4 Translated using Weblate (Polish)
Currently translated at 84.4% (14413 of 17061 strings)
2024-06-16 17:12:17 +00:00
Daniel Stasiak
d0eb30ad02 Translated using Weblate (Polish)
Currently translated at 84.4% (14413 of 17061 strings)
2024-06-16 11:29:45 +02:00
Mateusz Mendel
d39fb1d6e8 Translated using Weblate (Polish)
Currently translated at 84.4% (14413 of 17061 strings)
2024-06-16 11:29:45 +02:00
Mateusz Mendel
c41a40894e Translated using Weblate (Polish)
Currently translated at 84.4% (14412 of 17061 strings)
2024-06-16 11:29:04 +02:00
Daniel Stasiak
e5a98bc252 Translated using Weblate (Polish)
Currently translated at 84.4% (14412 of 17061 strings)
2024-06-16 11:29:04 +02:00
Daniel Stasiak
45f770dcc1 Translated using Weblate (Polish)
Currently translated at 84.4% (14411 of 17061 strings)
2024-06-16 10:48:50 +02:00
Daniel Stasiak
5e79b15320 Translated using Weblate (Polish)
Currently translated at 84.4% (14411 of 17061 strings)
2024-06-16 10:48:49 +02:00
Mateusz Mendel
34ab4601e4 Translated using Weblate (Polish)
Currently translated at 84.4% (14411 of 17061 strings)
2024-06-16 10:48:49 +02:00
Mateusz Mendel
39303c0381 Translated using Weblate (Polish)
Currently translated at 84.4% (14409 of 17061 strings)
2024-06-16 10:37:47 +02:00
Daniel Stasiak
e4a2c925ef Translated using Weblate (Polish)
Currently translated at 84.4% (14409 of 17061 strings)
2024-06-16 10:37:47 +02:00
Mateusz Mendel
5e6e233a84 Translated using Weblate (Polish)
Currently translated at 84.4% (14408 of 17061 strings)
2024-06-16 10:36:29 +02:00
Daniel Stasiak
4a118451dd Translated using Weblate (Polish)
Currently translated at 84.4% (14408 of 17061 strings)
2024-06-16 10:36:28 +02:00
Mateusz Mendel
53de86e4f9 Translated using Weblate (Polish)
Currently translated at 84.4% (14407 of 17061 strings)
2024-06-16 10:35:44 +02:00
Daniel Stasiak
4c18ff2615 Translated using Weblate (Polish)
Currently translated at 84.4% (14407 of 17061 strings)
2024-06-16 10:35:44 +02:00
Daniel Stasiak
db9821956c Translated using Weblate (Polish)
Currently translated at 84.4% (14406 of 17061 strings)
2024-06-16 10:35:07 +02:00
Mateusz Mendel
90da983317 Translated using Weblate (Polish)
Currently translated at 84.4% (14406 of 17061 strings)
2024-06-16 10:35:06 +02:00
Mateusz Mendel
342441aa36 Translated using Weblate (Polish)
Currently translated at 84.4% (14405 of 17061 strings)
2024-06-16 10:32:19 +02:00
Daniel Stasiak
9250db38be Translated using Weblate (Polish)
Currently translated at 84.4% (14405 of 17061 strings)
2024-06-16 10:32:19 +02:00
Mateusz Mendel
8782190bdf Translated using Weblate (Polish)
Currently translated at 84.4% (14404 of 17061 strings)
2024-06-16 10:30:02 +02:00
Daniel Stasiak
7d58901811 Translated using Weblate (Polish)
Currently translated at 84.4% (14404 of 17061 strings)
2024-06-16 10:30:01 +02:00
Daniel Stasiak
9e885c6d7a Translated using Weblate (Polish)
Currently translated at 84.4% (14403 of 17061 strings)
2024-06-16 10:27:24 +02:00
Mateusz Mendel
ef1fc76f3c Translated using Weblate (Polish)
Currently translated at 84.4% (14403 of 17061 strings)
2024-06-16 10:27:23 +02:00
Daniel Stasiak
3e8fe3426d Translated using Weblate (Polish)
Currently translated at 84.4% (14402 of 17061 strings)
2024-06-16 10:26:23 +02:00
Mateusz Mendel
cb445ec643 Translated using Weblate (Polish)
Currently translated at 84.4% (14402 of 17061 strings)
2024-06-16 10:26:23 +02:00
Mateusz Mendel
6609a7b84a Translated using Weblate (Polish)
Currently translated at 84.4% (14400 of 17061 strings)
2024-06-16 10:21:54 +02:00
Daniel Stasiak
d6732bbe2e Translated using Weblate (Polish)
Currently translated at 84.4% (14400 of 17061 strings)
2024-06-16 10:21:54 +02:00
Palkia
2a188aa05d Translated using Weblate (Spanish)
Currently translated at 81.9% (13975 of 17061 strings)
2024-06-16 10:21:53 +02:00
Filip
bebe59537c Translated using Weblate (Polish)
Currently translated at 84.2% (14378 of 17061 strings)
2024-06-15 23:29:09 +02:00
Mateusz Mendel
cb7628c859 Translated using Weblate (Polish)
Currently translated at 84.2% (14378 of 17061 strings)
2024-06-15 23:29:09 +02:00
Mateusz Mendel
6cc167d9d4 Translated using Weblate (Polish)
Currently translated at 84.2% (14370 of 17061 strings)
2024-06-15 22:27:14 +02:00
Filip
62f5eb00ba Translated using Weblate (Polish)
Currently translated at 84.2% (14370 of 17061 strings)
2024-06-15 22:27:13 +02:00
Filip
762fbe5191 Translated using Weblate (Polish)
Currently translated at 84.2% (14370 of 17061 strings)
2024-06-15 22:26:17 +02:00
Filip
afe758fddb Translated using Weblate (Polish)
Currently translated at 84.2% (14369 of 17061 strings)
2024-06-15 22:25:01 +02:00
Filip
c05d9082f6 Translated using Weblate (Polish)
Currently translated at 84.2% (14367 of 17061 strings)
2024-06-15 22:24:40 +02:00
Mateusz Mendel
1f12c08ca3 Translated using Weblate (Polish)
Currently translated at 84.2% (14367 of 17061 strings)
2024-06-15 22:24:40 +02:00
Filip
dc6b17b77b Translated using Weblate (Polish)
Currently translated at 84.1% (14365 of 17061 strings)
2024-06-15 22:23:41 +02:00
Mateusz Mendel
38d8f205fc Translated using Weblate (Polish)
Currently translated at 84.1% (14365 of 17061 strings)
2024-06-15 22:23:41 +02:00
Filip
f6660ec7b0 Translated using Weblate (Polish)
Currently translated at 84.1% (14361 of 17061 strings)
2024-06-15 22:21:08 +02:00
Mateusz Mendel
851e9e1b40 Translated using Weblate (Polish)
Currently translated at 84.1% (14361 of 17061 strings)
2024-06-15 22:21:08 +02:00
Mateusz Mendel
b890c9b8f8 Translated using Weblate (Polish)
Currently translated at 84.1% (14359 of 17061 strings)
2024-06-15 22:19:11 +02:00
Filip
4d3606fe49 Translated using Weblate (Polish)
Currently translated at 84.1% (14359 of 17061 strings)
2024-06-15 22:19:11 +02:00
Filip
b51772e207 Translated using Weblate (Polish)
Currently translated at 84.1% (14354 of 17061 strings)
2024-06-15 22:14:26 +02:00
Mateusz Mendel
3ccf5eb3e1 Translated using Weblate (Polish)
Currently translated at 84.1% (14354 of 17061 strings)
2024-06-15 22:14:26 +02:00
Mateusz Mendel
5a6eb9b0fb Translated using Weblate (Polish)
Currently translated at 84.1% (14349 of 17061 strings)
2024-06-15 22:09:42 +02:00
Filip
1c3b3e5841 Translated using Weblate (Polish)
Currently translated at 84.1% (14349 of 17061 strings)
2024-06-15 22:09:42 +02:00
Filip
fe5de9c6d7 Translated using Weblate (Polish)
Currently translated at 84.0% (14346 of 17061 strings)
2024-06-15 22:05:04 +02:00
Mateusz Mendel
866ee65964 Translated using Weblate (Polish)
Currently translated at 84.0% (14346 of 17061 strings)
2024-06-15 22:05:04 +02:00
Filip
1b32b1f9b5 Translated using Weblate (Polish)
Currently translated at 84.0% (14344 of 17061 strings)
2024-06-15 22:03:35 +02:00
Mateusz Mendel
5708f1111a Translated using Weblate (Polish)
Currently translated at 84.0% (14344 of 17061 strings)
2024-06-15 22:03:35 +02:00
Filip
ae0bbb4b0b Translated using Weblate (Polish)
Currently translated at 84.0% (14333 of 17061 strings)
2024-06-15 21:45:54 +02:00
Filip
ada8ed6583 Translated using Weblate (Polish)
Currently translated at 83.9% (14327 of 17061 strings)
2024-06-15 19:13:04 +02:00
Palkia
a67edc6f2b Translated using Weblate (Spanish)
Currently translated at 81.5% (13917 of 17061 strings)
2024-06-15 19:13:03 +02:00
Dante Avila
dbf3eda49b Translated using Weblate (Spanish)
Currently translated at 81.2% (13867 of 17061 strings)
2024-06-15 13:11:19 +02:00
Palkia
abee648344 Translated using Weblate (Spanish)
Currently translated at 81.2% (13867 of 17061 strings)
2024-06-15 13:11:19 +02:00
Vũ Minh Long
4f77bbb69e Translated using Weblate (Vietnamese)
Currently translated at 29.7% (182 of 612 strings)
2024-06-15 10:09:27 +02:00
Vũ Minh Long
9383efdb9d Translated using Weblate (Vietnamese)
Currently translated at 0.2% (43 of 17060 strings)
2024-06-15 10:09:26 +02:00
Filip
32ab09aa36 Translated using Weblate (Polish)
Currently translated at 83.9% (14326 of 17061 strings)
2024-06-15 10:09:24 +02:00
Palkia
b81d381fc4 Translated using Weblate (Spanish)
Currently translated at 79.8% (13623 of 17061 strings)
2024-06-15 10:09:22 +02:00
Filip
4dec9dc7db Translated using Weblate (Polish)
Currently translated at 83.7% (14286 of 17061 strings)
2024-06-14 01:52:09 +02:00
Silence
a08bf5ed49 Translated using Weblate (French)
Currently translated at 94.9% (16201 of 17061 strings)
2024-06-14 01:52:06 +02:00
Mateusz Mendel
321085d3e9 Translated using Weblate (Polish)
Currently translated at 83.5% (14247 of 17061 strings)
2024-06-11 23:06:15 +02:00
Otávio Napoli
98fbdce95e Translated using Weblate (Portuguese (Brazil))
Currently translated at 90.5% (15446 of 17061 strings)
2024-06-09 22:09:27 +02:00
Ranforingus
5bd15e489b Translated using Weblate (Dutch)
Currently translated at 98.2% (601 of 612 strings)
2024-06-08 19:12:11 +02:00
Remko van der Pluijm
5531241ca4 Translated using Weblate (Dutch)
Currently translated at 98.2% (601 of 612 strings)
2024-06-08 19:12:11 +02:00
xvy
3bf9eca3a9 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (17061 of 17061 strings)
2024-06-08 19:12:10 +02:00
Ranforingus
90bdb77beb Translated using Weblate (Dutch)
Currently translated at 6.9% (1190 of 17061 strings)
2024-06-08 19:12:09 +02:00
Remko van der Pluijm
73ff117ddd Translated using Weblate (Dutch)
Currently translated at 6.9% (1190 of 17061 strings)
2024-06-08 19:12:08 +02:00
hugoalh
0c36d1b045 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (612 of 612 strings)
2024-06-07 09:17:50 +02:00
Burak Hüseyin Ekseli
2408171c9d Translated using Weblate (Turkish)
Currently translated at 32.7% (5584 of 17061 strings)
2024-06-06 03:14:19 +02:00
Mateusz Mendel
35ba477cd4 Translated using Weblate (Polish)
Currently translated at 83.5% (14246 of 17061 strings)
2024-06-04 06:06:33 +02:00
Daniel Stasiak
219acf7618 Translated using Weblate (Polish)
Currently translated at 83.5% (14246 of 17061 strings)
2024-06-02 23:43:21 +02:00
Daniel Stasiak
b619137ae3 Translated using Weblate (Polish)
Currently translated at 83.5% (14246 of 17061 strings)
2024-06-01 14:38:08 +02:00
Daniel Stasiak
1516381ec6 Translated using Weblate (Polish)
Currently translated at 83.5% (14246 of 17061 strings)
2024-06-01 13:24:07 +02:00
Nut.andor
40c816b4e9 debug buttons 2024-05-30 19:38:04 +02:00
Daniel Stasiak
1a0c36e179 Translated using Weblate (Polish)
Currently translated at 83.5% (14246 of 17061 strings)
2024-05-29 13:03:05 +02:00
Daniel Stasiak
399cd68643 Translated using Weblate (Polish)
Currently translated at 83.5% (14246 of 17061 strings)
2024-05-28 14:09:25 +02:00
Otávio Napoli
aa5872b022 Translated using Weblate (Portuguese (Brazil))
Currently translated at 90.4% (15431 of 17061 strings)
2024-05-26 10:18:56 +02:00
Nut.andor
c38357ff7f Merge remote-tracking branch 'hosted.weblate/master' into v0.8.11 2024-05-26 00:15:22 +02:00
xvy
feac4292af Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (17061 of 17061 strings)
2024-05-25 19:10:31 +02:00
xvy
11a9d15df0 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (17061 of 17061 strings)
2024-05-24 08:09:23 +02:00
Otávio Napoli
879a57e06d Translated using Weblate (Portuguese (Brazil))
Currently translated at 90.3% (15417 of 17061 strings)
2024-05-23 05:31:03 +02:00
xvy
2b3759151d Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-05-22 17:24:26 +02:00
xvy
33487fe4c0 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (17061 of 17061 strings)
2024-05-22 17:24:25 +02:00
Otávio Napoli
7004d31aa9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 90.3% (15416 of 17061 strings)
2024-05-22 17:24:22 +02:00
Otávio Napoli
b3cbe50138 Translated using Weblate (Portuguese (Brazil))
Currently translated at 90.3% (15414 of 17061 strings)
2024-05-22 09:09:00 +02:00
xvy
0fd7ef32ad Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-05-17 06:01:57 +02:00
xvy
aff84a8054 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (17061 of 17061 strings)
2024-05-17 06:01:55 +02:00
Nut.andor
c3c74e9e56 debug 2024-05-16 01:35:59 +02:00
xvy
0113a57311 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-05-15 22:46:02 +02:00
xvy
e03cd77f81 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (17061 of 17061 strings)
2024-05-15 22:46:02 +02:00
Derik Douglas Jesus da Silva
82be86bffb Translated using Weblate (Portuguese (Brazil))
Currently translated at 90.1% (15388 of 17061 strings)
2024-05-14 16:01:59 +02:00
Daniel Stasiak
f9cab276fb Translated using Weblate (Polish)
Currently translated at 83.5% (14246 of 17061 strings)
2024-05-14 16:01:57 +02:00
steve ross
5979cb4773 Translated using Weblate (Italian)
Currently translated at 97.0% (594 of 612 strings)
2024-05-14 16:01:55 +02:00
xvy
0df8568f37 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-05-13 12:00:32 +02:00
xvy
88439ed08b Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (17061 of 17061 strings)
2024-05-13 12:00:30 +02:00
xvy
5b109cd5b9 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (17061 of 17061 strings)
2024-05-11 07:00:44 +02:00
xvy
5ae9d9e009 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-05-09 22:59:20 +02:00
xvy
df093ba457 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (17061 of 17061 strings)
2024-05-09 22:59:15 +02:00
xvy
57c598227e Translated using Weblate (Chinese (Simplified))
Currently translated at 99.8% (17043 of 17061 strings)
2024-05-09 12:36:07 +02:00
Daniel Stasiak
e70580fcb1 Translated using Weblate (Polish)
Currently translated at 83.4% (14245 of 17061 strings)
2024-05-07 20:07:47 +02:00
xvy
8a8ad9b82b Translated using Weblate (Chinese (Simplified))
Currently translated at 99.1% (16908 of 17061 strings)
2024-05-05 22:51:12 +02:00
Nut.andor
2c395ca5e1 debug 2024-05-05 13:46:21 +02:00
xvy
51cd079680 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.7% (16854 of 17061 strings)
2024-05-05 09:59:39 +02:00
Miroslav Iliev
4c97b65acf Translated using Weblate (Bulgarian)
Currently translated at 73.2% (448 of 612 strings)
2024-05-03 22:10:40 +02:00
Luca Benassi
13134ae67d Translated using Weblate (Italian)
Currently translated at 74.0% (12638 of 17061 strings)
2024-05-03 22:10:40 +02:00
xvy
3a446af265 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.7% (16850 of 17061 strings)
2024-05-02 17:07:56 +02:00
Renamed1986
ae1f9b6015 Translated using Weblate (Russian)
Currently translated at 100.0% (17061 of 17061 strings)
2024-05-02 17:07:53 +02:00
tabby
313514ebe5 Translated using Weblate (Korean)
Currently translated at 8.2% (1409 of 17061 strings)
2024-05-02 17:07:50 +02:00
Renamed1986
b0caaeda1e Translated using Weblate (Russian)
Currently translated at 99.3% (16956 of 17061 strings)
2024-05-01 10:30:28 +02:00
Luca Benassi
c3924e7193 Translated using Weblate (Italian)
Currently translated at 74.0% (12626 of 17061 strings)
2024-04-30 14:07:30 +02:00
Raphi
5f42305af7 Translated using Weblate (German)
Currently translated at 98.7% (16851 of 17061 strings)
2024-04-30 14:07:27 +02:00
Nut.andor
9513c8a790 next version 2024-04-30 00:06:42 +02:00
Nut.andor
9b59b018f1 whats new 2024-04-28 12:13:05 +02:00
Nut.andor
fe7eb87f6d translation states 2024-04-28 03:14:09 +02:00
Nut.andor
e0093c31af Merge branch 'v0.8.10' 2024-04-28 03:07:59 +02:00
Nut.andor
00beaf68e8 missing gradle lines 2024-04-28 02:59:58 +02:00
Nut.andor
2594c9d096 potc 2024-04-28 01:09:12 +02:00
Nut.andor
23a122c093 preparation for release 2024-04-28 01:08:48 +02:00
Nut.andor
810a1e810c add new content 2024-04-28 00:44:06 +02:00
Nut.andor
a382008e9b Merge remote-tracking branch 'hosted.weblate/master' into v0.8.10 2024-04-28 00:02:00 +02:00
Nut.andor
bdd383c430 preparation for release 2024-04-27 20:14:26 +02:00
Daniel Stasiak
2672fa5e89 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-04-24 18:07:27 +02:00
Artem
22f46c593e Translated using Weblate (Ukrainian)
Currently translated at 8.8% (1488 of 16850 strings)
2024-04-20 19:16:33 +02:00
Nut.andor
698f108262 preparation for beta 2024-04-17 23:54:19 +02:00
Nut.andor
37f71811ba weblate into v0.8.10 2024-04-15 22:31:09 +02:00
Nut.andor
1b60247c23 weblate 2024-04-15 22:29:19 +02:00
Letícia Gontijo
193a57de05 Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.1% (15357 of 16850 strings)
2024-04-15 22:04:52 +02:00
Nut.andor
e8dfb0e658 gradle update fix 2024-04-13 22:56:18 +02:00
Nut.andor
0a2ceea8fa Merge branch 'pulls/1829009049/67' into v0.8.10
# Conflicts:
#	AndorsTrail/app/src/main/AndroidManifest.xml
2024-04-13 20:14:31 +02:00
Nut.andor
6f16729c53 Gradle upgrade to 8.3.1 2024-04-13 20:07:00 +02:00
Nut.andor
26f0e174f6 Revert "gradle: Upgrade AGP dependency from 7.4.0 to 8.2.2"
This reverts commit 5dfe12b527.
2024-04-13 20:06:12 +02:00
Nut.andor
11a1720900 Pull Request #67: Gradle upgrade to 8.3.1 2024-04-13 19:43:45 +02:00
OMGeeky
9721cca1e4 Gradle upgrade 2024-04-13 19:38:11 +02:00
Derik Douglas Jesus da Silva
6f20d1a164 Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.0% (15350 of 16850 strings)
2024-04-13 19:14:48 +02:00
Nut.andor
5dfe12b527 gradle: Upgrade AGP dependency from 7.4.0 to 8.2.2 2024-04-13 15:39:45 +02:00
Derik Douglas Jesus da Silva
bef533556a Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.7% (15129 of 16850 strings)
2024-04-11 21:02:08 +02:00
Derik Douglas Jesus da Silva
18618d527f Translated using Weblate (Portuguese (Brazil))
Currently translated at 88.3% (14890 of 16850 strings)
2024-04-08 19:02:09 +02:00
Daniel Stasiak
676b661e9e Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-04-03 00:08:26 +02:00
Nut.andor
3748668c11 new teleport 6-9 2024-03-30 00:35:53 +01:00
Nut.andor
caf699874a new teleport 6-9 2024-03-30 00:19:08 +01:00
Derik Douglas Jesus da Silva
67d214e8e7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.8% (14796 of 16850 strings)
2024-03-29 10:54:05 +01:00
Daniel Stasiak
2a63cb8e70 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-03-28 17:02:03 +01:00
Daniel Stasiak
2d5ff980df Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-03-26 19:01:59 +01:00
Nut.andor
5c8effb45b newb tree shadows 2024-03-24 23:31:47 +01:00
Raphi
113af685dc Translated using Weblate (German)
Currently translated at 100.0% (16850 of 16850 strings)
2024-03-24 23:02:02 +01:00
Nut.andor
6008e2d55f newb tree shadows 2024-03-24 20:30:14 +01:00
Nut.andor
c451da4300 fix newb boss sizes 2024-03-24 01:30:53 +01:00
Nut Andor
2a8f2a0f26 Translated using Weblate (German)
Currently translated at 99.2% (16729 of 16850 strings)
2024-03-23 22:20:00 +01:00
Frei Tags
46e396b74b Translated using Weblate (German)
Currently translated at 99.2% (16729 of 16850 strings)
2024-03-23 22:20:00 +01:00
Raphi
93f2e6d563 Translated using Weblate (German)
Currently translated at 99.2% (16729 of 16850 strings)
2024-03-23 22:19:59 +01:00
Daniel Stasiak
f38920e719 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-03-23 19:16:25 +01:00
Raphi
b8c07be5bd Translated using Weblate (German)
Currently translated at 98.4% (16582 of 16850 strings)
2024-03-23 19:16:23 +01:00
Nut Andor
e0aa9f76a6 Translated using Weblate (German)
Currently translated at 98.4% (16582 of 16850 strings)
2024-03-23 19:16:23 +01:00
Nut.andor
bca41adbf4 Richard added more dark brown as a border to the bear 2024-03-23 12:21:14 +01:00
Raphi
86eb8775b2 Translated using Weblate (German)
Currently translated at 98.3% (16579 of 16850 strings)
2024-03-22 06:35:19 +01:00
Frei Tags
7b759fb71d Translated using Weblate (German)
Currently translated at 96.0% (16186 of 16850 strings)
2024-03-21 11:59:48 +01:00
Raphi
241b2d244d Translated using Weblate (German)
Currently translated at 96.0% (16186 of 16850 strings)
2024-03-21 11:59:48 +01:00
Frei Tags
252b42b1ee Translated using Weblate (German)
Currently translated at 95.2% (16046 of 16850 strings)
2024-03-21 07:30:41 +01:00
Frei Tags
792b9896b3 Translated using Weblate (German)
Currently translated at 95.0% (16012 of 16850 strings)
2024-03-20 16:58:21 +01:00
Raphi
13021da2d8 Translated using Weblate (German)
Currently translated at 95.0% (16012 of 16850 strings)
2024-03-20 16:58:21 +01:00
Frei Tags
ee0ff7de44 Translated using Weblate (German)
Currently translated at 93.8% (15811 of 16850 strings)
2024-03-20 11:50:58 +01:00
Raphi
e08ce9950d Translated using Weblate (German)
Currently translated at 93.8% (15811 of 16850 strings)
2024-03-20 11:50:57 +01:00
Frei Tags
8c65f8cbf1 Translated using Weblate (German)
Currently translated at 93.5% (15771 of 16850 strings)
2024-03-19 09:45:38 +01:00
Nut.andor
30f4ea1d44 Merge branch 'pulls/1829009049/65' into v0.8.10 2024-03-17 12:59:28 +01:00
Nut.andor
5561a8f7a1 Let Signs & Key fields not show an empty dialog if they have no message text 2024-03-17 12:57:09 +01:00
Nut.andor
0d26a532e3 Pull Request #65: Let Signs & Key fields not show an empty dialog if they have no message text 2024-03-16 23:57:12 +01:00
OMGeeky
6bc57ba54e Handle Signs and Keys like Scripts where no dialog will be opened when no message is there 2024-03-16 23:43:52 +01:00
Hugo Pérez
5b5fc4f782 Translated using Weblate (Galician)
Currently translated at 18.1% (111 of 612 strings)
2024-03-15 21:51:48 +01:00
gallegonovato
d23be31719 Translated using Weblate (Spanish)
Currently translated at 80.4% (13560 of 16850 strings)
2024-03-15 13:02:02 +01:00
Frei Tags
f4b81760fb Translated using Weblate (German)
Currently translated at 93.4% (15744 of 16850 strings)
2024-03-15 13:01:59 +01:00
Frei Tags
211c89d6ef Translated using Weblate (German)
Currently translated at 93.1% (15689 of 16850 strings)
2024-03-10 08:51:02 +01:00
Christoph Eder
d8a69fd700 Translated using Weblate (German (Austria))
Currently translated at 0.1% (1 of 16849 strings)
2024-03-08 22:01:57 +01:00
Frei Tags
1165cf3f98 Translated using Weblate (German)
Currently translated at 92.3% (15569 of 16850 strings)
2024-03-07 09:14:44 +01:00
Daniel Stasiak
40b04d8bb2 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-03-05 20:01:58 +01:00
Jesus Barba
ef43997c0d Translated using Weblate (Spanish)
Currently translated at 80.4% (13560 of 16850 strings)
2024-03-05 20:01:56 +01:00
Ranforingus
75bddf5ab3 Translated using Weblate (Dutch)
Currently translated at 6.4% (1095 of 16850 strings)
2024-03-04 13:39:43 +01:00
Daniel Stasiak
220e46d9f7 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-03-01 20:17:24 +01:00
Jesus Barba
07de076b26 Translated using Weblate (Spanish)
Currently translated at 80.3% (13547 of 16850 strings)
2024-03-01 20:17:22 +01:00
buba
79d72a1e93 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (16850 of 16850 strings)
2024-02-26 11:02:13 +01:00
buba
adea17d749 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (16850 of 16850 strings)
2024-02-25 10:30:51 +01:00
Nut.andor
ad28909118 test items in map 2024-02-24 18:54:45 +01:00
Nut.andor
93ed58c12d new teleport buttons 2024-02-24 18:54:45 +01:00
Daniel Stasiak
e912e452d8 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-02-24 08:25:11 +01:00
Seven
b4c490f648 Translated using Weblate (Spanish)
Currently translated at 80.3% (13546 of 16850 strings)
2024-02-24 08:25:09 +01:00
عادل نصري
e6ef6728ac Translated using Weblate (Arabic)
Currently translated at 11.3% (1918 of 16849 strings)
2024-02-23 17:34:02 +01:00
ilya
53744b1897 Translated using Weblate (Russian)
Currently translated at 100.0% (16850 of 16850 strings)
2024-02-22 07:32:46 +01:00
Frei Tags
678737441a Translated using Weblate (German)
Currently translated at 92.2% (15549 of 16850 strings)
2024-02-22 07:32:43 +01:00
ilya
cb1801b486 Translated using Weblate (Russian)
Currently translated at 99.1% (16711 of 16850 strings)
2024-02-21 20:43:38 +01:00
Frei Tags
2ffa9f5f0b Translated using Weblate (German)
Currently translated at 92.0% (15507 of 16850 strings)
2024-02-20 07:52:04 +01:00
Bugra Bezgin
bde0339a80 Translated using Weblate (Turkish)
Currently translated at 100.0% (612 of 612 strings)
2024-02-19 10:10:01 +01:00
Bugra Bezgin
b81ec6883f Translated using Weblate (Turkish)
Currently translated at 33.1% (5580 of 16850 strings)
2024-02-19 10:10:00 +01:00
Frei Tags
8e8c02b038 Translated using Weblate (German)
Currently translated at 91.9% (15493 of 16850 strings)
2024-02-19 10:09:57 +01:00
Bugra Bezgin
37f17cddf6 Translated using Weblate (Turkish)
Currently translated at 32.9% (5553 of 16850 strings)
2024-02-18 14:16:34 +01:00
Frei Tags
5bbe529230 Translated using Weblate (German)
Currently translated at 91.6% (15447 of 16850 strings)
2024-02-17 22:02:09 +01:00
Frei Tags
856fdfcfba Translated using Weblate (German)
Currently translated at 91.5% (15430 of 16850 strings)
2024-02-16 21:02:13 +01:00
Daniel Stasiak
e78f16c342 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-02-14 02:42:38 +01:00
Frei Tags
2776c33876 Translated using Weblate (German)
Currently translated at 91.3% (15391 of 16850 strings)
2024-02-14 02:42:35 +01:00
Jesus Barba
cc6de21dc1 Translated using Weblate (Spanish)
Currently translated at 80.2% (13526 of 16850 strings)
2024-02-11 19:02:16 +01:00
Frei Tags
511017a1de Translated using Weblate (German)
Currently translated at 88.7% (14958 of 16850 strings)
2024-02-11 19:02:13 +01:00
Daniel Stasiak
28ed52b263 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-02-10 17:02:12 +01:00
Jesus Barba
a63e8ad034 Translated using Weblate (Spanish)
Currently translated at 80.2% (13522 of 16850 strings)
2024-02-10 17:02:09 +01:00
CloneWith
bda9556cd1 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (16850 of 16850 strings)
2024-02-08 04:01:57 +01:00
ilya
aaae2a3b51 Translated using Weblate (Russian)
Currently translated at 98.5% (16604 of 16850 strings)
2024-02-06 01:03:30 +01:00
Daniel Stasiak
3e9032de0d Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-02-06 01:03:28 +01:00
Daniel Stasiak
b778ed1207 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-02-05 09:57:24 +01:00
ilya
439e0fcbd8 Translated using Weblate (Russian)
Currently translated at 98.5% (16602 of 16850 strings)
2024-02-04 16:01:57 +01:00
ilya
34416c5548 Translated using Weblate (Russian)
Currently translated at 98.5% (16600 of 16850 strings)
2024-01-31 09:01:57 +01:00
Aviya S
070cb5bafd Translated using Weblate (Hebrew)
Currently translated at 1.3% (231 of 16849 strings)
2024-01-27 19:08:11 +01:00
Ilian Iliev
7f50c4f444 Translated using Weblate (Bulgarian)
Currently translated at 73.2% (448 of 612 strings)
2024-01-26 19:04:02 +01:00
ilya
821ff0982e Translated using Weblate (Russian)
Currently translated at 98.3% (16573 of 16850 strings)
2024-01-25 19:02:00 +01:00
Nut.andor
4de87119bc slightly out of line trees 2024-01-21 18:14:07 +01:00
CloneWith
73eff8c748 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2024-01-21 08:49:21 +01:00
CloneWith
15246d5270 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (16850 of 16850 strings)
2024-01-21 08:49:20 +01:00
Daniel Stasiak
a0564c05ed Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-01-21 08:49:18 +01:00
ilya
bea41af484 Translated using Weblate (Russian)
Currently translated at 98.2% (16557 of 16850 strings)
2024-01-19 21:13:16 +01:00
Patryck Cardozo
d7948ff076 Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.5% (14760 of 16850 strings)
2024-01-19 07:50:48 +01:00
CloneWith
60e9df3141 Added translation using Weblate (Chinese (Literary)) 2024-01-16 15:28:02 +01:00
Ilian Iliev
7be2256672 Translated using Weblate (Bulgarian)
Currently translated at 70.5% (432 of 612 strings)
2024-01-15 22:06:16 +01:00
Ilian Iliev
af8cc33bff Translated using Weblate (Bulgarian)
Currently translated at 1.1% (199 of 16850 strings)
2024-01-15 22:06:15 +01:00
Daniel Stasiak
64e3009269 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-01-15 22:06:13 +01:00
clementfourmis
ff456c2565 Translated using Weblate (French)
Currently translated at 92.5% (15590 of 16850 strings)
2024-01-15 22:06:10 +01:00
Daniel Stasiak
bc308df775 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-01-14 21:06:26 +01:00
clementfourmis
b87a514187 Translated using Weblate (French)
Currently translated at 92.5% (15590 of 16850 strings)
2024-01-14 21:06:25 +01:00
Ilian Iliev
b28f4f4c42 Translated using Weblate (Bulgarian)
Currently translated at 52.9% (324 of 612 strings)
2024-01-13 19:07:39 +01:00
Nut.andor
cee90a077a debug btn
next version
debug btn
2024-01-13 00:49:47 +01:00
Ilian Iliev
3dcc1028c1 Translated using Weblate (Bulgarian)
Currently translated at 47.0% (288 of 612 strings)
2024-01-12 21:06:25 +01:00
clementfourmis
beb8ae4a11 Translated using Weblate (French)
Currently translated at 92.4% (15586 of 16850 strings)
2024-01-12 21:06:23 +01:00
Sitthichok Arsa
ac7303a7f2 Translated using Weblate (Thai)
Currently translated at 14.5% (89 of 612 strings)
2024-01-10 17:50:38 +01:00
Sitthichok Arsa
b8a6073e3d Translated using Weblate (Thai)
Currently translated at 1.1% (202 of 16850 strings)
2024-01-10 17:50:37 +01:00
Daniel Stasiak
27909b4b49 Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-01-08 07:40:20 +01:00
aircqsj
6cd268b969 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (16850 of 16850 strings)
2024-01-06 04:12:37 +01:00
aircqsj
657297ca4c Translated using Weblate (Chinese (Simplified))
Currently translated at 99.9% (16840 of 16850 strings)
2024-01-05 03:08:58 +01:00
n1ck
46d26478ca Translated using Weblate (Galician)
Currently translated at 17.8% (109 of 612 strings)
2024-01-04 15:10:14 +01:00
ilya
16bd9dc17a Translated using Weblate (Russian)
Currently translated at 97.8% (16484 of 16850 strings)
2024-01-04 15:10:12 +01:00
Daniel Stasiak
26e9bda24b Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16850 strings)
2024-01-04 15:10:10 +01:00
Nut.andor
02beb88b3a whatsnew
# Conflicts:
#	AndorsTrail/play/listings/en-US/whatsnew.txt
whatsnew
2023-12-31 23:22:47 +01:00
Nut.andor
b33fcb0eeb Merge branch 'v0.8.9' 2023-12-31 21:20:24 +01:00
Nut.andor
94843d2e9e Merge branch 'master' into v0.8.9
# Conflicts:
#	AndorsTrail/app/src/main/AndroidManifest.xml
#	AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
2023-12-31 21:19:06 +01:00
Nut.andor
e6975c462b translations 2023-12-31 21:15:51 +01:00
Nut.andor
b13a8179d9 next_release content 2023-12-31 19:59:17 +01:00
Nut.andor
63f1d27ae8 authors 2023-12-31 19:43:28 +01:00
Nut.andor
185b94732f fix % in translations 2023-12-31 19:35:50 +01:00
Nut.andor
5264c23dc5 Merge remote-tracking branch 'hosted.weblate/master' into v0.8.9 2023-12-31 19:24:33 +01:00
CloneWith
216ae613c6 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (16839 of 16839 strings)
2023-12-30 19:08:28 +01:00
CloneWith
e129245866 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (16839 of 16839 strings)
2023-12-30 16:08:55 +01:00
Nut Andor
bdc9d41b90 Translated using Weblate (German)
Currently translated at 86.8% (14631 of 16839 strings)
2023-12-30 16:08:53 +01:00
ilya
dc80a3bbe9 Translated using Weblate (Russian)
Currently translated at 97.5% (16428 of 16839 strings)
2023-12-27 15:14:06 +01:00
Ilian Iliev
54170d7dd4 Translated using Weblate (Bulgarian)
Currently translated at 38.5% (236 of 612 strings)
2023-12-26 15:09:19 +01:00
Daniel Stasiak
3b3629c1bb Translated using Weblate (Polish)
Currently translated at 84.5% (14245 of 16839 strings)
2023-12-26 15:09:18 +01:00
Ilian Iliev
8c7ab49812 Translated using Weblate (Bulgarian)
Currently translated at 35.7% (219 of 612 strings)
2023-12-24 19:17:33 +01:00
aircqsj
8c3c069f17 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (16839 of 16839 strings)
2023-12-20 13:15:23 +01:00
aircqsj
d491a2db89 Translated using Weblate (Chinese (Simplified))
Currently translated at 97.4% (16410 of 16839 strings)
2023-12-18 05:21:32 +01:00
ilya
fcad74852a Translated using Weblate (Russian)
Currently translated at 96.9% (16330 of 16839 strings)
2023-12-18 05:21:30 +01:00
Nut.andor
04db185d75 next version 2023-12-17 22:21:02 +01:00
Nut.andor
eacf4b9ced next version 2023-12-17 17:31:14 +01:00
aircqsj
6678fc1c72 Translated using Weblate (Chinese (Simplified))
Currently translated at 97.2% (16384 of 16839 strings)
2023-12-14 16:03:24 +01:00
ilya
e7d8a37291 Translated using Weblate (Russian)
Currently translated at 96.7% (16285 of 16839 strings)
2023-12-14 16:03:22 +01:00
Nut.andor
591d368667 next version 2023-12-11 14:39:51 +01:00
Nut.andor
38e136d6f3 fix 2023-12-11 13:15:12 +01:00
Rey Evan
afe7766cad Translated using Weblate (Filipino)
Currently translated at 44.7% (274 of 612 strings)
2023-12-11 13:04:37 +01:00
aircqsj
6a1d927190 Translated using Weblate (Chinese (Simplified))
Currently translated at 96.8% (16301 of 16839 strings)
2023-12-11 13:04:37 +01:00
Nut.andor
063ce332a8 Whatsnew + Foruum Announcement 2023-12-11 12:30:14 +01:00
Nut.andor
239f03c5ec translation status
whatsNew
2023-12-10 23:13:46 +01:00
Nut.andor
add01e2508 release notes 2023-12-10 01:42:41 +01:00
Nut.andor
a2fb8bb2b9 Merge branch 'V0.8.8' 2023-12-10 00:48:39 +01:00
Nut.andor
56c57e7dba mo 2023-12-10 00:25:31 +01:00
Nut.andor
c34c5ecd5e potc 2023-12-10 00:20:33 +01:00
Nut.andor
14b9d00796 content exported from ATCS 2023-12-09 22:18:49 +01:00
Nut.andor
457c98cc0d version 2023-12-09 22:09:31 +01:00
Nut.andor
bb614278bb Merge branch 'master' into V0.8.8 2023-12-09 22:03:23 +01:00
Nut.andor
655d464677 content format reference 2023-12-09 21:54:08 +01:00
Nut.andor
1f63ae060f Merge remote-tracking branch 'hosted.weblate/master' 2023-12-09 21:51:14 +01:00
Nut.andor
b7cc23cb32 opt vegetable 2023-12-07 23:30:55 +01:00
g1zza
53b75f1c80 Added translation using Weblate (Albanian) 2023-12-06 16:21:35 +01:00
Daniel Stasiak
429bb7d61d Translated using Weblate (Polish)
Currently translated at 85.6% (13934 of 16269 strings)
2023-12-05 14:05:56 +01:00
Daniel Stasiak
8070329915 Translated using Weblate (Polish)
Currently translated at 85.6% (13934 of 16269 strings)
2023-12-02 18:06:07 +00:00
Daniel Stasiak
e9138d9cbf Translated using Weblate (Polish)
Currently translated at 85.6% (13934 of 16269 strings)
2023-11-28 15:05:44 +00:00
Raphi
209cf28224 Translated using Weblate (German)
Currently translated at 89.9% (14632 of 16269 strings)
2023-11-28 15:05:41 +00:00
Daniel Stasiak
5363d60ece Translated using Weblate (Polish)
Currently translated at 85.6% (13934 of 16269 strings)
2023-11-26 19:53:11 +01:00
Mateusz Mendel
5d273f7308 Translated using Weblate (Polish)
Currently translated at 85.6% (13934 of 16269 strings)
2023-11-26 19:53:11 +01:00
Mateusz Mendel
000c3e71e2 Translated using Weblate (Polish)
Currently translated at 85.6% (13933 of 16269 strings)
2023-11-26 19:47:51 +01:00
Daniel Stasiak
093c75da95 Translated using Weblate (Polish)
Currently translated at 85.6% (13933 of 16269 strings)
2023-11-26 19:47:50 +01:00
Nut.andor
979d3c81db duplicated dialogue IDs
Removal of xxx_next_release.json
2023-11-26 02:38:58 +01:00
Nut.andor
16c9378da4 content reference fixes 2023-11-26 01:57:54 +01:00
Nut.andor
bf62a3502f APK rename 2023-11-26 01:00:41 +01:00
Darren Crowlen
06d71caa1e Translated using Weblate (Indonesian)
Currently translated at 100.0% (612 of 612 strings)
2023-11-25 19:08:10 +01:00
Daniel Stasiak
aab900dc58 Translated using Weblate (Polish)
Currently translated at 85.6% (13932 of 16269 strings)
2023-11-25 19:08:08 +01:00
Mateusz Mendel
cdb02a8a7b Translated using Weblate (Polish)
Currently translated at 85.6% (13928 of 16269 strings)
2023-11-24 20:38:54 +01:00
Daniel Stasiak
01affa64b3 Translated using Weblate (Polish)
Currently translated at 85.6% (13928 of 16269 strings)
2023-11-24 20:38:53 +01:00
gallegonovato
cc34decd0f Translated using Weblate (Spanish)
Currently translated at 82.9% (13498 of 16269 strings)
2023-11-24 20:38:52 +01:00
Ranforingus
d971825cbd Translated using Weblate (Dutch)
Currently translated at 96.8% (593 of 612 strings)
2023-11-23 09:54:34 +01:00
Ilian Iliev
cbc4992f10 Translated using Weblate (Bulgarian)
Currently translated at 35.7% (219 of 612 strings)
2023-11-23 09:54:34 +01:00
Daniel Stasiak
89bac044f1 Translated using Weblate (Polish)
Currently translated at 85.5% (13924 of 16269 strings)
2023-11-23 09:54:34 +01:00
Ranforingus
dc933ba225 Translated using Weblate (Dutch)
Currently translated at 6.6% (1082 of 16269 strings)
2023-11-23 09:54:32 +01:00
Kevin Rojas Costa Rica
a7ac2ed657 Translated using Weblate (Spanish)
Currently translated at 82.9% (13497 of 16269 strings)
2023-11-23 09:54:31 +01:00
Ilian Iliev
8453f0e5f5 Translated using Weblate (Bulgarian)
Currently translated at 28.5% (175 of 612 strings)
2023-11-21 21:56:00 +01:00
Ilian Iliev
17f3c75fdf Translated using Weblate (Bulgarian)
Currently translated at 1.2% (199 of 16269 strings)
2023-11-21 21:56:00 +01:00
Daniel Stasiak
4f5952f24c Translated using Weblate (Polish)
Currently translated at 85.5% (13924 of 16269 strings)
2023-11-21 21:55:59 +01:00
Daniel Stasiak
2bf6e4c3b7 Translated using Weblate (Polish)
Currently translated at 85.5% (13924 of 16269 strings)
2023-11-20 08:51:36 +01:00
Ilian Iliev
90cb403196 Translated using Weblate (Bulgarian)
Currently translated at 25.1% (154 of 612 strings)
2023-11-19 21:33:35 +01:00
Ilian Iliev
d59b686d10 Translated using Weblate (Bulgarian)
Currently translated at 1.1% (180 of 16269 strings)
2023-11-19 21:33:34 +01:00
Daniel Stasiak
346187a80f Translated using Weblate (Polish)
Currently translated at 85.5% (13924 of 16269 strings)
2023-11-18 19:07:26 +01:00
Daniel Stasiak
f8b38d88aa Translated using Weblate (Polish)
Currently translated at 85.5% (13924 of 16269 strings)
2023-11-17 04:52:48 +01:00
Nut.andor
ad4432a2df Announcement 2023-11-16 22:49:16 +01:00
Mateusz Mendel
bf20d0dc6e Translated using Weblate (Polish)
Currently translated at 85.5% (13921 of 16269 strings)
2023-11-16 04:10:47 +01:00
Daniel Stasiak
d940229581 Translated using Weblate (Polish)
Currently translated at 85.5% (13921 of 16269 strings)
2023-11-16 04:10:47 +01:00
Daniel Stasiak
044c6fa4b1 Translated using Weblate (Polish)
Currently translated at 85.5% (13920 of 16269 strings)
2023-11-14 23:54:40 +01:00
Daniel Stasiak
d2b1e67bac Translated using Weblate (Polish)
Currently translated at 85.5% (13920 of 16269 strings)
2023-11-13 22:59:42 +01:00
Daniel Stasiak
7bb42e98b6 Translated using Weblate (Polish)
Currently translated at 85.5% (13920 of 16269 strings)
2023-11-13 12:56:11 +01:00
Daniel Stasiak
ea80cd11fe Translated using Weblate (Polish)
Currently translated at 85.5% (13920 of 16269 strings)
2023-11-12 17:13:48 +01:00
Jacque Fresco
1f00f4a86c Translated using Weblate (Malay)
Currently translated at 3.5% (579 of 16269 strings)
2023-11-12 17:13:45 +01:00
Nut.andor
12350f3fdb whatsNew 2023-11-12 01:10:43 +01:00
Nut.andor
c650e4aa75 whatsNew 2023-11-12 01:10:43 +01:00
Nut.andor
94f81db7ba Forum Announcement (actual version) 2023-11-12 01:10:43 +01:00
Mohamed Amaadour
8c80615659 Translated using Weblate (Arabic)
Currently translated at 11.4% (1864 of 16268 strings)
2023-11-10 10:10:40 +01:00
Mohamed Amaadour
bc5e956cb3 Translated using Weblate (Arabic)
Currently translated at 11.4% (1864 of 16268 strings)
2023-11-09 22:51:23 +01:00
Daniel Stasiak
fab9bdc298 Translated using Weblate (Polish)
Currently translated at 85.5% (13920 of 16269 strings)
2023-11-09 22:51:21 +01:00
Mateusz Mendel
1d90db1c1e Translated using Weblate (Polish)
Currently translated at 85.5% (13919 of 16269 strings)
2023-11-09 15:08:12 +01:00
Daniel Stasiak
9c3dd2e671 Translated using Weblate (Polish)
Currently translated at 85.5% (13919 of 16269 strings)
2023-11-09 15:08:12 +01:00
Daniel Stasiak
711285aab2 Translated using Weblate (Polish)
Currently translated at 85.5% (13918 of 16269 strings)
2023-11-09 15:07:43 +01:00
Mateusz Mendel
3d20a43a24 Translated using Weblate (Polish)
Currently translated at 85.5% (13918 of 16269 strings)
2023-11-09 15:07:43 +01:00
Mateusz Mendel
c3c491f72c Translated using Weblate (Polish)
Currently translated at 85.5% (13915 of 16269 strings)
2023-11-09 14:58:25 +01:00
Daniel Stasiak
489dfd55fb Translated using Weblate (Polish)
Currently translated at 85.5% (13915 of 16269 strings)
2023-11-09 14:58:25 +01:00
Daniel Stasiak
b84ffde283 Translated using Weblate (Polish)
Currently translated at 85.5% (13914 of 16269 strings)
2023-11-09 14:51:42 +01:00
Mateusz Mendel
5256868327 Translated using Weblate (Polish)
Currently translated at 85.5% (13914 of 16269 strings)
2023-11-09 14:51:41 +01:00
Mateusz Mendel
606e90e9bd Translated using Weblate (Polish)
Currently translated at 85.5% (13913 of 16269 strings)
2023-11-09 14:50:19 +01:00
Daniel Stasiak
c5b426af13 Translated using Weblate (Polish)
Currently translated at 85.5% (13913 of 16269 strings)
2023-11-09 14:50:18 +01:00
Daniel Stasiak
8ee1bf782c Translated using Weblate (Polish)
Currently translated at 85.5% (13912 of 16269 strings)
2023-11-09 14:37:13 +01:00
Mateusz Mendel
f4651a9bed Translated using Weblate (Polish)
Currently translated at 85.5% (13912 of 16269 strings)
2023-11-09 14:37:13 +01:00
Mateusz Mendel
c7a77f9c99 Translated using Weblate (Polish)
Currently translated at 85.5% (13911 of 16269 strings)
2023-11-09 14:36:13 +01:00
Daniel Stasiak
e42d2fcec8 Translated using Weblate (Polish)
Currently translated at 85.5% (13911 of 16269 strings)
2023-11-09 14:36:13 +01:00
Mateusz Mendel
2173fda575 Translated using Weblate (Polish)
Currently translated at 85.5% (13910 of 16269 strings)
2023-11-09 14:34:32 +01:00
Daniel Stasiak
dccb078060 Translated using Weblate (Polish)
Currently translated at 85.5% (13910 of 16269 strings)
2023-11-09 14:34:32 +01:00
Daniel Stasiak
9bc007349f Translated using Weblate (Polish)
Currently translated at 85.4% (13909 of 16269 strings)
2023-11-09 14:31:02 +01:00
Mateusz Mendel
435865f250 Translated using Weblate (Polish)
Currently translated at 85.4% (13909 of 16269 strings)
2023-11-09 14:31:02 +01:00
Mateusz Mendel
f7e64c5ab9 Translated using Weblate (Polish)
Currently translated at 85.4% (13908 of 16269 strings)
2023-11-09 14:29:53 +01:00
Daniel Stasiak
271a28887f Translated using Weblate (Polish)
Currently translated at 85.4% (13908 of 16269 strings)
2023-11-09 14:29:53 +01:00
Daniel Stasiak
e3955dac3a Translated using Weblate (Polish)
Currently translated at 85.4% (13907 of 16269 strings)
2023-11-09 14:26:46 +01:00
Mateusz Mendel
8971d671fe Translated using Weblate (Polish)
Currently translated at 85.4% (13907 of 16269 strings)
2023-11-09 14:26:46 +01:00
Mateusz Mendel
e03bc105b0 Translated using Weblate (Polish)
Currently translated at 85.4% (13906 of 16269 strings)
2023-11-09 14:26:25 +01:00
Daniel Stasiak
b5381d5d68 Translated using Weblate (Polish)
Currently translated at 85.4% (13906 of 16269 strings)
2023-11-09 14:26:24 +01:00
Mohamed Amaadour
40eb5ca761 Translated using Weblate (Arabic)
Currently translated at 11.4% (1863 of 16268 strings)
2023-11-09 14:25:03 +01:00
Mateusz Mendel
44298bf59d Translated using Weblate (Polish)
Currently translated at 85.4% (13905 of 16269 strings)
2023-11-09 14:25:02 +01:00
Daniel Stasiak
aab4771fcc Translated using Weblate (Polish)
Currently translated at 85.4% (13905 of 16269 strings)
2023-11-09 14:25:02 +01:00
Mateusz Mendel
b6dfb2eb7d Translated using Weblate (Polish)
Currently translated at 85.4% (13902 of 16269 strings)
2023-11-08 20:56:30 +01:00
Daniel Stasiak
1182bd84cd Translated using Weblate (Polish)
Currently translated at 85.4% (13902 of 16269 strings)
2023-11-08 20:56:30 +01:00
Mateusz Mendel
664f285e9a Translated using Weblate (Polish)
Currently translated at 85.4% (13896 of 16269 strings)
2023-11-08 18:41:42 +01:00
Daniel Stasiak
33717be65d Translated using Weblate (Polish)
Currently translated at 85.4% (13896 of 16269 strings)
2023-11-08 18:41:41 +01:00
Daniel Stasiak
eac69a5e67 Translated using Weblate (Polish)
Currently translated at 85.4% (13894 of 16269 strings)
2023-11-08 18:36:24 +01:00
Mateusz Mendel
9597363785 Translated using Weblate (Polish)
Currently translated at 85.4% (13894 of 16269 strings)
2023-11-08 18:36:24 +01:00
Mateusz Mendel
b7a06e04cb Translated using Weblate (Polish)
Currently translated at 85.3% (13890 of 16269 strings)
2023-11-08 13:16:26 +01:00
Lacrom
8984f35240 Translated using Weblate (French)
Currently translated at 95.9% (15603 of 16269 strings)
2023-11-06 10:36:23 +01:00
Nut.andor
4a8f784fd5 generate current translations 2023-11-05 12:09:01 +01:00
Nut.andor
7877fbdca7 Merge branch 'master' into V0.8.8 2023-11-05 11:59:39 +01:00
Nut.andor
2c67adcda2 Merge remote-tracking branch 'hosted.weblate/master' 2023-11-05 11:53:00 +01:00
Palkia
1ff1835feb Translated using Weblate (Spanish)
Currently translated at 82.9% (13495 of 16269 strings)
2023-11-05 08:46:04 +01:00
Nut.andor
6b24efc014 Release Notes 2023-11-05 02:26:37 +01:00
Nut.andor
894bf9ea8d date/time 2023-11-02 20:59:40 +01:00
Nut
dcbb525fb6 show zero ac
show zero ac
2023-11-02 20:59:37 +01:00
Mohamed Amaadour
689f7820eb Translated using Weblate (Arabic)
Currently translated at 11.2% (1830 of 16268 strings)
2023-10-31 16:30:32 +01:00
Mohamed Amaadour
d47f26d038 Translated using Weblate (Arabic)
Currently translated at 11.0% (1793 of 16268 strings)
2023-10-30 20:04:10 +01:00
Hakunek
3c5645156f Translated using Weblate (Polish)
Currently translated at 85.3% (13889 of 16269 strings)
2023-10-30 20:04:08 +01:00
Nut.andor
edd79b4e4e new sprite of Omicron 2023-10-30 01:23:30 +01:00
Mohamed Amaadour
8a95194465 Translated using Weblate (Arabic)
Currently translated at 10.9% (1788 of 16268 strings)
2023-10-29 22:10:42 +01:00
Nut.andor
80b55c1717 date/time addition 2023-10-29 15:29:39 +01:00
Mohamed Amaadour
faca85e283 Translated using Weblate (Arabic)
Currently translated at 10.8% (1758 of 16268 strings)
2023-10-29 05:19:19 +00:00
OMGeeky
40d84d8c78 add documentation to attack hit chance method 2023-10-28 14:10:06 +02:00
OMGeeky
f0988afaa5 Show a zero for AC 2023-10-28 14:09:34 +02:00
Mohamed
03b0ec16de Translated using Weblate (Arabic)
Currently translated at 10.7% (1742 of 16268 strings)
2023-10-28 03:32:33 +02:00
Mohamed
3a31b3d00c Translated using Weblate (Arabic)
Currently translated at 100.0% (612 of 612 strings)
2023-10-28 02:20:34 +02:00
Mohamed
50a697c85a Translated using Weblate (Arabic)
Currently translated at 10.6% (1737 of 16268 strings)
2023-10-28 02:20:34 +02:00
عادل نصري
af77d8e497 Translated using Weblate (Arabic)
Currently translated at 10.6% (1737 of 16268 strings)
2023-10-28 02:20:34 +02:00
Nut.andor
c6b80f1ff1 more teleport buttons 2023-10-27 00:40:29 +02:00
Sven Knoblach
edbccb62e5 Translated using Weblate (German)
Currently translated at 89.6% (14589 of 16269 strings)
2023-10-26 22:50:07 +02:00
Nut.andor
24a7578c67 vegetable added 2023-10-23 23:39:38 +02:00
Nut.andor
200e44ad15 debug certificate for easier debugging 2023-10-21 19:06:55 +02:00
Nut.andor
ac669f4aaa some debug messages 2023-10-21 18:56:31 +02:00
Nut.andor
f73d993934 Merge branch 'pulls/1829009049/62' into V0.8.8 2023-10-19 22:10:30 +02:00
Nut.andor
15657d08da Rats are too pink. 2023-10-19 22:08:54 +02:00
Raphi
b0829d7195 Translated using Weblate (German)
Currently translated at 89.6% (14589 of 16269 strings)
2023-10-17 04:18:20 +00:00
Nut.andor
e31cee7fef Pull Request #62: Rats are too pink. 2023-10-17 00:55:58 +02:00
Omicronrg9
ec2f4d74b2 • Tweaked some sprites (rats). 2023-10-17 00:53:19 +02:00
Reinhard Lackner
773a9dbbe3 Translated using Weblate (German)
Currently translated at 88.8% (14455 of 16269 strings)
2023-10-15 23:10:16 +02:00
Raphi
0de31eefd2 Translated using Weblate (German)
Currently translated at 88.8% (14455 of 16269 strings)
2023-10-15 23:10:16 +02:00
Nut.andor
cd764d4c10 cats 2023-10-14 01:10:56 +02:00
Nut.andor
283418d43a Pull Request #61: Cats 2023-10-14 01:03:36 +02:00
Daniel–Ømicrón Rodríguez García
e99da003d1 Merge branch 'AndorsTrailRelease:V0.8.8' into V0.8.8 2023-10-12 15:20:56 +02:00
Nut.andor
fc29346dee debugmessage 2023-10-11 22:19:10 +02:00
Daniel–Ømicrón Rodríguez García
6ee86d8c56 Merge branch 'AndorsTrailRelease:V0.8.8' into V0.8.8 2023-10-10 13:00:24 +02:00
Nut.andor
5f91d084ed debugmessage 2023-10-10 01:07:20 +02:00
Nut.andor
7989c84723 formatting 2023-10-08 13:36:02 +02:00
Nut.andor
e280ad1423 new engine enhancements 2023-10-08 13:15:42 +02:00
Nut.andor
35b762e891 bold and italic
bold
unordered lists
ode
img
headers
2023-10-08 13:01:27 +02:00
Omicronrg9
b40eb7dc66 Ignored tmx bak files. 2023-10-08 02:33:51 +02:00
Omicronrg9
a3b74eb08a Merge remote-tracking branch 'origin/V0.8.8' into V0.8.8 2023-10-08 02:29:38 +02:00
Mateusz Mendel
6b724c5e8d Translated using Weblate (Polish)
Currently translated at 85.3% (13889 of 16269 strings)
2023-10-07 20:21:47 +02:00
Nut.andor
a407260c33 Enhance log for better bug finding
sprite definitions again
2023-10-07 18:35:45 +02:00
Nut.andor
e0dc8e24b6 Revert "Auxiliary commit to revert individual files from c54ade42d967b775992c05117933cf7bead7b8c8"
This reverts commit 16f38a2e0dea0b8d1e887f5f0d06aefa2ebe7ef9.
2023-10-07 17:50:46 +02:00
Nut.andor
fcb21a1218 sprite definitions 2023-10-07 14:57:36 +02:00
Nut.andor
c54ade42d9 sprites for Erumentemple 2023-10-07 13:41:26 +02:00
Nut.andor
5460d52baf Merge branch 'pulls/1829009049/60' into V0.8.8 2023-10-07 13:30:11 +02:00
Nut.andor
84c5242195 • map_transition_6 completed (just 1 tile) 2023-10-07 13:27:43 +02:00
Mateusz Mendel
278e61cf7e Translated using Weblate (Polish)
Currently translated at 85.3% (13889 of 16269 strings)
2023-10-05 15:20:39 +02:00
Palkia
7537309cd3 Translated using Weblate (Spanish)
Currently translated at 82.9% (13489 of 16269 strings)
2023-10-05 15:20:38 +02:00
Kevin Rojas Costa Rica
7dc2bcaa59 Translated using Weblate (Spanish)
Currently translated at 82.9% (13489 of 16269 strings)
2023-10-05 15:20:37 +02:00
Raphi
1e99c026cb Translated using Weblate (German)
Currently translated at 88.8% (14449 of 16269 strings)
2023-10-05 15:20:36 +02:00
Nut.andor
ae23d99c7f Pull Request #60: • map_transition_6 completed (just 1 tile) 2023-10-04 10:04:50 +02:00
Omicronrg9
a97f3cee64 • map_transition_6 completed (just 1 tile more) 2023-10-04 10:03:32 +02:00
Nut.andor
c0e5f77d53 requirements date/time implementation 2023-10-03 20:41:33 +02:00
Nut.andor
7c8e269b09 Merge branch 'pulls/1829009049/59' into V0.8.8 2023-10-03 18:07:35 +02:00
Nut.andor
87bdd6036a 5 additions to blank tiles in existing spritesheets. 2023-10-03 17:55:30 +02:00
Nut.andor
4d222f7b06 Pull Request #59: 5 additions to blank tiles in existing spritesheets. 2023-10-03 05:16:43 +02:00
Omicronrg9
9b8d0665a1 • 3 variants of Newb's trees. 2023-10-03 05:16:39 +02:00
Erdem Kocamış
498600c6bd Translated using Weblate (Turkish)
Currently translated at 33.8% (5501 of 16269 strings)
2023-10-03 02:34:26 +02:00
Mateusz Mendel
b2031e0f50 Translated using Weblate (Polish)
Currently translated at 85.3% (13889 of 16269 strings)
2023-10-03 02:34:25 +02:00
Kevin Rojas Costa Rica
7536d14a34 Translated using Weblate (Spanish)
Currently translated at 82.3% (13391 of 16269 strings)
2023-10-03 02:34:23 +02:00
Nut.andor
10772abcb4 new requirements: date, dateEquals, time, timeEquals
new rewards: mapchange
2023-10-03 01:26:03 +02:00
Omicronrg9
b5996767c1 • NewbNewb's items added to the spritesheets. 2023-10-03 00:37:40 +02:00
Omicronrg9
1f7adadf78 • Vertical bridge (North-South) in map_bridge_2
• Pickaxe & shovel rusted variants in map_indoor_1
• Cacti high variants in map_plant_1
• Black salt rocks/crystals/remains in map_rock_1
• More shadows in map_trail_1
2023-10-02 01:42:06 +02:00
Erdem Kocamış
810bcff78c Translated using Weblate (Turkish)
Currently translated at 99.6% (610 of 612 strings)
2023-10-01 23:11:37 +02:00
Erdem Kocamış
e953d34d17 Translated using Weblate (Turkish)
Currently translated at 33.8% (5501 of 16269 strings)
2023-10-01 23:11:36 +02:00
Raphi
3b5fe2e622 Translated using Weblate (German)
Currently translated at 88.5% (14404 of 16269 strings)
2023-09-29 15:09:05 +02:00
Nut Andor
9f46492f86 Translated using Weblate (German)
Currently translated at 100.0% (612 of 612 strings)
2023-09-29 15:09:03 +02:00
Eduardo
f1e69677be Translated using Weblate (Portuguese (Brazil))
Currently translated at 90.5% (14733 of 16269 strings)
2023-09-27 08:13:59 +02:00
Mateusz Mendel
17e573a7a9 Translated using Weblate (Polish)
Currently translated at 85.3% (13889 of 16269 strings)
2023-09-24 21:03:15 +00:00
Raphi
4cb6c26363 Translated using Weblate (German)
Currently translated at 87.9% (14311 of 16269 strings)
2023-09-23 11:02:53 +02:00
Raphi
09974c67e4 Translated using Weblate (German)
Currently translated at 87.9% (14301 of 16269 strings)
2023-09-19 20:26:59 +02:00
Palkia
51b0554668 Translated using Weblate (Spanish)
Currently translated at 80.6% (13116 of 16269 strings)
2023-09-19 05:01:52 +00:00
Mateusz Mendel
3c3610d63c Translated using Weblate (Polish)
Currently translated at 85.3% (13889 of 16269 strings)
2023-09-16 21:53:29 +02:00
Eduardo
468ec1ee83 Translated using Weblate (Portuguese (Brazil))
Currently translated at 90.0% (14658 of 16269 strings)
2023-09-13 17:00:30 +02:00
Raphi
dcb6fcb3a6 Translated using Weblate (German)
Currently translated at 87.7% (14275 of 16269 strings)
2023-09-13 17:00:26 +02:00
Nut.andor
9c080c4334 broken bridge 2023-09-12 01:09:28 +02:00
Nut Andor
7b7fefb954 Translated using Weblate (Spanish)
Currently translated at 80.5% (13107 of 16269 strings)
2023-09-10 23:08:29 +02:00
Daniel-Ømicrón Rodríguez Garcí
616e43ce8f Translated using Weblate (Spanish)
Currently translated at 100.0% (612 of 612 strings)
2023-09-10 10:07:42 +02:00
Raphi
318d070e05 Translated using Weblate (German)
Currently translated at 87.6% (14263 of 16269 strings)
2023-09-09 09:29:45 +02:00
Raphi
4a7739a1bf Translated using Weblate (German)
Currently translated at 87.6% (14262 of 16269 strings)
2023-09-08 23:58:59 +02:00
Darren Crowlen
e12250509e Translated using Weblate (Indonesian)
Currently translated at 100.0% (16269 of 16269 strings)
2023-09-07 05:10:44 +02:00
Daniel Stasiak
afb025fd91 Translated using Weblate (Polish)
Currently translated at 85.3% (13886 of 16269 strings)
2023-09-06 15:58:55 +02:00
Daniel Stasiak
8899cb5ea4 Translated using Weblate (Polish)
Currently translated at 85.3% (13886 of 16269 strings)
2023-09-05 19:04:10 +02:00
Darren Crowlen
c6a7bc8c14 Translated using Weblate (Indonesian)
Currently translated at 100.0% (16269 of 16269 strings)
2023-09-05 19:04:07 +02:00
Daniel Stasiak
f2bb6d547b Translated using Weblate (Polish)
Currently translated at 85.3% (13886 of 16269 strings)
2023-09-05 10:42:48 +02:00
Darren Crowlen
1fdcb23d04 Translated using Weblate (Indonesian)
Currently translated at 100.0% (16269 of 16269 strings)
2023-09-05 10:42:45 +02:00
Raphi
131088ad22 Translated using Weblate (German)
Currently translated at 87.6% (14252 of 16269 strings)
2023-09-05 06:25:21 +02:00
Nut.andor
5d3a51e8f2 next version number 2023-09-04 20:42:57 +02:00
Nut.andor
d1cd8a8cef Merge branch 'v0.8.7(new)' 2023-09-04 20:39:10 +02:00
Daniel Stasiak
c2757dcbce Translated using Weblate (Polish)
Currently translated at 85.3% (13886 of 16269 strings)
2023-09-04 11:21:23 +02:00
Darren Crowlen
274ef6a44f Translated using Weblate (Indonesian)
Currently translated at 100.0% (16269 of 16269 strings)
2023-09-03 23:30:14 +02:00
Eduardo
efff180339 Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.8% (14618 of 16269 strings)
2023-09-03 13:48:33 +02:00
Eduardo
8fb51c0647 Translated using Weblate (Portuguese)
Currently translated at 94.4% (578 of 612 strings)
2023-09-03 13:48:30 +02:00
Darren Crowlen
7db9cf50ca Translated using Weblate (Indonesian)
Currently translated at 100.0% (16269 of 16269 strings)
2023-09-03 06:31:19 +02:00
Nut.andor
8128707aa4 release version 2023-09-02 20:23:01 +02:00
Nut.andor
de7740ab14 Merge branch 'master' into v0.8.7(new) 2023-09-02 18:26:32 +02:00
Nut.andor
31633be812 etc 2023-09-02 18:23:59 +02:00
عادل نصري
bcb5d36999 Translated using Weblate (Arabic)
Currently translated at 10.3% (1680 of 16268 strings)
2023-09-02 17:06:23 +02:00
Raphi
7d847dfde5 Translated using Weblate (German)
Currently translated at 87.4% (14229 of 16269 strings)
2023-09-02 17:06:20 +02:00
Nut.andor
b703e774ae fix in/id 2023-09-02 00:55:36 +02:00
Nut.andor
f6207be9d4 translation objects 2023-09-02 00:45:28 +02:00
Nut.andor
7c87c53421 Merge remote-tracking branch 'hosted.weblate/master' 2023-09-02 00:38:28 +02:00
Hosted Weblate
a4ed3688a2 Merge branch 'origin/master' into Weblate. 2023-09-01 23:59:30 +02:00
Nut.andor
6ab8f5f836 fix Indonesian locale renaming in to id 2023-09-01 23:57:45 +02:00
عادل نصري
f9c1724228 Translated using Weblate (Arabic)
Currently translated at 9.8% (1610 of 16268 strings)
2023-09-01 19:35:12 +02:00
ilya
25c77fdf5e Translated using Weblate (Russian)
Currently translated at 100.0% (16269 of 16269 strings)
2023-09-01 19:35:08 +02:00
Eduardo
3bf9c6ae94 Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.6% (14592 of 16269 strings)
2023-09-01 19:35:06 +02:00
Darren Crowlen
0e70b027f5 Translated using Weblate (Indonesian)
Currently translated at 100.0% (16269 of 16269 strings)
2023-09-01 19:35:01 +02:00
Nut.andor
17b17187ff Merge branch 'pulls/1829009049/58' into v0.8.7(new) 2023-08-31 17:51:07 +02:00
Nut.andor
dc226ebe5d rename spawnchance to respawnspeed 2023-08-31 17:35:24 +02:00
Nut.andor
55f5edbb6a Pull Request #58: rename spawnchance to respawnspeed 2023-08-31 17:13:07 +02:00
Nut.andor
29d65fbf64 Merge branch 'master' into v0.8.7(new) 2023-08-31 17:12:12 +02:00
Nut.andor
f3f35be0bf Merge remote-tracking branch 'hosted.weblate/master' 2023-08-31 01:24:10 +02:00
Nut.andor
204c8e046c id to in 2023-08-31 01:23:08 +02:00
Eduardo
1a1710a6c2 Translated using Weblate (Portuguese (Brazil))
Currently translated at 88.4% (14383 of 16269 strings)
2023-08-31 00:09:31 +02:00
Nut.andor
1a2cc00184 translation states 2023-08-30 15:15:31 +02:00
OMGeeky
b3b3f6ff98 rename spawnchance to respawnspeed
This reflects the actual effect it has better
2023-08-30 13:32:57 +02:00
Eduardo
7df8b0330c Translated using Weblate (Portuguese (Brazil))
Currently translated at 88.0% (14324 of 16269 strings)
2023-08-30 09:18:41 +02:00
Palkia
528dd2254e Translated using Weblate (Spanish)
Currently translated at 80.5% (13107 of 16269 strings)
2023-08-30 09:18:38 +02:00
Nut.andor
33fb7c83bf resource def for new png 2023-08-30 01:59:17 +02:00
Nut.andor
50ad382eed potc 2023-08-30 01:17:01 +02:00
Nut.andor
7d1c7cfd74 Merge branch 'v0.8.7(new)' 2023-08-30 00:56:24 +02:00
Nut.andor
5b637099a1 Changes from next_release 2023-08-30 00:40:14 +02:00
Nut.andor
0d6d725f87 debug off 2023-08-30 00:25:08 +02:00
Nut.andor
a98c5d5416 translations and authors 2023-08-30 00:22:59 +02:00
Nut.andor
3361973722 fix updated translations 2023-08-30 00:17:44 +02:00
Nut.andor
91bc6568ee Merge branch 'master' into v0.8.7(new) 2023-08-30 00:13:00 +02:00
Nut.andor
2e583fbfcf Merge remote-tracking branch 'hosted.weblate/master' 2023-08-30 00:08:59 +02:00
Eduardo
50eab6ff38 Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.9% (14305 of 16268 strings)
2023-08-30 00:06:08 +02:00
Nut.andor
d743550cc7 enhanced and reorganized pngs 2023-08-29 23:54:34 +02:00
Eduardo
1c0efc8fa4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.4% (14226 of 16268 strings)
2023-08-27 19:43:13 +02:00
Nut.andor
5ff38ea870 New teleport button 'gal' 2023-08-24 19:58:59 +02:00
Nut.andor
4c146f7896 new/added sprites 2023-08-19 03:18:07 +02:00
Nut
4e5aa4314e Merge pull request #57 from OMGeeky/v0.8.7(new)
AndroidX missed spot
2023-08-18 23:09:01 +02:00
OMGeeky
5223951db4 AndroidX missed spot 2023-08-18 21:34:35 +02:00
Nut.andor
ddcb355113 Versions
- next AndroidVersion 34
- 73 = 0.8.7beta
2023-08-18 20:22:29 +02:00
Nut.andor
7a80e15628 typo 2023-08-18 20:06:55 +02:00
Nut
34dc053011 Merge pull request #52 from OMGeeky/gradle-copy-v2
Improvements to the copy Gradle Tasks
2023-08-18 19:52:19 +02:00
Nut
0266449d67 Merge branch 'v0.8.7(new)' into gradle-copy-v2 2023-08-18 19:51:31 +02:00
Nut
ea3afcf99d Merge pull request #50 from OMGeeky/AndroidX-Migration
Android x migration
2023-08-18 19:45:39 +02:00
Nut
c84418186c Merge branch 'v0.8.7(new)' into AndroidX-Migration 2023-08-18 19:44:33 +02:00
Jiri Zizkin Zizka
956990dbd5 Translated using Weblate (Czech)
Currently translated at 89.6% (14583 of 16268 strings)
2023-08-16 03:59:31 +02:00
Hugo Rosa
08f6a2b289 Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.2% (14192 of 16268 strings)
2023-08-11 06:51:38 +02:00
Darren Crowlen
741a4c02a0 Translated using Weblate (French)
Currently translated at 95.5% (15539 of 16268 strings)
2023-08-08 17:52:07 +02:00
Palkia
dcff4939f4 Translated using Weblate (Spanish)
Currently translated at 80.5% (13105 of 16268 strings)
2023-08-08 17:52:05 +02:00
Raphi
506ce02697 Translated using Weblate (German)
Currently translated at 87.4% (14228 of 16268 strings)
2023-08-06 18:08:28 +02:00
Raphi
95bd17b371 Translated using Weblate (German)
Currently translated at 87.4% (14228 of 16268 strings)
2023-08-06 12:10:47 +02:00
Salif Mehmed
16ef7088a6 Translated using Weblate (Bulgarian)
Currently translated at 0.5% (92 of 16268 strings)
2023-08-06 02:13:38 +02:00
Darren Crowlen
f70b0c8a41 Translated using Weblate (Indonesian)
Currently translated at 100.0% (16268 of 16268 strings)
2023-08-06 02:13:35 +02:00
Nut Andor
d68d45d7c7 Translated using Weblate (German)
Currently translated at 87.4% (14228 of 16268 strings)
2023-08-06 02:13:32 +02:00
Vanka
7af2844305 Translated using Weblate (German)
Currently translated at 87.4% (14228 of 16268 strings)
2023-08-06 02:13:31 +02:00
Raphi
fd8c5166b6 Translated using Weblate (German)
Currently translated at 87.4% (14228 of 16268 strings)
2023-08-06 02:13:31 +02:00
Andreas
2c931b6cd2 Translated using Weblate (German)
Currently translated at 100.0% (612 of 612 strings)
2023-08-06 02:13:26 +02:00
Raphi
210069f8e9 Translated using Weblate (German)
Currently translated at 100.0% (612 of 612 strings)
2023-08-06 02:13:26 +02:00
Darren Crowlen
2453897d31 Translated using Weblate (Indonesian)
Currently translated at 100.0% (16268 of 16268 strings)
2023-08-02 20:53:45 +02:00
Darren Crowlen
dc0e758f64 Translated using Weblate (Indonesian)
Currently translated at 93.5% (15224 of 16268 strings)
2023-08-02 06:52:03 +02:00
Darren Crowlen
ac3bf4a008 Translated using Weblate (Bulgarian)
Currently translated at 0.5% (92 of 16268 strings)
2023-07-31 22:51:24 +02:00
Darren Crowlen
caf16299e7 Translated using Weblate (Indonesian)
Currently translated at 73.8% (12020 of 16268 strings)
2023-07-31 22:51:21 +02:00
Darren Crowlen
cfa19ed9d9 Translated using Weblate (Belarusian)
Currently translated at 0.3% (56 of 16267 strings)
2023-07-31 17:04:04 +02:00
Darren Crowlen
6e5d82f340 Translated using Weblate (Arabic)
Currently translated at 9.6% (1567 of 16267 strings)
2023-07-31 17:04:02 +02:00
Jiri Zizkin Zizka
98456b99e8 Translated using Weblate (Czech)
Currently translated at 89.6% (14581 of 16268 strings)
2023-07-31 17:03:59 +02:00
Darren Crowlen
45c6e571cb Translated using Weblate (Indonesian)
Currently translated at 67.5% (10996 of 16268 strings)
2023-07-31 17:03:56 +02:00
Darren Crowlen
e6c5545cd3 Translated using Weblate (French)
Currently translated at 95.4% (15533 of 16268 strings)
2023-07-31 17:02:31 +02:00
LeJun
402c3ae538 Translated using Weblate (French)
Currently translated at 95.4% (15533 of 16268 strings)
2023-07-31 17:02:30 +02:00
Seven
f6018ab466 Translated using Weblate (Spanish (Argentina))
Currently translated at 0.3% (52 of 16267 strings)
2023-07-27 20:07:11 +02:00
Darren Crowlen
0ff738c85e Translated using Weblate (Indonesian)
Currently translated at 100.0% (612 of 612 strings)
2023-07-27 20:07:09 +02:00
Darren Crowlen
4876e6696d Translated using Weblate (Indonesian)
Currently translated at 21.6% (3518 of 16268 strings)
2023-07-27 20:07:09 +02:00
Palkia
167da0d70f Translated using Weblate (Spanish)
Currently translated at 80.4% (13080 of 16268 strings)
2023-07-27 20:07:00 +02:00
Seven
2748aded3f Translated using Weblate (Spanish)
Currently translated at 80.4% (13080 of 16268 strings)
2023-07-27 20:06:59 +02:00
ilya
103434baa0 Translated using Weblate (Russian)
Currently translated at 100.0% (16268 of 16268 strings)
2023-07-22 21:08:17 +02:00
Palkia
c2da7bcbe2 Translated using Weblate (Spanish)
Currently translated at 79.7% (12981 of 16268 strings)
2023-07-16 06:42:02 +02:00
عادل نصري
c64cf99d88 Translated using Weblate (Arabic)
Currently translated at 100.0% (612 of 612 strings)
2023-07-03 11:52:56 +02:00
Nut.andor
de59d8de8d Revert "worldmap bug check"
This reverts commit 718886ba3a.
2023-06-25 18:43:12 +02:00
Nut.andor
718886ba3a worldmap bug check 2023-06-25 13:27:09 +02:00
عادل نصري
3789f1fd0a Translated using Weblate (Arabic)
Currently translated at 100.0% (612 of 612 strings)
2023-06-24 08:41:19 +02:00
عادل نصري
1e6df02e45 Translated using Weblate (Arabic)
Currently translated at 9.4% (1543 of 16267 strings)
2023-06-24 08:41:18 +02:00
Jiri Zizkin Zizka
886a425aaf Translated using Weblate (Czech)
Currently translated at 89.3% (14542 of 16268 strings)
2023-06-24 08:41:14 +02:00
Jiri Zizkin Zizka
7e24d50c0c Translated using Weblate (Czech)
Currently translated at 89.3% (14535 of 16268 strings)
2023-06-13 07:14:38 +02:00
Jiri Zizkin Zizka
8f7d48c297 Translated using Weblate (Czech)
Currently translated at 89.3% (14531 of 16268 strings)
2023-06-12 12:57:53 +02:00
Jiri Zizkin Zizka
3cc81e2510 Translated using Weblate (Czech)
Currently translated at 89.3% (14528 of 16268 strings)
2023-06-11 11:53:28 +02:00
Nifou
0f0be1c18e Translated using Weblate (French)
Currently translated at 95.3% (15511 of 16268 strings)
2023-06-11 11:53:26 +02:00
A-Nicoladie[FR]
5f689e3d6c Translated using Weblate (French)
Currently translated at 95.3% (15511 of 16268 strings)
2023-06-11 11:53:25 +02:00
Jiri Zizkin Zizka
f04d3e40d4 Translated using Weblate (Czech)
Currently translated at 89.2% (14524 of 16268 strings)
2023-06-08 23:53:02 +02:00
Jiri Zizkin Zizka
68a74e07fa Translated using Weblate (Czech)
Currently translated at 89.2% (14516 of 16268 strings)
2023-06-07 09:53:06 +02:00
A-Nicoladie[FR]
199cdbb787 Translated using Weblate (French)
Currently translated at 93.6% (15227 of 16268 strings)
2023-06-07 09:53:03 +02:00
Jiri Zizkin Zizka
375fcb37a2 Translated using Weblate (Czech)
Currently translated at 89.2% (14514 of 16268 strings)
2023-06-04 01:18:50 +02:00
Rahul Shirke
bc1743dedf Translated using Weblate (Marathi)
Currently translated at 0.2% (40 of 16267 strings)
2023-06-02 15:00:22 +02:00
Rahul Shirke
f7771f79c2 Translated using Weblate (Marathi)
Currently translated at 0.2% (35 of 16267 strings)
2023-06-02 06:53:04 +02:00
gallegonovato
7ebce6b36b Translated using Weblate (Spanish)
Currently translated at 100.0% (612 of 612 strings)
2023-06-02 06:53:01 +02:00
Rahul Shirke
b4240eee3a Added translation using Weblate (Marathi) 2023-06-01 05:20:12 +02:00
Andreas
514acc2b65 Translated using Weblate (German)
Currently translated at 87.0% (14162 of 16268 strings)
2023-05-31 12:51:33 +02:00
Andreas
48bc854c8a Translated using Weblate (German)
Currently translated at 99.8% (611 of 612 strings)
2023-05-31 12:51:30 +02:00
Nut Andor
07391dc6c7 Translated using Weblate (German)
Currently translated at 99.8% (611 of 612 strings)
2023-05-31 12:51:29 +02:00
Jiri Zizkin Zizka
7e905e84b7 Translated using Weblate (Czech)
Currently translated at 89.2% (14513 of 16268 strings)
2023-05-30 00:51:29 +02:00
A-Nicoladie[FR]
200a45f0cb Translated using Weblate (French)
Currently translated at 86.5% (14075 of 16268 strings)
2023-05-30 00:51:25 +02:00
A-Nicoladie[FR]
ebff0554f7 Translated using Weblate (French)
Currently translated at 100.0% (612 of 612 strings)
2023-05-30 00:51:16 +02:00
Jiri Zizkin Zizka
e54487d0b0 Translated using Weblate (Czech)
Currently translated at 88.9% (14478 of 16268 strings)
2023-05-28 09:47:10 +02:00
A-Nicoladie[FR]
96a6e7ab20 Translated using Weblate (French)
Currently translated at 82.2% (13376 of 16268 strings)
2023-05-28 09:47:06 +02:00
A-Nicoladie[FR]
95ff8ceb7e Translated using Weblate (French)
Currently translated at 78.9% (12845 of 16268 strings)
2023-05-27 11:05:28 +02:00
Jiri Zizkin Zizka
5aa4308e27 Translated using Weblate (Czech)
Currently translated at 88.8% (14451 of 16268 strings)
2023-05-26 23:49:05 +02:00
Nico207[FR]
aa892be308 Translated using Weblate (French)
Currently translated at 78.5% (12771 of 16268 strings)
2023-05-26 23:49:02 +02:00
ilya
6971bcf9b5 Translated using Weblate (Russian)
Currently translated at 100.0% (612 of 612 strings)
2023-05-26 23:48:59 +02:00
Nico207[FR]
0581e98b55 Translated using Weblate (French)
Currently translated at 100.0% (612 of 612 strings)
2023-05-26 23:48:58 +02:00
Nico207[FR]
5c2e653cdf Translated using Weblate (French)
Currently translated at 78.3% (12750 of 16268 strings)
2023-05-25 22:04:03 +02:00
aircqsj
aa4cd722d2 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (16268 of 16268 strings)
2023-05-25 14:30:36 +02:00
Nico207[FR]
10b2f37ed8 Translated using Weblate (French)
Currently translated at 78.3% (12749 of 16268 strings)
2023-05-25 14:30:30 +02:00
Nico207[FR]
d7ae2a7082 Translated using Weblate (French)
Currently translated at 95.7% (586 of 612 strings)
2023-05-25 14:30:18 +02:00
Jiri Zizkin Zizka
c246a79726 Translated using Weblate (Czech)
Currently translated at 88.8% (14448 of 16268 strings)
2023-05-25 08:52:20 +02:00
ilya
8e4d75705e Translated using Weblate (Russian)
Currently translated at 100.0% (16268 of 16268 strings)
2023-05-25 08:52:15 +02:00
Jiri Zizkin Zizka
ffdaba2d8c Translated using Weblate (Czech)
Currently translated at 88.4% (14387 of 16268 strings)
2023-05-23 13:53:32 +02:00
aircqsj
97187071af Translated using Weblate (Chinese (Simplified))
Currently translated at 99.9% (16264 of 16268 strings)
2023-05-23 13:53:28 +02:00
ilya
dceab6b729 Translated using Weblate (Russian)
Currently translated at 96.9% (15771 of 16268 strings)
2023-05-23 13:53:24 +02:00
Mateusz Mendel
7771872947 Translated using Weblate (Polish)
Currently translated at 85.3% (13884 of 16268 strings)
2023-05-23 13:53:17 +02:00
Nut.andor
cc123f76d6 whatsnew 2023-05-21 20:12:38 +02:00
Nut.andor
a6ad03c534 next version 8.7
(the former 8.7 version was renamed to 8.6.1)
2023-05-21 19:50:13 +02:00
Nut.andor
45491871e6 version 2023-05-21 18:17:44 +02:00
Nut.andor
8988f37896 potc 2023-05-21 10:33:03 +02:00
Nut.andor
09b4324873 Merge branch 'v0.8.7' 2023-05-21 10:27:32 +02:00
Nut.andor
a5a2764cb4 whatsnew 2023-05-21 10:26:44 +02:00
Nut.andor
6de4d0c374 Merge remote-tracking branch 'hosted.weblate/master' 2023-05-21 10:05:40 +02:00
Nut.andor
48c33d766b fix quest "More rats!" 2023-05-21 10:03:23 +02:00
Nut Andor
22493ee0e9 Translated using Weblate (German)
Currently translated at 86.9% (14148 of 16267 strings)
2023-05-21 10:00:28 +02:00
Nut Andor
8afc3133c6 Translated using Weblate (German)
Currently translated at 99.8% (611 of 612 strings)
2023-05-21 10:00:24 +02:00
Jiri Zizkin Zizka
d0cfa29929 Translated using Weblate (Czech)
Currently translated at 88.2% (14358 of 16267 strings)
2023-05-19 04:13:15 +02:00
Ömer Faruk Çakmak
6a51d462d7 Translated using Weblate (Turkish)
Currently translated at 33.7% (5483 of 16267 strings)
2023-05-18 21:54:14 +02:00
Jiri Zizkin Zizka
4f7cc4942c Translated using Weblate (Czech)
Currently translated at 88.1% (14336 of 16267 strings)
2023-05-15 21:55:38 +02:00
Nut.andor
6631e01b64 next version 8.7 2023-05-14 23:14:04 +02:00
Nut.andor
133dffe330 whatsnew 2023-05-13 22:22:26 +02:00
Nut.andor
6e5d17173f potc 2023-05-13 22:13:10 +02:00
Nut.andor
7463d15159 Merge branch 'v0.8.6' 2023-05-13 22:07:16 +02:00
Nut.andor
beff0f1b71 Merge remote-tracking branch 'hosted.weblate/master' 2023-05-13 22:01:01 +02:00
Nut.andor
867ed36419 Ratdom bugfix content 2023-05-13 21:55:06 +02:00
Joan Josep
387c1e126f Translated using Weblate (Catalan)
Currently translated at 100.0% (612 of 612 strings)
2023-05-13 21:49:32 +02:00
Joan Josep
c9d7cda233 Translated using Weblate (Catalan)
Currently translated at 15.4% (2515 of 16264 strings)
2023-05-13 21:49:31 +02:00
ilya
b75521da59 Translated using Weblate (Russian)
Currently translated at 95.4% (15532 of 16264 strings)
2023-05-12 10:54:34 +02:00
aircqsj
5f9ee8a410 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (612 of 612 strings)
2023-05-11 08:51:18 +02:00
aircqsj
296c3b453c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (16264 of 16264 strings)
2023-05-11 08:51:18 +02:00
aircqsj
6e2da63308 Translated using Weblate (Chinese (Simplified))
Currently translated at 99.9% (16262 of 16264 strings)
2023-05-09 17:53:16 +02:00
ilya
445cd9fe8e Translated using Weblate (Russian)
Currently translated at 95.2% (15496 of 16264 strings)
2023-05-09 17:52:52 +02:00
Erick Ferraz Vieira
a0cc567694 Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.2% (14191 of 16264 strings)
2023-05-09 17:52:48 +02:00
Erick Ferraz Vieira
70d084fba7 Translated using Weblate (Portuguese)
Currently translated at 71.4% (11618 of 16264 strings)
2023-05-09 17:52:45 +02:00
Erick Ferraz Vieira
5236aa0bf9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (612 of 612 strings)
2023-05-09 17:52:42 +02:00
Nut.andor
0eccb511db next version 2023-05-06 03:07:07 +02:00
Kristoffer Grundström
88c17db72b Translated using Weblate (Swedish)
Currently translated at 4.2% (690 of 16264 strings)
2023-05-03 01:48:24 +02:00
ilya
098fb95653 Translated using Weblate (Russian)
Currently translated at 93.1% (15146 of 16264 strings)
2023-05-03 01:48:21 +02:00
ilya
21d6bb7b7d Translated using Weblate (Russian)
Currently translated at 100.0% (612 of 612 strings)
2023-05-03 01:48:18 +02:00
Daniel Stasiak
ce91c5c7c8 Translated using Weblate (Polish)
Currently translated at 100.0% (612 of 612 strings)
2023-05-03 01:48:17 +02:00
Nut.andor
613ab9101e postfixes 2023-05-02 22:26:35 +02:00
Nut.andor
3fbc7cf65f authors + translation% 2023-05-01 20:57:16 +02:00
Nut.andor
dc18289d18 POTC 2023-05-01 03:03:36 +02:00
Nut.andor
6473e231e4 Mikhail basket 2023-05-01 02:56:49 +02:00
Nut.andor
33a61b7a57 Merge branch 'v0.8.5' 2023-05-01 02:09:07 +02:00
Nut.andor
c070a39f7c Ratdom content 2023-05-01 02:00:00 +02:00
Nut.andor
995ec0f697 active devs 2023-05-01 01:58:18 +02:00
Nut.andor
6cba6872c9 version name 2023-05-01 01:17:20 +02:00
Nut.andor
8812f664e7 authors 2023-05-01 01:15:09 +02:00
Nut.andor
d9113b2dab Merge branch 'master' into v0.8.5 2023-05-01 01:03:25 +02:00
Nut.andor
ad0025ba03 Merge remote-tracking branch 'hosted.weblate/master' 2023-05-01 00:56:15 +02:00
Nut.andor
984aa17cc0 Merge branch 'development' into v0.8.5 2023-05-01 00:45:33 +02:00
Seven
4cad05ce6b Translated using Weblate (Spanish (Argentina))
Currently translated at 0.3% (49 of 15108 strings)
2023-04-29 05:05:40 +02:00
Jiri Zizkin Zizka
197ab946be Translated using Weblate (Czech)
Currently translated at 94.5% (14291 of 15109 strings)
2023-04-29 05:05:37 +02:00
Daniel Stasiak
e4cdbc1840 Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-04-29 05:05:34 +02:00
Seven
04f00553ae Translated using Weblate (Spanish)
Currently translated at 84.4% (12763 of 15109 strings)
2023-04-29 05:05:30 +02:00
Daniel Stasiak
0c02902ceb Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-04-26 11:24:53 +02:00
Seven
aba93fb15b Translated using Weblate (Spanish)
Currently translated at 84.3% (12740 of 15109 strings)
2023-04-26 11:24:50 +02:00
Seven
1c8330b99a Translated using Weblate (Spanish)
Currently translated at 100.0% (610 of 610 strings)
2023-04-25 19:50:01 +02:00
Seven
a8de7c2860 Translated using Weblate (Spanish)
Currently translated at 84.2% (12727 of 15109 strings)
2023-04-25 19:50:00 +02:00
Seven
4ca8bbfc12 Translated using Weblate (Spanish)
Currently translated at 84.0% (12700 of 15109 strings)
2023-04-25 18:53:44 +02:00
Daniel Stasiak
a5c004e4d4 Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-04-25 18:19:25 +02:00
Seven
e957e409e0 Translated using Weblate (Spanish)
Currently translated at 83.9% (12684 of 15109 strings)
2023-04-25 18:19:21 +02:00
Jiri Zizkin Zizka
70d6340c11 Translated using Weblate (Czech)
Currently translated at 94.5% (14280 of 15109 strings)
2023-04-22 22:53:01 +02:00
Jiri Zizkin Zizka
bbbb69b175 Translated using Weblate (Czech)
Currently translated at 94.4% (14273 of 15109 strings)
2023-04-21 20:37:11 +02:00
ilya
4d5b7d8667 Translated using Weblate (Russian)
Currently translated at 100.0% (15109 of 15109 strings)
2023-04-21 20:37:08 +02:00
Daniel Stasiak
43da08f57d Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-04-21 20:37:04 +02:00
Jiri Zizkin Zizka
7b97367bdd Translated using Weblate (Czech)
Currently translated at 94.4% (14272 of 15109 strings)
2023-04-19 21:55:23 +02:00
Daniel Stasiak
e6fb647b99 Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-04-19 21:55:21 +02:00
Daniel Stasiak
5e4d7aba18 Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-04-18 10:35:09 +02:00
Daniel Stasiak
a96086b9af Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-04-17 21:14:23 +02:00
Joan Josep
0566cf899c Translated using Weblate (Catalan)
Currently translated at 100.0% (610 of 610 strings)
2023-04-17 12:49:15 +02:00
Jiri Zizkin Zizka
c8e87fb3d0 Translated using Weblate (Czech)
Currently translated at 94.4% (14265 of 15109 strings)
2023-04-17 12:49:14 +02:00
Nut.andor
0a56a0ba86 Credits for external products 2023-04-16 19:58:58 +02:00
Nut.andor
026ccde2ff Credits for external products 2023-04-16 10:33:28 +02:00
Nut.andor
7813994b81 Release Notes 2023-04-16 09:52:04 +02:00
Nut.andor
d3b070844f set high quality filters default to off 2023-04-16 09:18:45 +02:00
Emre Kaynak
7a879f99b1 Translated using Weblate (Turkish)
Currently translated at 97.5% (595 of 610 strings)
2023-04-16 06:51:16 +02:00
Jiri Zizkin Zizka
e810cdb3cb Translated using Weblate (Czech)
Currently translated at 94.3% (14257 of 15109 strings)
2023-04-16 06:51:15 +02:00
Emre Kaynak
398be07c31 Translated using Weblate (Turkish)
Currently translated at 36.1% (5455 of 15109 strings)
2023-04-16 06:51:13 +02:00
sefa mert katiç
6db4c7bb3c Translated using Weblate (Turkish)
Currently translated at 36.0% (5449 of 15109 strings)
2023-04-14 23:53:02 +02:00
Sarah Chiandotto
c402824641 Translated using Weblate (Italian)
Currently translated at 83.4% (12602 of 15109 strings)
2023-04-14 23:53:00 +02:00
Martin
abc020e8f5 Translated using Weblate (German)
Currently translated at 93.6% (14148 of 15109 strings)
2023-04-14 23:52:57 +02:00
sefa mert katiç
82caf260ce Translated using Weblate (Turkish)
Currently translated at 35.8% (5417 of 15109 strings)
2023-04-12 00:53:21 +02:00
Renald Afrenzia
cbcf5ff8ca Translated using Weblate (Indonesian)
Currently translated at 96.0% (586 of 610 strings)
2023-04-11 01:47:48 +02:00
Jiri Zizkin Zizka
39d07bf8a8 Translated using Weblate (Czech)
Currently translated at 94.2% (14245 of 15109 strings)
2023-04-11 01:47:47 +02:00
Lucas Araujo
93174f0d65 Translated using Weblate (Portuguese (Brazil))
Currently translated at 93.7% (14166 of 15109 strings)
2023-04-09 12:53:09 +02:00
Joan Josep
6afbeb9a2a Translated using Weblate (Catalan)
Currently translated at 100.0% (610 of 610 strings)
2023-04-08 11:52:57 +02:00
Lucas Araujo
a7cbd644f3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 93.7% (14164 of 15109 strings)
2023-04-08 11:52:56 +02:00
Joan Josep
f674aff07c Translated using Weblate (Catalan)
Currently translated at 100.0% (610 of 610 strings)
2023-04-07 20:53:14 +02:00
Joan Josep
07b89a288c Translated using Weblate (Catalan)
Currently translated at 16.5% (2493 of 15109 strings)
2023-04-07 20:53:12 +02:00
Joan Josep
0264c418ca Translated using Weblate (Catalan)
Currently translated at 100.0% (610 of 610 strings)
2023-04-05 20:53:10 +02:00
Jiri Zizkin Zizka
494b9c47cc Translated using Weblate (Czech)
Currently translated at 94.1% (14225 of 15109 strings)
2023-04-05 20:53:09 +02:00
Pablo Jeldres
6ff6c6dd6c Translated using Weblate (Spanish)
Currently translated at 83.8% (12670 of 15109 strings)
2023-04-05 20:53:06 +02:00
Jiri Zizkin Zizka
00ab587265 Translated using Weblate (Czech)
Currently translated at 94.1% (14219 of 15109 strings)
2023-04-03 20:41:57 +02:00
Hong Quan
67fa480805 Translated using Weblate (Vietnamese)
Currently translated at 12.4% (76 of 610 strings)
2023-04-02 17:41:39 +02:00
Lucas Araujo
91db56e7a7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 93.7% (14164 of 15109 strings)
2023-04-02 17:41:38 +02:00
Cicy Chen
36d52bedad Added translation using Weblate (Chinese (Literary)) 2023-03-31 06:27:20 +02:00
Hong Quan
c36b676720 Translated using Weblate (Vietnamese)
Currently translated at 1.4% (9 of 610 strings)
2023-03-29 15:40:40 +02:00
Lustheart Faezeiros
5e0a999249 Translated using Weblate (Thai)
Currently translated at 12.7% (78 of 610 strings)
2023-03-29 15:40:40 +02:00
Jiri Zizkin Zizka
8fff4aff60 Translated using Weblate (Czech)
Currently translated at 94.1% (14218 of 15109 strings)
2023-03-29 15:40:39 +02:00
Lustheart Faezeiros
8c5344ff37 Translated using Weblate (Thai)
Currently translated at 1.2% (195 of 15109 strings)
2023-03-29 15:40:36 +02:00
ssantos
91e49b6c4a Translated using Weblate (Portuguese)
Currently translated at 76.8% (11618 of 15109 strings)
2023-03-29 15:40:34 +02:00
Hong Quan
52cfb37b21 Added translation using Weblate (Vietnamese) 2023-03-27 16:12:56 +02:00
DragonChen TW
87886f08bb Translated using Weblate (Chinese (Traditional))
Currently translated at 6.6% (998 of 15109 strings)
2023-03-26 11:32:21 +02:00
Jiri Zizkin Zizka
a31d7f9589 Translated using Weblate (Czech)
Currently translated at 93.9% (14198 of 15109 strings)
2023-03-26 11:32:19 +02:00
DragonChen TW
5600957f32 Translated using Weblate (Chinese (Traditional))
Currently translated at 6.5% (996 of 15109 strings)
2023-03-25 11:39:22 +01:00
ilya
d6840a83c9 Translated using Weblate (Russian)
Currently translated at 100.0% (610 of 610 strings)
2023-03-25 11:39:20 +01:00
DragonChen TW
06fdd39648 Translated using Weblate (Chinese (Traditional))
Currently translated at 6.5% (990 of 15109 strings)
2023-03-23 22:42:13 +01:00
ilya
b5763e7f76 Translated using Weblate (Russian)
Currently translated at 100.0% (610 of 610 strings)
2023-03-23 22:42:10 +01:00
DragonChen TW
75f01f20b9 Translated using Weblate (Chinese (Traditional))
Currently translated at 6.4% (979 of 15109 strings)
2023-03-22 14:12:10 +01:00
Hong Quan
dd366ab69e Translated using Weblate (Vietnamese)
Currently translated at 0.1% (3 of 15108 strings)
2023-03-21 21:24:23 +01:00
DragonChen TW
6ab443ec2c Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (610 of 610 strings)
2023-03-21 21:24:21 +01:00
DragonChen TW
e0056cbf5c Translated using Weblate (Chinese (Traditional))
Currently translated at 6.4% (978 of 15109 strings)
2023-03-21 21:24:20 +01:00
ilya
9f9397e1f3 Translated using Weblate (Russian)
Currently translated at 100.0% (610 of 610 strings)
2023-03-21 21:24:18 +01:00
Hong Quan
d5a43cc7e1 Added translation using Weblate (Vietnamese) 2023-03-20 17:34:05 +01:00
DragonChen TW
408d8aa8b8 Translated using Weblate (Chinese (Traditional))
Currently translated at 97.5% (595 of 610 strings)
2023-03-19 08:40:41 +01:00
DragonChen TW
1e663069e8 Translated using Weblate (Chinese (Traditional))
Currently translated at 6.4% (977 of 15109 strings)
2023-03-19 08:40:40 +01:00
Nut.andor
dbcec1a199 James' PR 54 to master - redirected to branch development
Changed XP death penalty to 20%
Give the player 9 BC by default
2023-03-18 18:53:53 +01:00
Noza
04b4193548 Translated using Weblate (Indonesian)
Currently translated at 17.0% (2580 of 15109 strings)
2023-03-14 19:44:12 +01:00
Jiri Zizkin Zizka
058803184f Translated using Weblate (Czech)
Currently translated at 93.7% (14170 of 15109 strings)
2023-03-10 22:41:53 +01:00
Jiri Zizkin Zizka
5b5912c5bc Translated using Weblate (Czech)
Currently translated at 93.7% (14170 of 15109 strings)
2023-03-09 21:42:07 +01:00
Lacrom
759e632c07 Translated using Weblate (French)
Currently translated at 84.3% (12739 of 15109 strings)
2023-03-08 16:42:04 +01:00
Johny The Pvp God
6e311ecb64 Translated using Weblate (Romanian)
Currently translated at 56.2% (343 of 610 strings)
2023-03-07 00:41:35 +01:00
Jiri Zizkin Zizka
b480fd9173 Translated using Weblate (Czech)
Currently translated at 93.7% (14170 of 15109 strings)
2023-03-07 00:41:35 +01:00
Nut.andor
226459ddb8 skill improve text clarified 2023-03-05 18:05:46 +01:00
BE Kharel
92de033bc8 Translated using Weblate (Arabic)
Currently translated at 9.6% (1459 of 15108 strings)
2023-03-04 11:41:54 +01:00
BE Kharel
faf0dd061c Translated using Weblate (Bulgarian)
Currently translated at 0.5% (89 of 15109 strings)
2023-03-04 11:41:52 +01:00
Jiri Zizkin Zizka
9eaf9ea2ed Translated using Weblate (Czech)
Currently translated at 93.7% (14168 of 15109 strings)
2023-03-04 11:41:50 +01:00
ilya
00c4f77251 Translated using Weblate (Russian)
Currently translated at 100.0% (15109 of 15109 strings)
2023-03-04 11:41:47 +01:00
Nut.andor
96ef9eedbb Content format reference 2023-02-26 01:35:28 +01:00
Nut.andor
a5d94c03e2 Migration of links to git repo AndorsTrailRelease 2023-02-26 01:34:35 +01:00
Nut.andor
9d15d380a3 Migration of links to git repo AndorsTrailRelease 2023-02-26 01:27:10 +01:00
Nut.andor
bff780c837 reformat for better reading 2023-02-26 01:11:40 +01:00
Nut.andor
0c493952c8 Migration of links to git repo AndorsTrailRelease 2023-02-25 23:47:10 +01:00
Jiri Zizkin Zizka
a1f6e1d29c Translated using Weblate (Czech)
Currently translated at 93.5% (14135 of 15109 strings)
2023-02-25 05:40:05 +01:00
aircqsj
fc71f43755 Translated using Weblate (Chinese (Simplified))
Currently translated at 99.9% (15105 of 15109 strings)
2023-02-25 05:40:02 +01:00
Jiri Zizkin Zizka
16afcf4886 Translated using Weblate (Czech)
Currently translated at 93.4% (14114 of 15109 strings)
2023-02-23 02:46:02 +01:00
Daniel Stasiak
b64a3c2109 Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-02-23 02:45:59 +01:00
Casey Malessa
5c0dc66183 Translated using Weblate (Japanese)
Currently translated at 95.4% (582 of 610 strings)
2023-02-23 02:45:56 +01:00
Nut.andor
3047f653bd prep beta 2023-02-21 21:57:48 +01:00
Nut.andor
393a478d13 prep beta 2023-02-21 21:31:14 +01:00
Michael Bæk
560cb326f9 Added translation using Weblate (Danish) 2023-02-20 20:45:04 +01:00
Jiri Zizkin Zizka
3fe2d7260f Translated using Weblate (Czech)
Currently translated at 93.1% (14074 of 15109 strings)
2023-02-20 20:41:50 +01:00
Jiri Zizkin Zizka
2cd4bc7ee5 Translated using Weblate (Czech)
Currently translated at 92.6% (13997 of 15109 strings)
2023-02-15 23:40:12 +01:00
Daniel Stasiak
19468b591d Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-02-15 23:40:09 +01:00
ssantos
903117d32f Translated using Weblate (Portuguese)
Currently translated at 76.4% (11555 of 15109 strings)
2023-02-12 16:40:07 +01:00
Jiri Zizkin Zizka
f5bfc98c62 Translated using Weblate (Czech)
Currently translated at 92.6% (13995 of 15109 strings)
2023-02-10 11:39:33 +01:00
Daniel Stasiak
3274feb1e9 Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-02-10 11:39:30 +01:00
Daniel Stasiak
392b4d8577 Translated using Weblate (Polish)
Currently translated at 100.0% (610 of 610 strings)
2023-02-10 11:39:28 +01:00
Yan Chen
92e4afde4b Translated using Weblate (Esperanto)
Currently translated at 17.5% (107 of 610 strings)
2023-02-08 23:40:01 +01:00
Jiri Zizkin Zizka
0c7724fe33 Translated using Weblate (Czech)
Currently translated at 100.0% (610 of 610 strings)
2023-02-08 23:40:00 +01:00
Jiri Zizkin Zizka
ca5be34fc2 Translated using Weblate (Czech)
Currently translated at 92.5% (13986 of 15109 strings)
2023-02-08 23:40:00 +01:00
Daniel Stasiak
28c3c7a0ec Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-02-08 23:39:57 +01:00
Daniel Stasiak
7f39cf1a6f Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-02-07 15:40:44 +01:00
gallegonovato
365839571a Translated using Weblate (Spanish)
Currently translated at 100.0% (610 of 610 strings)
2023-02-04 20:39:45 +01:00
Daniel Stasiak
5c3a04ca77 Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-02-04 20:39:45 +01:00
Nut.andor
758a580063 changed png 2023-02-04 01:28:09 +01:00
Daniel Stasiak
ad5dbc9f9d Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-02-03 12:00:45 +01:00
Casey Malessa
4a86680928 Translated using Weblate (Japanese)
Currently translated at 92.2% (13933 of 15109 strings)
2023-02-03 12:00:42 +01:00
ilya
ece63cf442 Translated using Weblate (Russian)
Currently translated at 100.0% (15109 of 15109 strings)
2023-02-01 22:45:44 +01:00
Daniel Stasiak
b487140a1b Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-02-01 22:45:42 +01:00
Casey Malessa
ad72bf8895 Translated using Weblate (Japanese)
Currently translated at 92.1% (13928 of 15109 strings)
2023-02-01 22:45:40 +01:00
Nut.andor
5919c429d2 Next version 2023-01-31 22:14:49 +01:00
OMGeeky
1f365b170e improves the gradle tasks for copying the maps and translations
Instead of copying the files to the normal res folder they get copied
to the build folder, which gives the user the hint that they are
generated and should not be edited in this location.

> **Warning**
After pulling this commit both folders '/app/src/main/res' and 'app/src/main/assets'
should be deleted if they exist, since they are no longer ignored (since they don't get used anymore)!
2023-01-31 22:06:34 +01:00
Nut.andor
0b6580e7c9 whatsNew 69 v0.8.4.1 2023-01-31 21:14:03 +01:00
Nut.andor
6efb2b3860 unneeded files bloats the apk 2023-01-31 21:14:03 +01:00
ilya
7ae084073f Translated using Weblate (Russian)
Currently translated at 100.0% (15109 of 15109 strings)
2023-01-31 19:42:48 +01:00
Daniel Stasiak
36df0b1732 Translated using Weblate (Polish)
Currently translated at 91.8% (13884 of 15109 strings)
2023-01-31 19:42:45 +01:00
ilya
b8fb100bd5 Translated using Weblate (Russian)
Currently translated at 100.0% (610 of 610 strings)
2023-01-31 19:42:44 +01:00
Nut.andor
82b904d176 target 31 needed for Google Play + export 2023-01-30 22:04:10 +01:00
OMGeeky
44723978e1 Merge remote-tracking branch 'origin/AndroidX-Migration' into AndroidX-Migration
# Conflicts:
#	AndorsTrail/app/src/main/AndroidManifest.xml
#	AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/util/AndroidStorage.java
#	AndorsTrail/build.gradle
#	AndorsTrail/gradle.properties
#	AndorsTrail/gradle/wrapper/gradle-wrapper.properties
2023-01-30 18:38:37 +01:00
OMGeeky
7c7b4829f6 gradle update 2023-01-30 18:29:06 +01:00
OMGeeky
050b027ff5 AndroidX-Migration 2023-01-30 18:02:23 +01:00
OMGeeky
8fac65e268 Upgrade Gradle & Build target version 2023-01-30 18:00:00 +01:00
Nut.andor
111aca868c hotfix 2023-01-29 22:40:51 +01:00
Nut.andor
2171c16d47 whatsNew 2023-01-29 18:38:37 +01:00
Nut.andor
acd4d84783 potc 2023-01-29 18:25:36 +01:00
Nut.andor
cc25cc97f1 Translations 2023-01-29 18:10:15 +01:00
Nut.andor
93ecebc448 Merge branch 'V0.8.4'
# Conflicts:
#	AndorsTrail/app/src/main/AndroidManifest.xml
#	AndorsTrail/app/src/main/java/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
2023-01-29 17:58:55 +01:00
Nut.andor
f5713a3eb2 Merge remote-tracking branch 'hosted.weblate/master' 2023-01-29 17:51:49 +01:00
Jiri Zizkin Zizka
90001bb4d6 Translated using Weblate (Czech)
Currently translated at 93.0% (13958 of 14998 strings)
2023-01-29 17:48:01 +01:00
Daniel Stasiak
357cab9b1e Translated using Weblate (Polish)
Currently translated at 92.5% (13884 of 14998 strings)
2023-01-29 17:47:58 +01:00
Jiri Zizkin Zizka
5ea272f286 Translated using Weblate (Czech)
Currently translated at 100.0% (602 of 602 strings)
2023-01-28 00:57:24 +01:00
Jiri Zizkin Zizka
0c876bd1c5 Translated using Weblate (Czech)
Currently translated at 92.9% (13934 of 14998 strings)
2023-01-28 00:57:24 +01:00
Daniel Stasiak
0ac2999694 Translated using Weblate (Polish)
Currently translated at 92.5% (13884 of 14998 strings)
2023-01-28 00:57:22 +01:00
Nut.andor
49af3c4b6d some more map fixex 2023-01-24 21:30:37 +01:00
Nut.andor
2a54b31d31 beta version nbr 2023-01-24 21:29:05 +01:00
Nut.andor
64766ce50a potc 2023-01-24 20:47:39 +01:00
Nut.andor
311accfdd3 prep for beta 2023-01-24 20:21:38 +01:00
Nut.andor
2b5bf2fa4a Merge remote-tracking branch 'origin/V0.8.4' into V0.8.4 2023-01-21 13:32:42 +01:00
Nut
64342c96d7 Merge pull request #51 from OMGeeky/import-export-fix-1
Import/Export improvements
2023-01-21 13:31:28 +01:00
OMGeeky
f8649bb0a5 Cleanup 2023-01-21 12:55:16 +01:00
Nut.andor
fde6608c26 translations, copyright 2023-01-21 01:06:55 +01:00
Nut.andor
3f339c14a2 translations, copyright 2023-01-21 00:40:52 +01:00
Nut.andor
922db05c4d Merge remote-tracking branch 'hosted.weblate/master' into V0.8.4 2023-01-21 00:31:16 +01:00
Eduardo
b849de8b66 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.4% (14159 of 14998 strings)
2023-01-21 00:21:55 +01:00
Eduardo
f798b29729 Translated using Weblate (Portuguese)
Currently translated at 76.4% (11470 of 14998 strings)
2023-01-21 00:21:51 +01:00
MARCO ACORTE
e58e7a2588 Translated using Weblate (Italian)
Currently translated at 83.9% (12598 of 14998 strings)
2023-01-21 00:21:50 +01:00
Eduardo
a1ef339831 Translated using Weblate (Portuguese)
Currently translated at 76.4% (11466 of 14998 strings)
2023-01-20 00:59:15 +01:00
gallegonovato
2002d51f6b Translated using Weblate (Spanish)
Currently translated at 100.0% (602 of 602 strings)
2023-01-15 19:50:17 +01:00
Nut.andor
025283b70b ratdom graphics 2023-01-14 00:57:13 +01:00
Predrag
577b1aa034 Translated using Weblate (Serbian)
Currently translated at 1.8% (275 of 14997 strings)
2023-01-13 10:52:03 +01:00
Ömer Faruk Çakmak
da637c0cc8 Translated using Weblate (Turkish)
Currently translated at 36.1% (5416 of 14998 strings)
2023-01-13 10:52:01 +01:00
Vincenzo De Concilio
d026ff690a Translated using Weblate (Italian)
Currently translated at 96.8% (583 of 602 strings)
2023-01-13 10:51:59 +01:00
Predrag
d14ed56669 Added translation using Weblate (Serbian) 2023-01-12 09:31:54 +01:00
Predrag
64cfacb7ff Translated using Weblate (Serbian)
Currently translated at 0.9% (144 of 14997 strings)
2023-01-11 16:55:04 +01:00
Ömer Faruk Çakmak
98a800e070 Translated using Weblate (Turkish)
Currently translated at 100.0% (602 of 602 strings)
2023-01-11 16:55:02 +01:00
Predrag
35219c8e88 Translated using Weblate (Serbian)
Currently translated at 0.5% (89 of 14997 strings)
2023-01-11 16:22:50 +01:00
Predrag
b636cad347 Added translation using Weblate (Serbian) 2023-01-11 15:35:23 +01:00
Ian Lethe (Windseeker)
733328cd29 Translated using Weblate (Korean)
Currently translated at 9.3% (1408 of 14998 strings)
2023-01-09 12:13:27 +01:00
Ian Lethe (Windseeker)
36db28f805 Translated using Weblate (Korean)
Currently translated at 9.3% (1404 of 14998 strings)
2023-01-09 08:52:00 +01:00
Szabó Péter
6d4c1c3c14 Translated using Weblate (Hungarian)
Currently translated at 89.0% (536 of 602 strings)
2023-01-08 13:52:07 +01:00
David Tamas Szabo
eadb95f8e8 Translated using Weblate (Hungarian)
Currently translated at 27.8% (4177 of 14998 strings)
2023-01-08 13:52:07 +01:00
Szabó Péter
014f67f270 Translated using Weblate (Hungarian)
Currently translated at 27.8% (4177 of 14998 strings)
2023-01-08 13:52:06 +01:00
Nut.andor
cd8657adb4 QuickLearner 5% -> 10% 2023-01-08 00:57:36 +01:00
gallegonovato
c007fc4d1c Translated using Weblate (Spanish)
Currently translated at 100.0% (602 of 602 strings)
2023-01-01 19:52:07 +01:00
gallegonovato
7e6c864ba3 Translated using Weblate (Spanish)
Currently translated at 84.3% (12658 of 14998 strings)
2023-01-01 19:52:06 +01:00
Kristoffer Grundström
f2da8f767a Translated using Weblate (Swedish)
Currently translated at 4.5% (689 of 14998 strings)
2022-12-29 13:27:04 +01:00
Nut.andor
bd856541d6 fix Burhczyd 2022-12-25 01:34:00 +01:00
Dan
bdde2176d9 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (602 of 602 strings)
2022-12-15 21:48:06 +01:00
Dan
171893a2c1 Translated using Weblate (Ukrainian)
Currently translated at 9.8% (1478 of 14998 strings)
2022-12-14 13:51:22 +01:00
rabituwu
c6c1d6d03d Translated using Weblate (Filipino)
Currently translated at 1.9% (295 of 14997 strings)
2022-12-12 14:51:24 +01:00
Nut.andor
ec8b114782 fix Burhczyd 2022-12-12 08:52:43 +01:00
Nut.andor
aaecb8ae4a Reformatting json for better reading 2022-12-11 03:56:15 +01:00
OMGeeky
4e2e3b370c formatting 2022-12-08 17:56:41 +01:00
OMGeeky
c14f8f84a0 Import/Export of the worldmap changed to zip files & some clarifications 2022-12-08 00:18:28 +01:00
Lucas Araujo
13c8012710 Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.9% (13935 of 14998 strings)
2022-12-03 16:48:55 +01:00
عادل نصري
3806d77b26 Translated using Weblate (Arabic)
Currently translated at 9.7% (1457 of 14997 strings)
2022-11-30 14:48:56 +01:00
عادل نصري
af94220715 Translated using Weblate (Arabic)
Currently translated at 100.0% (602 of 602 strings)
2022-11-29 20:48:04 +01:00
عادل نصري
af07c47832 Translated using Weblate (Arabic)
Currently translated at 9.7% (1456 of 14997 strings)
2022-11-29 20:48:03 +01:00
Nut.andor
322007e5ac Next version number v0-8-4 68 2022-11-19 00:23:26 +01:00
aircqsj
af5cdb9d49 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (602 of 602 strings)
2022-11-16 13:48:29 +01:00
Nut.andor
3ada8ceaa7 V0.8.3 2022-11-13 00:54:22 +01:00
3raven
68fa0068dc Translated using Weblate (French)
Currently translated at 84.8% (12733 of 14998 strings)
2022-11-09 22:50:27 +01:00
Nut.andor
7b5fc79375 fixes from beta 2022-11-09 07:30:19 +01:00
ilya
5dfa750227 Translated using Weblate (Russian)
Currently translated at 100.0% (602 of 602 strings)
2022-11-08 19:03:26 +01:00
ilya
cbe0773310 Translated using Weblate (Russian)
Currently translated at 100.0% (602 of 602 strings)
2022-11-07 14:03:24 +01:00
Nut.andor
72a19eeb80 fixes from beta 2022-11-06 21:47:25 +01:00
Nut.andor
a993cc5a08 translation state 2022-11-05 19:07:45 +01:00
Nut.andor
83724ba408 haunted content 2022-11-05 02:03:27 +01:00
Nut.andor
a4cd8f7460 Merge branch 'pulls/1829009049/48' 2022-11-05 00:43:35 +01:00
Nut.andor
7a52bbb9f3 Merge remote-tracking branch 'origin/v0.8.3' 2022-11-05 00:40:01 +01:00
Nut.andor
3552ff8a9f translations 2022-11-05 00:31:16 +01:00
Nut.andor
0e081f3319 authors 2022-11-05 00:30:56 +01:00
Nut.andor
1d94519e1c Merge remote-tracking branch 'hosted.weblate/master' into v0.8.3 2022-11-05 00:24:11 +01:00
Hosted Weblate
0bbc6adb4b Merge branch 'origin/master' into Weblate. 2022-11-05 00:21:51 +01:00
Nut.andor
b48ddd4999 whatsnew 2022-11-04 22:44:39 +01:00
Nut.andor
be8dad981d some new / fixed graphics 2022-11-04 22:44:38 +01:00
Nut.andor
f9708f48a4 whatsnew 2022-11-04 22:38:11 +01:00
Nut.andor
155b01bdea some new / fixed graphics 2022-11-04 22:07:10 +01:00
Nut.andor
19810b2099 Import Export 2022-11-04 21:57:27 +01:00
aircqsj
c6886f7a3e Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (14998 of 14998 strings)
2022-11-04 14:07:59 +01:00
OMGeeky
3bea24f9cc Fixed bug where the Logs folder would get exported instead of the Worldmap folder
+cleanup
+API level safety markers
2022-11-03 20:35:37 +01:00
Lacrom
4b8f5c4908 Translated using Weblate (French)
Currently translated at 84.7% (12717 of 14998 strings)
2022-10-29 06:34:15 +02:00
Nut
66d9618b1b Merge pull request #49 from OMGeeky/temp1
Remove ignored files
2022-10-28 22:16:00 +02:00
OMGeeky
488d6347d0 Remove ignore files that are still tracked 2022-10-28 21:39:41 +02:00
OMGeeky
d39d0c9265 AndroidX-Migration 2022-10-28 19:39:14 +02:00
OMGeeky
33fe96dada Upgrade Gradle & Build target version 2022-10-28 19:05:54 +02:00
OMGeeky
51fd0d0994 Add a loading animation. 2022-10-28 18:47:08 +02:00
Lacrom
50833af145 Translated using Weblate (French)
Currently translated at 84.7% (12704 of 14998 strings)
2022-10-28 07:50:32 +02:00
Lacrom
ca7c2388aa Translated using Weblate (French)
Currently translated at 83.2% (12479 of 14998 strings)
2022-10-27 08:48:11 +02:00
Lacrom
8e7d6adca5 Translated using Weblate (French)
Currently translated at 100.0% (582 of 582 strings)
2022-10-27 08:48:09 +02:00
aircqsj
17edb96ff8 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (14998 of 14998 strings)
2022-10-23 06:10:26 +02:00
ilya
3f3869916c Translated using Weblate (Russian)
Currently translated at 100.0% (14998 of 14998 strings)
2022-10-23 06:10:24 +02:00
Elton Viana Gonçalves da Luz
1d2fc7ade7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.8% (13929 of 14998 strings)
2022-10-23 06:10:22 +02:00
OMGeeky
aa84e5a73d Improve import options when the target slot is already used. 2022-10-22 18:10:59 +02:00
OMGeeky
4ecf7d2dda Allow setting strings as message directly & add support for canceling the Dialog 2022-10-22 18:06:25 +02:00
Nut.andor
dca1cb676c New release version numbers and some basic files and settings 2022-10-20 00:14:37 +02:00
Nut.andor
9a4f41eac2 whatsnew 2022-10-19 23:21:43 +02:00
OMGeeky
23012b0d40 Update strings.xml 2022-10-19 22:33:06 +02:00
OMGeeky
916134bd9b Update strings.xml 2022-10-19 22:24:05 +02:00
Nut.andor
1d6777daae fix diamond 2022-10-19 20:14:29 +02:00
OMGeeky
4793751ba8 Improved error/success messages & fixed some bugs in 'Add as New' 2022-10-19 19:16:37 +02:00
OMGeeky
185c0eaf7c Enabling 'Load' button even if no saves exist (for imports) 2022-10-19 19:14:27 +02:00
Daniel Stasiak
4b50d13149 Translated using Weblate (Polish)
Currently translated at 92.5% (13884 of 14998 strings)
2022-10-19 18:07:41 +02:00
이정희
23b58c3e7c Translated using Weblate (Korean)
Currently translated at 9.3% (1403 of 14998 strings)
2022-10-19 18:07:39 +02:00
Ricardo
2d5ebc3b13 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (582 of 582 strings)
2022-10-19 18:07:38 +02:00
OMGeeky
59e2e3035c Hide the import/export options on devices with an Android version below 10 (Q or api level 29) 2022-10-18 22:34:08 +02:00
OMGeeky
6d5ddfdbfa Add option to 'Add as New' on import 2022-10-18 22:15:53 +02:00
OMGeeky
f8ae18721f Allow vertically stacked buttons in Dialogs 2022-10-18 22:13:17 +02:00
Nut.andor
63bc7c3a4e whatsnew and translation status 2022-10-17 23:44:05 +02:00
OMGeeky
8e72763314 Import Export 2022-10-17 23:20:16 +02:00
Nut.andor
9310d53362 potc 2022-10-17 23:15:48 +02:00
Nut.andor
a71dcc13a3 content 0.8.2 2022-10-17 23:06:34 +02:00
Nut.andor
ea95f4ff87 actual translations generated 2022-10-17 22:33:03 +02:00
Nut.andor
f35167d112 Merge remote-tracking branch 'hosted.weblate/master' 2022-10-17 22:27:58 +02:00
Daniel Stasiak
9f935190f2 Translated using Weblate (Polish)
Currently translated at 92.5% (13884 of 14995 strings)
2022-10-16 00:53:44 +02:00
Nut.andor
c11430cf6b beta icon and fileprovider 2022-10-15 22:46:16 +02:00
Daniel Stasiak
8f97a27ab7 Translated using Weblate (Polish)
Currently translated at 92.5% (13884 of 14995 strings)
2022-10-13 15:56:19 +02:00
Anupam Malhotra
9e36f848dc Translated using Weblate (Hindi)
Currently translated at 0.1% (4 of 14994 strings)
2022-10-12 08:50:37 +02:00
ilya
b24d52b1da Translated using Weblate (Russian)
Currently translated at 100.0% (14995 of 14995 strings)
2022-10-12 08:50:34 +02:00
Daniel Stasiak
e2a9307560 Translated using Weblate (Polish)
Currently translated at 92.5% (13884 of 14995 strings)
2022-10-12 08:50:31 +02:00
Nut.andor
e3ac804f61 Merge branch 'pulls/1829009049/47' 2022-10-11 19:20:06 +02:00
Nut.andor
fd504d2df5 Automated copying of files for build as gradle task 2022-10-11 18:58:05 +02:00
OMGeeky
0e615d3f11 Revert accidental wrong branch stuff 2022-10-11 18:31:01 +02:00
Nut.andor
47646457ab (Pull Request #46:) Fixed problems with older Android versions (below Android 7) 2022-10-11 00:00:00 +02:00
OMGeeky
8e393b93d8 Changed lint.xml to include StringFormatMatches and StringFormatInvalid 2022-10-10 15:43:34 +02:00
OMGeeky
3289bd6fb1 Configured lint-baseline file (for automatic builds on github) 2022-10-10 15:32:21 +02:00
OMGeeky
23a331d655 Merge remote-tracking branch 'origin/fix-older-android-versions' into gradle_copy_v1 2022-10-10 15:09:01 +02:00
OMGeeky
112301c444 Create build Action
(cherry picked from commit 462b6059218b1bdc1efa582ea2463d5eb3af1c22)
2022-10-10 15:05:01 +02:00
OMGeeky
f50e4f1d38 Migrate to AndroidX 2022-10-10 14:54:08 +02:00
OMGeeky
d623c22b38 Removed ignored files 2022-10-10 14:45:01 +02:00
OMGeeky
d11bf5b0aa Automated copying of files for build as gradle task 2022-10-10 09:22:18 +02:00
Nut.andor
e30f67e327 fix Master Ale bug 2022-10-09 02:43:01 +02:00
OMGeeky
6946b1f2b3 Fixed problems with older Android versions (below Android 7) 2022-10-09 02:00:52 +02:00
Nut Andor
96a1a5760a Translated using Weblate (German)
Currently translated at 94.0% (14096 of 14995 strings)
2022-10-09 01:15:46 +02:00
Nut.andor
58b802e911 whatsnew 2022-10-08 03:41:50 +02:00
Nut.andor
f9b095565b languages 2022-10-08 03:22:32 +02:00
Nut.andor
19817eb97d Merge branch 'v0.8.2' 2022-10-08 02:58:18 +02:00
Nut.andor
f46d2aedbf content v082 (Sullengard fixes) 2022-10-08 02:56:10 +02:00
Nut.andor
913b651953 Merge remote-tracking branch 'hosted.weblate/master' into v0.8.2 2022-10-08 01:04:59 +02:00
Nut Andor
5283eed28e Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (15016 of 15016 strings)
2022-10-08 01:04:14 +02:00
Nut Andor
deb824d50e Translated using Weblate (German)
Currently translated at 93.8% (14095 of 15016 strings)
2022-10-08 01:04:12 +02:00
Nut.andor
6841d862e4 Merge remote-tracking branch 'hosted.weblate/master' into v0.8.2 2022-10-08 00:43:26 +02:00
saoloer
f94723b0cd Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (15016 of 15016 strings)
2022-10-07 18:18:35 +02:00
Jr
ab41168736 Translated using Weblate (German)
Currently translated at 93.8% (14095 of 15016 strings)
2022-10-07 18:18:33 +02:00
Jr
2d73c4687a Translated using Weblate (German)
Currently translated at 100.0% (582 of 582 strings)
2022-10-07 18:18:30 +02:00
aircqsj
e454deb8b1 Translated using Weblate (Chinese (Simplified))
Currently translated at 99.9% (15015 of 15016 strings)
2022-10-05 20:56:26 +02:00
Lucas Araujo
074891805a Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.7% (13928 of 15016 strings)
2022-10-05 20:56:21 +02:00
Daniel Stasiak
d2d32bc4ed Translated using Weblate (Polish)
Currently translated at 92.4% (13884 of 15016 strings)
2022-10-05 20:56:20 +02:00
Daniel Stasiak
22daeb0c33 Translated using Weblate (Polish)
Currently translated at 100.0% (582 of 582 strings)
2022-10-05 20:56:17 +02:00
Nut.andor
db30253baf v0.8.2 66 2022-10-03 00:47:11 +02:00
Nut.andor
312cb7dec7 ignore workspace.xml 2022-10-03 00:44:00 +02:00
Nut.andor
7befd27951 whatsnew release version 2022-10-02 21:05:38 +02:00
aircqsj
c1e3bfa7ed Translated using Weblate (Chinese (Simplified))
Currently translated at 94.0% (14128 of 15016 strings)
2022-10-02 07:56:33 +02:00
ilya
ddec991082 Translated using Weblate (Russian)
Currently translated at 100.0% (15016 of 15016 strings)
2022-10-02 07:56:02 +02:00
Nut.andor
79e6fe7b65 whatsnew
factionlist bug
2022-10-01 09:18:28 +02:00
ilya
25e36dc535 Translated using Weblate (Russian)
Currently translated at 100.0% (15016 of 15016 strings)
2022-09-30 18:31:04 +02:00
Jiri Zizkin Zizka
83c579a929 Translated using Weblate (Czech)
Currently translated at 100.0% (582 of 582 strings)
2022-09-29 23:16:22 +02:00
Jiri Zizkin Zizka
0c694115ee Translated using Weblate (Czech)
Currently translated at 92.7% (13932 of 15016 strings)
2022-09-29 23:16:22 +02:00
ilya
bf9723b0c1 Translated using Weblate (Russian)
Currently translated at 96.2% (14449 of 15016 strings)
2022-09-29 23:16:20 +02:00
ilya
b81bacb1fe Translated using Weblate (Russian)
Currently translated at 100.0% (582 of 582 strings)
2022-09-29 23:16:17 +02:00
Nut.andor
329acad741 authors 2022-09-28 00:44:23 +02:00
Nut.andor
41ad345a89 languages% 2022-09-28 00:10:39 +02:00
Nut.andor
f79633fb85 POTCPOTC incl. compile 2022-09-27 22:34:06 +02:00
Nut.andor
8071ebe28f fix https 2022-09-27 21:55:59 +02:00
Nut.andor
09ff14bd14 content sullengard 2022-09-27 21:54:13 +02:00
Nut.andor
fee94d4262 typo in authors 2022-09-27 21:50:45 +02:00
Nut.andor
ec14dbe917 compiled languages 2022-09-27 20:04:48 +02:00
Nut.andor
cc1d20aba6 Revert "Auxiliary commit to revert individual files from 4feebd058b2184486001bb77f9b2b4c48947f11d"
This reverts commit f8a9c8d2d40b69f5f4007320365d64127ef93fa4, reversing
changes made to 2dd9f8fcab.
2022-09-27 19:47:37 +02:00
Nut.andor
4feebd058b Merge remote-tracking branch 'hosted.weblate/master'
(an old state that must be reverted again, just to sync weblate)
2022-09-27 19:46:41 +02:00
Hosted Weblate
265469f88e Merge branch 'origin/master' into Weblate. 2022-09-26 23:19:16 +02:00
Nut.andor
2dd9f8fcab Merge commit '2705e1c20875e74aefdc5225e27c7cf8004edc15'
missing translations
2022-09-26 23:17:16 +02:00
Hosted Weblate
50c522c20a Merge branch 'origin/master' into Weblate. 2022-09-26 23:08:11 +02:00
Nut.andor
08dea48010 Revert "missing translations 20220821-2144 ... 20220924-2147"
This reverts commit 76127d9d85.
2022-09-26 23:07:49 +02:00
Hosted Weblate
781ddcf7a7 Merge branch 'origin/master' into Weblate. 2022-09-26 23:04:35 +02:00
Nut.andor
76127d9d85 missing translations 20220821-2144 ... 20220924-2147 2022-09-26 23:03:16 +02:00
Hosted Weblate
e826232611 Merge branch 'origin/master' into Weblate. 2022-09-26 22:42:24 +02:00
Nut.andor
d879629e4a Revert to next prod version 2022-09-26 22:41:03 +02:00
Nut.andor
2e7eb84f88 potc 2022-09-26 00:56:19 +02:00
Nut.andor
10ebaf925f content sullengard 2022-09-26 00:43:37 +02:00
Nut.andor
4c8302b11e compiled languages 2022-09-25 23:46:21 +02:00
Nut.andor
235f1c912d next prod version 0.8.1
authors
2022-09-25 23:46:02 +02:00
Nut.andor
a5721a4a25 gradle to gitignore 2022-09-25 23:15:32 +02:00
Nut.andor
5adbbd61b9 Next version 0.8.1
Burhczyd enhanced
Burhczyd typos
Some map changes,
beta icon
WhatsNew
map_tree_1+2.png changes
2022-09-25 19:46:17 +02:00
Nut.andor
196223bf73 - Large maps bugs
- Debug buttons
2022-09-25 15:36:10 +02:00
Nut.andor
d89a615990 Migration to actual AndroidStudio version - final touches for compile 2022-09-25 15:34:08 +02:00
Nut.andor
863cc1a0bb Preparation for Compile
- change  http://  to  https://
2022-09-25 14:34:23 +02:00
Nut.andor
1cec98249b Migration to actual AndroidStudio version
Copy  ...\AndorsTrailRelease\andors-trail\AndorsTrail  to  a temporary directory, then delete the content except the .git directory.   (C:\AT\AndorsTrailRelease_before_Mig_20220925)

Open Android Studio, any project
New >> Import project

> Import Project, select the AndorsTrail folder from the temporary location
	C:\AT\AndorsTrailRelease_before_Mig_20220925\andors-trail\AndorsTrail
  Destination: C:\AT\AndorsTrailRelease\andors-trail\AndorsTrail

Click next a few times.
It then shows some error about not finding build tools. Below it there should be the option to 'Add google Maven reposiroty and sync project'. Click that option and then 'Do Refactor' (Bottom Left).

In the newly created file 'app/build.gradle'
In line 4 change the compileSdkVersion to 30 (or higher?)
In line 9 change the minSdkVersion to 14 instead of 4
In line 22 change the version from '29.+' to '28.0.0' and the compile at the beginning to implementation
Then Click 'Sync Project with Gradle Files' (icon in top right) that should no longer give errors.
2022-09-25 13:16:57 +02:00
Nut.andor
15ba005062 Merge branch 'pulls/1829009049/37' 2022-09-25 11:56:03 +02:00
Nut.andor
86c1b7496d Merge branch 'pulls/1829009049/36' 2022-09-25 11:55:12 +02:00
Nut.andor
0a194f1e25 Merge branch 'pulls/1829009049/35' 2022-09-25 11:54:58 +02:00
Nut.andor
6ada4c9649 Merge remote-tracking branch 'Weblate_translations/master' 2022-09-25 11:44:21 +02:00
Daniel Stasiak
2705e1c208 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-09-25 11:15:00 +02:00
Andrés Morgensen
3ec7a76ce2 Translated using Weblate (Spanish)
Currently translated at 90.8% (12659 of 13929 strings)
2022-09-17 01:23:39 +02:00
Wahyu Budi Laksono
5ec9a76c65 Translated using Weblate (Indonesian)
Currently translated at 18.4% (2573 of 13929 strings)
2022-09-09 17:23:41 +02:00
Budi
146f62b283 Translated using Weblate (Indonesian)
Currently translated at 18.0% (2520 of 13929 strings)
2022-09-07 21:05:11 +02:00
Neko Nekowazarashi
b9d4e52101 Translated using Weblate (Indonesian)
Currently translated at 17.9% (2507 of 13929 strings)
2022-09-05 16:23:44 +02:00
Kristoffer Grundström
934f578083 Translated using Weblate (Swedish)
Currently translated at 70.5% (410 of 581 strings)
2022-09-03 01:24:47 +02:00
Jiri Zizkin Zizka
0d604f6346 Translated using Weblate (Czech)
Currently translated at 100.0% (13929 of 13929 strings)
2022-09-03 01:24:46 +02:00
Daniel Stasiak
5a555d554c Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-08-31 13:26:13 +02:00
daudiffa
8ccaabfb0d Translated using Weblate (Indonesian)
Currently translated at 17.7% (2478 of 13929 strings)
2022-08-31 13:26:11 +02:00
Artem
fb887cc869 Translated using Weblate (Ukrainian)
Currently translated at 10.6% (1478 of 13929 strings)
2022-08-30 05:45:22 +02:00
Daniel Stasiak
368359af08 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-08-30 05:45:20 +02:00
daudiffa
dc15a9ecde Translated using Weblate (Indonesian)
Currently translated at 17.3% (2412 of 13929 strings)
2022-08-30 05:45:18 +02:00
Artem
1f6db65a45 Translated using Weblate (Ukrainian)
Currently translated at 10.6% (1478 of 13929 strings)
2022-08-28 03:25:16 +02:00
Jiri Zizkin Zizka
0a70cdd852 Translated using Weblate (Czech)
Currently translated at 99.8% (13909 of 13929 strings)
2022-08-28 03:25:14 +02:00
Daniel Stasiak
493f3675dd Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-08-28 03:25:13 +02:00
Marco Santos
7b3b950982 Translated using Weblate (Filipino)
Currently translated at 46.8% (272 of 581 strings)
2022-08-24 06:18:40 +02:00
Jiri Zizkin Zizka
58cb83ee0c Translated using Weblate (Czech)
Currently translated at 99.8% (13903 of 13929 strings)
2022-08-24 06:18:40 +02:00
Daniel Stasiak
97d03a76c5 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-08-24 06:18:39 +02:00
Jiri Zizkin Zizka
d42046dc30 Translated using Weblate (Czech)
Currently translated at 99.7% (13897 of 13929 strings)
2022-08-22 15:58:00 +02:00
Daniel Stasiak
fc6d11b096 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-08-22 15:57:57 +02:00
Нядзьведзь Максім Аляксандравіч
716d0076cd Translated using Weblate (Belarusian)
Currently translated at 0.3% (55 of 13928 strings)
2022-08-13 00:23:04 +02:00
Нядзьведзь Максім Аляксандравіч
e19e73c6a1 Translated using Weblate (Belarusian)
Currently translated at 96.0% (558 of 581 strings)
2022-08-13 00:23:03 +02:00
Нядзьведзь Максім Аляксандравіч
779a2e81fd Added translation using Weblate (Belarusian) 2022-08-11 15:39:44 +02:00
Jiri Zizkin Zizka
cd1e764f92 Translated using Weblate (Czech)
Currently translated at 98.2% (13689 of 13929 strings)
2022-08-11 08:22:11 +02:00
Jiri Zizkin Zizka
71bd56fff4 Translated using Weblate (Czech)
Currently translated at 97.2% (13551 of 13929 strings)
2022-08-08 07:25:21 +02:00
Jiri Zizkin Zizka
0e48faa5b2 Translated using Weblate (Czech)
Currently translated at 96.9% (13500 of 13929 strings)
2022-08-05 06:23:54 +02:00
Andrés Morgensen
9d0f17d2a2 Translated using Weblate (Spanish)
Currently translated at 90.8% (12656 of 13929 strings)
2022-08-05 06:23:52 +02:00
Jiri Zizkin Zizka
67720592f4 Translated using Weblate (Czech)
Currently translated at 96.3% (13426 of 13929 strings)
2022-08-02 22:21:56 +02:00
Daniel Stasiak
ba97e71957 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-07-30 17:21:11 +02:00
mitchell van den Hurk
ee5f525591 Translated using Weblate (Dutch)
Currently translated at 7.7% (1083 of 13929 strings)
2022-07-30 17:21:09 +02:00
Artem
bed80e48b0 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (581 of 581 strings)
2022-07-26 14:19:23 +02:00
Daniel Stasiak
90c8293fd2 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-07-26 14:19:22 +02:00
Daniel Stasiak
6c390c6b39 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-07-25 11:26:50 +02:00
Jiri Zizkin Zizka
9785a8ece9 Translated using Weblate (Czech)
Currently translated at 96.3% (13419 of 13929 strings)
2022-07-24 12:25:05 +02:00
Daniel Stasiak
362c3f8b74 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-07-24 12:25:03 +02:00
Nut.andor
bb707047a0 gradle wrapper 2022-07-24 10:30:41 +02:00
Nut.andor
efe0691f74 gitignore 2022-07-24 10:25:17 +02:00
Daniel Stasiak
30906135e1 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-07-15 01:41:33 +02:00
โกศัลย์ รําประโคน
0a8b598f04 Translated using Weblate (Thai)
Currently translated at 1.3% (195 of 13929 strings)
2022-07-11 11:18:26 +02:00
โกศัลย์ รําประโคน
b7ea7ccaab Translated using Weblate (Thai)
Currently translated at 8.6% (50 of 581 strings)
2022-07-08 18:18:47 +02:00
Anupam Malhotra
6a959f88d4 Translated using Weblate (Punjabi)
Currently translated at 0.1% (7 of 13929 strings)
2022-07-08 18:18:47 +02:00
โกศัลย์ รําประโคน
311c1cb1ae Translated using Weblate (Thai)
Currently translated at 1.2% (170 of 13929 strings)
2022-07-08 18:18:45 +02:00
Daniel Stasiak
7023401f1f Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-07-08 18:18:44 +02:00
ilya
f4e7995b8e Translated using Weblate (Russian)
Currently translated at 100.0% (581 of 581 strings)
2022-07-08 18:18:42 +02:00
Jiri Zizkin Zizka
0712dac81b Translated using Weblate (Czech)
Currently translated at 95.6% (13318 of 13929 strings)
2022-07-02 16:21:10 +02:00
Daniel Stasiak
40693d99b9 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-07-02 16:21:08 +02:00
ilya
8aeb391239 Translated using Weblate (Russian)
Currently translated at 100.0% (581 of 581 strings)
2022-07-02 16:21:06 +02:00
Derik Douglas Jesus da Silva
fc6821ea94 Translated using Weblate (Punjabi)
Currently translated at 24.2% (141 of 581 strings)
2022-06-29 20:21:41 +02:00
Jiri Zizkin Zizka
92a77518ae Translated using Weblate (Czech)
Currently translated at 95.5% (13312 of 13929 strings)
2022-06-29 20:21:40 +02:00
Derik Douglas Jesus da Silva
a345b22116 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (13929 of 13929 strings)
2022-06-29 20:21:39 +02:00
Basan
3d4869bf29 Translated using Weblate (Kurdish (Central))
Currently translated at 0.1% (19 of 13928 strings)
2022-06-26 20:22:38 +02:00
Daniel Stasiak
fa19e69494 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-06-23 10:20:38 +02:00
Jiri Zizkin Zizka
721123fbca Translated using Weblate (Czech)
Currently translated at 95.4% (13298 of 13929 strings)
2022-06-21 17:50:31 +02:00
Lucas Araujo
c0aae189c9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (13929 of 13929 strings)
2022-06-21 17:50:29 +02:00
Daniel Stasiak
c9619ea6a6 Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-06-21 17:50:27 +02:00
Jiri Zizkin Zizka
7a72521cd2 Translated using Weblate (Czech)
Currently translated at 95.2% (13272 of 13929 strings)
2022-06-20 12:23:52 +02:00
Lacrom
e5d43460db Translated using Weblate (French)
Currently translated at 89.1% (12421 of 13929 strings)
2022-06-20 12:23:50 +02:00
Jiri Zizkin Zizka
7743cd803e Translated using Weblate (Czech)
Currently translated at 94.5% (13175 of 13929 strings)
2022-06-17 00:20:30 +02:00
Kevin Rojas Costa Rica
96df9670b3 Translated using Weblate (Spanish)
Currently translated at 90.6% (12625 of 13929 strings)
2022-06-17 00:20:28 +02:00
Nut.andor
5319a611bc keyboard/dpad diagonals and shortcut handling
# Conflicts:
#	AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/InputController.java
#	AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java
2022-06-12 08:29:14 +02:00
Nut.andor
e179d0cdf6 Monsterstatus killcount 2022-06-12 08:08:24 +02:00
Nut.andor
f330a48f51 kill count stats by monster name instead of ID 2022-06-12 08:07:11 +02:00
Nut.andor
e6268fbd14 minor typo 2022-06-12 07:10:05 +02:00
Jiri Zizkin Zizka
ef0ee63d6f Translated using Weblate (Czech)
Currently translated at 93.7% (13056 of 13929 strings)
2022-06-11 01:21:31 +02:00
Jiri Zizkin Zizka
ab0487a900 Translated using Weblate (Czech)
Currently translated at 93.0% (12959 of 13929 strings)
2022-06-07 23:06:53 +02:00
Jiri Zizkin Zizka
4eb9db2532 Translated using Weblate (Czech)
Currently translated at 92.9% (12944 of 13929 strings)
2022-06-06 17:13:45 +02:00
Jiri Zizkin Zizka
c81ee4768c Translated using Weblate (Czech)
Currently translated at 92.6% (12906 of 13929 strings)
2022-06-04 22:29:22 +02:00
عادل نصري
a034f3aced Translated using Weblate (Arabic)
Currently translated at 10.3% (1438 of 13928 strings)
2022-06-04 20:27:24 +02:00
Jiri Zizkin Zizka
d446548863 Translated using Weblate (Czech)
Currently translated at 92.6% (12906 of 13929 strings)
2022-06-04 20:27:22 +02:00
Lacrom
37e66e6bf4 Translated using Weblate (French)
Currently translated at 89.1% (12420 of 13929 strings)
2022-06-04 20:27:20 +02:00
Jiri Zizkin Zizka
a6a456882d Translated using Weblate (Czech)
Currently translated at 92.1% (12842 of 13929 strings)
2022-06-01 06:29:03 +02:00
Jiri Zizkin Zizka
590cb7ed42 Translated using Weblate (Czech)
Currently translated at 91.9% (12805 of 13929 strings)
2022-05-31 00:20:07 +02:00
Jiri Zizkin Zizka
378d8b3185 Translated using Weblate (Czech)
Currently translated at 91.8% (12794 of 13929 strings)
2022-05-29 08:19:55 +02:00
Jiri Zizkin Zizka
69bb657b76 Translated using Weblate (Czech)
Currently translated at 91.6% (12770 of 13929 strings)
2022-05-28 01:19:57 +02:00
Jiri Zizkin Zizka
e012c6473e Translated using Weblate (Czech)
Currently translated at 91.6% (12761 of 13929 strings)
2022-05-26 14:45:19 +02:00
Jiri Zizkin Zizka
1b10ce2796 Translated using Weblate (Czech)
Currently translated at 90.9% (12668 of 13929 strings)
2022-05-23 23:19:36 +02:00
forheinn
98a97ba9d4 Translated using Weblate (Indonesian)
Currently translated at 17.3% (2412 of 13929 strings)
2022-05-23 23:19:34 +02:00
Roman Leo
85e6f1d6ba Translated using Weblate (German)
Currently translated at 100.0% (13929 of 13929 strings)
2022-05-23 23:19:33 +02:00
Artem
c9d28f2023 Translated using Weblate (Ukrainian)
Currently translated at 10.6% (1478 of 13929 strings)
2022-05-19 21:31:44 +02:00
Jiri Zizkin Zizka
2b216ec152 Translated using Weblate (Czech)
Currently translated at 90.7% (12643 of 13929 strings)
2022-05-19 21:31:42 +02:00
Roman Leo
0d203f5962 Translated using Weblate (German)
Currently translated at 99.4% (13858 of 13929 strings)
2022-05-19 21:31:40 +02:00
Никита
2a3400baa9 Translated using Weblate (Ukrainian)
Currently translated at 10.6% (1477 of 13929 strings)
2022-05-19 10:50:35 +02:00
Artem
fadf1a91a0 Translated using Weblate (Ukrainian)
Currently translated at 10.6% (1477 of 13929 strings)
2022-05-19 10:50:34 +02:00
Никита
2c4280bb9c Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1473 of 13929 strings)
2022-05-19 10:46:13 +02:00
Artem
7a3d9ee354 Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1473 of 13929 strings)
2022-05-19 10:46:12 +02:00
Artem
223180f822 Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1470 of 13929 strings)
2022-05-19 10:25:02 +02:00
Никита
27ae0979a0 Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1470 of 13929 strings)
2022-05-19 10:25:01 +02:00
Никита
c8aab8d383 Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1469 of 13929 strings)
2022-05-19 10:21:46 +02:00
Artem
dab311041c Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1469 of 13929 strings)
2022-05-19 10:21:45 +02:00
Никита
2bbb56d2ca Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1468 of 13929 strings)
2022-05-19 10:09:26 +02:00
Artem
4ed9a78b82 Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1468 of 13929 strings)
2022-05-19 10:09:26 +02:00
Artem
b2f6e46959 Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1467 of 13929 strings)
2022-05-19 10:08:33 +02:00
Никита
921c792135 Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1467 of 13929 strings)
2022-05-19 10:08:32 +02:00
Artem
08aba800ca Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1466 of 13929 strings)
2022-05-19 10:06:58 +02:00
Никита
c62c71e64e Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1466 of 13929 strings)
2022-05-19 10:06:57 +02:00
Artem
a7ce535569 Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1463 of 13929 strings)
2022-05-19 10:04:19 +02:00
Никита
55237a6d1b Translated using Weblate (Ukrainian)
Currently translated at 10.5% (1463 of 13929 strings)
2022-05-19 10:04:18 +02:00
Jiri Zizkin Zizka
edd475d765 Translated using Weblate (Czech)
Currently translated at 90.2% (12576 of 13929 strings)
2022-05-18 02:40:56 +02:00
Artem
23d476c51d Translated using Weblate (Ukrainian)
Currently translated at 100.0% (581 of 581 strings)
2022-05-17 22:18:32 +02:00
Никита
a825707748 Translated using Weblate (Ukrainian)
Currently translated at 10.4% (1461 of 13929 strings)
2022-05-17 22:18:32 +02:00
Artem
072e75e0fb Translated using Weblate (Ukrainian)
Currently translated at 10.4% (1461 of 13929 strings)
2022-05-17 22:18:31 +02:00
Jiri Zizkin Zizka
68c88c424e Translated using Weblate (Czech)
Currently translated at 90.1% (12555 of 13929 strings)
2022-05-17 22:18:30 +02:00
Artem
6ef7703cc9 Translated using Weblate (Ukrainian)
Currently translated at 10.4% (1459 of 13929 strings)
2022-05-16 23:07:37 +02:00
Никита
2047d2230f Translated using Weblate (Ukrainian)
Currently translated at 10.4% (1459 of 13929 strings)
2022-05-16 23:07:37 +02:00
Никита
0c938b1505 Translated using Weblate (Ukrainian)
Currently translated at 10.4% (1458 of 13929 strings)
2022-05-16 23:04:47 +02:00
Artem
559e01e6e9 Translated using Weblate (Ukrainian)
Currently translated at 10.4% (1458 of 13929 strings)
2022-05-16 23:04:46 +02:00
Никита
fa851fd05d Translated using Weblate (Ukrainian)
Currently translated at 10.4% (1457 of 13929 strings)
2022-05-16 23:04:26 +02:00
Artem
b812e7f3c2 Translated using Weblate (Ukrainian)
Currently translated at 10.4% (1457 of 13929 strings)
2022-05-16 23:04:25 +02:00
Jiri Zizkin Zizka
bd56757e7e Translated using Weblate (Czech)
Currently translated at 89.6% (12488 of 13929 strings)
2022-05-15 14:51:25 +02:00
Tanja Orme
ec8d851211 Translated using Weblate (Esperanto)
Currently translated at 0.7% (99 of 13928 strings)
2022-05-14 13:15:56 +02:00
Tanja Orme
81700155e6 Translated using Weblate (Esperanto)
Currently translated at 18.4% (107 of 581 strings)
2022-05-14 13:15:54 +02:00
Jiri Zizkin Zizka
6e12754d47 Translated using Weblate (Czech)
Currently translated at 89.3% (12446 of 13929 strings)
2022-05-08 18:34:57 +02:00
Lucas Araujo
0459c66b3d Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (13929 of 13929 strings)
2022-05-08 18:34:55 +02:00
Kerem Yavuz Kaya
daf4da54c4 Translated using Weblate (Turkish)
Currently translated at 38.6% (5381 of 13929 strings)
2022-05-07 05:12:13 +02:00
Juan Manuel Alcantar Ramirez
e809006eba Added translation using Weblate (Latin) 2022-05-05 13:44:35 +02:00
Jiri Zizkin Zizka
1775fa3ae1 Translated using Weblate (Czech)
Currently translated at 89.3% (12440 of 13929 strings)
2022-05-05 13:32:51 +02:00
Daniel Stasiak
bf49318d9b Translated using Weblate (Polish)
Currently translated at 99.6% (13886 of 13929 strings)
2022-05-05 13:32:48 +02:00
Aji
927fafd708 Translated using Weblate (Indonesian)
Currently translated at 17.2% (2404 of 13929 strings)
2022-05-05 13:32:45 +02:00
Jiri Zizkin Zizka
2afd109e4a Translated using Weblate (Czech)
Currently translated at 87.5% (12189 of 13929 strings)
2022-04-29 10:38:21 +02:00
Jiri Zizkin Zizka
765617ea52 Translated using Weblate (Czech)
Currently translated at 87.2% (12152 of 13929 strings)
2022-04-28 22:09:25 +02:00
Jiri Zizkin Zizka
35cf007569 Translated using Weblate (Czech)
Currently translated at 87.1% (12137 of 13929 strings)
2022-04-27 04:50:07 +02:00
Jiri Zizkin Zizka
54f358858b Translated using Weblate (Czech)
Currently translated at 87.1% (12136 of 13929 strings)
2022-04-25 13:10:54 +02:00
Jiri Zizkin Zizka
6cd22e3f63 Translated using Weblate (Czech)
Currently translated at 87.0% (12121 of 13929 strings)
2022-04-24 22:14:47 +02:00
Jiri Zizkin Zizka
a2cef1376d Translated using Weblate (Czech)
Currently translated at 86.0% (11984 of 13929 strings)
2022-04-23 16:33:23 +02:00
Jiri Zizkin Zizka
8d8ae8227b Translated using Weblate (Czech)
Currently translated at 85.4% (11908 of 13929 strings)
2022-04-23 00:41:20 +02:00
Lucas Araujo
cdefb95056 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-23 00:41:18 +02:00
徐雪开
1f3a7e147f Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (581 of 581 strings)
2022-04-22 14:58:45 +02:00
徐雪开
062f2157c0 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-22 14:58:44 +02:00
徐雪开
1a2087b2d3 Translated using Weblate (Chinese (Simplified))
Currently translated at 99.6% (13886 of 13929 strings)
2022-04-22 00:45:41 +02:00
Jiri Zizkin Zizka
f725349590 Translated using Weblate (Czech)
Currently translated at 85.4% (11905 of 13929 strings)
2022-04-21 21:47:00 +02:00
ilya
fc3c070a96 Translated using Weblate (Russian)
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-21 21:46:58 +02:00
Jiri Zizkin Zizka
e06f10ca41 Translated using Weblate (Czech)
Currently translated at 84.7% (11811 of 13929 strings)
2022-04-19 18:12:13 +02:00
ilya
062469c955 Translated using Weblate (Russian)
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-19 18:12:10 +02:00
Daniel Stasiak
c780518fc1 Translated using Weblate (Polish)
Currently translated at 99.6% (13884 of 13929 strings)
2022-04-19 18:12:08 +02:00
Meiru
a88d346325 Translated using Weblate (Japanese)
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-19 18:12:06 +02:00
antonpaidoslalin
fb7af524e8 Translated using Weblate (Galician)
Currently translated at 9.8% (57 of 581 strings)
2022-04-18 01:11:55 +02:00
Jiri Zizkin Zizka
e6dfa8db68 Translated using Weblate (Czech)
Currently translated at 83.8% (11680 of 13929 strings)
2022-04-18 01:11:53 +02:00
Oleg
e491ab4abf Translated using Weblate (Russian)
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-18 01:11:51 +02:00
ilya
a61038c74b Translated using Weblate (Russian)
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-18 01:11:51 +02:00
Derik Douglas Jesus da Silva
bfc843f496 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-18 01:11:49 +02:00
Daniel Stasiak
696d1f086e Translated using Weblate (Polish)
Currently translated at 99.5% (13861 of 13929 strings)
2022-04-18 01:11:47 +02:00
Meiru
7f0a9a1588 Translated using Weblate (Japanese)
Currently translated at 99.9% (13928 of 13929 strings)
2022-04-18 01:11:44 +02:00
Виталий
07568b15d0 Translated using Weblate (Russian)
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-16 15:01:36 +02:00
ilya
17461da8f3 Translated using Weblate (Russian)
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-16 15:01:35 +02:00
Виталий
964ec8a276 Translated using Weblate (Russian)
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-16 15:00:21 +02:00
ilya
7d65ddf25d Translated using Weblate (Russian)
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-16 15:00:20 +02:00
Виталий
2661badb73 Translated using Weblate (Russian)
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-16 14:59:44 +02:00
ilya
9a3fbdf7d9 Translated using Weblate (Russian)
Currently translated at 100.0% (13929 of 13929 strings)
2022-04-16 14:59:44 +02:00
Nut.andor
7c4ba2b2c7 release notes 2022-04-16 08:07:37 +02:00
Nut.andor
0368c112ad title translation fixed 2022-04-16 07:11:17 +02:00
Nut Andor
1cd759d12a Translated using Weblate (German)
Currently translated at 100.0% (581 of 581 strings)
2022-04-16 07:06:57 +02:00
Nut.andor
0d73255de0 Uncompressed release version 2022-04-16 06:43:34 +02:00
Nut.andor
7f0499c701 rename to prod version build, without debuggable and read_log 2022-04-15 16:50:31 +02:00
Nut.andor
09656bc4bf potc 2022-04-15 12:48:41 +02:00
Nut.andor
5ab945b739 potc 2022-04-15 12:45:41 +02:00
Nut.andor
f47d395b94 translation status, without debug 2022-04-15 12:30:59 +02:00
Nut.andor
dba2900213 new content (bug fixes) 2022-04-15 11:58:33 +02:00
Nut.andor
cb8ef5e790 Merge remote-tracking branch 'AndorsTrailRelease/master' 2022-04-15 11:48:54 +02:00
Nut.andor
426f4078a9 Merge remote-tracking branch 'Weblate_translations/master'
# Conflicts:
#	AndorsTrail/assets/translation/de.po
#	AndorsTrail/assets/translation/fr.po
#	AndorsTrail/assets/translation/ja.po
#	AndorsTrail/assets/translation/pt_BR.po
#	AndorsTrail/assets/translation/ru.po
2022-04-15 11:43:51 +02:00
Jiri Zizkin Zizka
4fdbd3d330 Translated using Weblate (Czech)
Currently translated at 84.0% (11631 of 13843 strings)
2022-04-15 11:26:47 +02:00
Lu Xu
384c1b9c0d Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2022-04-15 11:26:46 +02:00
Derik Douglas Jesus da Silva
075a99f657 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.1% (13730 of 13843 strings)
2022-04-15 11:26:44 +02:00
Jiri Zizkin Zizka
b9f426cc9b Translated using Weblate (Czech)
Currently translated at 83.9% (11616 of 13843 strings)
2022-04-14 16:04:02 +02:00
Derik Douglas Jesus da Silva
49a613ce0b Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.1% (13728 of 13843 strings)
2022-04-14 16:04:00 +02:00
Jiri Zizkin Zizka
a3cb939253 Translated using Weblate (Czech)
Currently translated at 83.6% (11577 of 13843 strings)
2022-04-13 15:55:21 +02:00
Lucas Araujo
824c0579c9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.0% (13706 of 13843 strings)
2022-04-13 15:55:09 +02:00
MARCO ACORTE
44902f35ea Translated using Weblate (Italian)
Currently translated at 90.8% (12570 of 13843 strings)
2022-04-13 15:55:07 +02:00
Jiri Zizkin Zizka
ca25d413ad Translated using Weblate (Czech)
Currently translated at 82.6% (11447 of 13843 strings)
2022-04-12 03:16:05 +02:00
Lucas Araujo
9d33993d61 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.2% (13600 of 13843 strings)
2022-04-12 03:16:03 +02:00
Jiri Zizkin Zizka
be48ef66f1 Translated using Weblate (Czech)
Currently translated at 82.5% (11431 of 13843 strings)
2022-04-11 08:11:08 +02:00
ilya
2062be506f Translated using Weblate (Russian)
Currently translated at 100.0% (13843 of 13843 strings)
2022-04-10 00:15:00 +02:00
ilya
0eecde9ee4 Translated using Weblate (Russian)
Currently translated at 98.9% (13702 of 13843 strings)
2022-04-09 21:49:21 +02:00
ilya
d4cbed9d35 Translated using Weblate (Russian)
Currently translated at 98.9% (13701 of 13843 strings)
2022-04-09 21:49:19 +02:00
Oleg
e33e75846c Translated using Weblate (Russian)
Currently translated at 98.9% (13701 of 13843 strings)
2022-04-09 21:49:19 +02:00
Nut.andor
5378279d46 v0.7.17dev
package="com.gpl.rpg.AndorsTrail_beta1"
2022-04-08 23:30:14 +02:00
Nut.andor
cc6a573ef0 next version,
together with critical bugfix
2022-04-08 21:11:52 +02:00
Roman Leo
2821c2b8fc Translated using Weblate (German)
Currently translated at 100.0% (13843 of 13843 strings)
2022-04-08 07:24:44 +02:00
Jiri Zizkin Zizka
0b72a1a603 Translated using Weblate (Czech)
Currently translated at 82.5% (11423 of 13843 strings)
2022-04-07 09:35:03 +02:00
Roman Leo
f19314713f Translated using Weblate (German)
Currently translated at 100.0% (13843 of 13843 strings)
2022-04-07 09:35:01 +02:00
Jiri Zizkin Zizka
370a4fedd7 Translated using Weblate (Czech)
Currently translated at 82.3% (11402 of 13843 strings)
2022-04-06 08:28:57 +02:00
Roman Leo
57acd95706 Translated using Weblate (German)
Currently translated at 100.0% (13843 of 13843 strings)
2022-04-06 08:28:55 +02:00
Jiri Zizkin Zizka
f5a93e170c Translated using Weblate (Czech)
Currently translated at 81.9% (11348 of 13843 strings)
2022-04-05 01:12:10 +02:00
Jiri Zizkin Zizka
53cb4853e3 Translated using Weblate (Czech)
Currently translated at 81.7% (11319 of 13843 strings)
2022-04-04 03:48:08 +02:00
ilya
8e27d57868 Translated using Weblate (Russian)
Currently translated at 95.8% (13267 of 13843 strings)
2022-04-04 03:48:06 +02:00
Roman Leo
05107b2f55 Translated using Weblate (German)
Currently translated at 100.0% (13843 of 13843 strings)
2022-04-04 03:48:03 +02:00
Kristoffer Grundström
3a4d5ae9c5 Translated using Weblate (Swedish)
Currently translated at 4.9% (684 of 13843 strings)
2022-04-03 13:14:18 +02:00
Oleg
0875850589 Translated using Weblate (Russian)
Currently translated at 95.7% (13254 of 13843 strings)
2022-04-02 20:41:16 +02:00
Roman Leo
d2b86b502a Translated using Weblate (German)
Currently translated at 100.0% (13843 of 13843 strings)
2022-04-02 20:41:14 +02:00
Nut.andor
7447df12cf next dev version 17 (64) 2022-04-02 14:37:12 +02:00
Nut.andor
ba34e16290 Merge remote-tracking branch 'local_AndorsTrailRelease/master'
# Conflicts:
#	AndorsTrail/res/values/loadresources.xml
2022-04-02 14:34:45 +02:00
Jiri Zizkin Zizka
1998d1ec90 Translated using Weblate (Czech)
Currently translated at 81.6% (11305 of 13843 strings)
2022-04-02 09:14:33 +02:00
Jiri Zizkin Zizka
3c2a70fdeb Translated using Weblate (Czech)
Currently translated at 81.4% (11281 of 13843 strings)
2022-03-30 09:02:27 +02:00
Jiri Zizkin Zizka
d94f7a5907 Translated using Weblate (Czech)
Currently translated at 81.3% (11268 of 13843 strings)
2022-03-28 22:21:39 +02:00
Oleg
97ad665ac0 Translated using Weblate (Russian)
Currently translated at 95.4% (13209 of 13843 strings)
2022-03-28 22:21:38 +02:00
Roman Leo
2f758b6e4a Translated using Weblate (German)
Currently translated at 100.0% (13843 of 13843 strings)
2022-03-28 22:21:36 +02:00
Nut.andor
b4e446e8d0 Merge remote-tracking branch 'Andors-Trail/delivery' 2022-03-27 15:37:55 +02:00
Nut.andor
63dfff7f7a release 2022-03-27 15:35:53 +02:00
Jiri Zizkin Zizka
3369b135d7 Translated using Weblate (Czech)
Currently translated at 81.3% (11259 of 13843 strings)
2022-03-27 01:52:05 +01:00
Oleg
70a9b45591 Translated using Weblate (Russian)
Currently translated at 95.4% (13208 of 13843 strings)
2022-03-27 01:52:03 +01:00
Roman Leo
71b9ac54b1 Translated using Weblate (French)
Currently translated at 89.0% (12324 of 13843 strings)
2022-03-27 01:51:59 +01:00
Roman Leo
74ac5289dd Translated using Weblate (German)
Currently translated at 100.0% (13843 of 13843 strings)
2022-03-27 01:51:58 +01:00
Roman Leo
01bd80db53 Translated using Weblate (German)
Currently translated at 100.0% (581 of 581 strings)
2022-03-27 01:51:54 +01:00
Jiri Zizkin Zizka
a1bcbf7c7a Translated using Weblate (Czech)
Currently translated at 81.1% (11240 of 13843 strings)
2022-03-25 19:10:45 +01:00
Roman Leo
2b6e4606b2 Translated using Weblate (German)
Currently translated at 100.0% (13843 of 13843 strings)
2022-03-25 19:10:43 +01:00
Roman Leo
c65811b89f Translated using Weblate (German)
Currently translated at 100.0% (581 of 581 strings)
2022-03-25 19:10:41 +01:00
Roman Leo
15450b8b8b Translated using Weblate (Spanish)
Currently translated at 99.6% (579 of 581 strings)
2022-03-24 18:57:37 +01:00
Jiri Zizkin Zizka
f2d4fb6b88 Translated using Weblate (Czech)
Currently translated at 81.1% (11232 of 13843 strings)
2022-03-24 18:57:37 +01:00
Roman Leo
5735df8a6b Translated using Weblate (German)
Currently translated at 100.0% (13843 of 13843 strings)
2022-03-24 18:57:35 +01:00
Roman Leo
19b1f19535 Translated using Weblate (German)
Currently translated at 100.0% (13843 of 13843 strings)
2022-03-23 19:22:06 +01:00
Roman Leo
28c3f5228d Translated using Weblate (German)
Currently translated at 99.8% (13821 of 13843 strings)
2022-03-23 17:04:15 +01:00
Oleg
b5c4d77ad8 Translated using Weblate (Russian)
Currently translated at 92.7% (12833 of 13843 strings)
2022-03-23 17:03:22 +01:00
Roman Leo
60fae8adde Translated using Weblate (German)
Currently translated at 99.8% (13817 of 13843 strings)
2022-03-23 17:03:20 +01:00
Oleg
97810e12f0 Translated using Weblate (Russian)
Currently translated at 92.4% (12804 of 13843 strings)
2022-03-23 15:26:21 +01:00
Jiri Zizkin Zizka
13f01c5f77 Translated using Weblate (Czech)
Currently translated at 80.3% (11120 of 13843 strings)
2022-03-23 15:26:09 +01:00
Oleg
36424f1888 Translated using Weblate (Russian)
Currently translated at 92.4% (12803 of 13843 strings)
2022-03-23 15:26:07 +01:00
Roman Leo
003aea1aeb Translated using Weblate (German)
Currently translated at 97.5% (13504 of 13843 strings)
2022-03-23 15:26:04 +01:00
Jiri Zizkin Zizka
2d61fcd3ef Translated using Weblate (Czech)
Currently translated at 79.8% (11059 of 13843 strings)
2022-03-22 00:01:57 +01:00
Oleg
ccd012b085 Translated using Weblate (Russian)
Currently translated at 92.0% (12740 of 13843 strings)
2022-03-22 00:01:55 +01:00
Roman Leo
933dcb94af Translated using Weblate (German)
Currently translated at 94.8% (13124 of 13843 strings)
2022-03-22 00:01:52 +01:00
Roman Leo
15899693eb Translated using Weblate (German)
Currently translated at 100.0% (581 of 581 strings)
2022-03-22 00:01:48 +01:00
Ido Shdaimah
663c9d68d2 Translated using Weblate (Hebrew)
Currently translated at 1.5% (215 of 13842 strings)
2022-03-19 23:35:27 +01:00
Jiri Zizkin Zizka
f058351e78 Translated using Weblate (Czech)
Currently translated at 79.7% (11033 of 13843 strings)
2022-03-19 23:35:25 +01:00
cheese1
2b591c4d3d Translated using Weblate (German)
Currently translated at 91.5% (12680 of 13843 strings)
2022-03-19 23:35:22 +01:00
Jiri Zizkin Zizka
dd92baa08a Translated using Weblate (Czech)
Currently translated at 79.2% (10966 of 13843 strings)
2022-03-16 21:58:34 +01:00
이정희
0a4656054d Translated using Weblate (Korean)
Currently translated at 10.0% (1397 of 13843 strings)
2022-03-16 15:59:08 +01:00
이정희
804ae432e3 Translated using Weblate (Korean)
Currently translated at 100.0% (581 of 581 strings)
2022-03-15 09:54:38 +01:00
Jiri Zizkin Zizka
bba9d927e2 Translated using Weblate (Czech)
Currently translated at 79.1% (10960 of 13843 strings)
2022-03-15 09:54:38 +01:00
Luiz-bro
e9419f09f1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.9% (13559 of 13843 strings)
2022-03-15 09:54:36 +01:00
이정희
f0a4f06db4 Translated using Weblate (Korean)
Currently translated at 10.0% (1397 of 13843 strings)
2022-03-15 09:54:34 +01:00
Jiri Zizkin Zizka
2f02728612 Translated using Weblate (Czech)
Currently translated at 78.8% (10916 of 13843 strings)
2022-03-13 00:59:10 +01:00
Jiri Zizkin Zizka
f4c366cb03 Translated using Weblate (Czech)
Currently translated at 78.8% (10915 of 13843 strings)
2022-03-10 01:58:50 +01:00
Nee Chee
e6d6892904 Translated using Weblate (Czech)
Currently translated at 78.7% (10897 of 13843 strings)
2022-03-08 18:34:53 +01:00
aircqsj
df13484872 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2022-03-08 18:34:51 +01:00
Meiru
86f4bd2e7e Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-03-08 18:34:49 +01:00
DragonChen TW
d04e8eebb7 Translated using Weblate (Chinese (Traditional))
Currently translated at 6.9% (968 of 13843 strings)
2022-03-07 17:58:14 +01:00
Jiri Zizkin Zizka
13ae770c1b Translated using Weblate (Czech)
Currently translated at 78.6% (10888 of 13843 strings)
2022-03-04 22:56:44 +01:00
Lucas Araujo
5b38d848e0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.5% (13506 of 13843 strings)
2022-03-04 22:56:42 +01:00
Jiri Zizkin Zizka
73838a501b Translated using Weblate (Czech)
Currently translated at 78.2% (10831 of 13843 strings)
2022-03-01 10:51:49 +01:00
Jiri Zizkin Zizka
e7365bc325 Translated using Weblate (Czech)
Currently translated at 78.1% (10816 of 13843 strings)
2022-02-28 11:35:32 +01:00
Meiru
181abaaad2 Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-02-28 11:35:30 +01:00
Jiri Zizkin Zizka
c6ca78f86b Translated using Weblate (Czech)
Currently translated at 77.9% (10796 of 13843 strings)
2022-02-26 07:57:06 +01:00
Reza Almanda
65dc7ea0e9 Translated using Weblate (Indonesian)
Currently translated at 16.7% (2325 of 13843 strings)
2022-02-26 07:57:04 +01:00
Jiri Zizkin Zizka
2386afe711 Translated using Weblate (Czech)
Currently translated at 77.9% (10792 of 13843 strings)
2022-02-24 15:25:33 +01:00
MARCO ACORTE
4b10abe018 Translated using Weblate (Italian)
Currently translated at 90.6% (12554 of 13843 strings)
2022-02-23 07:55:32 +01:00
MARCO ACORTE
c83e36fe2d Translated using Weblate (Italian)
Currently translated at 100.0% (581 of 581 strings)
2022-02-22 11:55:13 +01:00
MARCO ACORTE
e6200487d0 Translated using Weblate (Italian)
Currently translated at 90.8% (12578 of 13843 strings)
2022-02-22 11:40:59 +01:00
Jiri Zizkin Zizka
aa1ae1622a Translated using Weblate (Czech)
Currently translated at 77.8% (10770 of 13843 strings)
2022-02-22 08:52:12 +01:00
Jiri Zizkin Zizka
8231b6db06 Translated using Weblate (Czech)
Currently translated at 77.6% (10745 of 13843 strings)
2022-02-20 09:22:50 +01:00
Lucas Araujo
37c7575279 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.1% (13451 of 13843 strings)
2022-02-20 09:22:48 +01:00
عادل نصري
6985cecafb Translated using Weblate (Arabic)
Currently translated at 10.1% (1401 of 13842 strings)
2022-02-18 22:31:13 +01:00
hello123
e86d053b6a Translated using Weblate (Chinese (Traditional))
Currently translated at 6.9% (958 of 13843 strings)
2022-02-18 22:31:11 +01:00
Jiri Zizkin Zizka
2e65700f81 Translated using Weblate (Czech)
Currently translated at 77.5% (10738 of 13843 strings)
2022-02-18 22:31:09 +01:00
عادل نصري
a2514cc58f Translated using Weblate (Arabic)
Currently translated at 10.0% (1391 of 13842 strings)
2022-02-18 12:07:23 +01:00
hello123
b3e8ef7927 Translated using Weblate (Chinese (Traditional))
Currently translated at 6.1% (850 of 13843 strings)
2022-02-18 12:07:21 +01:00
Jiri Zizkin Zizka
37d204b93d Translated using Weblate (Czech)
Currently translated at 77.5% (10736 of 13843 strings)
2022-02-18 12:07:06 +01:00
Nut.andor
9d76227d70 Merge remote-tracking branch 'Andors-Trail/delivery' 2022-02-17 21:04:37 +01:00
Nut.andor
f7039a855a beta 2022-02-17 21:00:45 +01:00
عادل نصري
d53c91b19a Translated using Weblate (Arabic)
Currently translated at 9.4% (1307 of 13842 strings)
2022-02-17 19:29:01 +01:00
عادل نصري
b48e1aa254 Translated using Weblate (Arabic)
Currently translated at 9.2% (1277 of 13842 strings)
2022-02-17 16:01:42 +01:00
Jiri Zizkin Zizka
fc773b5721 Translated using Weblate (Czech)
Currently translated at 77.4% (10720 of 13843 strings)
2022-02-17 16:01:40 +01:00
Lucas Araujo
b956f4ca93 Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.8% (13409 of 13843 strings)
2022-02-17 16:01:38 +01:00
Jiri Zizkin Zizka
99c4c3a6f4 Translated using Weblate (Czech)
Currently translated at 77.4% (10716 of 13843 strings)
2022-02-17 00:08:37 +01:00
Lucas Araujo
2dfadcaa8f Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.6% (13373 of 13843 strings)
2022-02-17 00:08:35 +01:00
Jiri Zizkin Zizka
d52622b4fd Translated using Weblate (Czech)
Currently translated at 77.2% (10691 of 13843 strings)
2022-02-16 15:56:00 +01:00
Nut.andor
2334a91a5a Potsc + export (loadressource) 2022-02-15 23:58:11 +01:00
Nut.andor
4bb9baa662 potc 2022-02-15 23:56:49 +01:00
Nut.andor
d89bce96d5 Merge remote-tracking branch 'Andors-Trail/delivery' 2022-02-15 23:45:26 +01:00
Nut.andor
aaac6ae3b5 close and merge to release master 2022-02-15 23:42:45 +01:00
Nut.andor
ade84de6e9 new translations from weblate 2022-02-15 23:36:56 +01:00
Nut.andor
7538593036 prepare v0716 step1 2022-02-15 23:32:51 +01:00
Jiri Zizkin Zizka
8daa49916b Translated using Weblate (Czech)
Currently translated at 77.1% (10674 of 13843 strings)
2022-02-15 06:30:29 +01:00
Nut.andor
0e41a885e3 Delivery 2022-02-13 18:44:23 +01:00
Nut.andor
93a00755da authors 2022-02-13 18:39:52 +01:00
Nut.andor
fe89818bb7 Merge remote-tracking branch 'hosted.weblate/master' 2022-02-13 17:26:50 +01:00
Jiri Zizkin Zizka
e9bbe0a2d2 Translated using Weblate (Czech)
Currently translated at 76.8% (10636 of 13843 strings)
2022-02-13 17:25:11 +01:00
Meiru
564f809591 Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-02-13 17:25:09 +01:00
Nut.andor
ee2d6258d3 preparation of next release 2022-02-13 17:21:05 +01:00
Jiri Zizkin Zizka
e85b6c447a Translated using Weblate (Czech)
Currently translated at 76.6% (10607 of 13843 strings)
2022-02-12 03:45:14 +01:00
Lucas Araujo
2315b6821a Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.9% (13287 of 13843 strings)
2022-02-12 03:45:12 +01:00
Alessandro Perlo
7112d447ac Translated using Weblate (Italian)
Currently translated at 100.0% (581 of 581 strings)
2022-02-12 03:44:54 +01:00
Jiri Zizkin Zizka
d12dc80986 Translated using Weblate (Czech)
Currently translated at 76.4% (10586 of 13843 strings)
2022-02-09 18:33:32 +01:00
Lucas Araujo
ec0fd22292 Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.0% (13164 of 13843 strings)
2022-02-09 18:33:30 +01:00
Jiri Zizkin Zizka
b01615f23b Translated using Weblate (Czech)
Currently translated at 75.6% (10470 of 13843 strings)
2022-02-07 12:07:13 +01:00
Jiri Zizkin Zizka
bcc1e0fa34 Translated using Weblate (Czech)
Currently translated at 75.6% (10468 of 13843 strings)
2022-02-07 10:09:17 +01:00
Jiri Zizkin Zizka
a08df47db9 Translated using Weblate (Czech)
Currently translated at 75.5% (10459 of 13843 strings)
2022-02-06 18:58:12 +01:00
Jiri Zizkin Zizka
ce0318f450 Translated using Weblate (Czech)
Currently translated at 75.4% (10444 of 13843 strings)
2022-02-05 07:03:32 +01:00
Jiri Zizkin Zizka
cebde22296 Translated using Weblate (Czech)
Currently translated at 75.4% (10440 of 13843 strings)
2022-02-03 21:53:05 +01:00
Lucas Araujo
7e98398501 Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.0% (13158 of 13843 strings)
2022-02-03 05:43:35 +01:00
Joel A
287324a0d7 Translated using Weblate (Swedish)
Currently translated at 4.9% (682 of 13843 strings)
2022-02-02 23:30:45 +01:00
Jiri Zizkin Zizka
c4c0cde086 Translated using Weblate (Czech)
Currently translated at 75.3% (10434 of 13843 strings)
2022-02-02 23:30:43 +01:00
Anderson Nogueira Silva
a57b935fc8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.2% (13050 of 13843 strings)
2022-02-02 23:30:41 +01:00
Lucas Araujo
2f532e2ff4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.2% (13050 of 13843 strings)
2022-02-02 23:30:40 +01:00
Meiru
ea6b7f3dd0 Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-02-02 23:30:38 +01:00
Jiri Zizkin Zizka
213158c8d5 Translated using Weblate (Czech)
Currently translated at 75.2% (10423 of 13843 strings)
2022-02-01 01:28:59 +01:00
Lucas Araujo
223c3dcfe9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 93.4% (12943 of 13843 strings)
2022-02-01 00:06:44 +01:00
Lucas Araujo
9e9025bb6b Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (581 of 581 strings)
2022-02-01 00:06:42 +01:00
Lucas Araujo
a6e2453b1c Translated using Weblate (Portuguese (Brazil))
Currently translated at 93.1% (12890 of 13843 strings)
2022-01-31 16:54:26 +01:00
Lucas Araujo
5c1c08850e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (581 of 581 strings)
2022-01-31 16:54:24 +01:00
Jiri Zizkin Zizka
c1e815714d Translated using Weblate (Czech)
Currently translated at 75.2% (10421 of 13843 strings)
2022-01-31 14:53:31 +01:00
Nut Andor
3f0ac4b217 Translated using Weblate (German)
Currently translated at 91.5% (12667 of 13843 strings)
2022-01-31 14:53:29 +01:00
cheese1
7b5d0fc607 Translated using Weblate (German)
Currently translated at 91.5% (12667 of 13843 strings)
2022-01-31 14:53:28 +01:00
cheese1
095ae727c1 Translated using Weblate (German)
Currently translated at 100.0% (581 of 581 strings)
2022-01-31 14:53:27 +01:00
Jiri Zizkin Zizka
fa3cf821aa Translated using Weblate (Czech)
Currently translated at 74.9% (10370 of 13843 strings)
2022-01-28 08:47:41 +01:00
Nicia
20acd6cffe Translated using Weblate (Russian)
Currently translated at 90.6% (12554 of 13843 strings)
2022-01-28 08:47:39 +01:00
Meiru
57932e7ace Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-28 08:47:37 +01:00
Rhenaud Dubois
0785d33bf8 Translated using Weblate (French)
Currently translated at 89.0% (12322 of 13843 strings)
2022-01-28 08:47:34 +01:00
Meiru
86480f0863 Translated using Weblate (Japanese)
Currently translated at 100.0% (581 of 581 strings)
2022-01-28 08:47:32 +01:00
Rhenaud Dubois
b2ce4c5448 Translated using Weblate (French)
Currently translated at 100.0% (581 of 581 strings)
2022-01-28 08:47:31 +01:00
Lacrom
71b4d173f5 Translated using Weblate (French)
Currently translated at 86.5% (11987 of 13843 strings)
2022-01-27 17:10:59 +01:00
Lacrom
c1776e1c19 Translated using Weblate (French)
Currently translated at 86.5% (11987 of 13843 strings)
2022-01-27 17:10:11 +01:00
Alexandre Jigue
7675cfd69f Translated using Weblate (French)
Currently translated at 86.5% (11987 of 13843 strings)
2022-01-27 17:10:11 +01:00
Rhenaud Dubois
7e9ff1e06b Translated using Weblate (French)
Currently translated at 86.5% (11987 of 13843 strings)
2022-01-27 17:10:10 +01:00
François D
40254a88b7 Translated using Weblate (French)
Currently translated at 86.5% (11987 of 13843 strings)
2022-01-27 17:10:10 +01:00
Alexandre Jigue
a001fd5378 Translated using Weblate (French)
Currently translated at 86.5% (11987 of 13843 strings)
2022-01-27 17:07:22 +01:00
Rhenaud Dubois
19cfe30d94 Translated using Weblate (French)
Currently translated at 86.5% (11987 of 13843 strings)
2022-01-27 17:07:21 +01:00
Jiri Zizkin Zizka
f775d36181 Translated using Weblate (Czech)
Currently translated at 74.7% (10346 of 13843 strings)
2022-01-26 11:10:20 +01:00
Burak Hüseyin Ekseli
3f407a6472 Translated using Weblate (Turkish)
Currently translated at 38.3% (5315 of 13843 strings)
2022-01-26 11:10:17 +01:00
Meiru
36801fea3a Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-26 11:10:15 +01:00
cheese1
3ac91ac56b Translated using Weblate (German)
Currently translated at 91.3% (12652 of 13843 strings)
2022-01-26 11:10:12 +01:00
Jiri Zizkin Zizka
ac3e6c1a8e Translated using Weblate (Czech)
Currently translated at 73.5% (10187 of 13843 strings)
2022-01-22 11:30:54 +01:00
Jiri Zizkin Zizka
4a0ba2c86b Translated using Weblate (Czech)
Currently translated at 73.4% (10166 of 13843 strings)
2022-01-22 08:45:54 +01:00
saoloer
c6152ad11c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-22 08:45:52 +01:00
Jiri Zizkin Zizka
f8defcff9a Translated using Weblate (Czech)
Currently translated at 73.2% (10136 of 13843 strings)
2022-01-22 04:18:36 +01:00
Meiru
b8fc51c59e Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-22 04:18:34 +01:00
Meiru
606379d161 Translated using Weblate (Japanese)
Currently translated at 100.0% (581 of 581 strings)
2022-01-22 04:18:32 +01:00
Nicia
cf40a2514e Translated using Weblate (Russian)
Currently translated at 90.6% (12553 of 13843 strings)
2022-01-22 01:10:54 +01:00
Jiri Zizkin Zizka
ef4d43bc0f Translated using Weblate (Czech)
Currently translated at 73.1% (10128 of 13843 strings)
2022-01-21 22:09:53 +01:00
Mallo123
26c327320b Translated using Weblate (German)
Currently translated at 91.3% (12652 of 13843 strings)
2022-01-21 22:09:51 +01:00
cheese1
abb113c308 Translated using Weblate (German)
Currently translated at 91.3% (12652 of 13843 strings)
2022-01-21 22:09:50 +01:00
Lucas Araujo
76df1b281a Translated using Weblate (Portuguese (Brazil))
Currently translated at 93.1% (12888 of 13843 strings)
2022-01-20 19:19:21 +01:00
cheese1
682356f1c1 Translated using Weblate (German)
Currently translated at 91.3% (12642 of 13843 strings)
2022-01-20 19:18:33 +01:00
Jiri Zizkin Zizka
2466f09bd1 Translated using Weblate (Czech)
Currently translated at 72.7% (10066 of 13843 strings)
2022-01-20 03:14:55 +01:00
cheese1
5933f0047a Translated using Weblate (German)
Currently translated at 91.3% (12642 of 13843 strings)
2022-01-20 03:14:53 +01:00
عادل نصري
9519336a46 Translated using Weblate (Arabic)
Currently translated at 9.1% (1272 of 13842 strings)
2022-01-19 15:49:30 +01:00
Jiri Zizkin Zizka
d34d038e41 Translated using Weblate (Czech)
Currently translated at 72.6% (10057 of 13843 strings)
2022-01-19 15:49:28 +01:00
Ömer Faruk Çakmak
279446c117 Translated using Weblate (Turkish)
Currently translated at 37.3% (5176 of 13843 strings)
2022-01-19 15:49:26 +01:00
Meiru
13f8ab103b Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-19 15:49:23 +01:00
cheese1
d96422b731 Translated using Weblate (German)
Currently translated at 91.3% (12642 of 13843 strings)
2022-01-19 15:49:21 +01:00
Meiru
cde3074fa7 Translated using Weblate (Japanese)
Currently translated at 100.0% (581 of 581 strings)
2022-01-19 15:49:20 +01:00
A B
6750292ec7 Translated using Weblate (Czech)
Currently translated at 72.1% (9990 of 13843 strings)
2022-01-16 04:34:51 +01:00
Jiri Zizkin Zizka
6054adede7 Translated using Weblate (Czech)
Currently translated at 71.8% (9947 of 13843 strings)
2022-01-14 10:36:33 +01:00
Meiru
a40a6a1a37 Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-14 10:36:31 +01:00
Meiru
1471dd2adf Translated using Weblate (Japanese)
Currently translated at 100.0% (581 of 581 strings)
2022-01-14 10:36:29 +01:00
Meiru
ca84e9d0e0 Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-13 04:12:31 +01:00
cheese1
ba6c426a15 Translated using Weblate (German)
Currently translated at 91.3% (12640 of 13843 strings)
2022-01-13 04:12:29 +01:00
Meiru
625845aa46 Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-12 10:34:21 +01:00
Jiri Zizkin Zizka
fdb144fed7 Translated using Weblate (Czech)
Currently translated at 71.8% (9947 of 13843 strings)
2022-01-12 01:25:17 +01:00
Meiru
9c3d6dabc0 Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-12 01:25:15 +01:00
Jiri Zizkin Zizka
82b61b892b Translated using Weblate (Czech)
Currently translated at 71.7% (9933 of 13843 strings)
2022-01-11 13:58:00 +01:00
Daniel Stasiak
9f5ac80141 Translated using Weblate (Polish)
Currently translated at 97.4% (13485 of 13843 strings)
2022-01-11 13:57:59 +01:00
Meiru
3655c3a864 Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-11 13:57:57 +01:00
Meiru
def18995f7 Translated using Weblate (Japanese)
Currently translated at 100.0% (581 of 581 strings)
2022-01-11 13:57:54 +01:00
عادل نصري
96da21fb6b Translated using Weblate (Arabic)
Currently translated at 100.0% (581 of 581 strings)
2022-01-10 11:26:14 +01:00
عادل نصري
2b03b1e08e Translated using Weblate (Arabic)
Currently translated at 9.1% (1267 of 13842 strings)
2022-01-10 11:26:04 +01:00
刘韬
ee62ec432f Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (581 of 581 strings)
2022-01-10 11:26:02 +01:00
Jiri Zizkin Zizka
6b7cc3e584 Translated using Weblate (Czech)
Currently translated at 71.6% (9914 of 13843 strings)
2022-01-10 11:26:01 +01:00
刘韬
a64f6161c6 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-10 11:25:59 +01:00
Meiru
e7b0471e19 Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-10 11:25:58 +01:00
Meiru
861791bdba Translated using Weblate (Japanese)
Currently translated at 100.0% (581 of 581 strings)
2022-01-10 11:25:53 +01:00
Meiru
6135e5a014 Translated using Weblate (Japanese)
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-07 04:46:41 +01:00
Meiru
196a12a0aa Translated using Weblate (Japanese)
Currently translated at 99.7% (13806 of 13843 strings)
2022-01-06 15:49:52 +01:00
aircqsj
1881e0e0c5 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (581 of 581 strings)
2022-01-06 09:25:06 +01:00
Daniel Stasiak
d9bddcc3bf Translated using Weblate (Polish)
Currently translated at 97.4% (13485 of 13843 strings)
2022-01-06 09:25:06 +01:00
Meiru
c12bdd60b5 Translated using Weblate (Japanese)
Currently translated at 99.6% (13790 of 13843 strings)
2022-01-06 09:25:04 +01:00
عادل نصري
b24ecb93aa Translated using Weblate (Arabic)
Currently translated at 32.5% (189 of 581 strings)
2022-01-05 11:55:07 +01:00
DragonChen TW
ad1fb9d6fe Translated using Weblate (Chinese (Traditional))
Currently translated at 3.9% (542 of 13843 strings)
2022-01-05 11:55:06 +01:00
DragonChen TW
d2ec4afa87 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2022-01-05 11:55:05 +01:00
Daniel Stasiak
f84b6d172c Translated using Weblate (Polish)
Currently translated at 97.4% (13485 of 13843 strings)
2022-01-05 11:55:03 +01:00
Meiru
a1893f3135 Translated using Weblate (Japanese)
Currently translated at 98.6% (13658 of 13843 strings)
2022-01-05 11:55:01 +01:00
Nut.andor
18f7acb1d3 fix doubled graveyard_corpse3 2022-01-04 22:41:33 +01:00
Jiri Zizkin Zizka
8a17bd7e84 Translated using Weblate (Czech)
Currently translated at 71.5% (9899 of 13843 strings)
2022-01-04 14:11:34 +01:00
David Tamas Szabo
381b7d17eb Translated using Weblate (Hungarian)
Currently translated at 30.1% (4174 of 13843 strings)
2022-01-03 20:24:06 +01:00
Meiru
0d93899544 Translated using Weblate (Japanese)
Currently translated at 98.3% (13618 of 13843 strings)
2022-01-03 20:24:04 +01:00
DragonChen TW
0263d60261 Translated using Weblate (Chinese (Traditional))
Currently translated at 3.8% (538 of 13843 strings)
2022-01-03 06:44:33 +01:00
Jiri Zizkin Zizka
cd0d63aeac Translated using Weblate (Czech)
Currently translated at 71.5% (9898 of 13843 strings)
2022-01-03 06:44:32 +01:00
Meiru
b1275f1143 Translated using Weblate (Japanese)
Currently translated at 98.2% (13596 of 13843 strings)
2022-01-03 06:44:30 +01:00
Jiri Zizkin Zizka
698c344595 Translated using Weblate (Czech)
Currently translated at 100.0% (581 of 581 strings)
2022-01-02 13:31:38 +01:00
DragonChen TW
a553b0e927 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (581 of 581 strings)
2022-01-02 13:31:38 +01:00
DragonChen TW
988cf048a8 Translated using Weblate (Chinese (Traditional))
Currently translated at 3.8% (534 of 13843 strings)
2022-01-02 13:31:37 +01:00
Jiri Zizkin Zizka
1ef94fe505 Translated using Weblate (Czech)
Currently translated at 71.3% (9883 of 13843 strings)
2022-01-02 13:31:35 +01:00
Meiru
751c4850a9 Translated using Weblate (Japanese)
Currently translated at 98.1% (13581 of 13843 strings)
2022-01-02 13:30:18 +01:00
Meiru
f9fc4b13b9 Translated using Weblate (Japanese)
Currently translated at 97.9% (13560 of 13843 strings)
2021-12-31 13:38:06 +01:00
Meiru
947494b82c Translated using Weblate (Japanese)
Currently translated at 97.5% (13502 of 13843 strings)
2021-12-31 08:55:32 +01:00
Elytra Wixzo
e6dc6c9535 Translated using Weblate (Filipino)
Currently translated at 46.8% (272 of 581 strings)
2021-12-31 08:01:46 +01:00
Elytra Wixzo
3f5ff64103 Translated using Weblate (Tagalog)
Currently translated at 100.0% (581 of 581 strings)
2021-12-31 08:01:43 +01:00
Elytra Wixzo
dc2b953dec Translated using Weblate (Filipino)
Currently translated at 2.0% (289 of 13842 strings)
2021-12-31 08:01:42 +01:00
SmallDragon Chen
74d3179157 Translated using Weblate (Chinese (Traditional))
Currently translated at 99.8% (580 of 581 strings)
2021-12-31 08:01:40 +01:00
SmallDragon Chen
a002183f49 Translated using Weblate (Chinese (Traditional))
Currently translated at 3.5% (486 of 13843 strings)
2021-12-31 08:01:40 +01:00
aircqsj
57919347d1 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2021-12-31 08:01:38 +01:00
Daniel Stasiak
cfb7f8a0a7 Translated using Weblate (Polish)
Currently translated at 97.4% (13485 of 13843 strings)
2021-12-31 08:01:35 +01:00
Meiru
8cb6c8355a Translated using Weblate (Japanese)
Currently translated at 97.5% (13502 of 13843 strings)
2021-12-31 08:01:33 +01:00
Mateusz Mendel
a84cc8e9cc Translated using Weblate (Polish)
Currently translated at 97.4% (13485 of 13843 strings)
2021-12-30 00:25:30 +01:00
Daniel Stasiak
06c25297a4 Translated using Weblate (Polish)
Currently translated at 97.4% (13485 of 13843 strings)
2021-12-30 00:25:29 +01:00
Mateusz Mendel
ac8668e6f0 Translated using Weblate (Polish)
Currently translated at 97.3% (13475 of 13843 strings)
2021-12-28 22:54:02 +01:00
Daniel Stasiak
315d38d9b8 Translated using Weblate (Polish)
Currently translated at 97.3% (13475 of 13843 strings)
2021-12-28 22:54:00 +01:00
aircqsj
dbb106ba4e Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2021-12-27 17:19:32 +01:00
Meiru
784401247d Translated using Weblate (Japanese)
Currently translated at 96.2% (13327 of 13843 strings)
2021-12-27 17:19:29 +01:00
aircqsj
48a2e6391b Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2021-12-27 02:45:49 +01:00
Meiru
65ba89f74c Translated using Weblate (Japanese)
Currently translated at 95.9% (13278 of 13843 strings)
2021-12-27 02:45:38 +01:00
Nut.andor
2f922b93d7 prepare next version v0.7.16 63 2021-12-26 02:21:39 +01:00
aircqsj
6e72388e8e Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2021-12-24 18:29:12 +01:00
Lucas Araujo
729060b367 Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.8% (12852 of 13843 strings)
2021-12-24 18:29:05 +01:00
Meiru
a5da21d889 Translated using Weblate (Japanese)
Currently translated at 95.8% (13262 of 13843 strings)
2021-12-24 18:29:02 +01:00
aircqsj
51894a2c46 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2021-12-23 17:24:03 +01:00
Daniel Stasiak
49940c1803 Translated using Weblate (Polish)
Currently translated at 97.3% (13472 of 13843 strings)
2021-12-23 17:24:01 +01:00
Meiru
109461c22e Translated using Weblate (Japanese)
Currently translated at 95.1% (13177 of 13843 strings)
2021-12-23 17:23:59 +01:00
DawnGuo
613855a1fe Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2021-12-23 14:59:33 +01:00
aircqsj
53382be705 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2021-12-23 14:59:33 +01:00
孤舟听雨
6f0336d23d Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2021-12-23 14:55:19 +01:00
aircqsj
06ba965f41 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (13843 of 13843 strings)
2021-12-23 14:55:18 +01:00
aircqsj
0e0e0b5f67 Translated using Weblate (Chinese (Simplified))
Currently translated at 77.9% (10785 of 13843 strings)
2021-12-21 20:17:51 +01:00
DawnGuo
4d58ca4cbf Translated using Weblate (Chinese (Simplified))
Currently translated at 77.9% (10785 of 13843 strings)
2021-12-21 20:17:48 +01:00
Daniel Stasiak
537617eeb5 Translated using Weblate (Polish)
Currently translated at 97.3% (13472 of 13843 strings)
2021-12-21 20:17:47 +01:00
Meiru
2daad62d08 Translated using Weblate (Japanese)
Currently translated at 94.0% (13023 of 13843 strings)
2021-12-21 20:17:44 +01:00
Reza Almanda
6d9779cca4 Translated using Weblate (Indonesian)
Currently translated at 16.7% (2323 of 13843 strings)
2021-12-21 20:17:42 +01:00
forheinn
30c27fadd9 Translated using Weblate (Indonesian)
Currently translated at 16.7% (2323 of 13843 strings)
2021-12-21 20:17:41 +01:00
DawnGuo
21e381b916 Translated using Weblate (Chinese (Simplified))
Currently translated at 75.3% (10437 of 13843 strings)
2021-12-21 11:56:50 +01:00
aircqsj
3ab543214e Translated using Weblate (Chinese (Simplified))
Currently translated at 75.3% (10437 of 13843 strings)
2021-12-21 11:56:50 +01:00
saoloer
565fb51370 Translated using Weblate (Chinese (Simplified))
Currently translated at 75.3% (10437 of 13843 strings)
2021-12-21 11:56:45 +01:00
aircqsj
a01bb1f861 Translated using Weblate (Chinese (Simplified))
Currently translated at 70.7% (9790 of 13843 strings)
2021-12-20 17:32:07 +01:00
saoloer
b3fc8b3be2 Translated using Weblate (Chinese (Simplified))
Currently translated at 70.7% (9790 of 13843 strings)
2021-12-20 17:32:06 +01:00
saoloer
019022de80 Translated using Weblate (Chinese (Simplified))
Currently translated at 70.1% (9705 of 13843 strings)
2021-12-20 14:42:32 +01:00
aircqsj
4fca247ad2 Translated using Weblate (Chinese (Simplified))
Currently translated at 70.1% (9705 of 13843 strings)
2021-12-20 14:42:32 +01:00
saoloer
ed8dc46f3c Translated using Weblate (Chinese (Simplified))
Currently translated at 70.0% (9697 of 13843 strings)
2021-12-19 17:27:36 +01:00
Meiru
41f711b30c Translated using Weblate (Japanese)
Currently translated at 93.2% (12904 of 13843 strings)
2021-12-19 17:27:34 +01:00
zoollcar
08027de85d Translated using Weblate (Chinese (Simplified))
Currently translated at 70.0% (9697 of 13843 strings)
2021-12-19 15:31:37 +01:00
Hao
d49f9f3320 Translated using Weblate (Chinese (Simplified))
Currently translated at 70.0% (9697 of 13843 strings)
2021-12-19 15:31:36 +01:00
Joel A
9e04008f9c Translated using Weblate (Swedish)
Currently translated at 4.9% (681 of 13843 strings)
2021-12-19 04:28:27 +01:00
Kristoffer Grundström
f38d9f7197 Translated using Weblate (Swedish)
Currently translated at 4.9% (681 of 13843 strings)
2021-12-19 04:28:26 +01:00
Daniel Stasiak
1728b5fa20 Translated using Weblate (Polish)
Currently translated at 97.3% (13472 of 13843 strings)
2021-12-19 04:28:25 +01:00
Meiru
2a85292274 Translated using Weblate (Japanese)
Currently translated at 92.6% (12827 of 13843 strings)
2021-12-19 04:28:23 +01:00
Nut.andor
3e534a7a47 Release notes 2021-12-18 22:42:55 +01:00
Nut.andor
4ff444511e Merge remote-tracking branch 'local_AndorsTrailRelease/master' 2021-12-18 17:04:17 +01:00
Hosted Weblate
337aba70d9 Merge branch 'origin/master' into Weblate. 2021-12-18 17:02:08 +01:00
Nut.andor
04fbbac774 Merge remote-tracking branch 'hosted.weblate/master' 2021-12-18 17:01:36 +01:00
Hosted Weblate
e96815f655 Merge branch 'origin/master' into Weblate. 2021-12-18 17:00:46 +01:00
forheinn
46c8a203d9 Translated using Weblate (Indonesian)
Currently translated at 100.0% (581 of 581 strings)
2021-12-18 16:42:12 +01:00
saoloer
3cf9ae4901 Translated using Weblate (Chinese (Simplified))
Currently translated at 69.7% (9659 of 13843 strings)
2021-12-18 16:42:12 +01:00
Meiru
f5f653e7ba Translated using Weblate (Japanese)
Currently translated at 92.4% (12792 of 13843 strings)
2021-12-18 16:42:10 +01:00
T. A. Wicaksono
f8e6d06d15 Translated using Weblate (Indonesian)
Currently translated at 16.6% (2301 of 13843 strings)
2021-12-18 16:41:52 +01:00
forheinn
92ef9dfc03 Translated using Weblate (Indonesian)
Currently translated at 16.6% (2301 of 13843 strings)
2021-12-18 16:41:51 +01:00
Nut.andor
d2193a9778 Merge fixes 2021-12-18 16:34:05 +01:00
Nut.andor
71e8afa949 release notes 2021-12-18 16:32:15 +01:00
Nut.andor
1289c24cf3 fix Ehrenfest reappear 2021-12-18 00:33:36 +01:00
forheinn
dabefad73d Translated using Weblate (Indonesian)
Currently translated at 15.4% (2132 of 13843 strings)
2021-12-17 14:39:34 +01:00
secyborg
a108eba3ed Translated using Weblate (Chinese (Simplified))
Currently translated at 69.6% (9644 of 13843 strings)
2021-12-17 14:24:12 +01:00
saoloer
f1f495bbe3 Translated using Weblate (Chinese (Simplified))
Currently translated at 69.6% (9644 of 13843 strings)
2021-12-17 14:24:12 +01:00
Daniel Stasiak
86986f8747 Translated using Weblate (Polish)
Currently translated at 97.2% (13467 of 13843 strings)
2021-12-17 14:24:09 +01:00
Mateusz Mendel
e185b69b50 Translated using Weblate (Polish)
Currently translated at 97.2% (13467 of 13843 strings)
2021-12-17 14:24:07 +01:00
Meiru
7c5000a0a9 Translated using Weblate (Japanese)
Currently translated at 92.1% (12753 of 13843 strings)
2021-12-17 14:24:04 +01:00
forheinn
edd12cce52 Translated using Weblate (Indonesian)
Currently translated at 15.2% (2117 of 13843 strings)
2021-12-17 14:24:02 +01:00
Nut.andor
1711bc87bd fix Ortholion's wrong staying,
large empty bottle,
Arghest won't take a potion anymore without opening the mine
2021-12-15 23:18:29 +01:00
saoloer
ea36be8461 Translated using Weblate (Chinese (Simplified))
Currently translated at 68.2% (9443 of 13843 strings)
2021-12-14 18:06:05 +01:00
saoloer
11ac7da4b5 Translated using Weblate (Chinese (Simplified))
Currently translated at 67.6% (9364 of 13843 strings)
2021-12-14 16:33:20 +01:00
Daniel Stasiak
e731bbbd29 Translated using Weblate (Polish)
Currently translated at 97.2% (13467 of 13843 strings)
2021-12-14 16:33:18 +01:00
Daniel Stasiak
48566e0c32 Translated using Weblate (Polish)
Currently translated at 97.2% (13467 of 13843 strings)
2021-12-14 14:38:25 +01:00
Meiru
2bd17ad956 Translated using Weblate (Japanese)
Currently translated at 91.3% (12643 of 13843 strings)
2021-12-14 14:38:22 +01:00
saoloer
0dd71e65b6 Translated using Weblate (Chinese (Simplified))
Currently translated at 67.3% (9322 of 13843 strings)
2021-12-14 10:16:28 +01:00
Mateusz Mendel
1cfd00bab3 Translated using Weblate (Polish)
Currently translated at 97.2% (13467 of 13843 strings)
2021-12-14 10:16:26 +01:00
Daniel Stasiak
af36019345 Translated using Weblate (Polish)
Currently translated at 97.2% (13467 of 13843 strings)
2021-12-14 10:16:25 +01:00
Meiru
d5a7fe353e Translated using Weblate (Japanese)
Currently translated at 91.0% (12601 of 13843 strings)
2021-12-14 10:16:23 +01:00
Daniel Stasiak
83975caa82 Translated using Weblate (Polish)
Currently translated at 97.2% (13467 of 13843 strings)
2021-12-13 11:36:29 +01:00
Meiru
01305e554a Translated using Weblate (Japanese)
Currently translated at 90.8% (12581 of 13843 strings)
2021-12-13 11:36:27 +01:00
Daniel Stasiak
0809baf6e5 Translated using Weblate (Polish)
Currently translated at 100.0% (581 of 581 strings)
2021-12-13 11:36:25 +01:00
Nut.andor
2c306a686e Merge remote-tracking branch 'Andors-Trail/master' 2021-12-12 15:57:21 +01:00
Nut.andor
6c2727d555 translation state 2021-12-12 15:56:35 +01:00
Nut.andor
05e50b3e74 Merge remote-tracking branch 'Andors-Trail/master' 2021-12-12 15:21:10 +01:00
Nut.andor
16f648ebfa new translations + POT 2021-12-12 15:17:49 +01:00
Nut.andor
f9006294e0 Merge remote-tracking branch 'Andors-Trail/master' 2021-12-12 15:06:42 +01:00
Nut.andor
0619ca591d Merge branch 'v0715' 2021-12-12 14:59:09 +01:00
Nut.andor
560eda1d42 Merge remote-tracking branch 'local_AndorsTrailRelease/master' 2021-12-12 14:58:21 +01:00
Nut.andor
535e6895ba version v0.7.15 #62 2021-12-12 14:55:03 +01:00
Nut.andor
827ca98b20 Merge remote-tracking branch 'hosted.weblate/master' 2021-12-12 14:31:33 +01:00
Nut Andor
47337edb53 Translated using Weblate (German)
Currently translated at 91.3% (12640 of 13844 strings)
2021-12-12 14:27:33 +01:00
saoloer
8b5f2213c1 Translated using Weblate (Chinese (Simplified))
Currently translated at 66.8% (9257 of 13844 strings)
2021-12-12 09:52:39 +01:00
saoloer
f2bd35db76 Translated using Weblate (Chinese (Simplified))
Currently translated at 66.8% (9250 of 13844 strings)
2021-12-12 05:45:47 +01:00
saoloer
338531c420 Translated using Weblate (Chinese (Simplified))
Currently translated at 66.7% (9244 of 13844 strings)
2021-12-11 18:06:28 +01:00
saoloer
62e635d29e Translated using Weblate (Chinese (Simplified))
Currently translated at 64.9% (8994 of 13844 strings)
2021-12-11 07:00:41 +01:00
Daniel Stasiak
75534f2b6a Translated using Weblate (Polish)
Currently translated at 90.5% (12538 of 13844 strings)
2021-12-11 07:00:36 +01:00
Meiru
80625cecdf Translated using Weblate (Japanese)
Currently translated at 90.7% (12570 of 13844 strings)
2021-12-11 07:00:34 +01:00
saoloer
c67a1d2863 Translated using Weblate (Chinese (Simplified))
Currently translated at 61.7% (8544 of 13844 strings)
2021-12-09 22:57:39 +01:00
Meiru
b04e3061d6 Translated using Weblate (Japanese)
Currently translated at 90.7% (12562 of 13844 strings)
2021-12-09 22:57:36 +01:00
Meiru
467937263b Translated using Weblate (Japanese)
Currently translated at 90.5% (12541 of 13844 strings)
2021-12-09 08:25:19 +01:00
Mateusz Mendel
555ae7b7d0 Translated using Weblate (Polish)
Currently translated at 90.5% (12538 of 13844 strings)
2021-12-08 23:07:08 +01:00
saoloer
9d62081e8e Translated using Weblate (Chinese (Simplified))
Currently translated at 59.5% (8244 of 13844 strings)
2021-12-08 19:14:44 +01:00
Mateusz Mendel
8d3ea3f86a Translated using Weblate (Polish)
Currently translated at 90.5% (12538 of 13844 strings)
2021-12-08 19:14:31 +01:00
Mateusz Mendel
2f452f51b7 Translated using Weblate (Polish)
Currently translated at 90.5% (12538 of 13844 strings)
2021-12-05 14:08:03 +01:00
saoloer
2416b12809 Translated using Weblate (Chinese (Simplified))
Currently translated at 54.4% (7544 of 13844 strings)
2021-12-04 02:02:02 +01:00
Lucas Araujo
8385687ea6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.7% (12845 of 13844 strings)
2021-12-04 02:01:58 +01:00
saoloer
abb133ddce Translated using Weblate (Chinese (Simplified))
Currently translated at 53.0% (7351 of 13844 strings)
2021-12-02 09:49:25 +01:00
Lucas Araujo
7645e35e08 Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.5% (12818 of 13844 strings)
2021-12-02 09:49:24 +01:00
saoloer
e620081a57 Translated using Weblate (Chinese (Simplified))
Currently translated at 53.0% (7344 of 13844 strings)
2021-11-30 17:21:23 +01:00
saoloer
d00b208d05 Translated using Weblate (Chinese (Simplified))
Currently translated at 50.5% (7004 of 13844 strings)
2021-11-30 16:00:15 +01:00
protagnost
ffa0b2375c Translated using Weblate (Dutch)
Currently translated at 7.7% (1078 of 13844 strings)
2021-11-30 16:00:08 +01:00
saoloer
b318ee7d9c Translated using Weblate (Chinese (Simplified))
Currently translated at 44.8% (6214 of 13844 strings)
2021-11-25 20:03:25 +01:00
saoloer
31806c0153 Translated using Weblate (Chinese (Simplified))
Currently translated at 44.7% (6194 of 13844 strings)
2021-11-25 16:45:22 +01:00
Lucas Araujo
509830dc78 Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.5% (12813 of 13844 strings)
2021-11-25 16:45:20 +01:00
Mateusz Mendel
f10f5e4a3a Translated using Weblate (Polish)
Currently translated at 90.5% (12538 of 13844 strings)
2021-11-25 16:45:18 +01:00
saoloer
0e7289c314 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (581 of 581 strings)
2021-11-23 16:42:30 +01:00
soplatnik
3f1f87b195 Translated using Weblate (Basque)
Currently translated at 63.6% (370 of 581 strings)
2021-11-23 16:42:29 +01:00
saoloer
06ab0ad121 Translated using Weblate (Chinese (Simplified))
Currently translated at 44.5% (6164 of 13844 strings)
2021-11-23 16:42:29 +01:00
Lucas Araujo
d32b19b6cb Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.5% (12812 of 13844 strings)
2021-11-23 16:42:23 +01:00
Mateusz Mendel
594145d623 Translated using Weblate (Polish)
Currently translated at 90.5% (12538 of 13844 strings)
2021-11-20 23:45:13 +01:00
saoloer
6ebca0b3a1 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (581 of 581 strings)
2021-11-20 19:29:43 +01:00
saoloer
5bcfd5e1e7 Translated using Weblate (Chinese (Simplified))
Currently translated at 42.1% (5833 of 13844 strings)
2021-11-20 19:29:42 +01:00
saoloer
d3bfd737ce Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (581 of 581 strings)
2021-11-20 11:53:13 +01:00
saoloer
19d4e8180f Translated using Weblate (Chinese (Simplified))
Currently translated at 41.4% (5744 of 13844 strings)
2021-11-20 11:53:13 +01:00
Lucas Araujo
e205c1af94 Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.1% (12759 of 13844 strings)
2021-11-20 11:53:08 +01:00
Lucas Araujo
76e6b02c05 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (581 of 581 strings)
2021-11-20 11:53:05 +01:00
Bugra Bezgin
9f37a5fb40 Translated using Weblate (Turkish)
Currently translated at 36.8% (5097 of 13844 strings)
2021-11-18 19:45:35 +01:00
Lucas Araujo
08ada52e75 Translated using Weblate (Portuguese (Brazil))
Currently translated at 90.9% (12590 of 13844 strings)
2021-11-18 19:45:33 +01:00
Nafek Norhadi
d22f079d3c Translated using Weblate (Indonesian)
Currently translated at 15.2% (2109 of 13844 strings)
2021-11-18 19:45:31 +01:00
Nurlan Aliyev
59d898b4ad Translated using Weblate (Azerbaijani)
Currently translated at 0.1% (3 of 13843 strings)
2021-11-18 11:55:37 +01:00
Lucas Araujo
b57e6fffa1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 90.9% (12587 of 13844 strings)
2021-11-18 11:55:36 +01:00
SC
bb1e7558e2 Translated using Weblate (Portuguese)
Currently translated at 82.7% (11462 of 13844 strings)
2021-11-18 11:55:33 +01:00
Lucas Araujo
96a64b0fe4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.9% (12458 of 13844 strings)
2021-11-16 22:05:41 +01:00
Кейро
e022de9e42 Translated using Weblate (Russian)
Currently translated at 90.4% (12517 of 13844 strings)
2021-11-14 20:52:34 +01:00
Lucas Araujo
8353231407 Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.0% (12333 of 13844 strings)
2021-11-14 20:52:33 +01:00
Nut.andor
d45d1373de toast bugfix 2021-11-14 02:02:50 +01:00
Nut.andor
fda0becbf1 next version 2021-11-13 10:39:26 +01:00
Nut.andor
78ecc95382 Merge branch 'master' into v0715 2021-11-13 09:58:07 +01:00
Nut.andor
62fae625a4 Actualization NutANdor:master from actual release v0.78.14
Merge remote-tracking branch 'AndorsTrailRelease/master'
2021-11-13 09:52:52 +01:00
Кейро
ae48aa8bb8 Translated using Weblate (Russian)
Currently translated at 90.4% (12516 of 13844 strings)
2021-11-13 09:28:29 +01:00
Meiru
e2ce4a97bf Translated using Weblate (Japanese)
Currently translated at 90.4% (12527 of 13844 strings)
2021-11-13 09:28:27 +01:00
Alejandro Ruiz Medina
f713f9ac3d Translated using Weblate (Spanish)
Currently translated at 90.6% (12550 of 13844 strings)
2021-11-13 09:28:25 +01:00
Кейро
4cc25fcd84 Translated using Weblate (Russian)
Currently translated at 100.0% (581 of 581 strings)
2021-11-13 09:28:23 +01:00
Meiru
b71206232c Translated using Weblate (Japanese)
Currently translated at 90.4% (12526 of 13844 strings)
2021-11-12 09:52:35 +01:00
Jiri Zizkin Zizka
5db871a8d4 Translated using Weblate (Czech)
Currently translated at 100.0% (581 of 581 strings)
2021-11-10 16:51:35 +01:00
Meiru
78c9acc0ef Translated using Weblate (Japanese)
Currently translated at 90.4% (12518 of 13844 strings)
2021-11-10 16:51:35 +01:00
Alejandro Ruiz Medina
bc80d88c26 Translated using Weblate (Spanish)
Currently translated at 90.5% (12537 of 13844 strings)
2021-11-10 16:51:33 +01:00
Nut.andor
98efee7e46 Google Play description
Merge remote-tracking branch 'Andors-Trail/master'
2021-11-09 15:24:09 +01:00
Nut.andor
d9adf1239f store description 2021-11-09 15:19:47 +01:00
Nut.andor
f76ff77f65 whatsnew
Merge remote-tracking branch 'Andors-Trail/master'
2021-11-09 13:49:20 +01:00
Nut.andor
1e1dd0bb41 whatsnew 2021-11-09 13:45:11 +01:00
Reza Almanda
6b824f6fb7 Translated using Weblate (Indonesian)
Currently translated at 100.0% (581 of 581 strings)
2021-11-08 10:39:16 +01:00
Meiru
0cbb43fce0 Translated using Weblate (Japanese)
Currently translated at 90.3% (12512 of 13844 strings)
2021-11-08 10:39:16 +01:00
Reza Almanda
ac486c896a Translated using Weblate (Indonesian)
Currently translated at 15.2% (2109 of 13844 strings)
2021-11-08 10:39:14 +01:00
Meiru
9419b823aa Translated using Weblate (Japanese)
Currently translated at 100.0% (581 of 581 strings)
2021-11-08 10:39:12 +01:00
Nut.andor
969a4dd9b8 fix prim_guard7 2
Merge remote-tracking branch 'Andors-Trail/ATOmiRep'
2021-11-07 14:19:39 +01:00
Nut.andor
6f3a37d45c fix prim_guard7 2 2021-11-07 14:15:34 +01:00
Nut.andor
32e41dab18 fix Moyra reply 2 2021-11-07 13:27:02 +01:00
Nut.andor
c2b58d3fbd Merge remote-tracking branch 'Andors-Trail/ATOmiRep' 2021-11-07 13:26:42 +01:00
Nut.andor
19343cf27f fix Moyra reply 2 2021-11-07 13:22:14 +01:00
Nut.andor
52af9a5ded POTC 2021-11-07 12:50:18 +01:00
Nut.andor
9bc407c4a4 POTC 2021-11-07 12:49:44 +01:00
Nut.andor
e0365a7e5a fix Moyra reply 2021-11-07 12:37:45 +01:00
Nut.andor
8917a43ac8 Merge remote-tracking branch 'local_AndorsTrailRelease/master' into ATOmiRep 2021-11-07 12:22:41 +01:00
Nut.andor
1fe7e11fe7 Merge remote-tracking branch 'hosted.weblate/master' 2021-11-07 11:49:02 +01:00
Nut.andor
badce708d1 fix Moyra reply 2021-11-07 11:32:38 +01:00
Nut.andor
acf202b10c fix BWM32, actualize translation status 2021-11-07 11:28:57 +01:00
Nut.andor
100a93d28a fix BWM32, actualize translation status 2021-11-07 11:13:16 +01:00
SC
acd376652d Translated using Weblate (Portuguese (Brazil))
Currently translated at 88.7% (12287 of 13843 strings)
2021-11-05 11:56:03 +01:00
SC
15c78eb82f Translated using Weblate (Portuguese)
Currently translated at 82.5% (11429 of 13843 strings)
2021-11-05 11:56:01 +01:00
Oğuz Ersen
8e29e58595 Translated using Weblate (Turkish)
Currently translated at 100.0% (581 of 581 strings)
2021-11-04 00:42:44 +01:00
SC
6b2ad2af18 Translated using Weblate (Portuguese (Brazil))
Currently translated at 88.7% (12287 of 13843 strings)
2021-11-04 00:42:44 +01:00
SC
734e3b7590 Translated using Weblate (Portuguese)
Currently translated at 82.5% (11424 of 13843 strings)
2021-11-04 00:42:40 +01:00
Mallo123
7d74e3a9b2 Translated using Weblate (German)
Currently translated at 91.2% (12632 of 13843 strings)
2021-11-04 00:42:37 +01:00
SC
62987af1dc Translated using Weblate (Portuguese)
Currently translated at 100.0% (581 of 581 strings)
2021-11-04 00:42:34 +01:00
SC
76f12287cc Translated using Weblate (Portuguese)
Currently translated at 82.4% (11419 of 13843 strings)
2021-11-03 15:52:17 +01:00
Jiri Zizkin Zizka
17b2160eee Translated using Weblate (Czech)
Currently translated at 60.4% (8364 of 13843 strings)
2021-11-03 12:37:53 +01:00
Nut.andor
c018137910 Merge remote-tracking branch 'hosted.weblate/master'
# Conflicts:
#	AndorsTrail/assets/translation/cs.po
#	AndorsTrail/assets/translation/de.po
#	AndorsTrail/assets/translation/fr.po
2021-11-02 23:26:32 +01:00
Jiri Zizkin Zizka
0a53c932b2 Translated using Weblate (Czech)
Currently translated at 78.7% (9852 of 12512 strings)
2021-11-02 23:11:32 +01:00
Romain de Bossoreille
55def3f378 Translated using Weblate (French)
Currently translated at 95.7% (11982 of 12512 strings)
2021-11-02 23:11:31 +01:00
Nut Andor
9b58a2858b Translated using Weblate (German)
Currently translated at 99.9% (12509 of 12512 strings)
2021-11-02 23:11:29 +01:00
Alain
e98f1e000a Translated using Weblate (German)
Currently translated at 99.9% (12509 of 12512 strings)
2021-11-02 23:11:29 +01:00
Mallo123
8159c77645 Translated using Weblate (German)
Currently translated at 99.9% (12509 of 12512 strings)
2021-11-02 23:11:28 +01:00
Nut.andor
cf59c59202 POTComp by ATCS 2021-11-02 00:02:05 +01:00
Nut.andor
b1144aefab Merge remote-tracking branch 'hosted.weblate/master' 2021-11-01 22:40:59 +01:00
Jiri Zizkin Zizka
13d31dcb1c Translated using Weblate (Czech)
Currently translated at 78.4% (9814 of 12512 strings)
2021-11-01 22:36:52 +01:00
Nut.andor
8de9790705 Merge remote-tracking branch 'Andors-Trail/ATOmiRep'
# Conflicts:
#	AndorsTrail/AndroidManifest.xml
#	AndorsTrail/assets/translation/ar.mo
#	AndorsTrail/assets/translation/bg.mo
#	AndorsTrail/assets/translation/ca.mo
#	AndorsTrail/assets/translation/cs.mo
#	AndorsTrail/assets/translation/de.mo
#	AndorsTrail/assets/translation/el.mo
#	AndorsTrail/assets/translation/es.mo
#	AndorsTrail/assets/translation/fr.mo
#	AndorsTrail/assets/translation/hu.mo
#	AndorsTrail/assets/translation/id.mo
#	AndorsTrail/assets/translation/it.mo
#	AndorsTrail/assets/translation/ja.mo
#	AndorsTrail/assets/translation/ko.mo
#	AndorsTrail/assets/translation/ms.mo
#	AndorsTrail/assets/translation/nb.mo
#	AndorsTrail/assets/translation/nl.mo
#	AndorsTrail/assets/translation/pl.mo
#	AndorsTrail/assets/translation/pt.mo
#	AndorsTrail/assets/translation/pt_BR.mo
#	AndorsTrail/assets/translation/ru.mo
#	AndorsTrail/assets/translation/sq.mo
#	AndorsTrail/assets/translation/sv.mo
#	AndorsTrail/assets/translation/tr.mo
#	AndorsTrail/assets/translation/uk.mo
#	AndorsTrail/assets/translation/zh_CN.mo
#	AndorsTrail/assets/translation/zh_TW.mo
#	AndorsTrail/res/values-id/strings.xml
#	AndorsTrail/res/values-pt/strings.xml
#	AndorsTrail/res/values-sv/strings.xml
#	AndorsTrail/res/values-zh-rCN/strings.xml
#	AndorsTrail/res/values/arrays.xml
#	AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
2021-11-01 22:33:56 +01:00
Nut.andor
c25089d368 exported by ATCS 2021-11-01 13:11:43 +01:00
Nut.andor
be9133a21a preparation V0.7.14 2021-11-01 13:02:47 +01:00
Nut.andor
2bcacffe6e Merge remote-tracking branch 'hosted.weblate/master' 2021-11-01 04:05:56 +01:00
Alain
636f8ee9ed Translated using Weblate (German)
Currently translated at 99.9% (12510 of 12512 strings)
2021-11-01 04:05:07 +01:00
Vanka
184c60f468 Translated using Weblate (German)
Currently translated at 99.9% (12510 of 12512 strings)
2021-11-01 04:05:06 +01:00
Stefanie Beck
dbf2ded1b6 Translated using Weblate (German)
Currently translated at 99.9% (12510 of 12512 strings)
2021-11-01 04:05:06 +01:00
Guido Arnold
ce5592eb7d Translated using Weblate (German)
Currently translated at 99.9% (12510 of 12512 strings)
2021-11-01 04:05:05 +01:00
Nut Andor
64a7e935a8 Translated using Weblate (German)
Currently translated at 99.9% (12510 of 12512 strings)
2021-11-01 04:05:05 +01:00
Nut.andor
2539c16022 Merge remote-tracking branch 'hosted.weblate/master' 2021-11-01 00:11:36 +01:00
Jiri Zizkin Zizka
0c91207203 Translated using Weblate (Czech)
Currently translated at 78.1% (9774 of 12512 strings)
2021-11-01 00:08:00 +01:00
Mallo123
d64ed028dd Translated using Weblate (German)
Currently translated at 99.9% (12510 of 12512 strings)
2021-11-01 00:07:58 +01:00
Nut.andor
bd68be2355 dev version including translations at beta1 date 2021-10-31 20:02:31 +01:00
Nut.andor
a5ffa4e5f3 dev version including translations at beta1 date 2021-10-31 11:23:01 +01:00
Joel A
4593b9f91a Translated using Weblate (Swedish)
Currently translated at 68.4% (395 of 577 strings)
2021-10-31 07:37:07 +01:00
Chacal Ex
bc26eba677 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.1% (12405 of 12512 strings)
2021-10-31 07:37:06 +01:00
Lucas Araujo
78ce00a9f6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.1% (12405 of 12512 strings)
2021-10-31 07:37:05 +01:00
Romain de Bossoreille
a2c556ca12 Translated using Weblate (French)
Currently translated at 95.7% (11982 of 12512 strings)
2021-10-31 07:37:03 +01:00
Jiri Zizkin Zizka
f1034a7a24 Translated using Weblate (Czech)
Currently translated at 77.7% (9723 of 12512 strings)
2021-10-30 14:09:45 +02:00
Jiri Zizkin Zizka
df0bc95bf1 Translated using Weblate (Czech)
Currently translated at 77.0% (9642 of 12512 strings)
2021-10-28 01:44:14 +02:00
Lucas Araujo
b16d75c43b Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.6% (12345 of 12512 strings)
2021-10-28 01:44:12 +02:00
Nut Andor
61efc7eea9 Translated using Weblate (German)
Currently translated at 100.0% (12512 of 12512 strings)
2021-10-28 01:44:10 +02:00
Jiri Zizkin Zizka
6e26ce4014 Translated using Weblate (Czech)
Currently translated at 76.9% (9630 of 12512 strings)
2021-10-26 09:04:18 +02:00
Jiri Zizkin Zizka
4531b1328c Translated using Weblate (Czech)
Currently translated at 76.9% (9627 of 12512 strings)
2021-10-25 17:07:40 +02:00
Gan Gao
230f945750 Translated using Weblate (Chinese (Simplified))
Currently translated at 42.2% (5288 of 12512 strings)
2021-10-25 17:07:37 +02:00
Romain de Bossoreille
e265e45882 Translated using Weblate (French)
Currently translated at 95.7% (11975 of 12512 strings)
2021-10-25 17:07:35 +02:00
Jiri Zizkin Zizka
97d08bde8f Translated using Weblate (Czech)
Currently translated at 75.7% (9483 of 12512 strings)
2021-10-23 02:40:50 +02:00
Malu CubeCraft
0f1e1e76b9 Translated using Weblate (Portuguese)
Currently translated at 91.1% (11410 of 12512 strings)
2021-10-23 02:40:48 +02:00
SC
d6d7e3abd0 Translated using Weblate (Portuguese)
Currently translated at 91.1% (11410 of 12512 strings)
2021-10-23 02:40:48 +02:00
Jiri Zizkin Zizka
79ae97bbae Translated using Weblate (Czech)
Currently translated at 75.6% (9466 of 12512 strings)
2021-10-22 10:40:41 +02:00
Jiri Zizkin Zizka
5664334236 Translated using Weblate (Czech)
Currently translated at 75.3% (9430 of 12512 strings)
2021-10-22 05:19:00 +02:00
SC
a60412c9c6 Translated using Weblate (Portuguese)
Currently translated at 91.1% (11405 of 12512 strings)
2021-10-22 05:18:58 +02:00
Jiri Zizkin Zizka
e58cfd14d9 Translated using Weblate (Czech)
Currently translated at 75.2% (9421 of 12512 strings)
2021-10-21 13:33:46 +02:00
Jiri Zizkin Zizka
c6b882fac1 Translated using Weblate (Czech)
Currently translated at 74.9% (9382 of 12512 strings)
2021-10-21 02:14:40 +02:00
SC
99c4928c77 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.2% (12287 of 12512 strings)
2021-10-21 02:14:36 +02:00
SC
06b5083ee2 Translated using Weblate (Portuguese)
Currently translated at 90.8% (11372 of 12512 strings)
2021-10-21 02:14:34 +02:00
Jiri Zizkin Zizka
e3c10d2c82 Translated using Weblate (Czech)
Currently translated at 73.6% (9214 of 12512 strings)
2021-10-20 05:57:19 +02:00
Romain de Bossoreille
3fb0c263f0 Translated using Weblate (French)
Currently translated at 95.7% (11975 of 12512 strings)
2021-10-20 05:57:15 +02:00
Jiri Zizkin Zizka
20fb1b8f84 Translated using Weblate (Czech)
Currently translated at 70.6% (8842 of 12512 strings)
2021-10-18 17:31:48 +02:00
Gan Gao
73f61c04a5 Translated using Weblate (Chinese (Simplified))
Currently translated at 42.1% (5270 of 12512 strings)
2021-10-18 17:31:46 +02:00
Jiri Zizkin Zizka
7ac99f8067 Translated using Weblate (Czech)
Currently translated at 69.9% (8750 of 12512 strings)
2021-10-15 21:47:51 +02:00
Jiri Zizkin Zizka
298d099beb Translated using Weblate (Czech)
Currently translated at 69.7% (8727 of 12512 strings)
2021-10-14 20:40:35 +02:00
Jiri Zizkin Zizka
c4ed3a697c Translated using Weblate (Czech)
Currently translated at 69.5% (8696 of 12512 strings)
2021-10-14 06:56:23 +02:00
SC
ea910554ce Translated using Weblate (Portuguese)
Currently translated at 89.8% (11248 of 12512 strings)
2021-10-14 06:56:20 +02:00
SC
c4d7a6d156 Translated using Weblate (Portuguese)
Currently translated at 100.0% (577 of 577 strings)
2021-10-14 06:56:18 +02:00
Jiri Zizkin Zizka
fbc07c5979 Translated using Weblate (Czech)
Currently translated at 68.2% (8542 of 12512 strings)
2021-10-11 17:16:47 +02:00
Jiri Zizkin Zizka
5423f759a4 Translated using Weblate (Czech)
Currently translated at 67.6% (8470 of 12512 strings)
2021-10-10 02:30:56 +02:00
Jiri Zizkin Zizka
09d757dcfc Translated using Weblate (Czech)
Currently translated at 67.4% (8445 of 12512 strings)
2021-10-08 05:57:05 +02:00
SC
b1e2042530 Translated using Weblate (Portuguese)
Currently translated at 100.0% (577 of 577 strings)
2021-10-08 05:57:03 +02:00
SC
4e142ad8ba Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (577 of 577 strings)
2021-10-08 05:57:02 +02:00
Afghan Translation Association (ATA)
3a0ca47908 Translated using Weblate (Pashto)
Currently translated at 0.1% (6 of 12511 strings)
2021-10-06 23:06:57 +02:00
Jiri Zizkin Zizka
c80e2d37e2 Translated using Weblate (Czech)
Currently translated at 67.0% (8389 of 12512 strings)
2021-10-06 23:06:56 +02:00
T. A. Wicaksono
c070f96772 Translated using Weblate (Indonesian)
Currently translated at 100.0% (577 of 577 strings)
2021-10-04 18:08:47 +02:00
Jiri Zizkin Zizka
f3daab8ee1 Translated using Weblate (Czech)
Currently translated at 66.9% (8377 of 12512 strings)
2021-10-04 18:08:47 +02:00
daudiffa
c95b0d3882 Translated using Weblate (Indonesian)
Currently translated at 16.8% (2110 of 12512 strings)
2021-10-04 18:08:26 +02:00
T. A. Wicaksono
8d914bab11 Translated using Weblate (Indonesian)
Currently translated at 16.8% (2110 of 12512 strings)
2021-10-04 18:08:25 +02:00
Nut.andor
a06420c884 Merge remote-tracking branch 'hosted.weblate/master' 2021-10-02 18:40:46 +02:00
Rhenaud Dubois
9cc2a97a61 Translated using Weblate (French)
Currently translated at 95.5% (11949 of 12512 strings)
2021-10-02 18:37:11 +02:00
Meiru
d54924909e Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-09-30 09:11:47 +02:00
Rhenaud Dubois
57fe205c72 Translated using Weblate (French)
Currently translated at 95.2% (11916 of 12512 strings)
2021-09-30 09:11:45 +02:00
Bugra Bezgin
6d97bb797a Translated using Weblate (Turkish)
Currently translated at 40.4% (5062 of 12512 strings)
2021-09-28 09:31:53 +02:00
Rhenaud Dubois
43a1dec280 Translated using Weblate (French)
Currently translated at 94.8% (11862 of 12512 strings)
2021-09-28 09:31:50 +02:00
Alexandre Jigue
e6250dea76 Translated using Weblate (French)
Currently translated at 93.8% (11746 of 12512 strings)
2021-09-27 11:33:22 +02:00
J. Lavoie
1d85e94075 Translated using Weblate (French)
Currently translated at 93.8% (11746 of 12512 strings)
2021-09-27 11:33:22 +02:00
Rhenaud Dubois
003827ada7 Translated using Weblate (French)
Currently translated at 93.8% (11746 of 12512 strings)
2021-09-27 11:33:21 +02:00
wsh1997.c
5de208d084 Translated using Weblate (Chinese (Simplified))
Currently translated at 42.0% (5262 of 12512 strings)
2021-09-25 18:05:12 +02:00
Jiri Zizkin Zizka
7447a87d92 Translated using Weblate (Czech)
Currently translated at 66.4% (8313 of 12512 strings)
2021-09-24 14:47:58 +02:00
soplatnik
3cf02ac84b Translated using Weblate (Basque)
Currently translated at 63.2% (365 of 577 strings)
2021-09-23 23:57:45 +02:00
Jiri Zizkin Zizka
fc37e19904 Translated using Weblate (Czech)
Currently translated at 66.1% (8281 of 12512 strings)
2021-09-23 23:57:44 +02:00
michael kunadi
398a8938e8 Translated using Weblate (Indonesian)
Currently translated at 16.7% (2093 of 12512 strings)
2021-09-23 23:57:43 +02:00
Jiri Zizkin Zizka
abd79475a8 Translated using Weblate (Czech)
Currently translated at 65.8% (8238 of 12512 strings)
2021-09-23 07:39:40 +02:00
Jiri Zizkin Zizka
40ebfacdac Translated using Weblate (Czech)
Currently translated at 64.0% (8019 of 12512 strings)
2021-09-19 20:37:59 +02:00
Bugra Bezgin
42a75ddffa Translated using Weblate (Turkish)
Currently translated at 38.9% (4868 of 12512 strings)
2021-09-19 20:37:57 +02:00
Jiri Zizkin Zizka
bdb9a8451e Translated using Weblate (Czech)
Currently translated at 63.7% (7979 of 12512 strings)
2021-09-15 23:32:19 +02:00
猫奴永不翻身
678c083291 Translated using Weblate (Chinese (Simplified))
Currently translated at 41.4% (5180 of 12512 strings)
2021-09-15 23:32:16 +02:00
Bugra Bezgin
c309943953 Translated using Weblate (Turkish)
Currently translated at 38.5% (4826 of 12512 strings)
2021-09-15 23:32:15 +02:00
Lucas Araujo
20e2f6ddc6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.2% (12287 of 12512 strings)
2021-09-15 23:32:10 +02:00
Urszula
59ee40d092 Translated using Weblate (Polish)
Currently translated at 80.6% (10093 of 12512 strings)
2021-09-15 23:32:08 +02:00
猫奴永不翻身
26af3fe12d Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (577 of 577 strings)
2021-09-12 20:48:24 +02:00
猫奴永不翻身
bb14652b29 Translated using Weblate (Chinese (Simplified))
Currently translated at 41.3% (5179 of 12512 strings)
2021-09-12 20:48:22 +02:00
Donald Yiu
af804223a8 Translated using Weblate (Chinese (Simplified))
Currently translated at 41.3% (5179 of 12512 strings)
2021-09-12 17:26:30 +02:00
猫奴永不翻身
47547552a6 Translated using Weblate (Chinese (Simplified))
Currently translated at 41.3% (5179 of 12512 strings)
2021-09-12 17:26:29 +02:00
wsh1997.c
2f6a6aab4a Translated using Weblate (Chinese (Simplified))
Currently translated at 41.3% (5179 of 12512 strings)
2021-09-12 17:26:29 +02:00
猫奴永不翻身
5f8683d959 Translated using Weblate (Chinese (Simplified))
Currently translated at 41.3% (5179 of 12512 strings)
2021-09-12 17:13:37 +02:00
Donald Yiu
644f191c90 Translated using Weblate (Chinese (Simplified))
Currently translated at 41.3% (5179 of 12512 strings)
2021-09-12 17:13:36 +02:00
Marco Santos
cab263b88b Translated using Weblate (Filipino)
Currently translated at 31.3% (181 of 577 strings)
2021-09-10 12:34:59 +02:00
Jiri Zizkin Zizka
6122198731 Translated using Weblate (Czech)
Currently translated at 62.6% (7841 of 12512 strings)
2021-09-10 12:34:54 +02:00
Donald Yiu
6e3ae6f3bc Translated using Weblate (Chinese (Simplified))
Currently translated at 40.5% (5078 of 12512 strings)
2021-09-10 12:34:52 +02:00
wsh1997.c
ccc95e46cc Translated using Weblate (Chinese (Simplified))
Currently translated at 40.5% (5078 of 12512 strings)
2021-09-10 12:34:51 +02:00
Marco Santos
260f46c4c3 Added translation using Weblate (Filipino) 2021-09-09 05:26:55 +02:00
wsh1997.c
0f9a43bc2b Translated using Weblate (Chinese (Simplified))
Currently translated at 40.0% (5011 of 12512 strings)
2021-09-08 19:16:48 +02:00
Jiri Zizkin Zizka
df38715c0a Translated using Weblate (Czech)
Currently translated at 62.2% (7785 of 12512 strings)
2021-09-08 00:34:37 +02:00
Jiri Zizkin Zizka
43c8595d8d Translated using Weblate (Czech)
Currently translated at 61.7% (7726 of 12512 strings)
2021-09-05 23:36:21 +02:00
Jiri Zizkin Zizka
424d0504cd Translated using Weblate (Czech)
Currently translated at 61.6% (7715 of 12512 strings)
2021-09-05 12:35:35 +02:00
Lordsem
dbf278fa07 Translated using Weblate (German)
Currently translated at 100.0% (12512 of 12512 strings)
2021-09-05 12:35:33 +02:00
Jiri Zizkin Zizka
01491c4042 Translated using Weblate (Czech)
Currently translated at 61.5% (7697 of 12512 strings)
2021-08-30 23:35:03 +02:00
Mingun
ffb2694039 Translated using Weblate (Russian)
Currently translated at 100.0% (12512 of 12512 strings)
2021-08-30 23:35:02 +02:00
Соловейга Юдина
c1b5089ba9 Added translation using Weblate (Latvian) 2021-08-28 11:14:57 +02:00
Sam
de2f32fab9 Translated using Weblate (Chinese (Simplified))
Currently translated at 39.3% (4928 of 12512 strings)
2021-08-27 16:35:24 +02:00
A M
eb146a1c08 Translated using Weblate (Polish)
Currently translated at 80.6% (10086 of 12512 strings)
2021-08-25 06:49:08 +02:00
Jiri Zizkin Zizka
3176cb27fc Translated using Weblate (Czech)
Currently translated at 61.2% (7658 of 12512 strings)
2021-08-24 00:18:47 +02:00
Bugra Bezgin
8dab4b9f60 Translated using Weblate (Turkish)
Currently translated at 34.8% (4361 of 12512 strings)
2021-08-23 11:54:16 +02:00
Nut.andor
1467e7d61f preparation beta1 2021-08-22 19:51:30 +02:00
Nut.andor
fc2bfb6b65 Merge remote-tracking branch 'hosted.weblate/master' into master 2021-08-22 00:36:07 +02:00
Jiri Zizkin Zizka
b2754bd782 Translated using Weblate (Czech)
Currently translated at 61.1% (7646 of 12512 strings)
2021-08-22 00:34:49 +02:00
Nut Andor
84e71e024b Translated using Weblate (German)
Currently translated at 100.0% (577 of 577 strings)
2021-08-22 00:34:47 +02:00
Nut.andor
b7ed340de2 Merge remote-tracking branch 'hosted.weblate/master' into master 2021-08-21 14:40:24 +02:00
Jiri Zizkin Zizka
dcede566c7 Translated using Weblate (Czech)
Currently translated at 61.0% (7633 of 12512 strings)
2021-08-21 14:38:10 +02:00
Nut Andor
20db8af71d Translated using Weblate (German)
Currently translated at 100.0% (12512 of 12512 strings)
2021-08-21 14:38:08 +02:00
Jiri Zizkin Zizka
d1a7eefbe9 Translated using Weblate (Czech)
Currently translated at 60.9% (7623 of 12512 strings)
2021-08-20 23:36:14 +02:00
Jiri Zizkin Zizka
39fdaadedf Translated using Weblate (Czech)
Currently translated at 60.8% (7615 of 12512 strings)
2021-08-20 16:38:24 +02:00
Oliver Lew
ff8ab4bcd6 Translated using Weblate (Chinese (Simplified))
Currently translated at 39.3% (4928 of 12512 strings)
2021-08-20 09:33:36 +02:00
Thiago Carmona Monteiro
29eaeca327 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.0% (12270 of 12512 strings)
2021-08-20 09:33:35 +02:00
Tymofii Lytvynenko
91895bec82 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (577 of 577 strings)
2021-08-18 02:38:45 +02:00
Jiri Zizkin Zizka
45a9caf583 Translated using Weblate (Czech)
Currently translated at 60.7% (7602 of 12512 strings)
2021-08-14 05:12:06 +02:00
Никита
7f816df024 Translated using Weblate (Ukrainian)
Currently translated at 11.4% (1434 of 12512 strings)
2021-08-12 18:37:28 +02:00
Jiri Zizkin Zizka
aa265b7878 Translated using Weblate (Czech)
Currently translated at 60.5% (7571 of 12512 strings)
2021-08-12 18:37:26 +02:00
Alexandre Jigue
96a5f53298 Translated using Weblate (French)
Currently translated at 93.5% (11699 of 12512 strings)
2021-08-12 18:37:24 +02:00
François D
dc8b5ddb7e Translated using Weblate (French)
Currently translated at 93.5% (11699 of 12512 strings)
2021-08-12 18:37:24 +02:00
Alexandre Jigue
0c4381b3d0 Translated using Weblate (French)
Currently translated at 93.2% (11665 of 12512 strings)
2021-08-12 14:46:53 +02:00
Jiri Zizkin Zizka
5e56c018a0 Translated using Weblate (Czech)
Currently translated at 60.1% (7522 of 12512 strings)
2021-08-11 17:49:51 +02:00
François D
65e3c1bb65 Translated using Weblate (French)
Currently translated at 93.2% (11664 of 12512 strings)
2021-08-11 17:49:50 +02:00
François D
a1ff055f28 Translated using Weblate (French)
Currently translated at 100.0% (577 of 577 strings)
2021-08-11 17:49:48 +02:00
François D
527ad87f7b Translated using Weblate (French)
Currently translated at 93.2% (11664 of 12512 strings)
2021-08-11 17:13:01 +02:00
Lacrom
42bae77141 Translated using Weblate (French)
Currently translated at 93.2% (11664 of 12512 strings)
2021-08-11 17:13:00 +02:00
Jean-Pascal Rhir
4ecfacdb11 Translated using Weblate (French)
Currently translated at 93.2% (11664 of 12512 strings)
2021-08-11 17:13:00 +02:00
Alexandre Jigue
f83c53cf3b Translated using Weblate (French)
Currently translated at 93.2% (11664 of 12512 strings)
2021-08-11 17:12:59 +02:00
François D
1316f8d42f Translated using Weblate (French)
Currently translated at 93.2% (11663 of 12512 strings)
2021-08-11 17:05:19 +02:00
Alexandre Jigue
a978f7ab28 Translated using Weblate (French)
Currently translated at 93.2% (11663 of 12512 strings)
2021-08-11 17:05:18 +02:00
François D
4cdbe80259 Translated using Weblate (French)
Currently translated at 93.2% (11662 of 12512 strings)
2021-08-11 17:04:23 +02:00
Alexandre Jigue
67aaf73a7a Translated using Weblate (French)
Currently translated at 93.2% (11662 of 12512 strings)
2021-08-11 17:04:22 +02:00
François D
d0455831e0 Translated using Weblate (French)
Currently translated at 93.1% (11660 of 12512 strings)
2021-08-11 17:03:37 +02:00
Alexandre Jigue
7f60cec354 Translated using Weblate (French)
Currently translated at 93.1% (11660 of 12512 strings)
2021-08-11 17:03:36 +02:00
François D
c524ca5fdc Translated using Weblate (French)
Currently translated at 93.1% (11657 of 12512 strings)
2021-08-11 17:01:55 +02:00
Alexandre Jigue
404ee1a92e Translated using Weblate (French)
Currently translated at 93.1% (11657 of 12512 strings)
2021-08-11 17:01:54 +02:00
François D
805c64b607 Translated using Weblate (French)
Currently translated at 93.1% (11654 of 12512 strings)
2021-08-11 17:01:10 +02:00
Alexandre Jigue
bf5dc8ffd8 Translated using Weblate (French)
Currently translated at 93.1% (11654 of 12512 strings)
2021-08-11 17:01:09 +02:00
François D
d08a57d491 Translated using Weblate (French)
Currently translated at 93.1% (11653 of 12512 strings)
2021-08-11 17:00:57 +02:00
Alexandre Jigue
0479070610 Translated using Weblate (French)
Currently translated at 93.1% (11653 of 12512 strings)
2021-08-11 17:00:56 +02:00
François D
6332f62030 Translated using Weblate (French)
Currently translated at 93.1% (11652 of 12512 strings)
2021-08-11 17:00:42 +02:00
Alexandre Jigue
8cf47452bd Translated using Weblate (French)
Currently translated at 93.1% (11652 of 12512 strings)
2021-08-11 17:00:42 +02:00
François D
d48b64a0df Translated using Weblate (French)
Currently translated at 93.1% (11651 of 12512 strings)
2021-08-11 17:00:29 +02:00
Alexandre Jigue
7c0c60ca7f Translated using Weblate (French)
Currently translated at 93.1% (11651 of 12512 strings)
2021-08-11 17:00:28 +02:00
Alexandre Jigue
061c608f65 Translated using Weblate (French)
Currently translated at 93.1% (11649 of 12512 strings)
2021-08-11 16:59:04 +02:00
François D
0e35995bbb Translated using Weblate (French)
Currently translated at 93.0% (11647 of 12512 strings)
2021-08-11 16:58:38 +02:00
Alexandre Jigue
d434dd1ae7 Translated using Weblate (French)
Currently translated at 93.0% (11647 of 12512 strings)
2021-08-11 16:58:38 +02:00
François D
cbcbdc022b Translated using Weblate (French)
Currently translated at 93.0% (11645 of 12512 strings)
2021-08-11 16:57:54 +02:00
Alexandre Jigue
2d1252aef8 Translated using Weblate (French)
Currently translated at 93.0% (11645 of 12512 strings)
2021-08-11 16:57:53 +02:00
François D
2380895b07 Translated using Weblate (French)
Currently translated at 93.0% (11644 of 12512 strings)
2021-08-11 16:57:19 +02:00
Alexandre Jigue
6e10a8f27b Translated using Weblate (French)
Currently translated at 93.0% (11644 of 12512 strings)
2021-08-11 16:57:18 +02:00
François D
881501ed86 Translated using Weblate (French)
Currently translated at 93.0% (11643 of 12512 strings)
2021-08-11 16:57:00 +02:00
Alexandre Jigue
57de174802 Translated using Weblate (French)
Currently translated at 93.0% (11643 of 12512 strings)
2021-08-11 16:56:59 +02:00
François D
7e69025f15 Translated using Weblate (French)
Currently translated at 93.0% (11640 of 12512 strings)
2021-08-11 16:49:24 +02:00
Alexandre Jigue
f0112d8f8b Translated using Weblate (French)
Currently translated at 93.0% (11640 of 12512 strings)
2021-08-11 16:49:24 +02:00
Alexandre Jigue
c93c56a536 Translated using Weblate (French)
Currently translated at 93.0% (11640 of 12512 strings)
2021-08-11 15:51:34 +02:00
François D
0e4e60ee16 Translated using Weblate (French)
Currently translated at 93.0% (11640 of 12512 strings)
2021-08-11 15:51:14 +02:00
François D
75abdf8fc5 Translated using Weblate (French)
Currently translated at 93.0% (11639 of 12512 strings)
2021-08-11 15:50:16 +02:00
Alexandre Jigue
0d0080db65 Translated using Weblate (French)
Currently translated at 93.0% (11639 of 12512 strings)
2021-08-11 15:50:16 +02:00
François D
7c2778a7b6 Translated using Weblate (French)
Currently translated at 93.0% (11637 of 12512 strings)
2021-08-11 15:45:23 +02:00
Alexandre Jigue
f18492c1cb Translated using Weblate (French)
Currently translated at 93.0% (11637 of 12512 strings)
2021-08-11 15:45:23 +02:00
François D
9a75f4c4ab Translated using Weblate (French)
Currently translated at 92.9% (11636 of 12512 strings)
2021-08-11 15:45:01 +02:00
Alexandre Jigue
1cf3f810a4 Translated using Weblate (French)
Currently translated at 92.9% (11636 of 12512 strings)
2021-08-11 15:45:00 +02:00
François D
01d422537d Translated using Weblate (French)
Currently translated at 92.9% (11634 of 12512 strings)
2021-08-11 15:43:36 +02:00
Alexandre Jigue
414c05d9c8 Translated using Weblate (French)
Currently translated at 92.9% (11634 of 12512 strings)
2021-08-11 15:43:35 +02:00
François D
f9f55f965b Translated using Weblate (French)
Currently translated at 92.9% (11633 of 12512 strings)
2021-08-11 15:43:15 +02:00
Alexandre Jigue
b6c3ede860 Translated using Weblate (French)
Currently translated at 92.9% (11633 of 12512 strings)
2021-08-11 15:43:14 +02:00
François D
5b05a66980 Translated using Weblate (French)
Currently translated at 92.9% (11632 of 12512 strings)
2021-08-11 15:37:08 +02:00
Alexandre Jigue
ac3c041ced Translated using Weblate (French)
Currently translated at 92.9% (11632 of 12512 strings)
2021-08-11 15:37:07 +02:00
François D
3affd6f4c0 Translated using Weblate (French)
Currently translated at 92.9% (11631 of 12512 strings)
2021-08-11 15:35:48 +02:00
Alexandre Jigue
68840f1687 Translated using Weblate (French)
Currently translated at 92.9% (11631 of 12512 strings)
2021-08-11 15:35:48 +02:00
Joel A
9985e4035e Translated using Weblate (Swedish)
Currently translated at 68.1% (393 of 577 strings)
2021-08-09 19:34:08 +02:00
Jiri Zizkin Zizka
243279bdb4 Translated using Weblate (Czech)
Currently translated at 60.0% (7514 of 12512 strings)
2021-08-09 19:34:08 +02:00
Kett Lovahr
ccda7ca9f0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.9% (12258 of 12512 strings)
2021-08-09 19:34:06 +02:00
Thiago Carmona Monteiro
c34fc6e0d6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.9% (12258 of 12512 strings)
2021-08-09 19:34:05 +02:00
forheinn
14530b6bce Translated using Weblate (Indonesian)
Currently translated at 16.7% (2091 of 12512 strings)
2021-08-09 19:34:02 +02:00
Jiri Zizkin Zizka
38f1a62a57 Translated using Weblate (Czech)
Currently translated at 59.4% (7435 of 12512 strings)
2021-08-05 10:54:57 +02:00
Joel A
c3b146ffa3 Translated using Weblate (Swedish)
Currently translated at 67.5% (390 of 577 strings)
2021-08-04 17:34:06 +02:00
Kristoffer Grundström
aaac4f77bc Translated using Weblate (Swedish)
Currently translated at 5.3% (666 of 12512 strings)
2021-08-04 17:34:03 +02:00
Joel A
b341a96a5d Translated using Weblate (Swedish)
Currently translated at 5.3% (666 of 12512 strings)
2021-08-04 17:34:02 +02:00
Jiri Zizkin Zizka
88632f91b5 Translated using Weblate (Czech)
Currently translated at 59.3% (7422 of 12512 strings)
2021-08-04 17:34:01 +02:00
Joel A
a71e8d1019 Translated using Weblate (Swedish)
Currently translated at 5.2% (663 of 12512 strings)
2021-08-04 01:48:46 +02:00
Gonk
505409938f Enable the worldmap to load when targetting sdk 30 2021-08-03 17:06:34 +02:00
Jiri Zizkin Zizka
89ded3e72a Translated using Weblate (Czech)
Currently translated at 59.2% (7414 of 12512 strings)
2021-08-02 23:10:11 +02:00
Jiri Zizkin Zizka
60ffadda86 Translated using Weblate (Czech)
Currently translated at 59.2% (7413 of 12512 strings)
2021-08-02 21:21:46 +02:00
Allan Nordhøy
b3b9c62e2c Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.2% (402 of 12512 strings)
2021-07-30 11:15:33 +02:00
Jiri Zizkin Zizka
0899241c49 Translated using Weblate (Czech)
Currently translated at 57.8% (7234 of 12512 strings)
2021-07-30 11:15:31 +02:00
Jiri Zizkin Zizka
147452be42 Translated using Weblate (Czech)
Currently translated at 56.5% (7078 of 12512 strings)
2021-07-28 08:40:10 +02:00
Sofia Fernanda
4923235658 Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.3% (12050 of 12512 strings)
2021-07-28 08:40:08 +02:00
Hosted Weblate
90575990d8 Merge branch 'origin/master' into Weblate. 2021-07-26 23:40:31 +02:00
Jiri Zizkin Zizka
008f6d71ea Translated using Weblate (Czech)
Currently translated at 56.4% (7066 of 12512 strings)
2021-07-25 23:31:32 +02:00
Jiri Zizkin Zizka
bc0ecdc07b Translated using Weblate (Czech)
Currently translated at 55.3% (6923 of 12512 strings)
2021-07-23 21:34:43 +02:00
Gonk
b6a2ceb6e0 Adjust tabbeldlayout to new android support library (otherwise the tabs won't be displayed) 2021-07-18 21:15:22 +02:00
Alexandre Jigue
632e6a0b09 Translated using Weblate (French)
Currently translated at 92.9% (11627 of 12512 strings)
2021-07-17 04:34:21 +02:00
Jiri Zizkin Zizka
e8c81a6646 Translated using Weblate (Czech)
Currently translated at 55.2% (6915 of 12512 strings)
2021-07-16 00:16:53 +02:00
Irina
af2bab7412 Translated using Weblate (Russian)
Currently translated at 100.0% (12512 of 12512 strings)
2021-07-16 00:16:52 +02:00
Alexandre Jigue
7e8ee15eb6 Translated using Weblate (French)
Currently translated at 92.9% (11626 of 12512 strings)
2021-07-16 00:16:50 +02:00
Jiri Zizkin Zizka
a397de3991 Translated using Weblate (Czech)
Currently translated at 55.1% (6904 of 12512 strings)
2021-07-15 02:33:47 +02:00
Lihan Zhu
5e64264b34 Translated using Weblate (Albanian)
Currently translated at 0.1% (1 of 12511 strings)
2021-07-13 23:46:26 +02:00
Lihan Zhu
19667aa839 Translated using Weblate (Arabic)
Currently translated at 8.8% (1111 of 12511 strings)
2021-07-13 23:46:25 +02:00
Jiri Zizkin Zizka
a4e9220357 Translated using Weblate (Czech)
Currently translated at 54.6% (6838 of 12512 strings)
2021-07-13 23:46:23 +02:00
Irina
f3200baadd Translated using Weblate (Russian)
Currently translated at 100.0% (12512 of 12512 strings)
2021-07-13 23:46:21 +02:00
Lihan Zhu
65b71d15f7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.1% (12027 of 12512 strings)
2021-07-13 23:46:19 +02:00
Gonk
58f04af511 Merge branch 'scopedstorage_prototype' into ATOmiRep 2021-07-11 21:58:53 +02:00
Gonk
dec1a548cd Smaller changes and bugfixes 2021-07-11 21:49:05 +02:00
Jiri Zizkin Zizka
87a45a7d4f Translated using Weblate (Czech)
Currently translated at 53.8% (6734 of 12512 strings)
2021-07-10 23:05:40 +02:00
Gonk
5d572187df Altered code to production quality 2021-07-10 20:18:29 +02:00
Tymofii Lytvynenko
beef9904c3 Translated using Weblate (Ukrainian)
Currently translated at 11.2% (1405 of 12512 strings)
2021-07-10 10:33:54 +02:00
Jiri Zizkin Zizka
d3891144ce Translated using Weblate (Czech)
Currently translated at 53.3% (6678 of 12512 strings)
2021-07-10 10:33:53 +02:00
Nut.andor
b0f356afcc fix missing base layer in worldmap 2021-07-09 23:13:05 +02:00
Jiri Zizkin Zizka
219bc77251 Translated using Weblate (Czech)
Currently translated at 53.1% (6650 of 12512 strings)
2021-07-08 15:33:59 +02:00
ArunJRK
24e6a842d7 Translated using Weblate (Tamil)
Currently translated at 0.1% (17 of 12511 strings)
2021-07-07 08:33:51 +02:00
ArunJRK
23c2486c27 Added translation using Weblate (Tamil) 2021-07-06 07:49:19 +02:00
Bugra Bezgin
803648d557 Translated using Weblate (Turkish)
Currently translated at 34.3% (4292 of 12512 strings)
2021-07-05 23:33:44 +02:00
Wladimir Castañeda Sánchez
a39a8e13d0 Translated using Weblate (Spanish)
Currently translated at 100.0% (12512 of 12512 strings)
2021-07-05 23:33:41 +02:00
Dante Avila
b9baaa4772 Translated using Weblate (Spanish)
Currently translated at 100.0% (12512 of 12512 strings)
2021-07-05 23:33:41 +02:00
Bugra Bezgin
830ea8c6b6 Translated using Weblate (Turkish)
Currently translated at 32.3% (4051 of 12512 strings)
2021-07-04 19:18:55 +02:00
Genís Torrents Verdaguer
abcb7dec53 Translated using Weblate (Catalan)
Currently translated at 19.8% (2486 of 12512 strings)
2021-07-04 19:17:08 +02:00
Tymofii Lytvynenko
ae47a5e0e7 Translated using Weblate (Ukrainian)
Currently translated at 11.2% (1402 of 12512 strings)
2021-07-04 19:17:04 +02:00
hasan köksal
bd00ab68fb Translated using Weblate (Turkish)
Currently translated at 32.3% (4046 of 12512 strings)
2021-07-04 19:17:02 +02:00
Bugra Bezgin
86fa2cdf0b Translated using Weblate (Turkish)
Currently translated at 32.3% (4046 of 12512 strings)
2021-07-04 19:17:02 +02:00
Genís Torrents Verdaguer
6a16983830 Translated using Weblate (Catalan)
Currently translated at 100.0% (577 of 577 strings)
2021-07-04 09:37:20 +02:00
Genís Torrents Verdaguer
8676c6aff7 Translated using Weblate (Catalan)
Currently translated at 16.9% (2120 of 12512 strings)
2021-07-04 09:37:18 +02:00
Genís Torrents Verdaguer
b4f6969b9a Translated using Weblate (Catalan)
Currently translated at 9.8% (1230 of 12512 strings)
2021-07-03 12:01:05 +02:00
Mateusz Mendel
e3eb9d4e05 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-07-01 17:05:09 +02:00
Meiru
fa79428dba Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-07-01 17:05:08 +02:00
Mateusz Mendel
c257f35ba2 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-30 18:35:45 +02:00
Jiri Zizkin Zizka
14c64aa3de Translated using Weblate (Czech)
Currently translated at 53.0% (6636 of 12512 strings)
2021-06-29 04:02:29 +02:00
Jiri Zizkin Zizka
fe60a9fa9f Translated using Weblate (Czech)
Currently translated at 52.9% (6621 of 12512 strings)
2021-06-28 15:32:29 +02:00
Ido Shdaimah
850d66cc97 Translated using Weblate (Hebrew)
Currently translated at 1.3% (167 of 12511 strings)
2021-06-28 00:16:19 +02:00
Jiri Zizkin Zizka
9bfc439351 Translated using Weblate (Czech)
Currently translated at 52.9% (6619 of 12512 strings)
2021-06-28 00:16:16 +02:00
Stilian
463582e904 Translated using Weblate (Bulgarian)
Currently translated at 0.6% (87 of 12512 strings)
2021-06-25 17:33:46 +02:00
Lucas Araujo
67ded45bec Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.1% (12027 of 12512 strings)
2021-06-24 09:43:29 +02:00
Jiri Zizkin Zizka
bf804d3e4e Translated using Weblate (Czech)
Currently translated at 52.6% (6592 of 12512 strings)
2021-06-24 00:30:20 +02:00
Mateusz Mendel
f175385342 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-24 00:30:18 +02:00
Mateusz Mendel
cf1cbb6fdc Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-23 16:20:29 +02:00
Jiri Zizkin Zizka
f3373b3d5e Translated using Weblate (Czech)
Currently translated at 52.4% (6568 of 12512 strings)
2021-06-23 13:09:55 +02:00
Mateusz Mendel
3ac4f7b30e Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-23 13:09:53 +02:00
Jiri Zizkin Zizka
1e9b7a58a4 Translated using Weblate (Czech)
Currently translated at 52.3% (6547 of 12512 strings)
2021-06-22 13:52:07 +02:00
Jiri Zizkin Zizka
334465467b Translated using Weblate (Czech)
Currently translated at 52.2% (6536 of 12512 strings)
2021-06-22 08:38:58 +02:00
Jiri Zizkin Zizka
b60874b870 Translated using Weblate (Czech)
Currently translated at 52.1% (6530 of 12512 strings)
2021-06-21 10:04:39 +02:00
Mateusz Mendel
3c8f913ce8 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-20 19:33:56 +02:00
Jiri Zizkin Zizka
37bc895db0 Translated using Weblate (Czech)
Currently translated at 52.0% (6515 of 12512 strings)
2021-06-18 17:34:54 +02:00
Gökhan Demirden
4a8a69a12d Translated using Weblate (Turkish)
Currently translated at 31.6% (3964 of 12512 strings)
2021-06-18 17:34:52 +02:00
Damian Tokarski
65f29a2c1a Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-18 17:34:50 +02:00
Mateusz Mendel
c6c4b1b7cb Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-18 17:34:50 +02:00
Mateusz Mendel
c7a6e51d68 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-18 15:37:13 +02:00
Damian Tokarski
3d30e3b08f Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-18 15:37:10 +02:00
Jiri Zizkin Zizka
5a61227213 Translated using Weblate (Czech)
Currently translated at 51.9% (6506 of 12512 strings)
2021-06-17 04:32:27 +02:00
Bugra Bezgin
fca1104f44 Translated using Weblate (Turkish)
Currently translated at 31.6% (3960 of 12512 strings)
2021-06-17 04:32:26 +02:00
Mateusz Mendel
7aa4d0937a Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-17 04:32:24 +02:00
J. Lavoie
b4eeafa8e9 Translated using Weblate (French)
Currently translated at 99.8% (576 of 577 strings)
2021-06-17 04:32:22 +02:00
Jiri Zizkin Zizka
26e5e1c8d7 Translated using Weblate (Czech)
Currently translated at 51.8% (6491 of 12512 strings)
2021-06-15 23:32:27 +02:00
Mateusz Mendel
27388f83c0 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-15 23:32:24 +02:00
Mateusz Mendel
3d2fcc8cc7 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-12 18:14:05 +02:00
Jiri Zizkin Zizka
5fe5cbb185 Translated using Weblate (Czech)
Currently translated at 50.7% (6354 of 12512 strings)
2021-06-11 03:36:35 +02:00
zoollcar
eeba3287e6 Translated using Weblate (Chinese (Simplified))
Currently translated at 39.3% (4926 of 12512 strings)
2021-06-11 03:36:33 +02:00
Jiri Zizkin Zizka
3439c5f859 Translated using Weblate (Czech)
Currently translated at 50.2% (6288 of 12512 strings)
2021-06-08 02:13:07 +02:00
Jiri Zizkin Zizka
7fadea910d Translated using Weblate (Czech)
Currently translated at 50.0% (6262 of 12512 strings)
2021-06-07 12:58:11 +02:00
zoollcar
a05351a821 Translated using Weblate (Chinese (Simplified))
Currently translated at 39.2% (4910 of 12512 strings)
2021-06-07 12:58:09 +02:00
Mateusz Mendel
e69c9a59c6 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-06-07 12:58:07 +02:00
Guido Arnold
c1c5071c33 Translated using Weblate (German)
Currently translated at 100.0% (12512 of 12512 strings)
2021-06-07 12:58:05 +02:00
Nut Andor
5dc457dbdd Translated using Weblate (German)
Currently translated at 100.0% (12512 of 12512 strings)
2021-06-05 22:25:59 +02:00
Roman Leo
d181122072 Translated using Weblate (German)
Currently translated at 100.0% (12512 of 12512 strings)
2021-06-05 22:25:58 +02:00
Roman Leo
d0f346dae6 Translated using Weblate (German)
Currently translated at 99.6% (12468 of 12512 strings)
2021-06-05 17:38:01 +02:00
Nut Andor
d00fc4a93d Translated using Weblate (German)
Currently translated at 99.6% (12468 of 12512 strings)
2021-06-05 17:37:59 +02:00
Guido Arnold
d68f43eac3 Translated using Weblate (German)
Currently translated at 98.9% (12378 of 12512 strings)
2021-06-05 17:14:57 +02:00
Roman Leo
8edbfd1804 Translated using Weblate (German)
Currently translated at 98.9% (12378 of 12512 strings)
2021-06-05 17:14:56 +02:00
Nut Andor
db466a6f1d Translated using Weblate (German)
Currently translated at 92.1% (11532 of 12512 strings)
2021-06-05 09:30:34 +02:00
Guido Arnold
7e6ac79f09 Translated using Weblate (German)
Currently translated at 92.1% (11532 of 12512 strings)
2021-06-05 09:30:34 +02:00
THANOS SIOURDAKIS
311d41e3d7 Translated using Weblate (Greek)
Currently translated at 99.4% (574 of 577 strings)
2021-06-04 00:52:34 +02:00
THANOS SIOURDAKIS
385dd5c3e4 Translated using Weblate (Greek)
Currently translated at 10.7% (1339 of 12511 strings)
2021-06-04 00:52:33 +02:00
Kristoffer Grundström
a3a58d71e1 Translated using Weblate (Swedish)
Currently translated at 4.7% (596 of 12512 strings)
2021-06-04 00:52:32 +02:00
Jiri Zizkin Zizka
9d0ebcddcb Translated using Weblate (Czech)
Currently translated at 49.9% (6251 of 12512 strings)
2021-06-04 00:52:31 +02:00
zoollcar
5a75b2233a Translated using Weblate (Chinese (Simplified))
Currently translated at 38.8% (4856 of 12512 strings)
2021-06-04 00:51:50 +02:00
Jacque Fresco
0ce02f181b Translated using Weblate (Malay)
Currently translated at 4.5% (570 of 12512 strings)
2021-06-04 00:51:48 +02:00
Nut Andor
e301e815e1 Translated using Weblate (German)
Currently translated at 91.5% (11455 of 12512 strings)
2021-06-04 00:51:46 +02:00
Guido Arnold
28a9080163 Translated using Weblate (German)
Currently translated at 91.5% (11455 of 12512 strings)
2021-06-04 00:51:45 +02:00
Guido Arnold
a48f0b016e Translated using Weblate (German)
Currently translated at 100.0% (577 of 577 strings)
2021-06-04 00:51:43 +02:00
zoollcar
b99597fbe9 Translated using Weblate (Chinese (Simplified))
Currently translated at 38.4% (4811 of 12512 strings)
2021-06-02 10:19:06 +02:00
Donald Yiu
ab0ff7c864 Translated using Weblate (Chinese (Simplified))
Currently translated at 38.4% (4811 of 12512 strings)
2021-06-02 10:19:04 +02:00
Jiri Zizkin Zizka
7b021c4450 Translated using Weblate (Czech)
Currently translated at 48.7% (6095 of 12512 strings)
2021-06-02 00:37:50 +02:00
zoollcar
d84232de0c Translated using Weblate (Chinese (Simplified))
Currently translated at 37.0% (4637 of 12512 strings)
2021-06-02 00:37:49 +02:00
Jacque Fresco
eec6cc7e9d Translated using Weblate (Malay)
Currently translated at 4.5% (568 of 12512 strings)
2021-06-02 00:37:46 +02:00
Jacque Fresco
7a71c2bdbe Translated using Weblate (Indonesian)
Currently translated at 16.5% (2076 of 12512 strings)
2021-06-02 00:37:44 +02:00
Nut Andor
3061324d91 Translated using Weblate (German)
Currently translated at 90.2% (11296 of 12512 strings)
2021-06-02 00:37:43 +02:00
Nut Andor
428efb1afd Translated using Weblate (German)
Currently translated at 99.8% (576 of 577 strings)
2021-06-02 00:37:41 +02:00
Donald Yiu
447723c2c7 Translated using Weblate (Chinese (Simplified))
Currently translated at 36.1% (4519 of 12512 strings)
2021-06-01 08:54:38 +02:00
zoollcar
71eb8a9266 Translated using Weblate (Chinese (Simplified))
Currently translated at 36.1% (4519 of 12512 strings)
2021-06-01 08:54:37 +02:00
Jiri Zizkin Zizka
95e4185508 Translated using Weblate (Czech)
Currently translated at 48.4% (6064 of 12512 strings)
2021-05-31 10:31:58 +02:00
Mateusz Mendel
f5bc0b4343 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-05-31 10:31:56 +02:00
Jacque Fresco
5811b7465c Translated using Weblate (Malay)
Currently translated at 4.1% (515 of 12512 strings)
2021-05-31 10:31:55 +02:00
Lumies
2c146568cd Translated using Weblate (Korean)
Currently translated at 11.1% (1398 of 12512 strings)
2021-05-31 10:31:51 +02:00
Jacque Fresco
40ea70b29f Translated using Weblate (Indonesian)
Currently translated at 16.0% (2005 of 12512 strings)
2021-05-31 10:31:49 +02:00
Roman Leo
ec7945df33 Translated using Weblate (German)
Currently translated at 90.1% (11278 of 12512 strings)
2021-05-31 10:31:46 +02:00
Nut Andor
04e2b64587 Translated using Weblate (German)
Currently translated at 90.1% (11278 of 12512 strings)
2021-05-31 10:31:45 +02:00
Lumies
013863a0e7 Translated using Weblate (Korean)
Currently translated at 11.1% (1398 of 12512 strings)
2021-05-28 09:07:17 +02:00
Jiri Zizkin Zizka
58d2d41232 Translated using Weblate (Czech)
Currently translated at 48.3% (6050 of 12512 strings)
2021-05-27 23:33:20 +02:00
Mateusz Mendel
828598e0ff Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-05-27 23:33:19 +02:00
Jacque Fresco
ffa3762a0f Translated using Weblate (Malay)
Currently translated at 1.7% (213 of 12512 strings)
2021-05-27 23:33:17 +02:00
Lumies
b5a9ff65ff Translated using Weblate (Korean)
Currently translated at 11.1% (1398 of 12512 strings)
2021-05-27 23:33:15 +02:00
Christian Weikusat
639885087e Translated using Weblate (German)
Currently translated at 89.1% (11150 of 12512 strings)
2021-05-27 23:33:14 +02:00
Roman Leo
efeb6773bc Translated using Weblate (German)
Currently translated at 89.1% (11150 of 12512 strings)
2021-05-27 23:33:13 +02:00
Roman Leo
d21dd8921c Translated using Weblate (German)
Currently translated at 99.8% (576 of 577 strings)
2021-05-27 23:33:10 +02:00
Jiri Zizkin Zizka
a3ce447047 Translated using Weblate (Czech)
Currently translated at 48.0% (6013 of 12512 strings)
2021-05-26 00:41:32 +02:00
Roman Leo
16e89036cb Translated using Weblate (German)
Currently translated at 86.2% (10793 of 12512 strings)
2021-05-26 00:41:30 +02:00
Roman Leo
73b22d51af Translated using Weblate (French)
Currently translated at 99.8% (576 of 577 strings)
2021-05-26 00:41:27 +02:00
Roman Leo
62b1a34288 Translated using Weblate (German)
Currently translated at 99.8% (576 of 577 strings)
2021-05-26 00:41:27 +02:00
Jiri Zizkin Zizka
2f4664adfd Translated using Weblate (Czech)
Currently translated at 47.7% (5972 of 12512 strings)
2021-05-25 00:12:06 +02:00
Mateusz Mendel
d0a7babc33 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-05-25 00:12:05 +02:00
Nut Andor
2a02ad9afa Translated using Weblate (German)
Currently translated at 85.3% (10682 of 12512 strings)
2021-05-25 00:12:02 +02:00
Roman Leo
aff0cf1e0d Translated using Weblate (German)
Currently translated at 85.3% (10682 of 12512 strings)
2021-05-25 00:12:02 +02:00
Mo Ro
bee47f3715 Translated using Weblate (German)
Currently translated at 100.0% (577 of 577 strings)
2021-05-24 18:21:16 +02:00
Roman Leo
79b65e12ed Translated using Weblate (German)
Currently translated at 100.0% (577 of 577 strings)
2021-05-24 18:21:16 +02:00
Nut Andor
47d905d7d6 Translated using Weblate (German)
Currently translated at 100.0% (577 of 577 strings)
2021-05-24 18:19:22 +02:00
Roman Leo
2f1cde5eab Translated using Weblate (German)
Currently translated at 100.0% (577 of 577 strings)
2021-05-24 18:19:22 +02:00
Roman Leo
3d4e147a2a Translated using Weblate (German)
Currently translated at 83.2% (10413 of 12512 strings)
2021-05-24 14:36:45 +02:00
Nut Andor
a847704a43 Translated using Weblate (German)
Currently translated at 83.2% (10413 of 12512 strings)
2021-05-24 14:36:45 +02:00
Roman Leo
b6ecd7ac71 Translated using Weblate (German)
Currently translated at 83.2% (10411 of 12512 strings)
2021-05-24 14:32:36 +02:00
Nut Andor
aca4da79b3 Translated using Weblate (German)
Currently translated at 83.2% (10411 of 12512 strings)
2021-05-24 14:32:36 +02:00
Roman Leo
a6aafb4ad3 Translated using Weblate (German)
Currently translated at 83.1% (10399 of 12512 strings)
2021-05-24 14:19:30 +02:00
Nut Andor
11b2d998eb Translated using Weblate (German)
Currently translated at 83.1% (10399 of 12512 strings)
2021-05-24 14:19:29 +02:00
Roman Leo
23ccc9ac56 Translated using Weblate (German)
Currently translated at 83.0% (10395 of 12512 strings)
2021-05-24 14:15:35 +02:00
Nut Andor
59ef64d595 Translated using Weblate (German)
Currently translated at 83.0% (10395 of 12512 strings)
2021-05-24 14:15:35 +02:00
Roman Leo
9531c5f876 Translated using Weblate (German)
Currently translated at 83.0% (10393 of 12512 strings)
2021-05-24 14:13:55 +02:00
Nut Andor
5c28bed0ac Translated using Weblate (German)
Currently translated at 83.0% (10393 of 12512 strings)
2021-05-24 14:13:54 +02:00
Roman Leo
ef98fb3232 Translated using Weblate (German)
Currently translated at 83.0% (10388 of 12512 strings)
2021-05-24 14:10:42 +02:00
Nut Andor
039bd15cf9 Translated using Weblate (German)
Currently translated at 83.0% (10388 of 12512 strings)
2021-05-24 14:10:41 +02:00
Roman Leo
b0e6e17c3e Translated using Weblate (German)
Currently translated at 83.0% (10387 of 12512 strings)
2021-05-24 14:08:24 +02:00
Nut Andor
def46b6765 Translated using Weblate (German)
Currently translated at 83.0% (10387 of 12512 strings)
2021-05-24 14:08:23 +02:00
Roman Leo
8403d18588 Translated using Weblate (German)
Currently translated at 83.0% (10386 of 12512 strings)
2021-05-24 14:07:28 +02:00
Nut Andor
d4afb6585c Translated using Weblate (German)
Currently translated at 83.0% (10386 of 12512 strings)
2021-05-24 14:07:27 +02:00
Roman Leo
5b66c1b6fd Translated using Weblate (German)
Currently translated at 82.9% (10383 of 12512 strings)
2021-05-24 14:01:19 +02:00
Nut Andor
03a3413710 Translated using Weblate (German)
Currently translated at 82.9% (10383 of 12512 strings)
2021-05-24 14:01:18 +02:00
Roman Leo
ca6fd5042c Translated using Weblate (German)
Currently translated at 82.8% (10371 of 12512 strings)
2021-05-24 12:20:42 +02:00
Nut Andor
7197a1031f Translated using Weblate (German)
Currently translated at 82.8% (10371 of 12512 strings)
2021-05-24 12:20:42 +02:00
Jiri Zizkin Zizka
2701617548 Translated using Weblate (Czech)
Currently translated at 47.4% (5935 of 12512 strings)
2021-05-24 05:11:17 +02:00
Jacque Fresco
03be71ffff Translated using Weblate (Arabic)
Currently translated at 8.8% (1109 of 12511 strings)
2021-05-23 23:32:23 +02:00
Jiri Zizkin Zizka
859de4efec Translated using Weblate (Czech)
Currently translated at 47.2% (5917 of 12512 strings)
2021-05-23 23:32:21 +02:00
Jacque Fresco
5225c55783 Translated using Weblate (Dutch)
Currently translated at 8.5% (1069 of 12512 strings)
2021-05-23 23:32:19 +02:00
Jacque Fresco
a3920f6b8a Translated using Weblate (German)
Currently translated at 82.8% (10364 of 12512 strings)
2021-05-23 23:32:17 +02:00
Jiri Zizkin Zizka
0f6b97a09d Translated using Weblate (Czech)
Currently translated at 46.8% (5858 of 12512 strings)
2021-05-22 00:14:36 +02:00
Jakub Fabijan
c384325962 Translated using Weblate (Esperanto)
Currently translated at 0.5% (66 of 12511 strings)
2021-05-21 15:52:00 +02:00
Jiri Zizkin Zizka
ec5f8211ae Translated using Weblate (Czech)
Currently translated at 46.2% (5782 of 12512 strings)
2021-05-21 15:51:59 +02:00
Chairin Zaim
f9e30b4092 Translated using Weblate (Malay)
Currently translated at 1.4% (185 of 12512 strings)
2021-05-21 15:51:56 +02:00
Jacque Fresco
1762803d92 Translated using Weblate (Malay)
Currently translated at 1.4% (185 of 12512 strings)
2021-05-21 15:51:55 +02:00
Jacque Fresco
75857dae42 Translated using Weblate (Indonesian)
Currently translated at 14.2% (1785 of 12512 strings)
2021-05-21 15:51:53 +02:00
Syed Abdul Wakeel Hashimi
1d71c2b9d3 Translated using Weblate (Pashto)
Currently translated at 0.1% (2 of 12511 strings)
2021-05-19 21:56:11 +02:00
Jiri Zizkin Zizka
abcf44469f Translated using Weblate (Czech)
Currently translated at 45.7% (5719 of 12512 strings)
2021-05-19 21:56:10 +02:00
Jacque Fresco
bd20d0eab6 Translated using Weblate (Malay)
Currently translated at 1.0% (132 of 12512 strings)
2021-05-19 21:56:08 +02:00
Chairin Zaim
f26926d58e Translated using Weblate (Malay)
Currently translated at 1.0% (132 of 12512 strings)
2021-05-19 21:56:08 +02:00
Jacque Fresco
baece11a5c Translated using Weblate (Indonesian)
Currently translated at 13.9% (1744 of 12512 strings)
2021-05-19 21:56:06 +02:00
Syed Abdul Wakeel Hashimi
a3c243f129 Added translation using Weblate (Pashto) 2021-05-19 11:05:32 +02:00
Jiri Zizkin Zizka
e31a89aa6e Translated using Weblate (Czech)
Currently translated at 45.6% (5713 of 12512 strings)
2021-05-19 00:12:04 +02:00
Mateusz Mendel
aa3d4f077c Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-05-19 00:12:02 +02:00
Nicolas Cosson
c94d8494ce Translated using Weblate (Dutch)
Currently translated at 8.4% (1052 of 12512 strings)
2021-05-17 02:57:17 +02:00
Kristoffer Grundström
40f09d7d22 Translated using Weblate (Swedish)
Currently translated at 4.6% (581 of 12512 strings)
2021-05-15 23:32:11 +02:00
SmallDragon Chen
cdb9a99516 Translated using Weblate (Chinese (Traditional))
Currently translated at 3.8% (483 of 12512 strings)
2021-05-14 18:30:21 +02:00
Mateusz Mendel
958b84413b Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-05-14 04:27:20 +02:00
Nicolas Cosson
d7255b8e5b Translated using Weblate (Dutch)
Currently translated at 99.1% (572 of 577 strings)
2021-05-13 12:24:18 +02:00
Kristoffer Grundström
6b8dbbb2ab Translated using Weblate (Swedish)
Currently translated at 47.6% (275 of 577 strings)
2021-05-13 12:24:16 +02:00
Kristoffer Grundström
61c033e0c9 Translated using Weblate (Swedish)
Currently translated at 4.6% (579 of 12512 strings)
2021-05-13 12:24:15 +02:00
Mateusz Mendel
e5183a8512 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-05-13 12:24:14 +02:00
Nicolas Cosson
8c3533b3a3 Translated using Weblate (Dutch)
Currently translated at 7.9% (990 of 12512 strings)
2021-05-13 12:24:12 +02:00
Ido Ido
db90ba7de1 Translated using Weblate (Hebrew)
Currently translated at 9.7% (56 of 577 strings)
2021-05-12 01:29:39 +02:00
Jiri Zizkin Zizka
c2c4af429c Translated using Weblate (Czech)
Currently translated at 45.3% (5668 of 12512 strings)
2021-05-12 01:29:37 +02:00
I. Musthafa
a97f254870 Translated using Weblate (Indonesian)
Currently translated at 13.8% (1728 of 12512 strings)
2021-05-12 01:29:34 +02:00
Ido Ido
4daeb6262e Added translation using Weblate (Hebrew) 2021-05-11 13:44:14 +02:00
Ido Ido
8941f1d106 Added translation using Weblate (Hebrew) 2021-05-11 13:43:47 +02:00
Jiri Zizkin Zizka
1c85b6035a Translated using Weblate (Czech)
Currently translated at 44.9% (5618 of 12512 strings)
2021-05-10 00:22:39 +02:00
Oliver Lew
28200b7940 Translated using Weblate (Chinese (Simplified))
Currently translated at 35.3% (4417 of 12512 strings)
2021-05-10 00:22:37 +02:00
ssantos
8f9e12c65b Translated using Weblate (Portuguese)
Currently translated at 89.8% (11244 of 12512 strings)
2021-05-10 00:22:36 +02:00
Daniel Stasiak
c325207615 Translated using Weblate (Polish)
Currently translated at 80.5% (10084 of 12512 strings)
2021-05-10 00:22:34 +02:00
이정희
c5e67fb05a Translated using Weblate (Korean)
Currently translated at 11.1% (1396 of 12512 strings)
2021-05-10 00:22:33 +02:00
ssantos
732956dc8d Translated using Weblate (Portuguese)
Currently translated at 100.0% (577 of 577 strings)
2021-05-10 00:22:31 +02:00
Mateusz Mendel
9e739b7b13 Translated using Weblate (Polish)
Currently translated at 80.4% (10062 of 12512 strings)
2021-05-08 12:00:06 +02:00
fresh
2d197f4b95 Translated using Weblate (Greek)
Currently translated at 99.4% (574 of 577 strings)
2021-05-07 04:58:00 +02:00
fresh
3dc92b5c42 Translated using Weblate (Greek)
Currently translated at 10.7% (1344 of 12511 strings)
2021-05-07 04:58:00 +02:00
Jiri Zizkin Zizka
36f1131911 Translated using Weblate (Czech)
Currently translated at 44.3% (5550 of 12512 strings)
2021-05-07 04:57:58 +02:00
Mateusz Mendel
9adad50c37 Translated using Weblate (Polish)
Currently translated at 80.4% (10062 of 12512 strings)
2021-05-07 04:57:56 +02:00
Jenni Hollis
5293e9896e Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.2% (402 of 12512 strings)
2021-05-04 18:32:13 +02:00
Jenni Hollis
261e8c5948 Translated using Weblate (Norwegian Bokmål)
Currently translated at 93.0% (537 of 577 strings)
2021-05-04 18:32:11 +02:00
Jiri Zizkin Zizka
f92719e40f Translated using Weblate (Czech)
Currently translated at 44.1% (5526 of 12512 strings)
2021-05-04 18:32:11 +02:00
Mateusz Mendel
96ac82fd03 Translated using Weblate (Polish)
Currently translated at 80.4% (10062 of 12512 strings)
2021-05-04 18:32:08 +02:00
ssantos
92bdab0d1b Translated using Weblate (Portuguese)
Currently translated at 100.0% (577 of 577 strings)
2021-05-04 18:32:06 +02:00
Gökhan Demirden
b48a317cd7 Translated using Weblate (Turkish)
Currently translated at 100.0% (577 of 577 strings)
2021-05-01 21:32:16 +02:00
Jiri Zizkin Zizka
c75c58f61e Translated using Weblate (Czech)
Currently translated at 43.7% (5480 of 12512 strings)
2021-05-01 21:32:15 +02:00
Oliver Lew
de6d7d28e3 Translated using Weblate (Chinese (Simplified))
Currently translated at 35.2% (4416 of 12512 strings)
2021-05-01 21:32:14 +02:00
Gökhan Demirden
6aa78e435e Translated using Weblate (Turkish)
Currently translated at 31.1% (3894 of 12512 strings)
2021-05-01 21:32:12 +02:00
Mateusz Mendel
98b9234815 Translated using Weblate (Polish)
Currently translated at 80.4% (10062 of 12512 strings)
2021-05-01 21:32:10 +02:00
J. Lavoie
bb8554a5ae Translated using Weblate (French)
Currently translated at 99.4% (574 of 577 strings)
2021-05-01 21:32:06 +02:00
Jiri Zizkin Zizka
7f95b60260 Translated using Weblate (Czech)
Currently translated at 43.6% (5459 of 12512 strings)
2021-04-29 06:57:01 +02:00
Mateusz Mendel
7537df9024 Translated using Weblate (Polish)
Currently translated at 80.4% (10062 of 12512 strings)
2021-04-29 06:56:58 +02:00
Jiri Zizkin Zizka
270ca76237 Translated using Weblate (Czech)
Currently translated at 43.2% (5413 of 12512 strings)
2021-04-27 09:37:30 +02:00
Oliver Lew
11fbb4e187 Translated using Weblate (Chinese (Simplified))
Currently translated at 35.2% (4410 of 12512 strings)
2021-04-27 09:37:29 +02:00
soft9
08da93cf92 Translated using Weblate (Chinese (Simplified))
Currently translated at 35.2% (4410 of 12512 strings)
2021-04-27 09:37:28 +02:00
Donald Yiu
d09bfffbe5 Translated using Weblate (Chinese (Simplified))
Currently translated at 35.2% (4410 of 12512 strings)
2021-04-27 09:37:23 +02:00
soft9
7e34b910f2 Translated using Weblate (Chinese (Simplified))
Currently translated at 31.9% (3998 of 12512 strings)
2021-04-25 08:22:42 +02:00
Donald Yiu
b2ab99495d Translated using Weblate (Chinese (Simplified))
Currently translated at 31.9% (3998 of 12512 strings)
2021-04-25 08:22:42 +02:00
Donald Yiu
645c24b5f5 Translated using Weblate (Chinese (Simplified))
Currently translated at 31.9% (3994 of 12512 strings)
2021-04-25 08:09:56 +02:00
soft9
bae8c85ea9 Translated using Weblate (Chinese (Simplified))
Currently translated at 31.9% (3994 of 12512 strings)
2021-04-25 08:09:56 +02:00
Jiri Zizkin Zizka
c0cd1671f9 Translated using Weblate (Czech)
Currently translated at 43.2% (5408 of 12512 strings)
2021-04-24 23:16:00 +02:00
Oliver Lew
4e348ad617 Translated using Weblate (Chinese (Simplified))
Currently translated at 31.8% (3985 of 12512 strings)
2021-04-24 19:31:54 +02:00
Luka Giacco
b4e22bd1e9 Translated using Weblate (Catalan)
Currently translated at 8.8% (1102 of 12512 strings)
2021-04-23 09:32:06 +02:00
Oliver Lew
75b35102b5 Translated using Weblate (Chinese (Simplified))
Currently translated at 31.8% (3980 of 12512 strings)
2021-04-23 09:32:05 +02:00
Donald Yiu
83096ce1cb Translated using Weblate (Chinese (Simplified))
Currently translated at 31.6% (3958 of 12512 strings)
2021-04-21 17:58:48 +02:00
Jiri Zizkin Zizka
68d5f56f8c Translated using Weblate (Czech)
Currently translated at 43.1% (5400 of 12512 strings)
2021-04-20 23:59:24 +02:00
Donald Yiu
5ee3ea5347 Translated using Weblate (Chinese (Simplified))
Currently translated at 31.6% (3956 of 12512 strings)
2021-04-20 23:59:22 +02:00
Oliver Lew
58026ab202 Translated using Weblate (Chinese (Simplified))
Currently translated at 31.6% (3956 of 12512 strings)
2021-04-20 23:59:21 +02:00
Jakub Fabijan
2f8127e521 Translated using Weblate (Esperanto)
Currently translated at 18.1% (105 of 577 strings)
2021-04-19 17:49:36 +02:00
Luka Giacco
197e79f0a2 Translated using Weblate (Catalan)
Currently translated at 8.5% (1069 of 12512 strings)
2021-04-19 17:49:34 +02:00
Oliver Lew
7b6e1b080c Translated using Weblate (Chinese (Simplified))
Currently translated at 31.5% (3947 of 12512 strings)
2021-04-19 17:49:27 +02:00
Luka Giacco
c739734685 Translated using Weblate (Catalan)
Currently translated at 85.0% (491 of 577 strings)
2021-04-19 10:01:00 +02:00
Luka Giacco
2172c4c40f Translated using Weblate (Catalan)
Currently translated at 4.5% (565 of 12512 strings)
2021-04-19 10:00:56 +02:00
Jiri Zizkin Zizka
23a92f51fd Translated using Weblate (Czech)
Currently translated at 42.9% (5378 of 12512 strings)
2021-04-19 10:00:53 +02:00
Oliver Lew
0b4db8ba58 Translated using Weblate (Chinese (Simplified))
Currently translated at 31.2% (3908 of 12512 strings)
2021-04-19 10:00:50 +02:00
Verdulo
85966a7249 Translated using Weblate (Polish)
Currently translated at 80.4% (10062 of 12512 strings)
2021-04-19 10:00:49 +02:00
forheinn
dca75063e3 Translated using Weblate (Indonesian)
Currently translated at 13.7% (1721 of 12512 strings)
2021-04-19 10:00:47 +02:00
guru_meditation_no42
6d18e00535 Move canAcceptInput() checks into handler. 2021-04-17 09:23:42 -07:00
guru_meditation_no42
127cba55f5 Change keyMap to SparseInit array. 2021-04-17 08:54:58 -07:00
Jiri Zizkin Zizka
1b19d899cd Translated using Weblate (Czech)
Currently translated at 42.4% (5306 of 12512 strings)
2021-04-15 23:24:17 +02:00
Mateusz Mendel
dc6275356a Translated using Weblate (Polish)
Currently translated at 80.4% (10062 of 12512 strings)
2021-04-15 23:24:14 +02:00
forheinn
68f0abc124 Translated using Weblate (Indonesian)
Currently translated at 13.7% (1719 of 12512 strings)
2021-04-15 23:24:12 +02:00
Oliver Lew
30675d8ed2 Translated using Weblate (Chinese (Simplified))
Currently translated at 31.1% (3892 of 12512 strings)
2021-04-14 19:13:07 +02:00
Mateusz Mendel
9e06b0d1c2 Translated using Weblate (Polish)
Currently translated at 80.4% (10062 of 12512 strings)
2021-04-14 19:13:05 +02:00
Verdulo
8cbd09126a Translated using Weblate (Polish)
Currently translated at 80.4% (10062 of 12512 strings)
2021-04-14 19:13:04 +02:00
forheinn
4b952c3613 Translated using Weblate (Indonesian)
Currently translated at 13.6% (1713 of 12512 strings)
2021-04-14 19:13:02 +02:00
guru_meditation_no42
a4e95b1c98 Move keycode mapping to keyMap array instead of switch case entries. 2021-04-13 22:50:59 -07:00
Tymofij Lytvynenko
174d34ad71 Translated using Weblate (Ukrainian)
Currently translated at 11.1% (1399 of 12512 strings)
2021-04-13 14:01:53 +02:00
forheinn
1b5e88fc94 Translated using Weblate (Indonesian)
Currently translated at 12.5% (1574 of 12512 strings)
2021-04-13 14:01:51 +02:00
guru_meditation_no42
2649471c5f Added shortcut to Hero Info activity, tweaked some button state logic a bit, added comments 2021-04-13 00:08:16 -07:00
Šimon Novotný
1b3dbd59a8 Translated using Weblate (Czech)
Currently translated at 41.9% (5253 of 12512 strings)
2021-04-12 14:48:27 +02:00
Jiri Zizkin Zizka
60d055d660 Translated using Weblate (Czech)
Currently translated at 41.9% (5253 of 12512 strings)
2021-04-12 14:48:26 +02:00
forheinn
bcad893b86 Translated using Weblate (Indonesian)
Currently translated at 12.1% (1518 of 12512 strings)
2021-04-12 14:48:22 +02:00
guru_meditation_no42
bd17ea8cee Fixed whitespace. Again. D*mn editor. 2021-04-11 21:48:35 -07:00
forheinn
1eee4fc4de Translated using Weblate (Indonesian)
Currently translated at 11.5% (1442 of 12512 strings)
2021-04-12 05:36:14 +02:00
daudiffa
5a470ccceb Translated using Weblate (Indonesian)
Currently translated at 11.5% (1442 of 12512 strings)
2021-04-12 05:36:13 +02:00
guru_meditation_no42
c24c8d1444 Fix to attack shortcut logic 2021-04-11 19:46:12 -07:00
guru_meditation_no42
a3c632947b Fix whitespace changes, tweak canAcceptInput() handling. 2021-04-11 19:34:14 -07:00
guru_meditation_no42
edd147e970 Redo keyboard input handling to allow diagonal movement using either keypad or two-key combos, and add keyboard/dpad shortcuts for Flee, Attack, and End Turn. 2021-04-11 18:54:37 -07:00
Jiri Zizkin Zizka
a299fa1619 Translated using Weblate (Czech)
Currently translated at 41.5% (5193 of 12512 strings)
2021-04-10 23:27:21 +02:00
Šimon Novotný
80ba78a81b Translated using Weblate (Czech)
Currently translated at 41.5% (5193 of 12512 strings)
2021-04-10 23:27:20 +02:00
Daniel Stasiak
4851ca93f8 Translated using Weblate (Polish)
Currently translated at 80.4% (10062 of 12512 strings)
2021-04-10 21:32:22 +02:00
Daniel Stasiak
21faa9a504 Translated using Weblate (Polish)
Currently translated at 99.6% (575 of 577 strings)
2021-04-10 21:32:19 +02:00
Šimon Novotný
6fd7e22dca Translated using Weblate (Czech)
Currently translated at 41.4% (5191 of 12512 strings)
2021-04-09 12:57:10 +02:00
Ömer Faruk Çakmak
93cd18c14d Translated using Weblate (Turkish)
Currently translated at 30.7% (3843 of 12512 strings)
2021-04-09 12:57:09 +02:00
guru_meditation_no42
4f1dd93ba6 Add body count to monster info display 2021-04-08 18:19:24 -07:00
guru_meditation_no42
737736dca2 Track and report monster kills by name instead of id 2021-04-08 10:25:19 -07:00
guru_meditation_no42
0f32f09b0d Track and report monster kills by name instead of id 2021-04-08 09:32:50 -07:00
guru_meditation_no42
324be2768c Track and report monster kills by name instead of id 2021-04-07 22:30:08 -07:00
daudiffa
4e9845294c Translated using Weblate (Indonesian)
Currently translated at 100.0% (577 of 577 strings)
2021-04-07 10:26:47 +02:00
daudiffa
479a6351ae Translated using Weblate (Indonesian)
Currently translated at 11.4% (1433 of 12512 strings)
2021-04-07 10:26:46 +02:00
Ömer Faruk Çakmak
952e8a8f58 Translated using Weblate (Turkish)
Currently translated at 29.0% (3640 of 12512 strings)
2021-04-06 02:44:59 +02:00
Christian Eichert
642bebd66a Translated using Weblate (Romanian)
Currently translated at 56.6% (327 of 577 strings)
2021-04-05 22:27:04 +02:00
Christian Eichert
27f4d6a39b Translated using Weblate (Romanian)
Currently translated at 1.0% (129 of 12511 strings)
2021-04-05 22:27:03 +02:00
Rener kaka
8c0caf5856 Translated using Weblate (Kurdish (Central))
Currently translated at 0.1% (6 of 12511 strings)
2021-04-05 22:27:01 +02:00
Ömer Faruk Çakmak
907feba02e Translated using Weblate (Turkish)
Currently translated at 100.0% (577 of 577 strings)
2021-04-05 22:27:00 +02:00
Ömer Faruk Çakmak
71b47eb979 Translated using Weblate (Turkish)
Currently translated at 28.0% (3506 of 12512 strings)
2021-04-05 22:26:59 +02:00
Kett Lovahr
7aa33ce46b Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.0% (12012 of 12512 strings)
2021-04-05 22:26:57 +02:00
Nathan Watson
d06f51ac33 add support for numpad + diagonal dpad key inputs 2021-04-01 22:03:02 -07:00
Nut Andor
c216f38d49 Translated using Weblate (German)
Currently translated at 82.6% (10347 of 12512 strings)
2021-04-01 23:26:42 +02:00
Johny The Pvp God
41b0473bbb Translated using Weblate (Romanian)
Currently translated at 54.5% (315 of 577 strings)
2021-03-31 21:26:57 +02:00
adel nasri
e0b42690ad Translated using Weblate (Arabic)
Currently translated at 8.7% (1092 of 12511 strings)
2021-03-31 21:26:49 +02:00
Pegasus Liao
39f6609a46 Translated using Weblate (Chinese (Traditional))
Currently translated at 3.8% (480 of 12512 strings)
2021-03-31 21:26:48 +02:00
Jiri Zizkin Zizka
2e0b72808f Translated using Weblate (Czech)
Currently translated at 41.4% (5189 of 12512 strings)
2021-03-31 21:26:41 +02:00
Nut Andor
420af508d9 Translated using Weblate (German)
Currently translated at 99.4% (574 of 577 strings)
2021-03-31 21:26:39 +02:00
Johny The Pvp God
e248cae13d Translated using Weblate (Romanian)
Currently translated at 0.9% (123 of 12511 strings)
2021-03-29 15:50:01 +02:00
Pegasus Liao
2996ca79d7 Translated using Weblate (Chinese (Traditional))
Currently translated at 3.3% (418 of 12512 strings)
2021-03-29 15:49:58 +02:00
Jiri Zizkin Zizka
51e40b9976 Translated using Weblate (Czech)
Currently translated at 41.3% (5177 of 12512 strings)
2021-03-29 15:49:57 +02:00
Johny The Pvp God
83cfed4e87 Added translation using Weblate (Romanian) 2021-03-29 09:24:46 +02:00
Nut.andor
7afc3e422c Added Base layer 2021-03-28 03:29:24 +02:00
Jiri Zizkin Zizka
0983de54ef Translated using Weblate (Czech)
Currently translated at 41.3% (5173 of 12512 strings)
2021-03-28 01:12:39 +01:00
Mateusz Mendel
fef2d5bc48 Translated using Weblate (Polish)
Currently translated at 80.2% (10047 of 12512 strings)
2021-03-28 01:12:38 +01:00
Jean-Pascal Rhir
88d1f4ad20 Translated using Weblate (French)
Currently translated at 97.2% (561 of 577 strings)
2021-03-27 14:37:07 +01:00
Wladimir Castañeda Sánchez
e1f9e1b777 Translated using Weblate (Spanish)
Currently translated at 100.0% (12512 of 12512 strings)
2021-03-27 11:06:22 +01:00
Jiri Zizkin Zizka
e6e649d45d Translated using Weblate (Czech)
Currently translated at 41.2% (5160 of 12512 strings)
2021-03-27 03:29:49 +01:00
Ömer Faruk Çakmak
32676730a3 Translated using Weblate (Turkish)
Currently translated at 28.0% (3506 of 12512 strings)
2021-03-27 03:29:48 +01:00
kty919
096d3b692e Translated using Weblate (Korean)
Currently translated at 11.1% (1396 of 12512 strings)
2021-03-27 03:29:45 +01:00
Nut Andor
61a20aeefa Translated using Weblate (German)
Currently translated at 82.6% (10343 of 12512 strings)
2021-03-27 03:29:43 +01:00
Nut Andor
6067136a88 Translated using Weblate (German)
Currently translated at 99.4% (574 of 577 strings)
2021-03-27 03:29:38 +01:00
Jean-Pascal Rhir
0aeba2d5e0 Translated using Weblate (French)
Currently translated at 92.8% (11615 of 12512 strings)
2021-03-27 00:04:23 +01:00
Jean-Pascal Rhir
2273bcfb3a Translated using Weblate (French)
Currently translated at 92.8% (11615 of 12512 strings)
2021-03-26 23:53:33 +01:00
Nathan Watson
266553473c Fix immunity duration counter (https://andorstrail.com/viewtopic.php?p=72151) 2021-03-26 14:33:51 -07:00
kty919
5b253d3b2a Translated using Weblate (Korean)
Currently translated at 10.9% (1366 of 12512 strings)
2021-03-25 01:00:13 +01:00
Jiri Zizkin Zizka
010cf462ec Translated using Weblate (Czech)
Currently translated at 41.1% (5147 of 12512 strings)
2021-03-24 23:39:26 +01:00
Meiru
f78f76b36b Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-03-24 23:39:24 +01:00
forheinn
b6f51c9d78 Translated using Weblate (Indonesian)
Currently translated at 11.2% (1409 of 12512 strings)
2021-03-24 23:39:23 +01:00
Nathan Watson
24c507d963 Draw a block under Ground layer to find transparency bugs 2021-03-23 21:11:18 -07:00
fresh
a466aa0080 Translated using Weblate (Greek)
Currently translated at 97.5% (563 of 577 strings)
2021-03-20 15:58:12 +01:00
fresh
72e7be4dd5 Translated using Weblate (Greek)
Currently translated at 10.1% (1273 of 12511 strings)
2021-03-20 15:58:11 +01:00
Neea Rusch
4c2ea8e34d Translated using Weblate (Finnish)
Currently translated at 5.8% (34 of 577 strings)
2021-03-20 15:58:05 +01:00
Alexander Gavrilov
087f5b5b2b Translated using Weblate (Hungarian)
Currently translated at 91.8% (530 of 577 strings)
2021-03-20 15:58:04 +01:00
Jiri Zizkin Zizka
c388de1331 Translated using Weblate (Czech)
Currently translated at 40.8% (5113 of 12512 strings)
2021-03-20 15:58:04 +01:00
Meiru
ff2493297f Translated using Weblate (Japanese)
Currently translated at 100.0% (577 of 577 strings)
2021-03-20 15:58:02 +01:00
Nut.andor
80f55d6d14 compiled translations shouldn't be on git 2021-03-20 11:58:20 +01:00
Nut.andor
97769fd1de debug settings + version nbr 2021-03-19 01:00:38 +01:00
Nut.andor
5823e98887 Merge remote-tracking branch 'AndorsTrailRelease/master' into master 2021-03-19 00:41:43 +01:00
Nut.andor
3f6ae96410 Merge remote-tracking branch 'AndorsTrailRelease/master' into master 2021-03-19 00:29:12 +01:00
Nut.andor
09cde7def0 translation state,
bump version to v0.7.13.2 (60)
2021-03-19 00:24:07 +01:00
Nut.andor
a86c88559e Merge remote-tracking branch 'Weblate_translations/master' into master 2021-03-19 00:09:29 +01:00
Nut Andor
9d8a3c2bd9 Translated using Weblate (Chinese (Traditional))
Currently translated at 99.6% (575 of 577 strings)
2021-03-19 00:08:00 +01:00
Nut.andor
ff139c74aa Merge remote-tracking branch 'Weblate_translations/master' into master 2021-03-19 00:03:19 +01:00
Nut Andor
c25955b707 Translated using Weblate (Chinese (Traditional))
Currently translated at 99.6% (575 of 577 strings)
2021-03-18 23:54:06 +01:00
Nut.andor
cf9018b20e Merge remote-tracking branch 'hosted.weblate/master' into master 2021-03-18 23:00:48 +01:00
Jiri Zizkin Zizka
9fded3a8fe Translated using Weblate (Czech)
Currently translated at 40.7% (5098 of 12512 strings)
2021-03-18 22:57:10 +01:00
Jakub Fabijan
d71197c5c1 Translated using Weblate (Esperanto)
Currently translated at 0.2% (27 of 12511 strings)
2021-03-18 22:56:39 +01:00
Jakub Fabijan
fd0ed17112 Translated using Weblate (Esperanto)
Currently translated at 16.9% (98 of 577 strings)
2021-03-18 22:56:37 +01:00
Jakub Fabijan
cb07e4e0ef Translated using Weblate (Polish)
Currently translated at 80.2% (10047 of 12512 strings)
2021-03-18 22:56:35 +01:00
Jakub Fabijan
e18bd12614 Added translation using Weblate (Esperanto) 2021-03-18 19:50:10 +01:00
Jakub Fabijan
531544c89b Translated using Weblate (Esperanto)
Currently translated at 0.1% (1 of 577 strings)
2021-03-18 05:34:08 +01:00
Allan Nordhøy
83b3619eda Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.1% (391 of 12512 strings)
2021-03-18 05:34:07 +01:00
Jenni Hollis
c937cc91d0 Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.1% (391 of 12512 strings)
2021-03-18 05:34:07 +01:00
Jakub Fabijan
d301b6097a Added translation using Weblate (Esperanto) 2021-03-18 01:08:41 +01:00
Stefan Gamer YTB
f6f826d8df Added translation using Weblate (Romanian) 2021-03-17 17:12:43 +01:00
Jiri Zizkin Zizka
e2fd52ded3 Translated using Weblate (Czech)
Currently translated at 40.7% (5096 of 12512 strings)
2021-03-17 07:08:04 +01:00
kty919
613293f342 Translated using Weblate (Korean)
Currently translated at 10.8% (1362 of 12512 strings)
2021-03-17 07:08:02 +01:00
Jenni Hollis
811745d8d9 Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.1% (390 of 12512 strings)
2021-03-16 15:51:28 +01:00
hasan köksal
23c9e9a2d1 Translated using Weblate (Turkish)
Currently translated at 27.2% (3406 of 12512 strings)
2021-03-16 15:51:27 +01:00
Alessandro Mandelli
2c595d6b31 Translated using Weblate (Italian)
Currently translated at 100.0% (12512 of 12512 strings)
2021-03-16 15:51:25 +01:00
Tymofij Lytvynenko
993eac6e3e Translated using Weblate (Ukrainian)
Currently translated at 11.1% (1390 of 12512 strings)
2021-03-15 16:21:31 +01:00
Jiri Zizkin Zizka
d675b5d5ed Translated using Weblate (Czech)
Currently translated at 40.6% (5089 of 12512 strings)
2021-03-15 16:21:30 +01:00
hasan köksal
efc6d22fda Translated using Weblate (Turkish)
Currently translated at 27.0% (3387 of 12512 strings)
2021-03-15 16:21:28 +01:00
kty919
8b9b133e03 Translated using Weblate (Korean)
Currently translated at 10.7% (1350 of 12512 strings)
2021-03-15 16:21:27 +01:00
Nut
09b295bce6 Merge pull request #32 from atsymboldot/patch-3
Bump version code for FDroid build
2021-03-13 21:45:46 +01:00
atsymboldot
6cb0e4bd11 Bump version code for FDroid build 2021-03-13 08:11:05 -08:00
adel nasri
0901e683f1 Translated using Weblate (Arabic)
Currently translated at 28.0% (162 of 577 strings)
2021-03-12 15:03:50 +01:00
Tymofij Lytvynenko
9679a75e28 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (577 of 577 strings)
2021-03-12 15:02:56 +01:00
Tymofij Lytvynenko
17f903efc2 Translated using Weblate (Ukrainian)
Currently translated at 11.0% (1386 of 12512 strings)
2021-03-12 15:02:55 +01:00
Vladimir
e4056a7e25 Translated using Weblate (Russian)
Currently translated at 100.0% (12512 of 12512 strings)
2021-03-12 15:02:54 +01:00
kty919
f0fe4284f8 Translated using Weblate (Korean)
Currently translated at 10.4% (1306 of 12512 strings)
2021-03-12 15:02:53 +01:00
Vladimir
0ba28dc6d3 Translated using Weblate (Russian)
Currently translated at 100.0% (12512 of 12512 strings)
2021-03-10 14:18:34 +01:00
Chriz76
29d12d35dd Merge pull request #31 from atsymboldot/patch-2
Update Android target to API 29
2021-03-08 17:38:20 +01:00
atsymboldot
757f1faf01 Update Android target to API 29 2021-03-08 08:00:35 -08:00
adel nasri
fbe4cdd3b4 Translated using Weblate (Arabic)
Currently translated at 8.6% (1086 of 12511 strings)
2021-03-08 14:03:43 +01:00
Vladimir
fb91696894 Translated using Weblate (Russian)
Currently translated at 97.5% (12206 of 12512 strings)
2021-03-08 14:03:40 +01:00
adel nasri
6eb7e9926e Translated using Weblate (Arabic)
Currently translated at 7.3% (923 of 12511 strings)
2021-03-06 23:23:35 +01:00
Vladimir
4a61f1d99f Translated using Weblate (Russian)
Currently translated at 97.1% (12151 of 12512 strings)
2021-03-06 23:23:34 +01:00
adel nasri
f19805b88b Translated using Weblate (Arabic)
Currently translated at 7.3% (917 of 12511 strings)
2021-03-06 14:50:36 +01:00
UAzpeitia
8cfff5d4c3 Translated using Weblate (Basque)
Currently translated at 63.0% (364 of 577 strings)
2021-03-06 14:50:35 +01:00
Jiri Zizkin Zizka
546b505234 Translated using Weblate (Czech)
Currently translated at 40.5% (5076 of 12512 strings)
2021-03-06 14:50:34 +01:00
kty919
31d4771551 Translated using Weblate (Korean)
Currently translated at 9.9% (1239 of 12512 strings)
2021-03-06 14:50:33 +01:00
UAzpeitia
d9385b6cff Added translation using Weblate (Basque) 2021-03-05 14:32:55 +01:00
Jiri Zizkin Zizka
35ce473d31 Translated using Weblate (Czech)
Currently translated at 40.4% (5059 of 12512 strings)
2021-03-04 14:01:54 +01:00
adel nasri
c91911387b Translated using Weblate (Arabic)
Currently translated at 6.2% (782 of 12511 strings)
2021-03-03 07:08:58 +01:00
Jiri Zizkin Zizka
9306a163cf Translated using Weblate (Czech)
Currently translated at 40.2% (5041 of 12512 strings)
2021-03-03 07:08:56 +01:00
forheinn
a810355aef Translated using Weblate (Indonesian)
Currently translated at 11.1% (1392 of 12512 strings)
2021-03-03 07:08:53 +01:00
adel nasri
505525dff1 Translated using Weblate (Arabic)
Currently translated at 6.1% (767 of 12511 strings)
2021-03-01 22:12:15 +01:00
Jiri Zizkin Zizka
71a36c6a5d Translated using Weblate (Czech)
Currently translated at 40.1% (5021 of 12512 strings)
2021-03-01 22:12:13 +01:00
Vladimir
8b15777b8a Translated using Weblate (Russian)
Currently translated at 96.8% (12117 of 12512 strings)
2021-03-01 22:12:11 +01:00
forheinn
79a3d74265 Translated using Weblate (Indonesian)
Currently translated at 9.4% (1188 of 12512 strings)
2021-03-01 22:12:09 +01:00
adel nasri
947e4511e6 Translated using Weblate (Arabic)
Currently translated at 5.4% (687 of 12511 strings)
2021-02-28 23:04:17 +01:00
Vladimir
90abda95b5 Translated using Weblate (Russian)
Currently translated at 95.8% (11997 of 12512 strings)
2021-02-28 23:04:15 +01:00
adel nasri
e04dd0e5cd Translated using Weblate (Arabic)
Currently translated at 27.2% (157 of 577 strings)
2021-02-28 16:52:10 +01:00
adel nasri
f29124a2a4 Translated using Weblate (Arabic)
Currently translated at 4.7% (594 of 12511 strings)
2021-02-28 16:52:08 +01:00
Jiri Zizkin Zizka
be30144f4c Translated using Weblate (Czech)
Currently translated at 40.0% (5009 of 12512 strings)
2021-02-28 16:52:06 +01:00
Vladimir
a1290aca48 Translated using Weblate (Russian)
Currently translated at 94.1% (11782 of 12512 strings)
2021-02-28 16:52:04 +01:00
Elton Viana Gonçalves da Luz
f4ffc26641 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.8% (11872 of 12512 strings)
2021-02-28 16:52:03 +01:00
Chacal Ex
0289c2e1f7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.8% (11872 of 12512 strings)
2021-02-28 16:52:03 +01:00
Mateusz Mendel
ccc85c3d12 Translated using Weblate (Polish)
Currently translated at 80.2% (10047 of 12512 strings)
2021-02-28 16:52:00 +01:00
kty919
21e1cc9f8f Translated using Weblate (Korean)
Currently translated at 9.4% (1188 of 12512 strings)
2021-02-28 16:51:58 +01:00
Meiru
4e1be033df Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-28 16:51:56 +01:00
forheinn
6f51e89067 Translated using Weblate (Indonesian)
Currently translated at 8.7% (1093 of 12512 strings)
2021-02-28 16:51:35 +01:00
Jorge Luis Rico Víquez
38d474c505 Translated using Weblate (Spanish)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-28 16:50:33 +01:00
Nut.andor
b1046ee3db drawables
ResourceLoader definitions
2021-02-26 21:52:19 +01:00
Nut.andor
6a035c0767 drawables 2021-02-26 21:22:44 +01:00
Nut.andor
c6a7b2df03 next release nbr 2021-02-26 20:55:21 +01:00
kty919
e763bbdd2b Translated using Weblate (Korean)
Currently translated at 100.0% (577 of 577 strings)
2021-02-24 15:17:46 +01:00
Jiri Zizkin Zizka
7fb49b9027 Translated using Weblate (Czech)
Currently translated at 39.8% (4983 of 12512 strings)
2021-02-24 15:17:45 +01:00
zoollcar
028380f73d Translated using Weblate (Chinese (Simplified))
Currently translated at 30.7% (3842 of 12512 strings)
2021-02-24 15:17:44 +01:00
Mateusz Mendel
499daca20e Translated using Weblate (Polish)
Currently translated at 80.2% (10047 of 12512 strings)
2021-02-24 15:17:42 +01:00
kty919
7b09b02032 Translated using Weblate (Korean)
Currently translated at 8.6% (1081 of 12512 strings)
2021-02-24 15:17:39 +01:00
forheinn
983316b493 Translated using Weblate (Indonesian)
Currently translated at 6.2% (787 of 12512 strings)
2021-02-24 15:17:37 +01:00
zoollcar
a11dcaf84d Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (577 of 577 strings)
2021-02-23 20:00:16 +01:00
kty919
0131699a0d Translated using Weblate (Korean)
Currently translated at 100.0% (577 of 577 strings)
2021-02-23 20:00:15 +01:00
zoollcar
64d00d2d3f Translated using Weblate (Chinese (Simplified))
Currently translated at 30.6% (3838 of 12512 strings)
2021-02-23 20:00:14 +01:00
Daniel Stasiak
c4221c3ab6 Translated using Weblate (Polish)
Currently translated at 80.2% (10047 of 12512 strings)
2021-02-23 20:00:11 +01:00
Mateusz Mendel
872fce1b86 Translated using Weblate (Polish)
Currently translated at 80.2% (10047 of 12512 strings)
2021-02-23 20:00:10 +01:00
kty919
66f31ef6dd Translated using Weblate (Korean)
Currently translated at 7.9% (989 of 12512 strings)
2021-02-23 19:59:57 +01:00
Alessandro Perlo
f84061a8de Translated using Weblate (Italian)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-23 19:59:55 +01:00
forheinn
9f505d5dd6 Translated using Weblate (Indonesian)
Currently translated at 4.8% (610 of 12512 strings)
2021-02-23 19:59:53 +01:00
Jorge Luis Rico Víquez
d6d8cca90e Translated using Weblate (Spanish)
Currently translated at 96.8% (12112 of 12512 strings)
2021-02-23 19:59:50 +01:00
Daniel Stasiak
122f680d33 Translated using Weblate (Polish)
Currently translated at 99.4% (574 of 577 strings)
2021-02-23 19:59:46 +01:00
ShahinF27
20342456c2 Added translation using Weblate (Azerbaijani) 2021-02-22 18:35:20 +01:00
kty919
9efdf37b4c Translated using Weblate (Korean)
Currently translated at 6.1% (774 of 12512 strings)
2021-02-22 03:06:18 +01:00
김현수
1b49947be8 Translated using Weblate (Korean)
Currently translated at 6.1% (774 of 12512 strings)
2021-02-22 03:06:18 +01:00
kty919
ba571d45f6 Translated using Weblate (Korean)
Currently translated at 6.1% (772 of 12512 strings)
2021-02-22 03:02:51 +01:00
김현수
45762f557b Translated using Weblate (Korean)
Currently translated at 6.1% (772 of 12512 strings)
2021-02-22 03:02:50 +01:00
Sofia zHU
fcf6fe4dd3 Translated using Weblate (Chinese (Simplified))
Currently translated at 30.4% (3814 of 12512 strings)
2021-02-22 00:47:57 +01:00
forheinn
91c23658ee Translated using Weblate (Indonesian)
Currently translated at 4.4% (557 of 12512 strings)
2021-02-22 00:47:55 +01:00
Jorge Luis Rico Víquez
f48ccc24b2 Translated using Weblate (Spanish)
Currently translated at 94.4% (11812 of 12512 strings)
2021-02-22 00:47:52 +01:00
forheinn
3febf3f5e3 Translated using Weblate (Indonesian)
Currently translated at 98.9% (571 of 577 strings)
2021-02-21 04:45:58 +01:00
Jiri Zizkin Zizka
d7c9853054 Translated using Weblate (Czech)
Currently translated at 39.6% (4967 of 12512 strings)
2021-02-21 04:45:56 +01:00
m khoirul fatikhin
1bf16545f5 Translated using Weblate (Indonesian)
Currently translated at 2.3% (289 of 12512 strings)
2021-02-21 04:45:54 +01:00
forheinn
50a678d646 Translated using Weblate (Indonesian)
Currently translated at 2.3% (289 of 12512 strings)
2021-02-21 04:45:53 +01:00
m khoirul fatikhin
49ccbb1cb4 Translated using Weblate (Indonesian)
Currently translated at 0.7% (99 of 12512 strings)
2021-02-20 13:35:37 +01:00
HAN CHEN
a46350a516 Translated using Weblate (Chinese (Simplified))
Currently translated at 30.4% (3809 of 12512 strings)
2021-02-20 12:13:41 +01:00
Liu Tao
b1903afe4a Translated using Weblate (Chinese (Simplified))
Currently translated at 30.4% (3809 of 12512 strings)
2021-02-20 12:13:41 +01:00
zoollcar
5ba562d4eb Translated using Weblate (Chinese (Simplified))
Currently translated at 30.2% (3791 of 12512 strings)
2021-02-20 10:52:13 +01:00
HAN CHEN
1e30f6179f Translated using Weblate (Chinese (Simplified))
Currently translated at 30.2% (3791 of 12512 strings)
2021-02-20 10:52:12 +01:00
Jiri Zizkin Zizka
2d98e601c9 Translated using Weblate (Czech)
Currently translated at 39.5% (4953 of 12512 strings)
2021-02-20 00:29:47 +01:00
Jorge Luis Rico Víquez
960d0f0e79 Translated using Weblate (Spanish)
Currently translated at 93.8% (11742 of 12512 strings)
2021-02-20 00:29:45 +01:00
Ye Yang
d4df52a78e Translated using Weblate (Chinese (Simplified))
Currently translated at 30.1% (3775 of 12512 strings)
2021-02-19 16:00:01 +01:00
Jorge Luis Rico Víquez
cbcdabe281 Translated using Weblate (Spanish)
Currently translated at 93.6% (11722 of 12512 strings)
2021-02-19 15:59:58 +01:00
Meiru
18efe50088 Translated using Weblate (Japanese)
Currently translated at 100.0% (577 of 577 strings)
2021-02-19 15:59:56 +01:00
Jiri Zizkin Zizka
b52946de24 Translated using Weblate (Czech)
Currently translated at 39.5% (4952 of 12512 strings)
2021-02-19 01:06:30 +01:00
Liu Tao
24b1559e5b Translated using Weblate (Chinese (Simplified))
Currently translated at 30.1% (3773 of 12512 strings)
2021-02-19 01:06:29 +01:00
Vladimir
6a33968937 Translated using Weblate (Russian)
Currently translated at 93.8% (11745 of 12512 strings)
2021-02-19 01:06:26 +01:00
Jorge Luis Rico Víquez
6197edcb2a Translated using Weblate (Spanish)
Currently translated at 92.5% (11581 of 12512 strings)
2021-02-19 01:06:24 +01:00
Abin Isaac
72aa8e306d Added translation using Weblate (Hindi) 2021-02-18 09:24:11 +01:00
Jiri Zizkin Zizka
dbc5a5470d Translated using Weblate (Czech)
Currently translated at 39.1% (4902 of 12512 strings)
2021-02-17 09:25:21 +01:00
Liu Tao
d01b0c3b27 Translated using Weblate (Chinese (Simplified))
Currently translated at 30.0% (3764 of 12512 strings)
2021-02-16 22:43:16 +01:00
Mateusz Mendel
028b732059 Translated using Weblate (Polish)
Currently translated at 80.2% (10045 of 12512 strings)
2021-02-16 22:43:15 +01:00
Meiru
bfb41a381c Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-16 22:43:13 +01:00
Kurd As
ed3dc867a7 Added translation using Weblate (Kurdish (Central)) 2021-02-16 11:56:22 +01:00
Nut.andor
5c350c9406 Merge commit 'e776c86aff8f541f87ce6e402f47083386171b18' into master
# Conflicts:
#	AndorsTrail/AndroidManifest.xml
#	AndorsTrail/assets/translation/ar.mo
#	AndorsTrail/assets/translation/ca.mo
#	AndorsTrail/assets/translation/cs.mo
#	AndorsTrail/assets/translation/de.mo
#	AndorsTrail/assets/translation/el.mo
#	AndorsTrail/assets/translation/es.mo
#	AndorsTrail/assets/translation/fil.mo
#	AndorsTrail/assets/translation/fr.mo
#	AndorsTrail/assets/translation/hu.mo
#	AndorsTrail/assets/translation/it.mo
#	AndorsTrail/assets/translation/ja.mo
#	AndorsTrail/assets/translation/ko.mo
#	AndorsTrail/assets/translation/nb.mo
#	AndorsTrail/assets/translation/nl.mo
#	AndorsTrail/assets/translation/pl.mo
#	AndorsTrail/assets/translation/pt.mo
#	AndorsTrail/assets/translation/pt_BR.mo
#	AndorsTrail/assets/translation/ru.mo
#	AndorsTrail/assets/translation/sv.mo
#	AndorsTrail/assets/translation/tr.mo
#	AndorsTrail/assets/translation/uk.mo
#	AndorsTrail/assets/translation/zh_CN.mo
#	AndorsTrail/assets/translation/zh_TW.mo
#	AndorsTrail/res/values/authors.xml
#	AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
2021-02-16 00:33:14 +01:00
Nut.andor
06f168124f test push 2021-02-16 00:01:20 +01:00
Jiri Zizkin Zizka
9724fb01c9 Translated using Weblate (Czech)
Currently translated at 39.0% (4883 of 12512 strings)
2021-02-15 23:48:48 +01:00
Liu Tao
e182ca85e6 Translated using Weblate (Chinese (Simplified))
Currently translated at 30.0% (3762 of 12512 strings)
2021-02-15 23:48:47 +01:00
Elton Viana Gonçalves da Luz
147071c92a Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.7% (11855 of 12512 strings)
2021-02-15 23:48:45 +01:00
Mateusz Mendel
ff6552f764 Translated using Weblate (Polish)
Currently translated at 80.2% (10045 of 12512 strings)
2021-02-15 23:48:44 +01:00
Jorge Luis Rico Víquez
10c18f1792 Translated using Weblate (Spanish)
Currently translated at 91.2% (11422 of 12512 strings)
2021-02-15 23:48:42 +01:00
Jorge Luis Rico Víquez
431d30b82d Translated using Weblate (Spanish)
Currently translated at 90.4% (11322 of 12512 strings)
2021-02-15 11:55:12 +01:00
Jorge Luis Rico Víquez
b86693a611 Translated using Weblate (Spanish)
Currently translated at 90.4% (11313 of 12512 strings)
2021-02-15 02:01:40 +01:00
adel nasri
f342c34295 Translated using Weblate (Arabic)
Currently translated at 13.5% (78 of 577 strings)
2021-02-13 00:42:49 +01:00
adel nasri
64031d7195 Translated using Weblate (Arabic)
Currently translated at 3.0% (386 of 12511 strings)
2021-02-13 00:42:16 +01:00
Jorge Luis Rico Víquez
8d8d5945f5 Translated using Weblate (Spanish)
Currently translated at 89.3% (11182 of 12512 strings)
2021-02-13 00:42:14 +01:00
adel nasri
08ac09a95b Translated using Weblate (Arabic)
Currently translated at 2.5% (315 of 12511 strings)
2021-02-12 18:09:12 +01:00
Jiri Zizkin Zizka
f44dace8b1 Translated using Weblate (Czech)
Currently translated at 38.9% (4871 of 12512 strings)
2021-02-12 18:09:11 +01:00
Meiru
cf3d6a21bf Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-12 18:09:09 +01:00
Da C
4d16b90201 Translated using Weblate (Italian)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-12 18:09:06 +01:00
Jorge Luis Rico Víquez
f3d33854f0 Translated using Weblate (Spanish)
Currently translated at 89.3% (11175 of 12512 strings)
2021-02-12 18:09:04 +01:00
adel nasri
a71876d60e Translated using Weblate (Arabic)
Currently translated at 2.3% (297 of 12511 strings)
2021-02-11 17:58:20 +01:00
Jiri Zizkin Zizka
2826f5a39c Translated using Weblate (Czech)
Currently translated at 38.7% (4851 of 12512 strings)
2021-02-11 17:57:56 +01:00
Da C
6cca9ed061 Translated using Weblate (Italian)
Currently translated at 99.3% (12426 of 12512 strings)
2021-02-11 17:57:44 +01:00
Jorge Luis Rico Víquez
3af2859335 Translated using Weblate (Spanish)
Currently translated at 88.3% (11052 of 12512 strings)
2021-02-11 17:57:39 +01:00
adel nasri
9b56acc310 Translated using Weblate (Arabic)
Currently translated at 1.3% (165 of 12511 strings)
2021-02-09 14:00:18 +01:00
Da C
1865f4f8d5 Translated using Weblate (Italian)
Currently translated at 93.7% (11735 of 12512 strings)
2021-02-09 13:59:53 +01:00
Michalis
52943da6a5 Translated using Weblate (Greek)
Currently translated at 8.8% (1112 of 12511 strings)
2021-02-09 08:26:30 +01:00
adel nasri
f18524e8e2 Translated using Weblate (Arabic)
Currently translated at 0.4% (57 of 12511 strings)
2021-02-09 08:26:29 +01:00
Jiri Zizkin Zizka
7bc24ac371 Translated using Weblate (Czech)
Currently translated at 37.7% (4729 of 12512 strings)
2021-02-09 08:26:27 +01:00
Lucas Araujo
8e542c5665 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.6% (11841 of 12512 strings)
2021-02-09 08:26:26 +01:00
Pol
b8d9ec36e5 Translated using Weblate (Spanish)
Currently translated at 86.8% (10862 of 12512 strings)
2021-02-09 08:26:24 +01:00
Jorge Luis Rico Víquez
e3ef1952eb Translated using Weblate (Spanish)
Currently translated at 86.8% (10862 of 12512 strings)
2021-02-09 08:26:23 +01:00
Jorge Luis Rico Víquez
758c5f7f3f Translated using Weblate (Spanish)
Currently translated at 86.2% (10795 of 12512 strings)
2021-02-08 19:14:05 +01:00
Juan Manuel Cantero Diego
98f0a0322e Translated using Weblate (Spanish)
Currently translated at 86.2% (10795 of 12512 strings)
2021-02-08 19:14:04 +01:00
Pol
6941ce6543 Translated using Weblate (Spanish)
Currently translated at 86.2% (10795 of 12512 strings)
2021-02-08 19:14:03 +01:00
Lucas Araujo
6727f6c163 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.5% (11835 of 12512 strings)
2021-02-08 18:03:33 +01:00
Jorge Luis Rico Víquez
e60758fa0c Translated using Weblate (Spanish)
Currently translated at 86.2% (10795 of 12512 strings)
2021-02-08 18:03:25 +01:00
Michalis
c2e46d4de8 Translated using Weblate (Greek)
Currently translated at 8.8% (1112 of 12511 strings)
2021-02-08 02:27:32 +01:00
Reza Almanda
dda5a9d17a Translated using Weblate (Indonesian)
Currently translated at 95.8% (553 of 577 strings)
2021-02-08 02:27:30 +01:00
Jiri Zizkin Zizka
24107abbef Translated using Weblate (Czech)
Currently translated at 37.6% (4716 of 12512 strings)
2021-02-08 02:27:29 +01:00
Carlos Santana
805cbf4733 Translated using Weblate (Spanish)
Currently translated at 85.6% (10712 of 12512 strings)
2021-02-08 02:27:27 +01:00
Jorge Luis Rico Víquez
9d341c4e0b Translated using Weblate (Spanish)
Currently translated at 85.6% (10712 of 12512 strings)
2021-02-08 02:27:27 +01:00
Jorge Luis Rico Víquez
a9641b4970 Translated using Weblate (Spanish)
Currently translated at 100.0% (577 of 577 strings)
2021-02-07 10:13:57 +01:00
Jiri Zizkin Zizka
0278c45d34 Translated using Weblate (Czech)
Currently translated at 37.1% (4646 of 12512 strings)
2021-02-07 10:13:56 +01:00
Meiru
143262b6fc Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-07 10:13:52 +01:00
Evaristo Sintetas
c0a798e3e3 Translated using Weblate (Spanish)
Currently translated at 84.8% (10615 of 12512 strings)
2021-02-07 10:13:47 +01:00
Jorge Luis Rico Víquez
0855873117 Translated using Weblate (Spanish)
Currently translated at 84.8% (10615 of 12512 strings)
2021-02-07 10:13:46 +01:00
Jiri Zizkin Zizka
e35a1df79a Translated using Weblate (Czech)
Currently translated at 100.0% (577 of 577 strings)
2021-02-06 00:42:38 +01:00
Jorge Luis Rico Víquez
516ff7389a Translated using Weblate (Spanish)
Currently translated at 100.0% (577 of 577 strings)
2021-02-06 00:42:37 +01:00
Jiri Zizkin Zizka
22d28666ea Translated using Weblate (Czech)
Currently translated at 36.5% (4570 of 12512 strings)
2021-02-06 00:42:30 +01:00
Vladimir
ed6831595f Translated using Weblate (Russian)
Currently translated at 93.4% (11696 of 12512 strings)
2021-02-06 00:42:27 +01:00
Mateusz Mendel
894a4275af Translated using Weblate (Polish)
Currently translated at 80.2% (10045 of 12512 strings)
2021-02-06 00:42:06 +01:00
Meiru
65d56f3135 Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-06 00:42:05 +01:00
Manuel Bolivar
6be899fe1c Translated using Weblate (Spanish)
Currently translated at 82.0% (10263 of 12512 strings)
2021-02-06 00:42:02 +01:00
Sergio Oton
d0f300890c Translated using Weblate (Spanish)
Currently translated at 82.0% (10263 of 12512 strings)
2021-02-06 00:42:02 +01:00
Pol
860dc466aa Translated using Weblate (Spanish)
Currently translated at 82.0% (10263 of 12512 strings)
2021-02-06 00:42:01 +01:00
Jorge Luis Rico Víquez
f9bce7be7b Translated using Weblate (Spanish)
Currently translated at 82.0% (10263 of 12512 strings)
2021-02-06 00:42:00 +01:00
Meiru
ccf4f11095 Translated using Weblate (Japanese)
Currently translated at 100.0% (577 of 577 strings)
2021-02-06 00:41:57 +01:00
Manuel Bolivar
6c68bb0f73 Translated using Weblate (Spanish)
Currently translated at 100.0% (577 of 577 strings)
2021-02-04 23:57:50 +01:00
Echedey
3434e5d738 Translated using Weblate (Spanish)
Currently translated at 100.0% (577 of 577 strings)
2021-02-04 23:57:50 +01:00
Manuel Bolivar
575c7236cd Translated using Weblate (Spanish)
Currently translated at 77.4% (9693 of 12512 strings)
2021-02-04 21:06:59 +01:00
Jorge Luis Rico Víquez
d4c7146850 Translated using Weblate (Spanish)
Currently translated at 77.4% (9693 of 12512 strings)
2021-02-04 21:06:59 +01:00
Manuel Bolivar
08d8d04c8c Translated using Weblate (Spanish)
Currently translated at 77.4% (9687 of 12512 strings)
2021-02-04 21:01:28 +01:00
Jorge Luis Rico Víquez
fae9cdf292 Translated using Weblate (Spanish)
Currently translated at 77.4% (9687 of 12512 strings)
2021-02-04 21:01:28 +01:00
Jorge Luis Rico Víquez
7c62376d7e Translated using Weblate (Spanish)
Currently translated at 77.3% (9677 of 12512 strings)
2021-02-04 20:56:13 +01:00
Jorge Luis Rico Víquez
410bf9cc63 Translated using Weblate (Spanish)
Currently translated at 77.3% (9675 of 12512 strings)
2021-02-04 20:54:40 +01:00
Manuel Bolivar
79f47d8830 Translated using Weblate (Spanish)
Currently translated at 77.3% (9675 of 12512 strings)
2021-02-04 20:54:39 +01:00
Jiri Zizkin Zizka
0ed844ef0d Translated using Weblate (Czech)
Currently translated at 34.7% (4345 of 12512 strings)
2021-02-03 00:02:28 +01:00
Vladimir
017012cd05 Translated using Weblate (Russian)
Currently translated at 93.4% (11693 of 12512 strings)
2021-02-03 00:02:26 +01:00
Lucas Araujo
e0f960dd28 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.2% (11795 of 12512 strings)
2021-02-03 00:02:25 +01:00
Mateusz Mendel
20e377dca3 Translated using Weblate (Polish)
Currently translated at 80.2% (10045 of 12512 strings)
2021-02-03 00:02:22 +01:00
Meiru
b373785ec3 Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-03 00:02:20 +01:00
Alessandro Perlo
d8f7d27511 Translated using Weblate (Italian)
Currently translated at 92.8% (11621 of 12512 strings)
2021-02-03 00:02:18 +01:00
Vladimir
7eff687b4c Translated using Weblate (Russian)
Currently translated at 100.0% (577 of 577 strings)
2021-02-03 00:02:17 +01:00
SmallDragon Chen
e056bc3209 Translated using Weblate (Chinese (Traditional))
Currently translated at 3.1% (395 of 12512 strings)
2021-02-01 14:16:02 +01:00
Meiru
be520fc104 Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-01 14:16:01 +01:00
Meiru
f80536944d Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-01 09:02:48 +01:00
SmallDragon Chen
81f54aca1d Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (577 of 577 strings)
2021-02-01 00:52:13 +01:00
SmallDragon Chen
13004de111 Translated using Weblate (Chinese (Traditional))
Currently translated at 3.1% (393 of 12512 strings)
2021-02-01 00:52:08 +01:00
Jiri Zizkin Zizka
82e8b57e89 Translated using Weblate (Czech)
Currently translated at 34.4% (4305 of 12512 strings)
2021-02-01 00:51:07 +01:00
Harita Ustası
9b32cf08d8 Translated using Weblate (Turkish)
Currently translated at 26.9% (3367 of 12512 strings)
2021-02-01 00:51:04 +01:00
Gökhan Demirden
098fe77a54 Translated using Weblate (Turkish)
Currently translated at 26.9% (3367 of 12512 strings)
2021-02-01 00:51:04 +01:00
Lucas Araujo
64e037ad90 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.0% (11768 of 12512 strings)
2021-02-01 00:51:02 +01:00
Mateusz Mendel
7894ed7e0f Translated using Weblate (Polish)
Currently translated at 80.2% (10044 of 12512 strings)
2021-02-01 00:50:59 +01:00
dz2701
3523bc669b Translated using Weblate (Korean)
Currently translated at 6.1% (768 of 12512 strings)
2021-02-01 00:50:58 +01:00
Meiru
dd919eb029 Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-02-01 00:50:56 +01:00
Lucas Araujo
1c15204198 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (577 of 577 strings)
2021-02-01 00:50:55 +01:00
Meiru
d5f0d2bbb2 Translated using Weblate (Japanese)
Currently translated at 100.0% (577 of 577 strings)
2021-02-01 00:50:54 +01:00
Alessandro Perlo
5ae9cf18c9 Translated using Weblate (Italian)
Currently translated at 100.0% (577 of 577 strings)
2021-02-01 00:50:54 +01:00
Meiru
a06d55a00a Translated using Weblate (Japanese)
Currently translated at 100.0% (577 of 577 strings)
2021-01-30 15:15:06 +01:00
Meiru
486774c8f7 Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-01-30 15:14:55 +01:00
Csaba
583c728245 Translated using Weblate (Hungarian)
Currently translated at 33.2% (4156 of 12512 strings)
2021-01-30 11:32:35 +01:00
Jiri Zizkin Zizka
988067eedc Translated using Weblate (Czech)
Currently translated at 33.8% (4234 of 12512 strings)
2021-01-30 11:32:34 +01:00
Ömer Faruk Çakmak
b044b17d8a Translated using Weblate (Turkish)
Currently translated at 26.3% (3300 of 12512 strings)
2021-01-30 11:32:31 +01:00
Max Nalsky
329b38b5d3 Translated using Weblate (Russian)
Currently translated at 92.8% (11615 of 12512 strings)
2021-01-30 11:32:29 +01:00
Meiru
cec353a96c Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-01-30 11:32:28 +01:00
Meiru
a93545f7af Translated using Weblate (Japanese)
Currently translated at 100.0% (577 of 577 strings)
2021-01-30 11:32:26 +01:00
Ömer Faruk Çakmak
826efc6074 Translated using Weblate (Turkish)
Currently translated at 24.3% (3041 of 12512 strings)
2021-01-29 20:42:15 +01:00
Meiru
97d84936aa Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-01-29 10:58:22 +01:00
Meiru
7070cd6853 Translated using Weblate (Japanese)
Currently translated at 100.0% (12512 of 12512 strings)
2021-01-29 09:29:04 +01:00
Meiru
87e2202c51 Translated using Weblate (Japanese)
Currently translated at 99.8% (12498 of 12512 strings)
2021-01-29 02:35:34 +01:00
Chriz76
e776c86aff Update full-description.txt
Quest and map count for v0.7.13
2021-01-28 19:14:44 +01:00
Chriz76
0e85c9d05f Update full-description.txt
V.0.7.13
2021-01-28 19:11:44 +01:00
Jiri Zizkin Zizka
84899b4410 Translated using Weblate (Czech)
Currently translated at 100.0% (577 of 577 strings)
2021-01-27 00:26:30 +01:00
Oğuz Ersen
9e2a21c80a Translated using Weblate (Turkish)
Currently translated at 100.0% (577 of 577 strings)
2021-01-27 00:26:29 +01:00
Jiri Zizkin Zizka
2e9f7ced10 Translated using Weblate (Czech)
Currently translated at 33.5% (4199 of 12512 strings)
2021-01-27 00:26:29 +01:00
Oğuz Ersen
4e2c0cf349 Translated using Weblate (Turkish)
Currently translated at 23.6% (2965 of 12512 strings)
2021-01-27 00:26:27 +01:00
Lucas Araujo
83d1241ec9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 93.2% (11669 of 12512 strings)
2021-01-27 00:26:26 +01:00
Nut.andor
aa946bb047 fix merge conflict 2021-01-26 15:22:47 +01:00
Ricardo
65c8a0e499 Translated using Weblate (Portuguese (Brazil))
Currently translated at 92.8% (11616 of 12512 strings)
2021-01-26 15:16:15 +01:00
Meiru
f8f625e5a1 Translated using Weblate (Japanese)
Currently translated at 99.8% (12498 of 12512 strings)
2021-01-26 15:15:35 +01:00
Meiru
c1d8ce51d5 Translated using Weblate (Japanese)
Currently translated at 100.0% (577 of 577 strings)
2021-01-26 15:15:29 +01:00
Nut.andor
34603c287f translations % 2021-01-26 01:14:07 +01:00
Nut.andor
cddd7b5ee3 generated translations, author 2021-01-26 00:04:51 +01:00
Nut.andor
c6f4c64a67 fix unicode char 2021-01-25 19:53:47 +01:00
Nut.andor
bd33ec7edd Merge remote-tracking branch 'Andors-Trail/test_fungi' into master
# Conflicts:
#	AndorsTrail/AndroidManifest.xml
#	AndorsTrail/assets/translation/cs.po
#	AndorsTrail/assets/translation/de.po
#	AndorsTrail/assets/translation/es.po
#	AndorsTrail/assets/translation/ja.po
#	AndorsTrail/assets/translation/ru.po
#	AndorsTrail/assets/translation/tr.po
#	AndorsTrail/assets/translation/zh_CN.po
#	AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
2021-01-24 23:18:45 +01:00
Nut.andor
2b533f9617 fungi_panic 2021-01-24 22:44:06 +01:00
Nut.andor
85d26e9c8e Merge remote-tracking branch 'Weblate_translations/master' into master 2021-01-24 19:19:56 +01:00
01qwasa10
3442d0da70 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (563 of 563 strings)
2021-01-24 19:09:41 +01:00
01qwasa10
fb7317a667 Translated using Weblate (Chinese (Traditional))
Currently translated at 54.5% (307 of 563 strings)
2021-01-24 19:09:41 +01:00
01qwasa10
bab395f982 Translated using Weblate (Chinese (Traditional))
Currently translated at 2.8% (328 of 11616 strings)
2021-01-24 19:09:39 +01:00
Nut.andor
d092879a74 Authors 2021-01-24 11:54:08 +01:00
Nut.andor
005f22a349 version v0,7.12.2 (just translations) 2021-01-23 23:22:18 +01:00
Nut.andor
96bbd2e038 generated mo+strings 2021-01-23 19:54:02 +01:00
Nut.andor
a6f75d030d Merge remote-tracking branch 'AndorsTrailRelease/master' into master 2021-01-23 19:40:38 +01:00
Nut.andor
c054de0c67 Merge remote-tracking branch 'hosted.weblate/master' into master 2021-01-23 19:34:13 +01:00
Jiri Zizkin Zizka
fcfd656c4b Translated using Weblate (Czech)
Currently translated at 35.9% (4177 of 11616 strings)
2021-01-23 09:32:10 +01:00
Jiri Zizkin Zizka
79f7ea4277 Translated using Weblate (Czech)
Currently translated at 35.7% (4147 of 11616 strings)
2021-01-21 01:53:31 +01:00
Виталий
1c45d841d2 Translated using Weblate (Ukrainian)
Currently translated at 11.9% (1384 of 11616 strings)
2021-01-18 22:08:05 +01:00
Meiru
8a6ab625cc Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2021-01-18 09:57:49 +01:00
Nathan Watson
59f0015cc0 fix dpad direction change handling 2021-01-17 21:02:40 -08:00
Nut.andor
dfadbfffd5 beta 2021-01-18 01:19:27 +01:00
Nathan Watson
099acfcdb6 Configurable dpad transparency 2021-01-16 17:34:33 -08:00
Meiru
162127c2a1 Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2021-01-16 14:42:18 +01:00
zoollcar
b9dbda107a Translated using Weblate (Chinese (Simplified))
Currently translated at 32.0% (3720 of 11616 strings)
2021-01-15 09:32:10 +01:00
Виталий
5352998818 Translated using Weblate (Russian)
Currently translated at 100.0% (11616 of 11616 strings)
2021-01-15 09:32:09 +01:00
Pol
fc0984f082 Translated using Weblate (Spanish)
Currently translated at 82.6% (9605 of 11616 strings)
2021-01-15 09:32:08 +01:00
Meiru
0c717ea672 Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2021-01-13 10:32:11 +01:00
Meiru
4493d902b2 Translated using Weblate (Japanese)
Currently translated at 100.0% (563 of 563 strings)
2021-01-13 10:32:10 +01:00
Meiru
85975857f0 Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2021-01-12 09:48:07 +01:00
Nut.andor
ac9f25abf3 some more author credits 2021-01-12 00:34:04 +01:00
Nut.andor
953d458a37 3 other languages: Japanese, Czech, Chinese
some author credits
2021-01-10 22:45:25 +01:00
zoollcar
c343f30af6 Translated using Weblate (Chinese (Simplified))
Currently translated at 32.0% (3718 of 11616 strings)
2021-01-10 22:38:52 +01:00
Виталий
2e07586089 Translated using Weblate (Russian)
Currently translated at 100.0% (11616 of 11616 strings)
2021-01-10 22:38:46 +01:00
Meiru
8702577308 Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2021-01-10 22:38:44 +01:00
Vines&Bells
fe7302df80 Translated using Weblate (German)
Currently translated at 86.4% (10045 of 11616 strings)
2021-01-10 22:38:42 +01:00
Ricardo
d04ff2a22e Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (563 of 563 strings)
2021-01-10 22:38:41 +01:00
Meiru
5a505f76e5 Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2021-01-10 09:26:33 +01:00
Nathan Watson
f9a08dcf16 Inventory filters: segregate jewelry from armor; and potions from food 2021-01-09 20:00:45 -08:00
Nathan Watson
d5f00b25d6 Make sortByType split potions from food 2021-01-09 19:07:17 -08:00
Nathan Watson
4d73eaa341 bugfix: compile error typo left unstaged in prior commit 2021-01-09 13:50:14 -08:00
Nathan Watson
66bb28661e Improve granularity of inventory sortByType 2021-01-09 12:52:58 -08:00
Meiru
fe79d134fd Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2021-01-09 14:32:08 +01:00
Nut.andor
83bd59c595 Merge remote-tracking branch 'hosted.weblate/master' into master 2021-01-09 01:50:18 +01:00
Nathan Watson
6f209951e4 update authors 2021-01-08 08:16:33 -08:00
Jiri Zizkin Zizka
daddd02fcf Translated using Weblate (Czech)
Currently translated at 35.6% (4141 of 11616 strings)
2021-01-07 22:17:41 +01:00
Meiru
fdc64682af Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2021-01-03 11:32:41 +01:00
Nut
748f0bf36f actual translations 2021-01-03 03:02:24 +01:00
İsmail Emre Sırmalı
3e06a573e7 Translated using Weblate (Turkish)
Currently translated at 100.0% (563 of 563 strings)
2021-01-01 20:29:17 +01:00
卢剑辉
8b8beb3f0c Translated using Weblate (Chinese (Simplified))
Currently translated at 31.9% (3708 of 11616 strings)
2021-01-01 20:29:16 +01:00
İsmail Emre Sırmalı
9346df94f5 Translated using Weblate (Turkish)
Currently translated at 25.0% (2913 of 11616 strings)
2021-01-01 20:29:13 +01:00
Meiru
2e7b7c10f7 Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2020-12-29 13:59:54 +01:00
Meiru
1268dbeba6 Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2020-12-29 08:51:02 +01:00
Nut Andor
1e1be4bd86 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (563 of 563 strings)
2020-12-29 00:45:39 +01:00
卢剑辉
0dfbaba2e3 Translated using Weblate (Chinese (Simplified))
Currently translated at 29.3% (3409 of 11616 strings)
2020-12-29 00:45:38 +01:00
Meiru
e709e45880 Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2020-12-29 00:45:37 +01:00
Echedey
f59cd035c8 Translated using Weblate (Spanish)
Currently translated at 82.6% (9604 of 11616 strings)
2020-12-29 00:45:35 +01:00
Ruben Rodriguez Martin
aeadfaa27e Translated using Weblate (Spanish)
Currently translated at 82.6% (9604 of 11616 strings)
2020-12-29 00:45:35 +01:00
Hakuchi
7746d97019 Translated using Weblate (German)
Currently translated at 86.4% (10040 of 11616 strings)
2020-12-29 00:45:33 +01:00
卢剑辉
44251a73c0 Translated using Weblate (Chinese (Simplified))
Currently translated at 28.8% (3351 of 11616 strings)
2020-12-28 08:03:17 +01:00
Nathan Watson
605748b35b Don't warn when 'top' is missing (old maps don't have it, and that's ok) 2020-12-27 19:20:36 -08:00
卢剑辉
a659a2f176 Translated using Weblate (Chinese (Simplified))
Currently translated at 28.3% (3295 of 11616 strings)
2020-12-27 13:16:14 +01:00
Meiru
b6d7231248 Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2020-12-27 13:16:10 +01:00
Meiru
7760efac74 Translated using Weblate (Japanese)
Currently translated at 100.0% (563 of 563 strings)
2020-12-27 13:16:09 +01:00
Meiru
d263c6e4cc Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2020-12-27 09:33:31 +01:00
卢剑辉
693b8eb490 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (563 of 563 strings)
2020-12-26 03:29:26 +01:00
Jiri Zizkin Zizka
9197e97d9e Translated using Weblate (Czech)
Currently translated at 35.6% (4137 of 11616 strings)
2020-12-26 03:29:24 +01:00
卢剑辉
a4b83b576e Translated using Weblate (Chinese (Simplified))
Currently translated at 22.1% (2571 of 11616 strings)
2020-12-26 03:29:19 +01:00
Meiru
18fd76bdbd Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2020-12-26 03:29:12 +01:00
J. Lavoie
444bbfb5aa Translated using Weblate (German)
Currently translated at 99.8% (562 of 563 strings)
2020-12-26 03:29:10 +01:00
Meiru
139e19e747 Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2020-12-25 14:03:14 +01:00
Meiru
a77cfd091c Translated using Weblate (Japanese)
Currently translated at 99.9% (11611 of 11616 strings)
2020-12-25 05:25:54 +01:00
Meiru
66b4df7a65 Translated using Weblate (Japanese)
Currently translated at 99.9% (11611 of 11616 strings)
2020-12-24 05:26:21 +01:00
William Li
4831b43114 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (563 of 563 strings)
2020-12-24 03:54:51 +01:00
zhnxin
c4ed6341fe Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (563 of 563 strings)
2020-12-24 03:54:51 +01:00
zoollcar
b837053eee Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (563 of 563 strings)
2020-12-24 03:54:51 +01:00
卢剑辉
cf415d45d3 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (563 of 563 strings)
2020-12-24 03:54:51 +01:00
卢剑辉
2c7fedc90c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (563 of 563 strings)
2020-12-24 02:33:52 +01:00
Sky Forest
674b608a8f Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (563 of 563 strings)
2020-12-24 02:33:47 +01:00
Nut
917956c6b4 Merge pull request #48 from AndorsTrailRelease/master
version 56
2020-12-23 07:44:59 +01:00
Nut
7f839cd2f9 translation credit 2020-12-23 07:13:14 +01:00
Meiru
0a36d2741a Translated using Weblate (Japanese)
Currently translated at 99.9% (11611 of 11616 strings)
2020-12-22 13:51:49 +01:00
Meiru
213314e324 Translated using Weblate (Japanese)
Currently translated at 99.9% (11611 of 11616 strings)
2020-12-22 09:03:25 +01:00
THANOS SIOURDAKIS
eab055c906 Translated using Weblate (Greek)
Currently translated at 97.1% (547 of 563 strings)
2020-12-21 22:29:12 +01:00
Jiri Zizkin Zizka
d1622d5bfa Translated using Weblate (Czech)
Currently translated at 35.1% (4085 of 11616 strings)
2020-12-21 22:29:11 +01:00
卢剑辉
2dbe7a9cc2 Translated using Weblate (Chinese (Simplified))
Currently translated at 7.6% (885 of 11616 strings)
2020-12-21 22:29:10 +01:00
Meiru
d84198743c Translated using Weblate (Japanese)
Currently translated at 99.9% (11611 of 11616 strings)
2020-12-21 22:29:09 +01:00
Jiri Zizkin Zizka
a89dd87c35 Translated using Weblate (Czech)
Currently translated at 34.9% (4057 of 11616 strings)
2020-12-20 13:22:17 +01:00
卢剑辉
4a914bae43 Translated using Weblate (Chinese (Simplified))
Currently translated at 7.5% (877 of 11616 strings)
2020-12-20 13:22:15 +01:00
Meiru
3236eb239c Translated using Weblate (Japanese)
Currently translated at 99.9% (11611 of 11616 strings)
2020-12-20 13:21:42 +01:00
Nathan Watson
7b439696b9 Implement immobility for NPCs with moveCost = 999 2020-12-19 15:52:20 -08:00
Nathan Watson
6bc5e9ed13 Bugfix: Move spore immunity to the end of the skill list to preserve existing skill order 2020-12-19 15:36:20 -08:00
卢剑辉
9651ac3ece Translated using Weblate (Chinese (Simplified))
Currently translated at 55.0% (310 of 563 strings)
2020-12-18 14:29:11 +01:00
Jiri Zizkin Zizka
7c8f737b43 Translated using Weblate (Czech)
Currently translated at 34.2% (3982 of 11616 strings)
2020-12-18 14:29:10 +01:00
卢剑辉
0198a3e8a9 Translated using Weblate (Chinese (Simplified))
Currently translated at 7.4% (867 of 11616 strings)
2020-12-18 14:29:09 +01:00
Meiru
c17ad66af6 Translated using Weblate (Japanese)
Currently translated at 99.9% (11611 of 11616 strings)
2020-12-18 14:29:08 +01:00
Nut
9943bf336e Tomb ghosts 2020-12-17 14:48:19 +01:00
Jiri Zizkin Zizka
95f048daf0 Translated using Weblate (Czech)
Currently translated at 34.0% (3961 of 11616 strings)
2020-12-16 23:22:31 +01:00
Jiri Zizkin Zizka
4899361c7a Translated using Weblate (Czech)
Currently translated at 33.8% (3932 of 11616 strings)
2020-12-16 16:37:05 +01:00
Meiru
98b82110b8 Translated using Weblate (Japanese)
Currently translated at 100.0% (11616 of 11616 strings)
2020-12-16 13:34:23 +01:00
Meiru
3bb09ad2d9 Translated using Weblate (Japanese)
Currently translated at 99.0% (11505 of 11616 strings)
2020-12-15 15:28:44 +01:00
Meiru
8c66daed6d Translated using Weblate (Japanese)
Currently translated at 98.1% (11403 of 11616 strings)
2020-12-15 05:42:34 +01:00
Meiru
b92c2d428a Translated using Weblate (Japanese)
Currently translated at 96.2% (11183 of 11616 strings)
2020-12-14 06:17:57 +01:00
Jiri Zizkin Zizka
c54a1d0b0b Translated using Weblate (Czech)
Currently translated at 33.0% (3834 of 11616 strings)
2020-12-13 23:23:04 +01:00
Meiru
8094acebdf Translated using Weblate (Japanese)
Currently translated at 96.2% (11183 of 11616 strings)
2020-12-13 23:23:01 +01:00
Jiri Zizkin Zizka
e0f4112f49 Translated using Weblate (Czech)
Currently translated at 32.5% (3781 of 11616 strings)
2020-12-13 18:41:14 +01:00
Meiru
2979561044 Translated using Weblate (Japanese)
Currently translated at 96.2% (11183 of 11616 strings)
2020-12-13 18:41:11 +01:00
Meiru
5aeeefa0f0 Translated using Weblate (Japanese)
Currently translated at 95.5% (11097 of 11616 strings)
2020-12-13 03:34:25 +01:00
Meiru
2e8fea9bcd Translated using Weblate (Japanese)
Currently translated at 93.9% (10918 of 11616 strings)
2020-12-12 08:55:00 +01:00
Meiru
4dd3ab85b4 Translated using Weblate (Japanese)
Currently translated at 93.0% (10809 of 11616 strings)
2020-12-10 16:24:59 +01:00
Meiru
e0d6c7b354 Translated using Weblate (Japanese)
Currently translated at 92.0% (10695 of 11616 strings)
2020-12-10 07:45:25 +01:00
Jiri Zizkin Zizka
18f4df9949 Translated using Weblate (Czech)
Currently translated at 31.1% (3617 of 11616 strings)
2020-12-09 12:00:56 +01:00
Ricardo
1c0058a0a4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (11616 of 11616 strings)
2020-12-09 12:00:34 +01:00
Meiru
7a9bd42b15 Translated using Weblate (Japanese)
Currently translated at 90.5% (10515 of 11616 strings)
2020-12-09 12:00:30 +01:00
Meiru
53d691666c Translated using Weblate (Japanese)
Currently translated at 88.9% (10327 of 11616 strings)
2020-12-06 15:00:50 +01:00
Meiru
ca453cb066 Translated using Weblate (Japanese)
Currently translated at 88.4% (10273 of 11616 strings)
2020-12-06 08:54:33 +01:00
Meiru
4dbd4197df Translated using Weblate (Japanese)
Currently translated at 87.1% (10119 of 11616 strings)
2020-12-04 11:01:04 +01:00
Meiru
e2cd220b5c Translated using Weblate (Japanese)
Currently translated at 86.3% (10031 of 11616 strings)
2020-12-03 15:13:35 +01:00
Meiru
2edf1cf3f1 Translated using Weblate (Japanese)
Currently translated at 85.4% (9930 of 11616 strings)
2020-12-02 07:50:22 +01:00
Meiru
be3d751164 Translated using Weblate (Japanese)
Currently translated at 85.2% (9908 of 11616 strings)
2020-12-02 03:30:21 +01:00
atsymboldot
4f8a035c22 Update whatsnew.txt
minor wording in whatsnew
2020-11-29 19:22:18 -08:00
Meiru
c0e047672e Translated using Weblate (Japanese)
Currently translated at 83.7% (9730 of 11616 strings)
2020-11-30 03:15:44 +01:00
Jiri Zizkin Zizka
9345865ee0 Translated using Weblate (Czech)
Currently translated at 24.3% (2831 of 11616 strings)
2020-11-29 12:25:04 +01:00
Echedey
3d30d4e3bb Translated using Weblate (Spanish)
Currently translated at 82.4% (9576 of 11616 strings)
2020-11-29 12:25:02 +01:00
Meiru
c948927ba5 Translated using Weblate (Japanese)
Currently translated at 82.9% (9634 of 11616 strings)
2020-11-29 08:17:47 +01:00
Meiru
05e47e7d50 Translated using Weblate (Japanese)
Currently translated at 82.2% (9556 of 11616 strings)
2020-11-28 14:27:28 +01:00
Echedey
7a7b79074a Translated using Weblate (Spanish)
Currently translated at 100.0% (563 of 563 strings)
2020-11-27 20:29:07 +01:00
Jiri Zizkin Zizka
f90372c9df Translated using Weblate (Czech)
Currently translated at 23.9% (2781 of 11616 strings)
2020-11-27 20:29:06 +01:00
Ricardo
758ee87ab8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-27 20:29:04 +01:00
Meiru
6a4957e4bc Translated using Weblate (Japanese)
Currently translated at 81.2% (9435 of 11616 strings)
2020-11-27 20:29:02 +01:00
Echedey
f22f7f606c Translated using Weblate (Spanish)
Currently translated at 81.1% (9427 of 11616 strings)
2020-11-27 20:29:00 +01:00
Ruben Rodriguez Martin
484c786f61 Translated using Weblate (Spanish)
Currently translated at 100.0% (563 of 563 strings)
2020-11-26 19:45:18 +01:00
Anderson Guzman Abreu
8e3e6b89ef Translated using Weblate (Spanish)
Currently translated at 100.0% (563 of 563 strings)
2020-11-26 19:45:18 +01:00
Echedey
f44c695a04 Translated using Weblate (Spanish)
Currently translated at 100.0% (563 of 563 strings)
2020-11-26 19:45:18 +01:00
Echedey
3468880077 Translated using Weblate (Spanish)
Currently translated at 100.0% (563 of 563 strings)
2020-11-26 19:40:12 +01:00
Evaristo Sintetas
21f2dd62f5 Translated using Weblate (Spanish)
Currently translated at 100.0% (563 of 563 strings)
2020-11-26 19:40:11 +01:00
Ruben Rodriguez Martin
608c253e8e Translated using Weblate (Spanish)
Currently translated at 100.0% (563 of 563 strings)
2020-11-26 19:40:11 +01:00
Daniel-Ømicrón Rodríguez Garcí
30edb77b30 Translated using Weblate (Spanish)
Currently translated at 100.0% (563 of 563 strings)
2020-11-26 19:40:10 +01:00
Meiru
a6f76bf1ff Translated using Weblate (Japanese)
Currently translated at 79.7% (9263 of 11616 strings)
2020-11-26 04:29:15 +01:00
Nathan Watson
592c676e98 add passive achievement check when sleeping/respawning 2020-11-24 21:05:28 -08:00
Meiru
6c3b357a5e Translated using Weblate (Japanese)
Currently translated at 77.8% (9041 of 11616 strings)
2020-11-23 13:29:01 +01:00
Jean-Pascal Rhir
9661560698 Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-23 13:28:59 +01:00
Jean-Pascal Rhir
f33c3dc44a Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-11-23 13:28:57 +01:00
Meiru
2db9fe181e Translated using Weblate (Japanese)
Currently translated at 76.9% (8936 of 11616 strings)
2020-11-22 12:47:57 +01:00
Meiru
63f6ff48cf Translated using Weblate (Japanese)
Currently translated at 76.6% (8901 of 11616 strings)
2020-11-22 11:18:11 +01:00
Jean-Pascal Rhir
dc366f6ed4 Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-22 11:18:10 +01:00
Meiru
5ce3d00570 Translated using Weblate (Japanese)
Currently translated at 76.4% (8879 of 11616 strings)
2020-11-20 15:08:02 +01:00
Meiru
72db7b3f19 Translated using Weblate (Japanese)
Currently translated at 75.5% (8777 of 11616 strings)
2020-11-20 02:54:04 +01:00
Jiri Zizkin Zizka
4e5dfecccc Translated using Weblate (Czech)
Currently translated at 21.6% (2511 of 11616 strings)
2020-11-20 00:01:45 +01:00
Meiru
8da40e60cf Translated using Weblate (Japanese)
Currently translated at 75.3% (8753 of 11616 strings)
2020-11-20 00:01:43 +01:00
Jiri Zizkin Zizka
2aaf902d83 Translated using Weblate (Czech)
Currently translated at 20.0% (2330 of 11616 strings)
2020-11-18 06:28:51 +01:00
Meiru
2b5d1bec94 Translated using Weblate (Japanese)
Currently translated at 74.6% (8670 of 11616 strings)
2020-11-18 06:28:49 +01:00
Meiru
0f79254c8c Translated using Weblate (Japanese)
Currently translated at 100.0% (563 of 563 strings)
2020-11-18 06:28:48 +01:00
atsymboldot
825538d653 Merge pull request #46 from atsymboldot/patch-2
Update whatsnew.txt
2020-11-17 19:18:32 -08:00
atsymboldot
c487a52cbd Merge pull request #47 from atsymboldot/test_fungi
Update the dpad graphic
2020-11-17 19:17:10 -08:00
Nathan Watson
b987272a4a update dpad graphic 2020-11-17 17:34:53 -08:00
Meiru
519e082a85 Translated using Weblate (Japanese)
Currently translated at 74.4% (8648 of 11616 strings)
2020-11-17 14:27:45 +01:00
Meiru
85d91f0b89 Translated using Weblate (Japanese)
Currently translated at 74.1% (8611 of 11616 strings)
2020-11-17 08:35:15 +01:00
Meiru
b895b660b6 Translated using Weblate (Japanese)
Currently translated at 73.4% (8530 of 11616 strings)
2020-11-16 12:28:56 +01:00
Jean-Pascal Rhir
ce50baedb5 Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-16 12:28:55 +01:00
Meiru
8a7c628095 Translated using Weblate (Japanese)
Currently translated at 100.0% (563 of 563 strings)
2020-11-16 12:28:53 +01:00
Meiru
79629f4d10 Translated using Weblate (Japanese)
Currently translated at 73.3% (8520 of 11616 strings)
2020-11-16 04:04:14 +01:00
Meiru
45e44e513b Translated using Weblate (Japanese)
Currently translated at 72.8% (8461 of 11616 strings)
2020-11-15 03:36:07 +01:00
Jean-Pascal Rhir
5529382a05 Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-15 03:36:04 +01:00
Meiru
e6475fe58e Translated using Weblate (Japanese)
Currently translated at 100.0% (563 of 563 strings)
2020-11-15 03:36:03 +01:00
Jean-Pascal Rhir
a46483f080 Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-11-15 03:36:03 +01:00
atsymboldot
f846b5d50b Update whatsnew.txt
add descriptions for the atsymboldot PRs (sorry, I don't have write access here)
2020-11-14 23:15:42 +00:00
Nut
7c95793fc0 Whats new for Fungi_panic release 2020-11-15 00:06:48 +01:00
Meiru
c8eb41f7f5 Translated using Weblate (Japanese)
Currently translated at 71.5% (8314 of 11616 strings)
2020-11-12 16:17:15 +01:00
Xeon Determined
494b124599 Translated using Weblate (Chinese (Simplified))
Currently translated at 55.0% (310 of 563 strings)
2020-11-11 16:28:59 +01:00
zoollcar
b8ce971fc8 Translated using Weblate (Chinese (Simplified))
Currently translated at 55.0% (310 of 563 strings)
2020-11-11 16:28:58 +01:00
huzhanrong
3ef96948c8 Translated using Weblate (Chinese (Simplified))
Currently translated at 7.3% (853 of 11616 strings)
2020-11-11 16:28:56 +01:00
zoollcar
84b2e470ee Translated using Weblate (Chinese (Simplified))
Currently translated at 7.3% (853 of 11616 strings)
2020-11-11 16:28:56 +01:00
Meiru
f4aa4dee53 Translated using Weblate (Japanese)
Currently translated at 71.5% (8314 of 11616 strings)
2020-11-11 16:28:52 +01:00
Jean-Pascal Rhir
ebc3d93774 Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-11 16:28:46 +01:00
Meiru
61febe0299 Translated using Weblate (Japanese)
Currently translated at 71.5% (8314 of 11616 strings)
2020-11-11 14:31:15 +01:00
Gerardyang
ce45d0b5bd Translated using Weblate (Chinese (Simplified))
Currently translated at 6.5% (762 of 11616 strings)
2020-11-11 04:25:56 +01:00
zoollcar
5e21375181 Translated using Weblate (Chinese (Simplified))
Currently translated at 6.5% (762 of 11616 strings)
2020-11-11 04:25:55 +01:00
huzhanrong
49697c20d4 Translated using Weblate (Chinese (Simplified))
Currently translated at 6.5% (762 of 11616 strings)
2020-11-11 04:25:55 +01:00
Gonk
19e0d6d3c4 Fix, thanks to Nathan 2020-11-10 20:08:09 +01:00
Meiru
9934a1312a Translated using Weblate (Japanese)
Currently translated at 71.5% (8314 of 11616 strings)
2020-11-10 04:47:04 +01:00
Meiru
a8ebe2dcf3 Translated using Weblate (Japanese)
Currently translated at 71.5% (8314 of 11616 strings)
2020-11-10 04:31:25 +01:00
Jean-Pascal Rhir
3cf92843fb Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-10 04:31:22 +01:00
Gonk
6dc33bcac2 Fixed rounding issues regarding skills and also a fix for gold quantity 2020-11-09 20:44:01 +01:00
Meiru
d5df5ae95d Translated using Weblate (Japanese)
Currently translated at 71.2% (8276 of 11616 strings)
2020-11-09 15:31:50 +01:00
Gökhan Demirden
7e47e5862e Translated using Weblate (Turkish)
Currently translated at 24.9% (2897 of 11616 strings)
2020-11-09 14:26:52 +01:00
Jean-Pascal Rhir
264937dded Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-09 14:26:51 +01:00
Meiru
d5595c1fcc Translated using Weblate (Japanese)
Currently translated at 100.0% (563 of 563 strings)
2020-11-09 14:26:49 +01:00
Meiru
24da584d20 Translated using Weblate (Japanese)
Currently translated at 71.2% (8276 of 11616 strings)
2020-11-09 13:57:24 +01:00
Meiru
c852d47373 Translated using Weblate (Japanese)
Currently translated at 71.1% (8269 of 11616 strings)
2020-11-09 03:18:22 +01:00
Meiru
b4a542a0e7 Translated using Weblate (Japanese)
Currently translated at 69.8% (8115 of 11616 strings)
2020-11-04 15:29:53 +01:00
Meiru
1f2269395f Translated using Weblate (Japanese)
Currently translated at 69.7% (8103 of 11616 strings)
2020-11-04 08:34:23 +01:00
Jean-Pascal Rhir
d90e60f171 Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-04 00:31:36 +01:00
Meiru
b5b089043d Translated using Weblate (Japanese)
Currently translated at 69.1% (8028 of 11616 strings)
2020-11-03 14:17:51 +01:00
Lacrom
c5caec66c1 Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-03 14:17:49 +01:00
Jean-Pascal Rhir
f5e43fe0c5 Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-03 14:17:49 +01:00
Meiru
4803d838ab Translated using Weblate (Japanese)
Currently translated at 69.0% (8016 of 11616 strings)
2020-11-03 11:00:56 +01:00
Jean-Pascal Rhir
0c3f32344e Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-03 11:00:55 +01:00
Lacrom
dbacb524c9 Translated using Weblate (French)
Currently translated at 100.0% (11616 of 11616 strings)
2020-11-03 11:00:54 +01:00
Meiru
e5d7fa8bf6 Translated using Weblate (Japanese)
Currently translated at 68.3% (7944 of 11616 strings)
2020-11-01 23:29:41 +01:00
Jean-Pascal Rhir
f7301f9217 Translated using Weblate (French)
Currently translated at 99.9% (11615 of 11616 strings)
2020-11-01 23:29:39 +01:00
Gonk
3ca676c57b Merge branch 'test_fungi' of https://github.com/NutAndor/andors-trail into nut_test_fungi 2020-11-01 18:17:59 +01:00
Gonk
eaca079fe2 Made proceedToPhrase non recursive too allow longer chains of dialogues 2020-11-01 18:17:33 +01:00
Nut
53cdf18299 Merge commit '460c92617da80f3cff3ee672de1abbe4c68c4358' into test_fungi 2020-11-01 08:22:12 +01:00
Jean-Pascal Rhir
9180a125e6 Translated using Weblate (French)
Currently translated at 99.9% (11615 of 11616 strings)
2020-11-01 00:31:45 +01:00
Meiru
32f0b01cd8 Translated using Weblate (Japanese)
Currently translated at 67.4% (7835 of 11616 strings)
2020-11-01 00:31:26 +01:00
Jean-Pascal Rhir
c9cb420377 Translated using Weblate (French)
Currently translated at 99.9% (11615 of 11616 strings)
2020-11-01 00:31:24 +01:00
Meiru
eff1e3272f Translated using Weblate (Japanese)
Currently translated at 66.9% (7772 of 11616 strings)
2020-10-31 04:06:23 +01:00
Meiru
cda3a327d9 Translated using Weblate (Japanese)
Currently translated at 65.5% (7615 of 11616 strings)
2020-10-29 06:24:02 +01:00
Jean-Pascal Rhir
be78b4d868 Translated using Weblate (French)
Currently translated at 99.9% (11615 of 11616 strings)
2020-10-29 06:23:59 +01:00
Meiru
bb12b85dfd Translated using Weblate (Japanese)
Currently translated at 64.6% (7505 of 11616 strings)
2020-10-28 03:26:54 +01:00
Jean-Pascal Rhir
9599e4e3ee Translated using Weblate (French)
Currently translated at 99.9% (11615 of 11616 strings)
2020-10-28 03:26:51 +01:00
Meiru
b88b807a2b Translated using Weblate (Japanese)
Currently translated at 100.0% (563 of 563 strings)
2020-10-28 03:26:48 +01:00
Jean-Pascal Rhir
f2907f6b0c Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-10-28 03:26:48 +01:00
Meiru
bdff300787 Translated using Weblate (Japanese)
Currently translated at 63.8% (7418 of 11616 strings)
2020-10-27 05:53:29 +01:00
Meiru
c0bd9c836a Translated using Weblate (Japanese)
Currently translated at 61.8% (7183 of 11616 strings)
2020-10-25 15:57:52 +01:00
Gonk
1b105083d4 Merge branch 'test_fungi' of https://github.com/NutAndor/andors-trail into nut_test_fungi 2020-10-23 20:42:56 +02:00
Gonk
ea03067b2b Damage modifier when dual wielding now depends on the dual wield skill 2020-10-23 20:42:29 +02:00
JEROME ADVINCULA
dc2f606bf9 Translated using Weblate (Filipino)
Currently translated at 2.0% (242 of 11616 strings)
2020-10-23 15:26:49 +02:00
Xeon Determined
a09fb92936 Translated using Weblate (Chinese (Simplified))
Currently translated at 34.9% (197 of 563 strings)
2020-10-23 15:26:47 +02:00
Meiru
bfd0b3d206 Translated using Weblate (Japanese)
Currently translated at 60.5% (7033 of 11616 strings)
2020-10-23 15:26:47 +02:00
Jean-Pascal Rhir
3d73f58744 Translated using Weblate (French)
Currently translated at 99.9% (11615 of 11616 strings)
2020-10-23 15:26:45 +02:00
Meiru
609851d4d1 Translated using Weblate (Japanese)
Currently translated at 60.5% (7033 of 11616 strings)
2020-10-23 13:03:27 +02:00
Meiru
74a80b34b7 Translated using Weblate (Japanese)
Currently translated at 60.3% (7012 of 11616 strings)
2020-10-23 09:14:13 +02:00
Meiru
737bf305b0 Translated using Weblate (Japanese)
Currently translated at 59.7% (6944 of 11616 strings)
2020-10-22 13:47:54 +02:00
Meiru
e892f22a4c Translated using Weblate (Japanese)
Currently translated at 59.3% (6895 of 11616 strings)
2020-10-22 13:26:51 +02:00
roberto
3b2b4856f6 Translated using Weblate (Italian)
Currently translated at 100.0% (11616 of 11616 strings)
2020-10-22 13:26:49 +02:00
Jean-Pascal Rhir
e282f97202 Translated using Weblate (French)
Currently translated at 99.9% (11615 of 11616 strings)
2020-10-22 13:26:47 +02:00
Jean-Pascal Rhir
680dc57a8d Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-10-22 13:26:44 +02:00
Ricardo
d4a060520c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (11616 of 11616 strings)
2020-10-20 23:30:34 +02:00
Meiru
a14f21b024 Translated using Weblate (Japanese)
Currently translated at 58.5% (6805 of 11616 strings)
2020-10-20 23:30:32 +02:00
roberto
61c3a2756e Translated using Weblate (Italian)
Currently translated at 100.0% (11616 of 11616 strings)
2020-10-20 23:30:30 +02:00
Jean-Pascal Rhir
626e64a58e Translated using Weblate (French)
Currently translated at 99.9% (11615 of 11616 strings)
2020-10-20 23:30:29 +02:00
Meiru
fb56c7073d Translated using Weblate (Japanese)
Currently translated at 58.5% (6805 of 11616 strings)
2020-10-20 16:46:53 +02:00
Meiru
1daea8e21c Translated using Weblate (Japanese)
Currently translated at 57.9% (6735 of 11616 strings)
2020-10-20 04:53:11 +02:00
Ricardo
66990846cc Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.3% (11429 of 11616 strings)
2020-10-20 03:29:42 +02:00
Meiru
e51937e322 Translated using Weblate (Japanese)
Currently translated at 57.8% (6716 of 11616 strings)
2020-10-20 00:44:17 +02:00
roberto
501516ed1d Translated using Weblate (Italian)
Currently translated at 100.0% (11616 of 11616 strings)
2020-10-20 00:44:15 +02:00
Jean-Pascal Rhir
535a5737ba Translated using Weblate (French)
Currently translated at 99.9% (11615 of 11616 strings)
2020-10-20 00:44:14 +02:00
Meiru
2c73df1a97 Translated using Weblate (Japanese)
Currently translated at 57.7% (6706 of 11616 strings)
2020-10-19 11:32:53 +02:00
Jean-Pascal Rhir
d215046cf4 Translated using Weblate (French)
Currently translated at 99.9% (11615 of 11616 strings)
2020-10-19 11:32:51 +02:00
Meiru
948fa47fac Translated using Weblate (Japanese)
Currently translated at 57.7% (6705 of 11616 strings)
2020-10-19 10:29:46 +02:00
Meiru
7a59d2fcc1 Translated using Weblate (Japanese)
Currently translated at 55.6% (6469 of 11616 strings)
2020-10-17 19:03:31 +02:00
roberto
c2651b9beb Translated using Weblate (Italian)
Currently translated at 100.0% (11616 of 11616 strings)
2020-10-17 19:03:30 +02:00
Meiru
4dfce1430f Translated using Weblate (Japanese)
Currently translated at 55.2% (6414 of 11616 strings)
2020-10-17 04:32:06 +02:00
Meiru
e767b54526 Translated using Weblate (Japanese)
Currently translated at 54.0% (6276 of 11616 strings)
2020-10-16 03:26:43 +02:00
roberto
300a8aa5fb Translated using Weblate (Italian)
Currently translated at 100.0% (11616 of 11616 strings)
2020-10-16 03:26:42 +02:00
Meiru
27d159a698 Translated using Weblate (Japanese)
Currently translated at 100.0% (563 of 563 strings)
2020-10-16 03:26:40 +02:00
Nut
3d5c6276c0 probably version 57 2020-10-15 14:03:57 +02:00
Nut
92e12f0f36 version 56 2020-10-15 12:58:35 +02:00
Nut
608d416506 version 56 2020-10-15 12:53:20 +02:00
Nut
ed28db35fb Merge remote-tracking branch 'andors-trail/master' 2020-10-15 12:39:49 +02:00
Nut
d9b857abf6 missing compiled translations (mo files) 2020-10-15 12:34:48 +02:00
Nut
edcb0984e8 missing compiled translations (mo files) 2020-10-15 12:16:08 +02:00
Meiru
9e54b70fdd Translated using Weblate (Japanese)
Currently translated at 54.0% (6275 of 11616 strings)
2020-10-15 09:35:13 +02:00
Hary Tafianoto
658930e425 Translated using Weblate (Indonesian)
Currently translated at 97.5% (549 of 563 strings)
2020-10-14 08:26:42 +02:00
Meiru
6ee0ca0485 Translated using Weblate (Japanese)
Currently translated at 53.3% (6197 of 11616 strings)
2020-10-14 08:26:41 +02:00
Hary Tafianoto
0da87913c6 Translated using Weblate (Indonesian)
Currently translated at 0.8% (97 of 11616 strings)
2020-10-14 08:26:40 +02:00
m khoirul fatikhin
daa480276f Translated using Weblate (Indonesian)
Currently translated at 0.8% (97 of 11616 strings)
2020-10-14 08:26:39 +02:00
Meiru
c99c90d574 Translated using Weblate (Japanese)
Currently translated at 53.3% (6197 of 11616 strings)
2020-10-13 15:05:41 +02:00
Hary Tafianoto
9b83e6b41e Translated using Weblate (Indonesian)
Currently translated at 93.9% (529 of 563 strings)
2020-10-13 02:26:44 +02:00
Jiri Zizkin Zizka
03a24b0155 Translated using Weblate (Czech)
Currently translated at 17.8% (2068 of 11616 strings)
2020-10-13 02:26:43 +02:00
Ömer Faruk Çakmak
1f60fe227f Translated using Weblate (Turkish)
Currently translated at 24.7% (2877 of 11616 strings)
2020-10-13 02:26:41 +02:00
Meiru
62cc2d1b7e Translated using Weblate (Japanese)
Currently translated at 52.1% (6057 of 11616 strings)
2020-10-13 02:26:40 +02:00
Meiru
61377dd5f6 Translated using Weblate (Japanese)
Currently translated at 100.0% (563 of 563 strings)
2020-10-13 02:26:38 +02:00
Meiru
2c0d112f11 Translated using Weblate (Japanese)
Currently translated at 51.3% (5968 of 11616 strings)
2020-10-11 09:49:54 +02:00
Nathan Watson
460c92617d Add spore_poison immunity skill from Zuul'khan 2020-10-10 23:42:17 -07:00
Elytra Wixzo
9f6648a0c7 Translated using Weblate (Filipino)
Currently translated at 2.0% (236 of 11616 strings)
2020-10-11 07:27:05 +02:00
Hary Tafianoto
d1a2ef7edf Translated using Weblate (Indonesian)
Currently translated at 88.2% (497 of 563 strings)
2020-10-11 07:27:03 +02:00
Jiri Zizkin Zizka
8a124b8195 Translated using Weblate (Czech)
Currently translated at 17.7% (2060 of 11616 strings)
2020-10-11 07:27:02 +02:00
Meiru
6f075fc768 Translated using Weblate (Japanese)
Currently translated at 51.1% (5947 of 11616 strings)
2020-10-11 07:26:39 +02:00
Meiru
3fdf3ea21d Translated using Weblate (Japanese)
Currently translated at 49.8% (5788 of 11616 strings)
2020-10-09 17:32:58 +02:00
roberto
ca552f7748 Translated using Weblate (Italian)
Currently translated at 100.0% (11616 of 11616 strings)
2020-10-09 17:32:57 +02:00
roberto
70ac3e95e2 Translated using Weblate (Italian)
Currently translated at 100.0% (563 of 563 strings)
2020-10-09 17:32:55 +02:00
Meiru
e79d357014 Translated using Weblate (Japanese)
Currently translated at 49.1% (5710 of 11616 strings)
2020-10-09 07:03:54 +02:00
koffevar
9facf68532 Translated using Weblate (Russian)
Currently translated at 97.3% (11308 of 11616 strings)
2020-10-08 22:37:50 +02:00
Meiru
56b0f62499 Translated using Weblate (Japanese)
Currently translated at 48.9% (5683 of 11616 strings)
2020-10-08 22:37:49 +02:00
roberto
6201e1ccaa Translated using Weblate (Italian)
Currently translated at 100.0% (11616 of 11616 strings)
2020-10-08 22:37:46 +02:00
Ruben Rodriguez Martin
fc0a42bf71 Translated using Weblate (Spanish)
Currently translated at 79.7% (9269 of 11616 strings)
2020-10-08 22:37:44 +02:00
Meiru
55d57ef95a Translated using Weblate (Japanese)
Currently translated at 100.0% (563 of 563 strings)
2020-10-08 22:37:43 +02:00
Ruben Rodriguez Martin
588d045b47 Translated using Weblate (Spanish)
Currently translated at 100.0% (563 of 563 strings)
2020-10-07 08:08:21 +02:00
Gerardyang
67e0b92fc3 Translated using Weblate (Chinese (Simplified))
Currently translated at 6.3% (736 of 11616 strings)
2020-10-07 08:08:21 +02:00
Meiru
5bea8fa817 Translated using Weblate (Japanese)
Currently translated at 48.6% (5646 of 11616 strings)
2020-10-07 08:08:19 +02:00
roberto
0212a8f53d Translated using Weblate (Italian)
Currently translated at 98.1% (11406 of 11616 strings)
2020-10-07 08:08:16 +02:00
Adolfo Jayme Barrientos
96afcf86f0 Translated using Weblate (Spanish)
Currently translated at 79.5% (9245 of 11616 strings)
2020-10-07 08:08:14 +02:00
Ruben Rodriguez Martin
c389ed837e Translated using Weblate (Spanish)
Currently translated at 79.5% (9243 of 11616 strings)
2020-10-06 22:56:15 +02:00
Adolfo Jayme Barrientos
b8c898e883 Translated using Weblate (Spanish)
Currently translated at 79.5% (9243 of 11616 strings)
2020-10-06 22:56:15 +02:00
Ruben Rodriguez Martin
12159ce377 Translated using Weblate (Spanish)
Currently translated at 79.0% (9180 of 11616 strings)
2020-10-06 22:32:21 +02:00
Adolfo Jayme Barrientos
6e8646f619 Translated using Weblate (Spanish)
Currently translated at 79.0% (9180 of 11616 strings)
2020-10-06 22:32:20 +02:00
Juan Manuel Cantero Diego
e3280656a6 Translated using Weblate (Spanish)
Currently translated at 78.9% (9172 of 11616 strings)
2020-10-06 22:20:20 +02:00
Ruben Rodriguez Martin
f934bc5c5d Translated using Weblate (Spanish)
Currently translated at 78.9% (9172 of 11616 strings)
2020-10-06 22:20:19 +02:00
Adolfo Jayme Barrientos
55e1eb5f06 Translated using Weblate (Spanish)
Currently translated at 78.9% (9172 of 11616 strings)
2020-10-06 22:20:19 +02:00
Ruben Rodriguez Martin
41f0839961 Translated using Weblate (Spanish)
Currently translated at 78.6% (9141 of 11616 strings)
2020-10-06 21:56:14 +02:00
Atrate
161a9e0bf2 Translated using Weblate (Polish)
Currently translated at 86.4% (10040 of 11616 strings)
2020-10-05 14:12:35 +02:00
Meiru
969e7c0a14 Translated using Weblate (Japanese)
Currently translated at 48.3% (5619 of 11616 strings)
2020-10-05 14:12:33 +02:00
Christophe Nemo
b9c6df5503 Translated using Weblate (French)
Currently translated at 99.9% (11615 of 11616 strings)
2020-10-05 14:12:31 +02:00
ssantos
1a50f3da22 Translated using Weblate (Portuguese)
Currently translated at 99.4% (560 of 563 strings)
2020-10-05 14:12:30 +02:00
Nut
97feb1117d boss_fungi 2020-10-04 22:00:15 +02:00
Meiru
5d3278dac8 Translated using Weblate (Japanese)
Currently translated at 47.6% (5539 of 11616 strings)
2020-10-04 08:24:23 +02:00
Gonk
3423abc6b0 Increased API level to 29 so we can update AT after november 2020
Use requestLegacyExternalStorage flag to opt out of scoped storage
2020-10-03 20:13:52 +02:00
Nut
a695647175 translation fixes 2020-10-03 17:54:19 +02:00
Nut
0d1941a320 Merge remote-tracking branch 'hosted.weblate/master' 2020-10-03 16:52:24 +02:00
Nut Andor
c46dac5499 Translated using Weblate (Tagalog)
Currently translated at 100.0% (563 of 563 strings)
2020-10-03 16:50:23 +02:00
Nut Andor
4a13fd0d40 Translated using Weblate (Basque)
Currently translated at 64.6% (364 of 563 strings)
2020-10-03 16:50:23 +02:00
Meiru
88eb13fbe8 Translated using Weblate (Japanese)
Currently translated at 47.5% (5521 of 11617 strings)
2020-10-03 16:50:22 +02:00
Christophe Nemo
31c8a05d13 Translated using Weblate (French)
Currently translated at 99.8% (11597 of 11617 strings)
2020-10-03 16:50:19 +02:00
Nut Andor
0c8eac7321 Translated using Weblate (Polish)
Currently translated at 99.4% (560 of 563 strings)
2020-10-03 16:50:17 +02:00
Nut
a79cbd937e fix language 2020-10-03 13:10:49 +02:00
Elytra Wixzo
957142db99 Translated using Weblate (Filipino)
Currently translated at 2.0% (235 of 11616 strings)
2020-10-02 11:41:58 +02:00
Nut Andor
ca01b72f9e Translated using Weblate (Ukrainian)
Currently translated at 99.4% (560 of 563 strings)
2020-10-02 11:41:57 +02:00
Erick Ferraz Vieira
9fd769cf65 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.3% (11429 of 11617 strings)
2020-10-02 11:41:55 +02:00
Anderson Nogueira Silva
d329895cdb Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.3% (11429 of 11617 strings)
2020-10-02 11:41:55 +02:00
Meiru
0e1f8d8f1f Translated using Weblate (Japanese)
Currently translated at 46.2% (5373 of 11617 strings)
2020-10-02 11:41:52 +02:00
Jean-Pascal Rhir
fa9e186062 Translated using Weblate (French)
Currently translated at 99.7% (11591 of 11617 strings)
2020-10-02 11:41:01 +02:00
Christophe Nemo
12b8026ade Translated using Weblate (French)
Currently translated at 99.7% (11591 of 11617 strings)
2020-10-02 11:41:01 +02:00
ssantos
2308895a68 Translated using Weblate (Portuguese)
Currently translated at 99.4% (560 of 563 strings)
2020-10-02 11:40:59 +02:00
Nut Andor
a6f14cfa9e Translated using Weblate (Portuguese)
Currently translated at 99.4% (560 of 563 strings)
2020-10-02 11:40:58 +02:00
Christophe Nemo
0d8eb9669a Translated using Weblate (French)
Currently translated at 97.6% (11346 of 11617 strings)
2020-10-02 00:15:45 +02:00
Jean-Pascal Rhir
f6798ddf82 Translated using Weblate (French)
Currently translated at 97.6% (11346 of 11617 strings)
2020-10-02 00:15:44 +02:00
Gonk
94f5296067 Merge branch 'queststepsort' into nut_test_fungi 2020-10-01 22:59:07 +02:00
Gonk
42fcbecf7c Merge remote-tracking branch 'atsymboldot/no-tapping-out-of-loot' into nut_test_fungi 2020-10-01 22:51:00 +02:00
Gonk
a8e6d27983 Merge remote-tracking branch 'atsymboldot/combat-log-improvements' into nut_test_fungi
# Conflicts:
#	AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ItemController.java
2020-10-01 22:49:10 +02:00
Gonk
584c8885f3 Merge remote-tracking branch 'jasptravis/travis' into nut_test_fungi
Omitted PO file change

# Conflicts:
#	AndorsTrail/assets/translation/de.po
2020-10-01 22:37:49 +02:00
Jiri Zizkin Zizka
36d9e34087 Translated using Weblate (Czech)
Currently translated at 17.7% (2061 of 11617 strings)
2020-09-30 19:33:46 +02:00
Meiru
c11dcb514b Translated using Weblate (Japanese)
Currently translated at 45.5% (5286 of 11617 strings)
2020-09-30 19:33:45 +02:00
Christophe Nemo
a9a29914ef Translated using Weblate (French)
Currently translated at 95.6% (11115 of 11617 strings)
2020-09-30 19:33:43 +02:00
THANOS SIOURDAKIS
8f983029dc Translated using Weblate (Greek)
Currently translated at 96.8% (545 of 563 strings)
2020-09-30 14:32:33 +02:00
amir sadakah
fb46f5afcc Translated using Weblate (Arabic)
Currently translated at 0.1% (19 of 11616 strings)
2020-09-30 14:32:33 +02:00
Jiri Zizkin Zizka
0f788365a8 Translated using Weblate (Czech)
Currently translated at 17.7% (2061 of 11617 strings)
2020-09-30 14:32:32 +02:00
Meiru
8551592990 Translated using Weblate (Japanese)
Currently translated at 45.2% (5260 of 11617 strings)
2020-09-30 14:32:31 +02:00
Laure Runser
d12765bb92 Translated using Weblate (French)
Currently translated at 94.7% (11005 of 11617 strings)
2020-09-30 14:32:27 +02:00
Lacrom
74d01d879c Translated using Weblate (French)
Currently translated at 94.7% (11005 of 11617 strings)
2020-09-30 14:32:27 +02:00
Christophe Nemo
a193eb55ed Translated using Weblate (French)
Currently translated at 94.7% (11005 of 11617 strings)
2020-09-30 14:32:26 +02:00
Christophe Nemo
41c56d896c Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-09-30 14:32:24 +02:00
Meiru
13c77213df Translated using Weblate (Japanese)
Currently translated at 45.2% (5260 of 11617 strings)
2020-09-30 13:15:04 +02:00
Nut
f470cbd462 Basics changes for test fungi_panic 2020-09-30 00:10:38 +02:00
Nut
22999d5632 Merge branch 'master' into test_fungi
# Conflicts:
#	AndorsTrail/res/values/authors.xml
2020-09-30 00:04:57 +02:00
Nut
ff7c38bc35 Merge remote-tracking branch 'andors-trail/master' 2020-09-29 23:46:49 +02:00
Nut
a54258ffb2 It wasn't necessary to increment the int. release 2020-09-29 23:27:19 +02:00
Christophe Nemo
cf0c30c622 Translated using Weblate (French)
Currently translated at 91.3% (10614 of 11617 strings)
2020-09-29 17:02:22 +02:00
Lacrom
6fb6d326a7 Translated using Weblate (French)
Currently translated at 91.3% (10614 of 11617 strings)
2020-09-29 17:02:21 +02:00
Elytra Wixzo
41c6cb13df Translated using Weblate (Filipino)
Currently translated at 1.9% (231 of 11616 strings)
2020-09-29 12:21:36 +02:00
Passachol Tassanakul
1ad07ae491 Translated using Weblate (Thai)
Currently translated at 8.7% (49 of 563 strings)
2020-09-29 12:21:35 +02:00
Mingun
bcdf4bb8e6 Translated using Weblate (Russian)
Currently translated at 97.3% (11307 of 11617 strings)
2020-09-29 12:21:34 +02:00
Erick Ferraz Vieira
ba0cf8467b Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.7% (11351 of 11617 strings)
2020-09-29 12:21:32 +02:00
Meiru
1fbb25391f Translated using Weblate (Japanese)
Currently translated at 44.4% (5169 of 11617 strings)
2020-09-29 12:21:29 +02:00
Mingun
ee809b7cc4 Translated using Weblate (Russian)
Currently translated at 100.0% (563 of 563 strings)
2020-09-29 12:21:27 +02:00
Erick Ferraz Vieira
2f39f077f7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (563 of 563 strings)
2020-09-29 12:21:27 +02:00
Gonk
9ab74c881d Queststeps in the quest log are now sorted in chronological order.
Until now they were sorted by step id.
2020-09-28 21:19:51 +02:00
Nut
ba0a2562b2 Correct count of maps+quests again: up to 555 maps and 78 quests 2020-09-27 19:48:43 +02:00
Nut
b3f62f72ad Increment internal release number to 56
Correct count of maps+quests
2020-09-27 17:12:03 +02:00
Chriz76
e24cfea200 Google policy violation 2020-09-27 13:27:01 +02:00
Chriz76
ca842f451c V0.7.12 2020-09-26 12:12:16 +02:00
Chriz76
e20d962b32 V0.7.12 2020-09-26 12:11:27 +02:00
Chriz76
0238118a36 Use the US version 2020-09-26 12:10:51 +02:00
Chriz76
2899af86d6 Use the US version 2020-09-26 12:10:29 +02:00
Nut
3e6cf167ad Merge pull request #44 from AndorsTrailRelease/master
update to v0.7.12
2020-09-26 07:23:01 +02:00
Talking Panda
a7890366bb Translated using Weblate (Turkish)
Currently translated at 24.7% (2874 of 11617 strings)
2020-09-26 04:37:00 +02:00
Nikita Epifanov
23ce865aa4 Translated using Weblate (Russian)
Currently translated at 96.8% (11252 of 11617 strings)
2020-09-26 04:36:59 +02:00
Meiru
97776ad4f6 Translated using Weblate (Japanese)
Currently translated at 43.1% (5014 of 11617 strings)
2020-09-26 04:36:57 +02:00
Jannis Scheibe
7f496b7f75 Translated using Weblate (German)
Currently translated at 86.4% (10041 of 11617 strings)
2020-09-26 04:36:56 +02:00
Elytra Wixzo
3650aa8505 Translated using Weblate (Tagalog)
Currently translated at 100.0% (563 of 563 strings)
2020-09-25 04:41:06 +02:00
Elytra Wixzo
f0f9f94a1e Translated using Weblate (Filipino)
Currently translated at 1.6% (196 of 11616 strings)
2020-09-25 04:41:04 +02:00
Jiri Zizkin Zizka
1f077ef95a Translated using Weblate (Czech)
Currently translated at 17.6% (2045 of 11617 strings)
2020-09-25 04:41:03 +02:00
Oğuz Ersen
465c4f418c Translated using Weblate (Turkish)
Currently translated at 24.6% (2864 of 11617 strings)
2020-09-25 04:41:01 +02:00
Meiru
cd028ecb45 Translated using Weblate (Japanese)
Currently translated at 43.0% (5006 of 11617 strings)
2020-09-25 04:40:58 +02:00
Nut
13bb9ab322 Merge remote-tracking branch 'hosted.weblate/master' 2020-09-23 00:29:55 +02:00
Nut.andor
1821fffc3b Pull Request #24: Rebuild world map 2020-09-23 00:18:49 +02:00
Nut
5a34e1f816 fix Oromir 2020-09-23 00:15:34 +02:00
Elytra Wixzo
0d7835338b Translated using Weblate (Tagalog)
Currently translated at 87.2% (491 of 563 strings)
2020-09-22 22:06:24 +02:00
Oğuz Ersen
a3ba57dc7f Translated using Weblate (Turkish)
Currently translated at 100.0% (563 of 563 strings)
2020-09-22 22:06:22 +02:00
Mingun
0a810549b3 Translated using Weblate (Russian)
Currently translated at 100.0% (563 of 563 strings)
2020-09-22 22:06:22 +02:00
Nut
cdacc346ed Actualize PO files 2020-09-21 00:12:41 +02:00
Nut
d4da74d82d Actualize PO files 2020-09-20 23:42:07 +02:00
Nut
b5e2f3157c Merge pull request #26 from NutAndor/test_brimhaven
Test brimhaven
2020-09-20 23:17:53 +02:00
Nut
486feeb4f8 building 0.7.12 2020-09-20 23:10:03 +02:00
Nut
a63150406a fix %1$d in -TL 2020-09-20 19:30:05 +02:00
Nut
cfcfb84038 Merge remote-tracking branch 'hosted.weblate/master' 2020-09-20 19:22:06 +02:00
Elytra Wixzo
df7bd21b9d Translated using Weblate (Tagalog)
Currently translated at 65.5% (369 of 563 strings)
2020-09-20 19:10:08 +02:00
Oğuz Ersen
d4a28f7ff3 Translated using Weblate (Turkish)
Currently translated at 100.0% (563 of 563 strings)
2020-09-20 19:10:08 +02:00
Oğuz Ersen
2ca51a5e84 Translated using Weblate (Turkish)
Currently translated at 25.4% (2864 of 11250 strings)
2020-09-20 19:10:06 +02:00
mustafa kodaz
591a3aa6b3 Translated using Weblate (Turkish)
Currently translated at 25.4% (2864 of 11250 strings)
2020-09-20 19:10:06 +02:00
ssantos
42bc6d9422 Translated using Weblate (Portuguese)
Currently translated at 100.0% (11250 of 11250 strings)
2020-09-20 19:10:04 +02:00
Meiru
1ae44fe088 Translated using Weblate (Japanese)
Currently translated at 41.9% (4719 of 11250 strings)
2020-09-20 19:10:02 +02:00
Nathan Watson
61966ab7e2 Prevent stray taps from accidentally cancelling loot windows and the permadeath "Game Over" screen 2020-09-20 09:29:37 -07:00
Nut
5fa1f68f93 translators again 2020-09-20 09:11:33 +02:00
Chriz76
a0a47e443d Update authors.xml 2020-09-20 09:07:06 +02:00
Chriz76
9761f3d9c8 Update authors.xml 2020-09-20 01:14:36 +02:00
Chriz76
8dc9a123cd Update authors.xml
Added Nathan Watson
2020-09-20 00:56:08 +02:00
mustafa kodaz
234acd430d Translated using Weblate (Turkish)
Currently translated at 95.5% (538 of 563 strings)
2020-09-19 19:33:10 +02:00
Elytra Wixzo
a8a2b6c01f Translated using Weblate (Tagalog)
Currently translated at 61.4% (346 of 563 strings)
2020-09-19 16:41:19 +02:00
Meiru
c63c0cc0c3 Translated using Weblate (Japanese)
Currently translated at 41.6% (4690 of 11250 strings)
2020-09-19 16:41:18 +02:00
Elytra Wixzo
7bb9e0c572 Translated using Weblate (Tagalog)
Currently translated at 60.5% (341 of 563 strings)
2020-09-19 05:17:09 +02:00
Oğuz Ersen
90c85283fd Translated using Weblate (Turkish)
Currently translated at 95.5% (538 of 563 strings)
2020-09-19 05:17:08 +02:00
Oğuz Ersen
dd63219ba0 Translated using Weblate (Turkish)
Currently translated at 25.2% (2837 of 11250 strings)
2020-09-19 05:17:07 +02:00
Meiru
ab346736dd Translated using Weblate (Japanese)
Currently translated at 41.3% (4651 of 11250 strings)
2020-09-19 05:17:06 +02:00
Elytra Wixzo
eb8f97c189 Translated using Weblate (Tagalog)
Currently translated at 55.9% (315 of 563 strings)
2020-09-17 20:50:09 +02:00
Meiru
69da15965c Translated using Weblate (Japanese)
Currently translated at 41.2% (4635 of 11250 strings)
2020-09-17 20:50:08 +02:00
Elytra Wixzo
e298932223 Translated using Weblate (Tagalog)
Currently translated at 55.5% (313 of 563 strings)
2020-09-16 16:10:01 +02:00
mustafa kodaz
70f4cf8c17 Translated using Weblate (Turkish)
Currently translated at 93.7% (528 of 563 strings)
2020-09-16 16:10:00 +02:00
Oğuz Ersen
68b95f11f3 Translated using Weblate (Turkish)
Currently translated at 93.7% (528 of 563 strings)
2020-09-16 16:10:00 +02:00
Jiri Zizkin Zizka
1f41c595c7 Translated using Weblate (Czech)
Currently translated at 18.0% (2030 of 11250 strings)
2020-09-16 16:09:59 +02:00
mustafa kodaz
e79a7ff4eb Translated using Weblate (Turkish)
Currently translated at 25.2% (2835 of 11250 strings)
2020-09-16 16:09:30 +02:00
Meiru
2c4c910247 Translated using Weblate (Japanese)
Currently translated at 41.0% (4615 of 11250 strings)
2020-09-16 16:09:24 +02:00
Gonk
f67eb9ce67 Android 11 has new requirements regarding file access.
This prototype has working test code for Android 11 but there is still a lot missing like exlaination dialogues, refactoring, etc
2020-09-13 19:43:17 +02:00
Elytra Wixzo
223d9263e6 Translated using Weblate (Tagalog)
Currently translated at 51.1% (288 of 563 strings)
2020-09-13 11:06:33 +02:00
Meiru
31c417e976 Translated using Weblate (Japanese)
Currently translated at 39.4% (4439 of 11250 strings)
2020-09-13 06:08:33 +02:00
Lacrom
d74e823743 Translated using Weblate (French)
Currently translated at 93.9% (10570 of 11250 strings)
2020-09-13 06:08:31 +02:00
Elytra Wixzo
0ef42aa221 Translated using Weblate (Tagalog)
Currently translated at 48.4% (273 of 563 strings)
2020-09-12 04:36:12 +02:00
Jiri Zizkin Zizka
7918257d0d Translated using Weblate (Czech)
Currently translated at 17.4% (1961 of 11250 strings)
2020-09-12 04:36:11 +02:00
Meiru
38dbcb7929 Translated using Weblate (Japanese)
Currently translated at 38.9% (4379 of 11250 strings)
2020-09-12 04:36:09 +02:00
Javier Serrano Polo
1a3a5842dc Rebuild world map 2020-09-11 08:03:00 +02:00
Elytra Wixzo
47308cbeed Translated using Weblate (Tagalog)
Currently translated at 46.8% (264 of 563 strings)
2020-09-10 21:38:50 +02:00
Elytra Wixzo
84b49cfcc9 Translated using Weblate (Catalan)
Currently translated at 63.9% (360 of 563 strings)
2020-09-10 21:38:48 +02:00
roger
12e99a7af0 Translated using Weblate (Catalan)
Currently translated at 63.9% (360 of 563 strings)
2020-09-10 21:38:47 +02:00
Jiri Zizkin Zizka
4c1b583c30 Translated using Weblate (Czech)
Currently translated at 17.0% (1923 of 11250 strings)
2020-09-10 21:38:46 +02:00
ssantos
dc54ff5122 Translated using Weblate (Portuguese)
Currently translated at 100.0% (11250 of 11250 strings)
2020-09-10 21:38:40 +02:00
Meiru
6ed246f45a Translated using Weblate (Japanese)
Currently translated at 38.6% (4351 of 11250 strings)
2020-09-10 16:04:16 +02:00
Meiru
05df1f043d Translated using Weblate (Japanese)
Currently translated at 37.3% (4198 of 11250 strings)
2020-09-07 19:19:23 +02:00
Elytra Wixzo
793a33788d Translated using Weblate (Tagalog)
Currently translated at 32.6% (184 of 563 strings)
2020-09-07 12:36:41 +02:00
Jiri Zizkin Zizka
6b64cec078 Translated using Weblate (Czech)
Currently translated at 15.2% (1716 of 11250 strings)
2020-09-07 12:36:38 +02:00
ssantos
db7144816a Translated using Weblate (Portuguese)
Currently translated at 90.8% (10218 of 11250 strings)
2020-09-07 12:36:19 +02:00
Meiru
79fbed1d67 Translated using Weblate (Japanese)
Currently translated at 37.0% (4168 of 11250 strings)
2020-09-07 12:36:09 +02:00
Elytra Wixzo
815995aaca Translated using Weblate (Tagalog)
Currently translated at 3.0% (17 of 563 strings)
2020-09-05 00:43:21 +02:00
ssantos
97fdd4396f Translated using Weblate (Portuguese)
Currently translated at 90.8% (10218 of 11250 strings)
2020-09-05 00:43:17 +02:00
Elytra Wixzo
ae866aa999 Translated using Weblate (Tagalog)
Currently translated at 2.1% (12 of 563 strings)
2020-09-04 13:37:12 +02:00
ssantos
9e2db4b4d7 Translated using Weblate (Portuguese)
Currently translated at 90.8% (10218 of 11250 strings)
2020-09-04 13:37:11 +02:00
Meiru
64e5ae7080 Translated using Weblate (Japanese)
Currently translated at 34.9% (3936 of 11250 strings)
2020-09-04 13:37:09 +02:00
Meiru
4e973215e0 Translated using Weblate (Japanese)
Currently translated at 34.6% (3898 of 11250 strings)
2020-09-04 04:12:36 +02:00
Nut
8ca858794f prep beta 2020-09-04 00:05:56 +02:00
Meiru
3ba221d6e1 Translated using Weblate (Japanese)
Currently translated at 34.4% (3872 of 11250 strings)
2020-09-02 23:02:29 +02:00
Lacrom
7d8bc58a25 Translated using Weblate (French)
Currently translated at 93.5% (10524 of 11250 strings)
2020-09-02 07:55:06 +02:00
Meiru
c6cdd65834 Translated using Weblate (Japanese)
Currently translated at 33.3% (3752 of 11250 strings)
2020-09-01 20:41:40 +02:00
Claire OUDOT
cc4624685f Translated using Weblate (French)
Currently translated at 93.4% (10511 of 11250 strings)
2020-09-01 20:41:32 +02:00
Lacrom
1b1b8e552b Translated using Weblate (French)
Currently translated at 93.4% (10511 of 11250 strings)
2020-09-01 20:41:30 +02:00
Meiru
b8f5e9a419 Translated using Weblate (Japanese)
Currently translated at 33.2% (3744 of 11250 strings)
2020-09-01 15:45:57 +02:00
Meiru
71f2d2e153 Translated using Weblate (Japanese)
Currently translated at 32.9% (3706 of 11250 strings)
2020-09-01 08:41:17 +02:00
Meiru
4586f48cab Translated using Weblate (Japanese)
Currently translated at 32.3% (3635 of 11250 strings)
2020-08-31 22:12:39 +02:00
Jean-Pascal Rhir
109598500e Translated using Weblate (French)
Currently translated at 93.1% (10484 of 11250 strings)
2020-08-31 22:12:37 +02:00
Lacrom
6b092ace95 Translated using Weblate (French)
Currently translated at 93.1% (10484 of 11250 strings)
2020-08-31 22:12:36 +02:00
ssantos
b0da2e8000 Translated using Weblate (Portuguese)
Currently translated at 89.6% (10082 of 11250 strings)
2020-08-30 15:47:44 +02:00
Meiru
b9d03b17c4 Translated using Weblate (Japanese)
Currently translated at 32.0% (3611 of 11250 strings)
2020-08-30 15:47:41 +02:00
Jean-Pascal Rhir
680324a71b Translated using Weblate (French)
Currently translated at 93.0% (10471 of 11250 strings)
2020-08-30 15:47:38 +02:00
ssantos
c7fc5c6fd0 Translated using Weblate (Portuguese)
Currently translated at 100.0% (563 of 563 strings)
2020-08-30 15:47:36 +02:00
Meiru
fb2db4ce12 Translated using Weblate (Japanese)
Currently translated at 31.9% (3591 of 11250 strings)
2020-08-29 04:11:43 +02:00
ssantos
dab560e153 Translated using Weblate (Portuguese)
Currently translated at 86.9% (9782 of 11250 strings)
2020-08-28 20:19:08 +02:00
Meiru
7cb267f8ec Translated using Weblate (Japanese)
Currently translated at 31.7% (3572 of 11250 strings)
2020-08-28 20:19:05 +02:00
Meiru
7972e6be0f Translated using Weblate (Japanese)
Currently translated at 31.4% (3535 of 11250 strings)
2020-08-28 12:30:17 +02:00
Sergiy Borodych
89c39a24d1 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (563 of 563 strings)
2020-08-28 03:49:05 +02:00
H
62dd00f9a6 Translated using Weblate (Spanish)
Currently translated at 93.7% (528 of 563 strings)
2020-08-28 03:49:04 +02:00
Максим Якимчук
19b0a618fa Translated using Weblate (Ukrainian)
Currently translated at 12.3% (1385 of 11250 strings)
2020-08-28 03:49:04 +02:00
Sergiy Borodych
f51439a755 Translated using Weblate (Ukrainian)
Currently translated at 12.3% (1385 of 11250 strings)
2020-08-28 03:49:03 +02:00
ssantos
2730b1ed11 Translated using Weblate (Portuguese)
Currently translated at 84.5% (9510 of 11250 strings)
2020-08-28 03:48:29 +02:00
Meiru
50cdbee6ec Translated using Weblate (Japanese)
Currently translated at 30.7% (3461 of 11250 strings)
2020-08-28 03:48:17 +02:00
Nut
11830ce814 Translators in authors 2020-08-25 23:33:36 +02:00
Nut
75654f52bd trapped mouse png 2020-08-25 23:30:19 +02:00
Jiri Zizkin Zizka
b284f7ab00 Translated using Weblate (Czech)
Currently translated at 15.0% (1693 of 11250 strings)
2020-08-24 15:51:37 +02:00
Anderson Nogueira Silva
58aa581039 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (11250 of 11250 strings)
2020-08-24 15:51:35 +02:00
roberto
b16d1fa509 Translated using Weblate (Italian)
Currently translated at 99.9% (11249 of 11250 strings)
2020-08-24 15:51:33 +02:00
Anderson Nogueira Silva
e76c67c18c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (563 of 563 strings)
2020-08-24 15:51:31 +02:00
Mieru
92c6e24958 Translated using Weblate (Japanese)
Currently translated at 28.6% (3222 of 11250 strings)
2020-08-24 13:25:44 +02:00
Nut
f504bf4f84 authors 2020-08-24 01:39:51 +02:00
Jiri Zizkin Zizka
c215423a78 Translated using Weblate (Czech)
Currently translated at 100.0% (563 of 563 strings)
2020-08-22 23:36:41 +02:00
Jiri Zizkin Zizka
d04a1b4c39 Translated using Weblate (Czech)
Currently translated at 15.0% (1688 of 11250 strings)
2020-08-22 23:36:40 +02:00
Anderson Nogueira Silva
f83eee408d Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.1% (11157 of 11250 strings)
2020-08-22 23:36:39 +02:00
Mieru
eb4502bee7 Translated using Weblate (Japanese)
Currently translated at 27.4% (3084 of 11250 strings)
2020-08-22 23:36:37 +02:00
roberto
2d4fe676af Translated using Weblate (Italian)
Currently translated at 98.5% (11092 of 11250 strings)
2020-08-22 23:36:35 +02:00
Jiri Zizkin Zizka
dfba102987 Translated using Weblate (Czech)
Currently translated at 14.5% (1641 of 11250 strings)
2020-08-21 10:25:13 +02:00
Anderson Nogueira Silva
c390b0fe2f Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.0% (11030 of 11250 strings)
2020-08-21 10:25:11 +02:00
Mieru
0f3a396845 Translated using Weblate (Japanese)
Currently translated at 26.5% (2989 of 11250 strings)
2020-08-21 10:25:09 +02:00
roberto
456a1c0a0b Translated using Weblate (Italian)
Currently translated at 97.6% (10990 of 11250 strings)
2020-08-21 10:25:07 +02:00
Mieru
e6296aefac Translated using Weblate (Japanese)
Currently translated at 26.1% (2947 of 11250 strings)
2020-08-20 23:48:44 +02:00
Helmut Hirtes
f10672cc35 Added translation using Weblate (English (Developer)) 2020-08-19 08:24:59 +02:00
roberto
ff18ee817d Translated using Weblate (Italian)
Currently translated at 96.6% (10876 of 11250 strings)
2020-08-18 03:43:53 +02:00
Jiri Zizkin Zizka
3b77c2e1a3 Translated using Weblate (Czech)
Currently translated at 100.0% (563 of 563 strings)
2020-08-18 01:33:19 +02:00
Jiri Zizkin Zizka
cb22a76596 Translated using Weblate (Czech)
Currently translated at 13.5% (1526 of 11250 strings)
2020-08-18 01:32:54 +02:00
Mieru
2ed612c6cc Translated using Weblate (Japanese)
Currently translated at 23.8% (2679 of 11250 strings)
2020-08-18 01:32:52 +02:00
roberto
b7b61f2bf0 Translated using Weblate (Italian)
Currently translated at 96.5% (10866 of 11250 strings)
2020-08-18 01:32:50 +02:00
Jiri Zizkin Zizka
611db85b22 Translated using Weblate (Czech)
Currently translated at 13.0% (1468 of 11250 strings)
2020-08-16 19:19:07 +02:00
Mieru
7e5ee46a9e Translated using Weblate (Japanese)
Currently translated at 22.5% (2542 of 11250 strings)
2020-08-16 19:19:06 +02:00
roberto
2286fbccef Translated using Weblate (Italian)
Currently translated at 95.4% (10740 of 11250 strings)
2020-08-16 19:19:05 +02:00
Mieru
74dae74f8b Translated using Weblate (Japanese)
Currently translated at 22.5% (2536 of 11250 strings)
2020-08-16 08:45:21 +02:00
Jiri Zizkin Zizka
4a5b84203e Translated using Weblate (Czech)
Currently translated at 13.0% (1468 of 11250 strings)
2020-08-16 06:15:44 +02:00
Mieru
3efffb740c Translated using Weblate (Japanese)
Currently translated at 22.4% (2521 of 11250 strings)
2020-08-16 06:15:43 +02:00
roberto
c850069c09 Translated using Weblate (Italian)
Currently translated at 95.2% (10714 of 11250 strings)
2020-08-16 06:15:41 +02:00
roberto
0d6fb01707 Translated using Weblate (Italian)
Currently translated at 93.9% (10574 of 11250 strings)
2020-08-15 16:12:29 +02:00
Mieru
1aa6fcc594 Translated using Weblate (Japanese)
Currently translated at 22.3% (2514 of 11250 strings)
2020-08-15 12:56:01 +02:00
Matthew Durajka
7434ad6762 Translated using Weblate (Czech)
Currently translated at 12.6% (1422 of 11250 strings)
2020-08-15 05:52:07 +02:00
Jiri Zizkin Zizka
72fc283848 Translated using Weblate (Czech)
Currently translated at 12.6% (1422 of 11250 strings)
2020-08-15 05:52:07 +02:00
Anderson Nogueira Silva
f0be7c4bcd Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.4% (10967 of 11250 strings)
2020-08-15 05:52:06 +02:00
Mieru
ca21b87e9c Translated using Weblate (Japanese)
Currently translated at 21.9% (2469 of 11250 strings)
2020-08-15 05:52:04 +02:00
Jiri Zizkin Zizka
0f980aafd6 Translated using Weblate (Czech)
Currently translated at 12.5% (1415 of 11250 strings)
2020-08-15 01:06:04 +02:00
Matthew Durajka
ed44e2f87c Translated using Weblate (Czech)
Currently translated at 12.5% (1415 of 11250 strings)
2020-08-15 01:06:04 +02:00
Jiri Zizkin Zizka
e350b01322 Translated using Weblate (Czech)
Currently translated at 12.5% (1413 of 11250 strings)
2020-08-15 00:57:45 +02:00
Anderson Nogueira Silva
593d1e0449 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.4% (10963 of 11250 strings)
2020-08-13 07:25:57 +02:00
Anderson Nogueira Silva
f1178764e1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.3% (10951 of 11250 strings)
2020-08-12 23:44:37 +02:00
Mieru
5005da4018 Translated using Weblate (Japanese)
Currently translated at 21.2% (2387 of 11250 strings)
2020-08-12 23:44:36 +02:00
Sergiy Borodych
856a32d58d Translated using Weblate (Ukrainian)
Currently translated at 12.1% (1363 of 11250 strings)
2020-08-12 10:24:12 +02:00
Anderson Nogueira Silva
987e074a89 Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.4% (10855 of 11250 strings)
2020-08-12 10:24:11 +02:00
Mieru
e2243aa080 Translated using Weblate (Japanese)
Currently translated at 20.5% (2311 of 11250 strings)
2020-08-12 10:24:08 +02:00
Mieru
3282956273 Translated using Weblate (Japanese)
Currently translated at 100.0% (563 of 563 strings)
2020-08-12 10:24:07 +02:00
Nathan Watson
84d03a2945 Combat log enhancements
Lists experience, gold, and item pickups from combat in the combat log.
2020-08-09 14:39:53 -07:00
Mieru
d4d277d68c Translated using Weblate (Japanese)
Currently translated at 19.9% (2242 of 11250 strings)
2020-08-09 21:12:15 +02:00
Allan Nordhøy
0e6de2dd73 Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.3% (375 of 11250 strings)
2020-08-09 15:32:52 +02:00
Mieru
115fd0bb22 Translated using Weblate (Japanese)
Currently translated at 19.9% (2242 of 11250 strings)
2020-08-09 15:32:50 +02:00
roberto
94b9254726 Translated using Weblate (Italian)
Currently translated at 93.8% (10562 of 11250 strings)
2020-08-09 15:32:49 +02:00
Mieru
6242f0bdbe Translated using Weblate (Japanese)
Currently translated at 99.8% (562 of 563 strings)
2020-08-09 15:32:48 +02:00
Mieru
0f27d2b386 Translated using Weblate (Japanese)
Currently translated at 19.9% (2242 of 11250 strings)
2020-08-09 11:32:07 +02:00
Anderson Nogueira Silva
0e7f257e85 Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.9% (10791 of 11250 strings)
2020-08-08 10:10:52 +02:00
Mieru
c442053b11 Translated using Weblate (Japanese)
Currently translated at 19.0% (2140 of 11250 strings)
2020-08-08 10:10:50 +02:00
roberto
effe6f5a2a Translated using Weblate (Italian)
Currently translated at 92.5% (10414 of 11250 strings)
2020-08-08 10:10:49 +02:00
Sergiy Borodych
6d965c9fe1 Translated using Weblate (Ukrainian)
Currently translated at 97.1% (547 of 563 strings)
2020-08-07 19:33:02 +02:00
Sergiy Borodych
c6ae7ab02d Translated using Weblate (Ukrainian)
Currently translated at 11.8% (1337 of 11250 strings)
2020-08-07 19:33:01 +02:00
Mieru
56cbeb7f8a Translated using Weblate (Japanese)
Currently translated at 19.0% (2139 of 11250 strings)
2020-08-07 19:32:48 +02:00
roberto
8b7a3a73bc Translated using Weblate (Italian)
Currently translated at 91.9% (10346 of 11250 strings)
2020-08-07 19:32:46 +02:00
Mieru
af5830a550 Translated using Weblate (Japanese)
Currently translated at 17.5% (1977 of 11250 strings)
2020-08-04 12:29:38 +02:00
roberto
edd7b1a951 Translated using Weblate (Italian)
Currently translated at 91.2% (10262 of 11250 strings)
2020-08-04 12:29:37 +02:00
roberto
4990562438 Translated using Weblate (Italian)
Currently translated at 91.2% (10262 of 11250 strings)
2020-08-04 01:51:28 +02:00
Anderson Nogueira Silva
532f048a13 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.8% (10672 of 11250 strings)
2020-08-04 00:29:37 +02:00
Mieru
b603be04cf Translated using Weblate (Japanese)
Currently translated at 17.1% (1929 of 11250 strings)
2020-08-04 00:29:36 +02:00
roberto
f02fdaa023 Translated using Weblate (Italian)
Currently translated at 90.9% (10229 of 11250 strings)
2020-08-04 00:29:33 +02:00
Mieru
e203cf67a0 Translated using Weblate (Japanese)
Currently translated at 99.8% (562 of 563 strings)
2020-08-04 00:29:31 +02:00
lanet
e267135dbb Translated using Weblate (Turkish)
Currently translated at 17.3% (1956 of 11250 strings)
2020-08-03 02:52:21 +02:00
Anderson Nogueira Silva
a9b051d3bb Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.7% (10659 of 11250 strings)
2020-08-03 02:52:19 +02:00
Mieru
324cd3b85c Translated using Weblate (Japanese)
Currently translated at 16.7% (1884 of 11250 strings)
2020-08-03 02:52:17 +02:00
roberto
3e44f671a2 Translated using Weblate (Italian)
Currently translated at 89.7% (10093 of 11250 strings)
2020-08-03 02:52:16 +02:00
Mieru
2ee1998013 Translated using Weblate (Japanese)
Currently translated at 16.5% (1859 of 11250 strings)
2020-08-02 15:20:58 +02:00
roberto
5e773d9a87 Translated using Weblate (Italian)
Currently translated at 89.4% (10063 of 11250 strings)
2020-08-02 15:20:57 +02:00
lanet
1df2f086d1 Translated using Weblate (Turkish)
Currently translated at 17.2% (1942 of 11250 strings)
2020-08-02 06:11:27 +02:00
Anderson Nogueira Silva
aa43776a1e Translated using Weblate (Portuguese (Brazil))
Currently translated at 93.0% (10469 of 11250 strings)
2020-08-02 06:11:25 +02:00
Mieru
f64a3614cc Translated using Weblate (Japanese)
Currently translated at 16.0% (1801 of 11250 strings)
2020-08-02 06:10:53 +02:00
roberto
a2641a9d48 Translated using Weblate (Italian)
Currently translated at 89.3% (10051 of 11250 strings)
2020-08-02 06:10:51 +02:00
lanet
f7feafc763 Translated using Weblate (Turkish)
Currently translated at 17.0% (1914 of 11250 strings)
2020-08-01 13:13:19 +02:00
Anderson Nogueira Silva
d9e2d1858e Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.1% (10257 of 11250 strings)
2020-08-01 13:12:54 +02:00
Mieru
27799368bf Translated using Weblate (Japanese)
Currently translated at 15.5% (1746 of 11250 strings)
2020-08-01 13:12:51 +02:00
roberto
045d790845 Translated using Weblate (Italian)
Currently translated at 87.8% (9888 of 11250 strings)
2020-08-01 13:12:46 +02:00
Mieru
925124dfa5 Translated using Weblate (Japanese)
Currently translated at 99.8% (562 of 563 strings)
2020-08-01 13:12:34 +02:00
Anderson Nogueira Silva
17e4fc7e47 Translated using Weblate (Portuguese (Brazil))
Currently translated at 88.2% (9932 of 11250 strings)
2020-07-31 05:54:13 +02:00
Mieru
e3e1ae84bb Translated using Weblate (Japanese)
Currently translated at 14.3% (1609 of 11250 strings)
2020-07-31 05:54:11 +02:00
roberto
b0ec9d17c3 Translated using Weblate (Italian)
Currently translated at 86.0% (9676 of 11250 strings)
2020-07-31 05:54:09 +02:00
lanet
9b6c2962fc Translated using Weblate (Turkish)
Currently translated at 16.8% (1890 of 11250 strings)
2020-07-30 19:47:31 +02:00
Anderson Nogueira Silva
91afc79c4e Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.9% (9895 of 11250 strings)
2020-07-30 19:47:29 +02:00
Mieru
3e46af4f9d Translated using Weblate (Japanese)
Currently translated at 14.2% (1598 of 11250 strings)
2020-07-30 19:47:28 +02:00
roberto
bba52e3b98 Translated using Weblate (Italian)
Currently translated at 85.4% (9618 of 11250 strings)
2020-07-30 19:47:26 +02:00
lanet
4ea9e9a95d Translated using Weblate (Turkish)
Currently translated at 16.8% (1890 of 11250 strings)
2020-07-29 19:42:02 +02:00
Anderson Nogueira Silva
66cfabcbf5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.6% (9859 of 11250 strings)
2020-07-29 19:42:00 +02:00
Lucas Araujo
16a53bcf87 Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.6% (9859 of 11250 strings)
2020-07-29 19:42:00 +02:00
Mieru
634b0a7ed2 Translated using Weblate (Japanese)
Currently translated at 14.1% (1590 of 11250 strings)
2020-07-29 19:41:58 +02:00
roberto
c2fc2cca79 Translated using Weblate (Italian)
Currently translated at 84.9% (9561 of 11250 strings)
2020-07-29 19:41:55 +02:00
cheese1
f155b44681 Translated using Weblate (German)
Currently translated at 99.6% (561 of 563 strings)
2020-07-29 19:41:53 +02:00
Jiri Zizkin Zizka
1605b66294 Translated using Weblate (Czech)
Currently translated at 100.0% (563 of 563 strings)
2020-07-28 14:59:48 +02:00
lanet
dd35ec4429 Translated using Weblate (Turkish)
Currently translated at 16.2% (1823 of 11250 strings)
2020-07-28 14:59:47 +02:00
Ueliton Alves Dos Santos
7632e5e989 Translated using Weblate (Portuguese (Brazil))
Currently translated at 86.9% (9778 of 11250 strings)
2020-07-28 14:59:46 +02:00
Anderson Nogueira Silva
c1a0268bcf Translated using Weblate (Portuguese (Brazil))
Currently translated at 86.9% (9778 of 11250 strings)
2020-07-28 14:59:45 +02:00
Mieru
955941a84b Translated using Weblate (Japanese)
Currently translated at 12.8% (1450 of 11250 strings)
2020-07-28 14:59:44 +02:00
roberto
397740520a Translated using Weblate (Italian)
Currently translated at 83.5% (9399 of 11250 strings)
2020-07-28 14:59:42 +02:00
Ueliton Alves Dos Santos
bf622803a2 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (563 of 563 strings)
2020-07-28 14:59:40 +02:00
lanet
8f8248486c Translated using Weblate (Turkish)
Currently translated at 15.8% (1782 of 11250 strings)
2020-07-27 17:53:49 +02:00
Gökhan Demirden
beba348178 Translated using Weblate (Turkish)
Currently translated at 15.8% (1782 of 11250 strings)
2020-07-27 17:53:49 +02:00
Mieru
f8cb6e150a Translated using Weblate (Japanese)
Currently translated at 12.4% (1397 of 11250 strings)
2020-07-27 17:53:48 +02:00
roberto
c143bd46c2 Translated using Weblate (Italian)
Currently translated at 83.1% (9354 of 11250 strings)
2020-07-27 17:53:46 +02:00
roberto
e759e7760a Translated using Weblate (Spanish)
Currently translated at 81.0% (9120 of 11250 strings)
2020-07-27 17:53:44 +02:00
Mieru
ca7d949054 Translated using Weblate (Japanese)
Currently translated at 99.8% (562 of 563 strings)
2020-07-27 17:53:43 +02:00
Jiri Zizkin Zizka
badc9b4c94 Translated using Weblate (Czech)
Currently translated at 100.0% (563 of 563 strings)
2020-07-27 00:24:58 +02:00
lanet
fccf04789b Translated using Weblate (Turkish)
Currently translated at 15.6% (1760 of 11250 strings)
2020-07-27 00:24:56 +02:00
Anderson Nogueira Silva
8f914ff9a7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 86.7% (9755 of 11250 strings)
2020-07-27 00:24:52 +02:00
roberto
23656f9eba Translated using Weblate (Italian)
Currently translated at 82.3% (9266 of 11250 strings)
2020-07-27 00:24:49 +02:00
Anderson Nogueira Silva
85bc663744 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (563 of 563 strings)
2020-07-27 00:24:47 +02:00
Anatoly Chub
8e0ff68a60 Translated using Weblate (Ukrainian)
Currently translated at 91.4% (515 of 563 strings)
2020-07-26 11:48:47 +02:00
Anatoly Chub
d79404f72a Translated using Weblate (Ukrainian)
Currently translated at 11.8% (1337 of 11250 strings)
2020-07-26 11:48:46 +02:00
lanet
d237ae85d9 Translated using Weblate (Turkish)
Currently translated at 15.5% (1752 of 11250 strings)
2020-07-26 11:48:45 +02:00
Lucas Araujo
6b23a19d20 Translated using Weblate (Portuguese (Brazil))
Currently translated at 84.9% (9553 of 11250 strings)
2020-07-26 11:48:04 +02:00
Anderson Nogueira Silva
e8c71255b1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 84.9% (9553 of 11250 strings)
2020-07-26 11:48:04 +02:00
Lucas Araujo
ac76d45980 Translated using Weblate (Portuguese (Brazil))
Currently translated at 82.2% (9258 of 11250 strings)
2020-07-25 20:45:56 +02:00
Anderson Nogueira
453ff3717a Translated using Weblate (Portuguese (Brazil))
Currently translated at 82.2% (9258 of 11250 strings)
2020-07-25 20:45:56 +02:00
Mieru
29b5f620a1 Translated using Weblate (Japanese)
Currently translated at 11.9% (1348 of 11250 strings)
2020-07-25 11:53:35 +02:00
ssantos
d35ae10f2a Translated using Weblate (Portuguese)
Currently translated at 82.2% (9248 of 11250 strings)
2020-07-24 22:00:44 +02:00
ssantos
822229b6eb Translated using Weblate (Portuguese)
Currently translated at 82.1% (9242 of 11250 strings)
2020-07-24 20:42:10 +02:00
Mieru
b01b0ae656 Translated using Weblate (Japanese)
Currently translated at 10.9% (1229 of 11250 strings)
2020-07-24 20:41:56 +02:00
Erick Ferraz Vieira
23dfa3f4dc Translated using Weblate (Portuguese)
Currently translated at 99.6% (561 of 563 strings)
2020-07-24 20:41:54 +02:00
ssantos
c7d4abe67a Translated using Weblate (Portuguese)
Currently translated at 99.6% (561 of 563 strings)
2020-07-24 20:41:54 +02:00
Mieru
06662ed66c Translated using Weblate (Japanese)
Currently translated at 9.7% (1095 of 11250 strings)
2020-07-22 23:41:54 +02:00
Milo Ivir
e35741adc5 Translated using Weblate (German)
Currently translated at 99.6% (561 of 563 strings)
2020-07-22 23:41:52 +02:00
SmallDragon Chen
722e600f33 Translated using Weblate (Chinese (Traditional))
Currently translated at 42.6% (240 of 563 strings)
2020-07-21 10:42:05 +02:00
Allan Nordhøy
2904372f06 Translated using Weblate (Norwegian Bokmål)
Currently translated at 91.8% (517 of 563 strings)
2020-07-21 10:42:04 +02:00
Lucas Araujo
280e72a59a Translated using Weblate (Portuguese (Brazil))
Currently translated at 81.2% (9142 of 11250 strings)
2020-07-21 10:42:04 +02:00
Mieru
be11d246da Translated using Weblate (Japanese)
Currently translated at 9.0% (1014 of 11250 strings)
2020-07-21 10:41:54 +02:00
ssantos
83e43bc031 Translated using Weblate (Portuguese)
Currently translated at 97.1% (547 of 563 strings)
2020-07-21 10:41:51 +02:00
Mieru
e41ebf2424 Translated using Weblate (Japanese)
Currently translated at 99.8% (562 of 563 strings)
2020-07-21 10:41:51 +02:00
Erick Ferraz Vieira
ca374b0b47 Translated using Weblate (Portuguese (Brazil))
Currently translated at 80.8% (9100 of 11250 strings)
2020-07-18 06:40:34 +02:00
Mieru
24336d056b Translated using Weblate (Japanese)
Currently translated at 5.8% (659 of 11250 strings)
2020-07-18 06:40:32 +02:00
Mieru
5cf90c5444 Translated using Weblate (Japanese)
Currently translated at 5.2% (589 of 11250 strings)
2020-07-17 07:59:18 +02:00
Mieru
a740248841 Translated using Weblate (Japanese)
Currently translated at 99.8% (562 of 563 strings)
2020-07-17 07:59:16 +02:00
Ainsley Ferraz Vieira
ca8c8505ce Translated using Weblate (Portuguese (Brazil))
Currently translated at 80.8% (9100 of 11250 strings)
2020-07-16 01:54:28 +02:00
Erick Ferraz Vieira
ae119be2e4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 80.4% (9050 of 11250 strings)
2020-07-15 04:42:05 +02:00
Erick Ferraz Vieira
37bd110f25 Translated using Weblate (Portuguese)
Currently translated at 69.6% (7830 of 11250 strings)
2020-07-15 04:42:04 +02:00
Mieru
d7b7e1f34b Translated using Weblate (Japanese)
Currently translated at 4.8% (545 of 11250 strings)
2020-07-15 04:41:50 +02:00
Mieru
436a509a60 Translated using Weblate (Japanese)
Currently translated at 99.4% (560 of 563 strings)
2020-07-15 04:41:49 +02:00
Chriz76
003b72d7ad Merge pull request #43 from jasp00/factionScore
Fix factionScore requirement
2020-07-14 20:56:56 +02:00
Chriz76
bb55276ca9 Merge pull request #42 from atsymboldot/dpad-only-movement
Dpad only movement
2020-07-14 20:52:40 +02:00
Erick Ferraz Vieira
139cf4e78c Translated using Weblate (Portuguese (Brazil))
Currently translated at 79.5% (8952 of 11250 strings)
2020-07-13 18:17:23 +02:00
Erick Ferraz Vieira
74eab7e1d4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (563 of 563 strings)
2020-07-13 18:17:21 +02:00
Ainsley Ferraz Vieira
5a6b228973 Translated using Weblate (Portuguese (Brazil))
Currently translated at 78.9% (8880 of 11250 strings)
2020-07-13 17:29:40 +02:00
Erick Ferraz Vieira
1b1534000e Translated using Weblate (Portuguese (Brazil))
Currently translated at 78.9% (8880 of 11250 strings)
2020-07-13 17:29:39 +02:00
Erick Ferraz Vieira
951e1addfa Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (563 of 563 strings)
2020-07-13 17:29:38 +02:00
Erick Ferraz Vieira
9ddf20e37c Translated using Weblate (Portuguese (Brazil))
Currently translated at 78.4% (8827 of 11250 strings)
2020-07-13 15:42:12 +02:00
Ainsley Ferraz Vieira
4e32983cdd Translated using Weblate (Portuguese (Brazil))
Currently translated at 78.4% (8827 of 11250 strings)
2020-07-13 15:42:11 +02:00
Mieru
8b3edd0f07 Translated using Weblate (Japanese)
Currently translated at 4.0% (453 of 11250 strings)
2020-07-13 15:42:09 +02:00
Mieru
ef1c1d55fb Translated using Weblate (Japanese)
Currently translated at 99.4% (560 of 563 strings)
2020-07-13 15:42:07 +02:00
Mieru
90eb0d8b76 Translated using Weblate (Japanese)
Currently translated at 83.3% (469 of 563 strings)
2020-07-12 15:57:17 +02:00
Nathan Watson
90946e69ee When dpad is active (both visible and not minimized), prevent normal touch-based movement. 2020-07-11 16:00:44 -07:00
Mieru
aa72f2b9b9 Translated using Weblate (Japanese)
Currently translated at 75.3% (424 of 563 strings)
2020-07-11 19:41:48 +02:00
Mieru
8db7920f12 Translated using Weblate (Japanese)
Currently translated at 3.5% (401 of 11250 strings)
2020-07-10 10:50:28 +02:00
Mieru
dcc8e72cad Translated using Weblate (Japanese)
Currently translated at 72.4% (408 of 563 strings)
2020-07-10 10:50:25 +02:00
Gonk
03fc984cc6 Using or un/equipping items during combat automatically ends the turn if all AP are used 2020-07-07 21:15:16 +02:00
Gökhan Demirden
c1031b047d Translated using Weblate (Turkish)
Currently translated at 14.9% (1682 of 11250 strings)
2020-07-06 00:41:48 +02:00
Gökhan Demirden
033e11d972 Translated using Weblate (Japanese)
Currently translated at 1.9% (220 of 11250 strings)
2020-07-06 00:41:47 +02:00
Nut
c5df5c5c09 basics for Fungi/Delicious soup 2020-07-05 04:07:52 +02:00
Rijackson
daccd36cc5 Changed weapon proficiency bludgening to blunt, and added whips to description. 2020-07-04 14:11:53 -04:00
Mingun
05bdca4a3d Translated using Weblate (Russian)
Currently translated at 100.0% (11250 of 11250 strings)
2020-06-30 19:41:46 +02:00
Bruno Almeida
05d3bfa170 Translated using Weblate (Portuguese (Brazil))
Currently translated at 77.0% (8673 of 11250 strings)
2020-06-24 07:41:46 +02:00
Mingun
c2ea8f83a6 Translated using Weblate (Russian)
Currently translated at 100.0% (11250 of 11250 strings)
2020-06-22 21:48:00 +02:00
Hakuchi
912418a30c Translated using Weblate (German)
Currently translated at 89.2% (10042 of 11250 strings)
2020-06-21 06:29:57 +02:00
Hakuchi
1c88693538 Translated using Weblate (German)
Currently translated at 99.6% (561 of 563 strings)
2020-06-21 06:29:56 +02:00
Yann
a555b01cad Translated using Weblate (French)
Currently translated at 93.0% (10470 of 11250 strings)
2020-06-20 05:08:53 +02:00
Allan Nordhøy
007b999978 Translated using Weblate (Norwegian Bokmål)
Currently translated at 91.6% (516 of 563 strings)
2020-06-17 20:41:44 +02:00
Mingun
8ff9c63643 Translated using Weblate (Russian)
Currently translated at 100.0% (11250 of 11250 strings)
2020-06-17 20:41:43 +02:00
Javier Serrano Polo
798c4cafa8 Fix factionScore requirement 2020-06-17 16:43:31 +02:00
이정희
373b6d5d6a Translated using Weblate (Korean)
Currently translated at 98.5% (555 of 563 strings)
2020-06-16 10:44:36 +02:00
Darren Crowlen
8ea5665c6f Translated using Weblate (Indonesian)
Currently translated at 87.2% (491 of 563 strings)
2020-06-16 10:44:36 +02:00
Mingun
694027fd37 Translated using Weblate (Russian)
Currently translated at 100.0% (11250 of 11250 strings)
2020-06-16 10:44:35 +02:00
Gökhan Demirden
2a69717122 Translated using Weblate (Turkish)
Currently translated at 91.1% (513 of 563 strings)
2020-06-15 23:41:54 +02:00
Gökhan Demirden
93e6849ac5 Translated using Weblate (Turkish)
Currently translated at 14.3% (1610 of 11250 strings)
2020-06-15 23:41:53 +02:00
Mingun
3249133700 Translated using Weblate (Russian)
Currently translated at 100.0% (11250 of 11250 strings)
2020-06-15 23:41:52 +02:00
Daniel Stasiak
b37c225aca Translated using Weblate (Polish)
Currently translated at 89.2% (10039 of 11250 strings)
2020-06-15 23:41:43 +02:00
Mingun
bd285f8955 Translated using Weblate (Russian)
Currently translated at 100.0% (563 of 563 strings)
2020-06-15 23:41:42 +02:00
Mingun
736c9625a1 Translated using Weblate (Russian)
Currently translated at 99.8% (11233 of 11250 strings)
2020-06-14 12:47:32 +02:00
MarongHappy
7843e52fa2 Translated using Weblate (Korean)
Currently translated at 98.0% (552 of 563 strings)
2020-06-13 15:06:34 +02:00
Mingun
5e915b3fdb Translated using Weblate (Russian)
Currently translated at 97.3% (10949 of 11250 strings)
2020-06-13 15:06:32 +02:00
Mingun
b444feb64f Translated using Weblate (Russian)
Currently translated at 96.4% (10852 of 11250 strings)
2020-06-13 05:52:32 +02:00
PabloBF2
457febdc68 Translated using Weblate (Portuguese)
Currently translated at 69.6% (7830 of 11250 strings)
2020-06-13 05:52:12 +02:00
Javier Serrano Polo
b5a0cd5687 Translated using Weblate (German)
Currently translated at 89.2% (10039 of 11250 strings)
2020-06-13 05:52:10 +02:00
UschiPhos
810a40e06d Added translation using Weblate (German (Austria)) 2020-06-12 14:03:35 +02:00
UschiPhos
d716bfad68 Added translation using Weblate (English (Developer)) 2020-06-12 13:58:44 +02:00
Mingun
b2eb107ac5 Translated using Weblate (Russian)
Currently translated at 95.7% (10774 of 11250 strings)
2020-06-12 08:10:33 +02:00
Huberto Kusters
0c3cf2ae78 Translated using Weblate (Dutch)
Currently translated at 7.7% (872 of 11250 strings)
2020-06-12 08:10:30 +02:00
Alessandro Perlo
eeb2e12b97 Translated using Weblate (Italian)
Currently translated at 81.3% (9151 of 11250 strings)
2020-06-12 08:10:28 +02:00
Léo Vincent
598d25a58b Translated using Weblate (French)
Currently translated at 89.2% (10046 of 11250 strings)
2020-06-12 08:10:27 +02:00
Nut
5bc08762a9 Sync with v0.7.11 2020-06-11 04:24:05 +02:00
Mingun
749b1750b6 Translated using Weblate (Russian)
Currently translated at 94.6% (10647 of 11250 strings)
2020-06-11 03:45:21 +02:00
Nut
135c279e1d Merge remote-tracking branch 'andors-trail/master' 2020-06-11 03:03:24 +02:00
Nut
49674c1022 AS SDK back to 28 2020-06-11 02:35:02 +02:00
Nut
fb9092e59a next dev version 2020-06-11 02:28:54 +02:00
Nut
2a357d1678 Merge pull request #40 from NutAndor/master
sync with v0.7.11  latest changes
2020-06-11 02:14:03 +02:00
Nut
6e3f30db21 Merge pull request #39 from AndorsTrailRelease/master
Fetch Release v0.7.11
2020-06-11 01:51:55 +02:00
Nut
0c74308945 Merge pull request #39 from AndorsTrailRelease/master
Fetch Release v0.7.11
2020-06-11 01:39:13 +02:00
ellta
1d934a9989 Translated using Weblate (Russian)
Currently translated at 93.4% (10518 of 11250 strings)
2020-06-10 12:14:46 +02:00
Edoardo Facchinelli
27b7dc9848 Translated using Weblate (Italian)
Currently translated at 81.3% (9151 of 11250 strings)
2020-06-10 12:14:43 +02:00
Edoardo Facchinelli
d0ae8925cf Translated using Weblate (Italian)
Currently translated at 100.0% (563 of 563 strings)
2020-06-10 12:14:41 +02:00
Javier Serrano Polo
daf3d810d1 Move source change to build patch 2020-06-10 02:27:37 +02:00
Mingun
b4068f8a00 Translated using Weblate (Russian)
Currently translated at 92.8% (10444 of 11250 strings)
2020-06-10 02:10:01 +02:00
Skyriea
0315020e17 Translated using Weblate (Portuguese)
Currently translated at 69.5% (7829 of 11250 strings)
2020-06-10 02:09:49 +02:00
Jean-Pascal Rhir
f8fe341c62 Translated using Weblate (French)
Currently translated at 89.2% (10039 of 11250 strings)
2020-06-10 02:09:47 +02:00
JoC
6f30e8791c Translated using Weblate (Spanish)
Currently translated at 81.0% (9120 of 11250 strings)
2020-06-10 02:09:45 +02:00
Mingun
69a4a0120f Translated using Weblate (Russian)
Currently translated at 100.0% (563 of 563 strings)
2020-06-10 02:09:44 +02:00
WaldiS
962d13163e Translated using Weblate (Polish)
Currently translated at 100.0% (563 of 563 strings)
2020-06-10 02:09:43 +02:00
Lacrom
644f976ccd Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-06-10 02:09:43 +02:00
Javier Serrano Polo
84be701870 Drop pure bionic build 2020-06-10 01:24:56 +02:00
Javier Serrano Polo
54750f9287 Merge branch 'master' into travis 2020-06-10 00:40:49 +02:00
William Li
e3d6dcbbf4 Translated using Weblate (Chinese (Simplified))
Currently translated at 33.9% (191 of 563 strings)
2020-06-07 22:41:40 +02:00
Chriz76
e5f0900b32 Adjusted map and quest count 2020-06-07 20:27:00 +02:00
Chriz76
80412482ab Changed the repo link to AndorstrailRelease 2020-06-07 20:08:12 +02:00
Nut
9b635d9ee7 Size declaration needed for compression 2020-06-07 10:50:31 +02:00
Nut
d9571146dd size declaration needed for compile 2020-06-07 10:42:34 +02:00
Chriz76
11610b8122 Moved 0.7.10 whatsnew to relnotes 2020-06-07 09:15:15 +02:00
Chriz76
7926ebb9f5 Whatsnew for 0.7.11 2020-06-07 09:13:22 +02:00
Nut
30753bff63 Translation states 2020-06-07 00:24:53 +02:00
Nut
89681f420b Translation state 2020-06-06 20:02:32 +02:00
Nut
8654cd39cc Merge pull request #38 from AndorsTrailRelease/master
Actual Translations Files for release to test_brimhaven
2020-06-06 16:07:21 +02:00
Nut
e5ba35372b Revert "Translations"
This reverts commit 5719e5be47.
2020-06-06 16:02:53 +02:00
Nut
5719e5be47 Translations 2020-06-06 15:44:43 +02:00
Nut
45609b9bf3 Put new content into translation files (2try) 2020-06-06 15:25:44 +02:00
Nut
af32e34760 fix shop_items_sold parameter 2020-06-06 14:02:20 +02:00
Nut
3915c43997 Merge remote-tracking branch 'hosted.weblate/master' 2020-06-06 13:53:33 +02:00
Nut
12129541dc Revert "Put new content into translation files"
This reverts commit ed77bb4bed.
2020-06-06 13:51:44 +02:00
Nut
ed77bb4bed Put new content into translation files 2020-06-06 12:52:45 +02:00
Nut
aac94b2ae9 Fix illegal chars in questlist 2020-06-06 12:34:24 +02:00
Nut
3279aeed62 Merge pull request #14 from NutAndor/test_brimhaven
Test brimhaven
2020-06-06 00:35:51 +02:00
Nut
59a2c0ea45 building 0.7.11 2020-06-06 00:31:23 +02:00
Darren Crowlen
45e5555ea1 Translated using Weblate (Indonesian)
Currently translated at 85.0% (479 of 563 strings)
2020-06-05 11:41:54 +02:00
Daniel Stasiak
20db575098 Translated using Weblate (Polish)
Currently translated at 100.0% (10039 of 10039 strings)
2020-06-05 11:41:44 +02:00
Lacrom
a349ba6cd5 Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-06-05 11:41:42 +02:00
Yann
ce750cb83f Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-06-05 11:41:41 +02:00
Yann
d7f31e3abc Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-06-05 11:41:40 +02:00
Jean-Pascal Rhir
bd4932b670 Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-06-05 11:41:40 +02:00
Lacrom
4cac33fc58 Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-06-04 11:10:16 +02:00
Jean-Pascal Rhir
f914c9480b Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-06-04 11:10:16 +02:00
Daniel Stasiak
d64e0f5803 Translated using Weblate (Polish)
Currently translated at 100.0% (10039 of 10039 strings)
2020-06-01 19:41:52 +02:00
Jean-Pascal Rhir
70ecaf93c6 Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-06-01 19:41:50 +02:00
Yann
a73b095fe2 Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-06-01 19:41:42 +02:00
Lacrom
098dacecbe Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-06-01 19:41:41 +02:00
Yann
17fb7f2f1a Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-30 12:12:27 +02:00
Lacrom
7cf598dfec Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-30 12:12:26 +02:00
Jean-Pascal Rhir
1c150a99d9 Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-30 11:56:45 +02:00
Lacrom
d226b19897 Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-30 11:56:44 +02:00
Lacrom
9aac37e823 Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-30 11:49:26 +02:00
Jean-Pascal Rhir
d288fab131 Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-30 11:49:25 +02:00
Yann
be7e7981d6 Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-30 11:49:24 +02:00
Lacrom
48beb6f305 Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-30 04:41:39 +02:00
Yann
44dde0752b Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-30 04:41:36 +02:00
Jean-Pascal Rhir
3db7bf38c8 Translated using Weblate (French)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-30 04:41:21 +02:00
Lacrom
c7ce9d8468 Translated using Weblate (French)
Currently translated at 97.2% (9763 of 10039 strings)
2020-05-29 12:16:49 +02:00
Yann
01da35a365 Translated using Weblate (French)
Currently translated at 97.2% (9763 of 10039 strings)
2020-05-29 12:16:48 +02:00
Jean-Pascal Rhir
424c2c179c Translated using Weblate (French)
Currently translated at 97.2% (9763 of 10039 strings)
2020-05-29 12:16:41 +02:00
Yann
29cefc5af0 Translated using Weblate (French)
Currently translated at 92.3% (9272 of 10039 strings)
2020-05-29 00:07:32 +02:00
Jean-Pascal Rhir
7c1c8444fd Translated using Weblate (French)
Currently translated at 92.3% (9272 of 10039 strings)
2020-05-29 00:07:29 +02:00
Yann
8e57c2b2b9 Translated using Weblate (French)
Currently translated at 89.8% (9020 of 10039 strings)
2020-05-28 22:04:01 +02:00
Jean-Pascal Rhir
23828c67df Translated using Weblate (French)
Currently translated at 89.8% (9020 of 10039 strings)
2020-05-28 22:03:56 +02:00
Lacrom
a9dd62123b Translated using Weblate (French)
Currently translated at 89.8% (9020 of 10039 strings)
2020-05-28 22:03:53 +02:00
Yann
f257892469 Translated using Weblate (French)
Currently translated at 86.3% (8671 of 10039 strings)
2020-05-28 14:44:21 +02:00
Jean-Pascal Rhir
cfe4148a68 Translated using Weblate (French)
Currently translated at 86.3% (8671 of 10039 strings)
2020-05-28 14:44:20 +02:00
Lacrom
af2cb8a157 Translated using Weblate (French)
Currently translated at 86.3% (8671 of 10039 strings)
2020-05-28 14:44:19 +02:00
Yann
348c24defb Translated using Weblate (French)
Currently translated at 86.1% (8645 of 10039 strings)
2020-05-28 13:44:38 +02:00
Jean-Pascal Rhir
d808444c44 Translated using Weblate (French)
Currently translated at 86.1% (8645 of 10039 strings)
2020-05-28 13:44:37 +02:00
Lacrom
d8b7023788 Translated using Weblate (French)
Currently translated at 86.1% (8645 of 10039 strings)
2020-05-28 13:44:37 +02:00
Yann
1fe1f331ba Translated using Weblate (French)
Currently translated at 85.9% (8633 of 10039 strings)
2020-05-28 13:32:44 +02:00
Jean-Pascal Rhir
bd636a5ab0 Translated using Weblate (French)
Currently translated at 85.9% (8633 of 10039 strings)
2020-05-28 13:32:38 +02:00
ellta
5988a1113c Translated using Weblate (Russian)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-27 21:41:44 +02:00
Daniel Stasiak
7889811665 Translated using Weblate (Polish)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-27 21:41:42 +02:00
Jean-Pascal Rhir
f4a8477990 Translated using Weblate (French)
Currently translated at 83.4% (8377 of 10039 strings)
2020-05-27 21:41:41 +02:00
Christian Zink
0ef2a1cdcd Translated using Weblate (German)
Currently translated at 97.8% (551 of 563 strings)
2020-05-27 21:41:39 +02:00
Jean-Pascal Rhir
8e4c0764d4 Translated using Weblate (French)
Currently translated at 83.4% (8377 of 10039 strings)
2020-05-27 16:53:53 +02:00
Yann
a1bcc0b91d Translated using Weblate (French)
Currently translated at 83.4% (8377 of 10039 strings)
2020-05-27 16:53:51 +02:00
Yann
24160961a6 Translated using Weblate (French)
Currently translated at 78.5% (7886 of 10039 strings)
2020-05-26 18:09:51 +02:00
Lacrom
ecbd02a5a3 Translated using Weblate (French)
Currently translated at 78.5% (7886 of 10039 strings)
2020-05-26 18:09:50 +02:00
Jean-Pascal Rhir
9035e5c13e Translated using Weblate (French)
Currently translated at 78.5% (7886 of 10039 strings)
2020-05-26 18:09:49 +02:00
Lacrom
369db56a4b Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:16:44 +02:00
Jean-Pascal Rhir
b85b434d15 Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:16:43 +02:00
Lacrom
edb4b086ac Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:15:54 +02:00
Jean-Pascal Rhir
6509e97ec7 Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:15:53 +02:00
Lacrom
5dfec42dfb Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:13:48 +02:00
Jean-Pascal Rhir
54ff6606cf Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:13:47 +02:00
Lacrom
c1812c204b Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:11:18 +02:00
Jean-Pascal Rhir
e9d888114f Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:11:17 +02:00
Lacrom
40ca75c4d2 Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:10:05 +02:00
Jean-Pascal Rhir
ba95dd9dba Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:10:05 +02:00
Lacrom
cc4c71b8aa Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:09:42 +02:00
Jean-Pascal Rhir
cc7d8c0713 Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:09:42 +02:00
Lacrom
1b2e2285e2 Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:07:34 +02:00
Jean-Pascal Rhir
965bc76f81 Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 12:07:33 +02:00
Lacrom
b8218a91fa Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 11:58:36 +02:00
Jean-Pascal Rhir
31f974d10e Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 11:58:35 +02:00
Lacrom
7395f28214 Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 11:57:33 +02:00
Jean-Pascal Rhir
f9aa0509ae Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 11:57:32 +02:00
Lacrom
c4ee841c74 Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 11:51:11 +02:00
Jean-Pascal Rhir
33b8e43c90 Translated using Weblate (French)
Currently translated at 78.3% (7864 of 10039 strings)
2020-05-26 11:51:11 +02:00
Osoitz
53574f5c7c Translated using Weblate (Basque)
Currently translated at 64.6% (364 of 563 strings)
2020-05-26 05:41:49 +02:00
Yann
48caff7986 Translated using Weblate (French)
Currently translated at 77.9% (7821 of 10039 strings)
2020-05-26 05:41:48 +02:00
Jean-Pascal Rhir
fa67c6f1c1 Translated using Weblate (French)
Currently translated at 77.9% (7821 of 10039 strings)
2020-05-26 05:41:43 +02:00
Yann
78387fb3b1 Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-05-26 05:41:39 +02:00
Yann
d36a9a0415 Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-05-25 03:32:13 +02:00
yann
9d1d5222a4 Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-05-25 03:32:13 +02:00
Lacrom
ad2ef9435d Translated using Weblate (French)
Currently translated at 100.0% (563 of 563 strings)
2020-05-25 03:32:13 +02:00
Javier Serrano Polo
51fac93c54 Fix build with pbuilder 2020-05-25 01:21:20 +02:00
Yann
b6f64e240d Translated using Weblate (French)
Currently translated at 75.0% (7537 of 10039 strings)
2020-05-25 00:27:52 +02:00
Jean-Pascal Rhir
74394488dd Translated using Weblate (French)
Currently translated at 75.0% (7537 of 10039 strings)
2020-05-25 00:27:51 +02:00
Yann
b528af4063 Translated using Weblate (French)
Currently translated at 75.0% (7537 of 10039 strings)
2020-05-25 00:27:51 +02:00
Lacrom
4d4e6706c4 Translated using Weblate (French)
Currently translated at 75.0% (7537 of 10039 strings)
2020-05-25 00:27:49 +02:00
Lacrom
20f226b003 Translated using Weblate (French)
Currently translated at 73.8% (7416 of 10039 strings)
2020-05-24 12:53:47 +02:00
Yann
9edd556511 Translated using Weblate (French)
Currently translated at 73.8% (7416 of 10039 strings)
2020-05-24 12:53:47 +02:00
Javier Serrano Polo
fbcbe4d581 Pass TERM 2020-05-24 11:37:39 +02:00
Javier Serrano Polo
1390223637 Add build for Debian stretch 2020-05-24 10:35:00 +02:00
Jean-Pascal Rhir
6ef1047465 Translated using Weblate (French)
Currently translated at 70.7% (7099 of 10039 strings)
2020-05-24 00:22:33 +02:00
Lacrom
2f9d0e2ad1 Translated using Weblate (French)
Currently translated at 70.7% (7099 of 10039 strings)
2020-05-24 00:22:32 +02:00
Yann
45bb10eba1 Translated using Weblate (French)
Currently translated at 70.7% (7099 of 10039 strings)
2020-05-24 00:22:32 +02:00
Yann
c936e877b9 Translated using Weblate (French)
Currently translated at 69.6% (6988 of 10039 strings)
2020-05-23 22:08:12 +02:00
Lacrom
e5b1c7b90b Translated using Weblate (French)
Currently translated at 69.6% (6988 of 10039 strings)
2020-05-23 22:08:12 +02:00
Jean-Pascal Rhir
735d004a51 Translated using Weblate (French)
Currently translated at 69.5% (6982 of 10039 strings)
2020-05-23 21:42:59 +02:00
Lacrom
f3b659301d Translated using Weblate (French)
Currently translated at 69.5% (6982 of 10039 strings)
2020-05-23 21:42:58 +02:00
Jean-Pascal Rhir
501e0feb51 Translated using Weblate (French)
Currently translated at 69.5% (6978 of 10039 strings)
2020-05-23 21:42:06 +02:00
Lacrom
51e3a5b724 Translated using Weblate (French)
Currently translated at 69.5% (6978 of 10039 strings)
2020-05-23 21:42:06 +02:00
Jean-Pascal Rhir
db03875535 Translated using Weblate (French)
Currently translated at 69.4% (6977 of 10039 strings)
2020-05-23 21:36:39 +02:00
Lacrom
756fe316a6 Translated using Weblate (French)
Currently translated at 69.4% (6977 of 10039 strings)
2020-05-23 21:36:39 +02:00
Jean-Pascal Rhir
544b396eb9 Translated using Weblate (French)
Currently translated at 69.4% (6976 of 10039 strings)
2020-05-23 21:36:23 +02:00
Lacrom
0dfdd08a97 Translated using Weblate (French)
Currently translated at 69.4% (6976 of 10039 strings)
2020-05-23 21:36:23 +02:00
Jean-Pascal Rhir
ada5f3e775 Translated using Weblate (French)
Currently translated at 69.4% (6971 of 10039 strings)
2020-05-23 21:35:11 +02:00
Lacrom
997c55de03 Translated using Weblate (French)
Currently translated at 69.4% (6971 of 10039 strings)
2020-05-23 21:35:11 +02:00
Jean-Pascal Rhir
8219d2c4cc Translated using Weblate (French)
Currently translated at 69.3% (6967 of 10039 strings)
2020-05-23 21:33:16 +02:00
Lacrom
a04f2422f3 Translated using Weblate (French)
Currently translated at 69.3% (6967 of 10039 strings)
2020-05-23 21:33:15 +02:00
Jean-Pascal Rhir
d3c09af80d Translated using Weblate (French)
Currently translated at 69.3% (6966 of 10039 strings)
2020-05-23 21:32:52 +02:00
Lacrom
c90b8cd4d4 Translated using Weblate (French)
Currently translated at 69.3% (6966 of 10039 strings)
2020-05-23 21:32:52 +02:00
Jean-Pascal Rhir
dd0e27771b Translated using Weblate (French)
Currently translated at 69.3% (6961 of 10039 strings)
2020-05-23 21:27:58 +02:00
Lacrom
2edfa396a3 Translated using Weblate (French)
Currently translated at 69.3% (6961 of 10039 strings)
2020-05-23 21:27:57 +02:00
Lacrom
9bf3d330a3 Translated using Weblate (French)
Currently translated at 69.3% (6960 of 10039 strings)
2020-05-23 21:26:26 +02:00
Jean-Pascal Rhir
5f435b5fad Translated using Weblate (French)
Currently translated at 69.3% (6960 of 10039 strings)
2020-05-23 21:26:25 +02:00
Javier Serrano Polo
2864b747a3 Debug build (3) 2020-05-23 19:44:40 +02:00
Javier Serrano Polo
45032b7294 Debug build (2) 2020-05-23 18:26:14 +02:00
Javier Serrano Polo
d1d604abbf Debug build (1) 2020-05-23 18:07:00 +02:00
Javier Serrano Polo
691a8318f4 Add missing dependencies 2020-05-23 17:23:03 +02:00
Javier Serrano Polo
05a35a6413 Fix line feeds in German translation 2020-05-23 16:55:31 +02:00
Javier Serrano Polo
c8f6e3c3f5 Add Travis CI support 2020-05-23 16:30:02 +02:00
Lacrom
a43ec18041 Translated using Weblate (French)
Currently translated at 69.3% (6959 of 10039 strings)
2020-05-23 13:01:45 +02:00
Jean-Pascal Rhir
fb557a7a64 Translated using Weblate (French)
Currently translated at 69.3% (6959 of 10039 strings)
2020-05-23 13:01:45 +02:00
zhnxin
a3543e1c73 Translated using Weblate (Chinese (Simplified))
Currently translated at 33.9% (191 of 563 strings)
2020-05-23 08:41:41 +02:00
Jean-Pascal Rhir
f925f00b46 Translated using Weblate (French)
Currently translated at 68.9% (6917 of 10039 strings)
2020-05-23 08:41:39 +02:00
Nut
dd18e0f748 butcher for animated npc 2020-05-21 18:47:39 +02:00
Jean-Pascal Rhir
6bdde137e9 Translated using Weblate (French)
Currently translated at 68.9% (6917 of 10039 strings)
2020-05-20 20:46:28 +02:00
Lacrom
6a4821e3e5 Translated using Weblate (French)
Currently translated at 68.9% (6917 of 10039 strings)
2020-05-20 20:46:27 +02:00
zhnxin
4d39736db7 Translated using Weblate (Chinese (Simplified))
Currently translated at 22.2% (125 of 563 strings)
2020-05-20 08:41:43 +02:00
zhnxin
a5900715be Translated using Weblate (Chinese (Simplified))
Currently translated at 7.2% (728 of 10039 strings)
2020-05-20 08:41:42 +02:00
Giovanni Battaglia
ed5214e0d8 Translated using Weblate (Italian)
Currently translated at 90.8% (9120 of 10039 strings)
2020-05-20 08:41:41 +02:00
Jean-Pascal Rhir
2ae5ba1170 Translated using Weblate (French)
Currently translated at 68.8% (6910 of 10039 strings)
2020-05-20 08:41:39 +02:00
Lacrom
7b5f675fda Translated using Weblate (French)
Currently translated at 68.8% (6910 of 10039 strings)
2020-05-20 08:41:39 +02:00
Alessandro Perlo
32fc9d3bd3 Translated using Weblate (Italian)
Currently translated at 90.2% (9061 of 10039 strings)
2020-05-18 20:41:44 +02:00
Claire OUDOT
7e5f245e44 Translated using Weblate (French)
Currently translated at 68.4% (6869 of 10039 strings)
2020-05-18 20:41:42 +02:00
Lacrom
826d24acfe Translated using Weblate (French)
Currently translated at 68.4% (6869 of 10039 strings)
2020-05-18 20:41:42 +02:00
Alessandro Perlo
43d0060d39 Translated using Weblate (Italian)
Currently translated at 100.0% (563 of 563 strings)
2020-05-18 20:41:39 +02:00
Gonk
1f13197dbe Merge branch 'test_brimhaven' of https://github.com/NutAndor/andors-trail into nut_test_brimhaven 2020-05-18 19:13:53 +02:00
Gonk
e0d0f71603 Fixed two bugs that could lead to toggling of worldmap replace areas 2020-05-18 19:04:45 +02:00
Claire OUDOT
0aad8fa588 Translated using Weblate (French)
Currently translated at 66.8% (6715 of 10039 strings)
2020-05-18 15:37:59 +02:00
Lacrom
5a97e310d3 Translated using Weblate (French)
Currently translated at 66.8% (6715 of 10039 strings)
2020-05-18 15:37:59 +02:00
Claire OUDOT
8646c80980 Translated using Weblate (French)
Currently translated at 66.8% (6710 of 10039 strings)
2020-05-18 15:37:11 +02:00
Lacrom
a549dabf02 Translated using Weblate (French)
Currently translated at 66.8% (6710 of 10039 strings)
2020-05-18 15:37:10 +02:00
Alessandro Perlo
243c2ac766 Translated using Weblate (Italian)
Currently translated at 97.5% (549 of 563 strings)
2020-05-17 15:21:01 +02:00
Nut Andor
eba0667fe1 Translated using Weblate (German)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-17 02:41:34 +02:00
Alessandro Perlo
465c62010e Translated using Weblate (Italian)
Currently translated at 97.5% (549 of 563 strings)
2020-05-17 02:41:33 +02:00
Nut
8c90615091 Added Woodsettlement as target 2020-05-16 10:01:40 +02:00
Lacrom
62abeadd97 Translated using Weblate (French)
Currently translated at 66.4% (6671 of 10039 strings)
2020-05-15 01:01:27 +02:00
Claire OUDOT
0538a6e670 Translated using Weblate (French)
Currently translated at 66.4% (6671 of 10039 strings)
2020-05-15 01:01:27 +02:00
Lacrom
caa4366c8f Translated using Weblate (French)
Currently translated at 66.4% (6666 of 10039 strings)
2020-05-14 14:24:16 +02:00
Claire OUDOT
e54272f17a Translated using Weblate (French)
Currently translated at 66.4% (6666 of 10039 strings)
2020-05-14 14:24:16 +02:00
Lacrom
f10e0f0725 Translated using Weblate (French)
Currently translated at 66.3% (6665 of 10039 strings)
2020-05-14 14:21:46 +02:00
Lacrom
576674b6df Translated using Weblate (French)
Currently translated at 66.3% (6664 of 10039 strings)
2020-05-14 14:16:09 +02:00
Allan Nordhøy
53dcad6fba Translated using Weblate (Norwegian Bokmål)
Currently translated at 92.0% (518 of 563 strings)
2020-05-12 18:34:12 +02:00
Daniel Stasiak
d60fc8457d Translated using Weblate (Polish)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-12 18:34:11 +02:00
arliantir
6beee29ede Translated using Weblate (French)
Currently translated at 66.3% (6660 of 10039 strings)
2020-05-12 18:34:09 +02:00
Nut
c5347ffed0 version change to 0.7.11 2020-05-12 00:34:32 +02:00
Rijackson
54256f81d7 Delete three unused BWM maps 2020-05-10 17:31:28 -04:00
Rijackson
17b4e52552 Fix skill description for dual wield 2020-05-10 17:10:18 -04:00
Nut
a3d5623845 version change to 0.8.1dev 2020-05-10 17:39:10 +02:00
Nut
9de274dc95 Revert "Merge pull request #36 from jasp00/secret_garden"
not because it may be wrong, but content should be better created with an atcs project

This reverts commit bf5bc2b92d, reversing
changes made to efca0a905a.
2020-05-10 17:04:39 +02:00
yann
0089fad654 Translated using Weblate (French)
Currently translated at 66.1% (6638 of 10039 strings)
2020-05-10 14:32:26 +02:00
Lacrom
7ec2f091be Translated using Weblate (French)
Currently translated at 66.1% (6638 of 10039 strings)
2020-05-10 14:32:25 +02:00
Nut
ec4a7fdfe7 Merge pull request #37 from AndorsTrailRelease/master
actualize test_brimhaven with v0.7.10 (translations + googlePlay docu
2020-05-10 09:01:35 +02:00
Chriz76
bf5bc2b92d Merge pull request #36 from jasp00/secret_garden
Fix A secret garden: clearing out monsters
2020-05-09 21:10:15 +02:00
Nut
25e10558ee Merge pull request #35 from AndorsTrailRelease/master
Bring NutAndor:master to v0.7.10
2020-05-09 10:03:22 +02:00
Daniel Stasiak
4d14f47f5e Translated using Weblate (Polish)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-09 04:36:54 +02:00
Alessandro Perlo
7fc9b67496 Translated using Weblate (Italian)
Currently translated at 90.2% (9061 of 10039 strings)
2020-05-09 04:36:53 +02:00
Antonios Hazim
9fcb437dd1 Translated using Weblate (German)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-09 04:36:51 +02:00
Antonios Hazim
e88e9f662b Translated using Weblate (German)
Currently translated at 97.3% (548 of 563 strings)
2020-05-09 04:36:50 +02:00
ellta
b1609a9774 Translated using Weblate (Russian)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-07 21:13:13 +02:00
Daniel Stasiak
faed373c05 Translated using Weblate (Polish)
Currently translated at 100.0% (10039 of 10039 strings)
2020-05-07 21:13:12 +02:00
Alessandro Perlo
64c986d830 Translated using Weblate (Italian)
Currently translated at 90.2% (9061 of 10039 strings)
2020-05-07 21:13:11 +02:00
Windcaster
1e7f53cbe3 Translated using Weblate (French)
Currently translated at 64.3% (6457 of 10039 strings)
2020-05-07 21:13:07 +02:00
Lacrom
cfb77982f7 Translated using Weblate (French)
Currently translated at 64.3% (6457 of 10039 strings)
2020-05-07 21:13:06 +02:00
ellta
4bd163ed4d Translated using Weblate (Russian)
Currently translated at 100.0% (563 of 563 strings)
2020-05-07 21:13:01 +02:00
Daniel Stasiak
f31ed81ee4 Translated using Weblate (Polish)
Currently translated at 100.0% (563 of 563 strings)
2020-05-07 21:13:00 +02:00
Anonymous
8ec0d60de9 Translated using Weblate (French)
Currently translated at 64.1% (6443 of 10039 strings)
2020-05-06 18:26:06 +02:00
Lacrom
7862fc3414 Translated using Weblate (French)
Currently translated at 64.1% (6443 of 10039 strings)
2020-05-06 18:26:05 +02:00
Anonymous
6b2c5f2398 Translated using Weblate (French)
Currently translated at 64.1% (6442 of 10039 strings)
2020-05-06 18:21:38 +02:00
Gonk
942b7b8609 Adjusted play description and whatsnew for v0.7.10
removed the hint to disable toasts because it should be fixed now
2020-05-05 20:05:36 +02:00
Gonk
e5b12d12f1 Merge branch 'playstoremetadata' into AndorsTrailRelease_master 2020-05-05 19:03:41 +02:00
İsmail Emre Sırmalı
d17d78c84f Translated using Weblate (Turkish)
Currently translated at 84.9% (478 of 563 strings)
2020-05-05 17:12:13 +02:00
Erick Ferraz Vieira
9f17802aad Translated using Weblate (Portuguese (Brazil))
Currently translated at 85.9% (8626 of 10039 strings)
2020-05-05 17:12:10 +02:00
Daniel Stasiak
923f612007 Translated using Weblate (Polish)
Currently translated at 99.9% (10037 of 10039 strings)
2020-05-05 17:12:09 +02:00
Alessandro Perlo
258b71214d Translated using Weblate (Italian)
Currently translated at 90.3% (9068 of 10039 strings)
2020-05-05 17:12:07 +02:00
Lacrom
52e61adcf1 Translated using Weblate (French)
Currently translated at 64.1% (6440 of 10039 strings)
2020-05-05 17:12:00 +02:00
Erick Ferraz Vieira
00051e9215 Translated using Weblate (Portuguese)
Currently translated at 97.3% (548 of 563 strings)
2020-05-05 17:11:58 +02:00
yann
139a58c4c3 Translated using Weblate (French)
Currently translated at 97.5% (549 of 563 strings)
2020-05-05 17:11:57 +02:00
yann
597174acb1 Translated using Weblate (French)
Currently translated at 64.0% (6432 of 10039 strings)
2020-05-04 16:26:32 +02:00
Anonymous
5376b5bfbd Translated using Weblate (French)
Currently translated at 64.0% (6432 of 10039 strings)
2020-05-04 16:26:31 +02:00
Lacrom
50d545683e Translated using Weblate (French)
Currently translated at 64.0% (6432 of 10039 strings)
2020-05-04 16:26:30 +02:00
Nut
f3528f91c1 Merge pull request #11 from NutAndor/test_brimhaven
Test brimhaven
2020-05-02 11:00:51 +02:00
Nut
efca0a905a building 0.7.10 - int. version 2020-05-02 10:53:01 +02:00
Nut
e62e3960bf building 0.7.10 2020-05-02 09:55:53 +02:00
Nut
58c2677e85 prep for v0710 PotComp 2020-05-01 12:05:19 +02:00
Nut
22e2e5917f building 0.7.10 2020-05-01 11:53:30 +02:00
Nut
9fb0392474 Merge pull request #10 from NutAndor/test_brimhaven
Test brimhaven
2020-05-01 11:17:27 +02:00
Nut
45859bc56c Merge pull request #10 from NutAndor/test_brimhaven
Test brimhaven
2020-05-01 11:10:42 +02:00
Nut
a4f6ace3dd building 0.7.10 2020-05-01 11:00:16 +02:00
Nut
03cb7a0724 Merge remote-tracking branch 'hosted.weblate/master' 2020-05-01 09:50:23 +02:00
Lucas Araujo
f3feeecd7f Translated using Weblate (Portuguese (Brazil))
Currently translated at 85.4% (8581 of 10037 strings)
2020-05-01 09:37:07 +02:00
Daniel Stasiak
f879ea6422 Translated using Weblate (Polish)
Currently translated at 100.0% (10037 of 10037 strings)
2020-05-01 09:37:06 +02:00
Alessandro Perlo
6000e6c6aa Translated using Weblate (Italian)
Currently translated at 90.0% (9039 of 10037 strings)
2020-05-01 09:37:05 +02:00
Lacrom
259ea187a2 Translated using Weblate (French)
Currently translated at 63.9% (6420 of 10037 strings)
2020-05-01 09:36:57 +02:00
Nut
bc3dc312c6 enhanced cavewall png 2020-05-01 01:15:08 +02:00
Anonymous
a1a4468289 Translated using Weblate (French)
Currently translated at 62.9% (6317 of 10037 strings)
2020-04-30 14:23:34 +02:00
Lacrom
a78013a70a Translated using Weblate (French)
Currently translated at 62.9% (6317 of 10037 strings)
2020-04-30 14:23:34 +02:00
Anonymous
a9b0340da7 Translated using Weblate (French)
Currently translated at 62.7% (6302 of 10037 strings)
2020-04-30 14:20:51 +02:00
Lacrom
b8768060e5 Translated using Weblate (French)
Currently translated at 62.7% (6302 of 10037 strings)
2020-04-30 14:20:51 +02:00
Anonymous
0159c91b39 Translated using Weblate (French)
Currently translated at 62.7% (6301 of 10037 strings)
2020-04-30 14:19:25 +02:00
Lacrom
b59650de01 Translated using Weblate (French)
Currently translated at 62.7% (6301 of 10037 strings)
2020-04-30 14:19:25 +02:00
Anonymous
138480e92a Translated using Weblate (French)
Currently translated at 62.7% (6298 of 10037 strings)
2020-04-30 14:17:26 +02:00
Lacrom
cb4cccf0c8 Translated using Weblate (French)
Currently translated at 62.7% (6298 of 10037 strings)
2020-04-30 14:17:26 +02:00
Anonymous
6b3c4655cb Translated using Weblate (French)
Currently translated at 62.7% (6294 of 10037 strings)
2020-04-30 14:16:22 +02:00
Lacrom
f9b16c2ad6 Translated using Weblate (French)
Currently translated at 62.7% (6294 of 10037 strings)
2020-04-30 14:16:21 +02:00
Anonymous
3d63664a9a Translated using Weblate (French)
Currently translated at 62.0% (6227 of 10037 strings)
2020-04-30 12:10:22 +02:00
Lacrom
8829c4633d Translated using Weblate (French)
Currently translated at 62.0% (6227 of 10037 strings)
2020-04-30 12:10:22 +02:00
Nut
92a29ddc36 fix Colonel Lutarc bug 2020-04-29 07:43:41 +02:00
Javier Serrano Polo
7c173eda1e Fix A secret garden: clearing out monsters 2020-04-28 21:51:10 +02:00
Anonymous
f670512b6d Translated using Weblate (French)
Currently translated at 61.9% (6221 of 10037 strings)
2020-04-28 13:05:49 +02:00
Lacrom
c4a92a8b4f Translated using Weblate (French)
Currently translated at 61.9% (6221 of 10037 strings)
2020-04-28 13:05:49 +02:00
Anonymous
844da92d02 Translated using Weblate (French)
Currently translated at 61.9% (6221 of 10037 strings)
2020-04-28 13:04:11 +02:00
Glenn R
a3193c5f2a Translated using Weblate (French)
Currently translated at 61.9% (6221 of 10037 strings)
2020-04-28 13:04:11 +02:00
Lacrom
753fdfa4d7 Translated using Weblate (French)
Currently translated at 61.9% (6221 of 10037 strings)
2020-04-28 13:04:10 +02:00
Lucas Araujo
f434398fcf Translated using Weblate (Portuguese (Brazil))
Currently translated at 85.4% (8580 of 10037 strings)
2020-04-27 00:11:17 +02:00
Gonk
e41ce698f3 Merge branch 'test_brimhaven' of https://github.com/NutAndor/andors-trail into nut_test_brimhaven 2020-04-26 20:58:45 +02:00
Gonk
f8cea26edf Added ball monster 2020-04-26 20:57:09 +02:00
Rijackson
3f3ba031c3 Changed skill descriptions to include parrying weapons with shields. 2020-04-26 13:55:20 -04:00
Christian Zink
4de6b30cbb Added translation using Weblate (Tagalog) 2020-04-26 10:33:26 +02:00
Lucas Araujo
e47a5c9146 Translated using Weblate (Portuguese (Brazil))
Currently translated at 85.0% (8533 of 10037 strings)
2020-04-25 19:11:19 +02:00
Alessandro Perlo
1d00f73ad9 Translated using Weblate (Italian)
Currently translated at 90.0% (9039 of 10037 strings)
2020-04-25 19:11:18 +02:00
Lucas Araujo
1dcded6180 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.8% (555 of 556 strings)
2020-04-25 19:11:17 +02:00
Anonymous
6d29c51d71 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.8% (555 of 556 strings)
2020-04-25 19:11:16 +02:00
Lucas Araujo
98c966edaf Translated using Weblate (Portuguese (Brazil))
Currently translated at 84.4% (8472 of 10037 strings)
2020-04-24 12:13:41 +02:00
Nut
72bc552df2 added map_table_2.png 2020-04-24 09:27:50 +02:00
Lucas Araujo
2c3e829dfa Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.7% (8408 of 10037 strings)
2020-04-24 00:29:00 +02:00
tomjobes
4560e16973 Fix tree problem in road1 near roadblock 2020-04-22 14:33:22 -04:00
Alexandros Mitsonis
99a1f6372f Translated using Weblate (Greek)
Currently translated at 10.8% (1091 of 10036 strings)
2020-04-22 18:11:44 +02:00
Lucas Araujo
0b50a1da39 Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.5% (8389 of 10037 strings)
2020-04-22 18:11:21 +02:00
Alessandro Perlo
6fe3b9f4c8 Translated using Weblate (Italian)
Currently translated at 90.0% (9039 of 10037 strings)
2020-04-22 18:11:19 +02:00
arliantir
24028b4c74 Translated using Weblate (French)
Currently translated at 61.9% (6216 of 10037 strings)
2020-04-22 18:11:18 +02:00
arliantir
f0697c3624 Translated using Weblate (French)
Currently translated at 100.0% (556 of 556 strings)
2020-04-22 18:11:15 +02:00
anonymous
99bec76eaf Translated using Weblate (French)
Currently translated at 100.0% (556 of 556 strings)
2020-04-21 17:42:10 +02:00
Alexandros Mitsonis
dae3891055 Translated using Weblate (Greek)
Currently translated at 7.7% (773 of 10036 strings)
2020-04-21 12:15:36 +02:00
anonymous
1ce347fd0b Translated using Weblate (Portuguese (Brazil))
Currently translated at 82.9% (8321 of 10037 strings)
2020-04-21 12:15:00 +02:00
Lucas Araujo
e1d8e84aed Translated using Weblate (Portuguese (Brazil))
Currently translated at 82.9% (8321 of 10037 strings)
2020-04-21 12:14:59 +02:00
Daniel Stasiak
ac7651e5b6 Translated using Weblate (Polish)
Currently translated at 100.0% (10037 of 10037 strings)
2020-04-21 12:14:57 +02:00
Alessandro Perlo
f3ed4e721e Translated using Weblate (Italian)
Currently translated at 90.0% (9039 of 10037 strings)
2020-04-21 12:14:55 +02:00
Alexandros Mitsonis
2bde8623a6 Translated using Weblate (Greek)
Currently translated at 4.0% (409 of 10036 strings)
2020-04-20 22:21:24 +02:00
ERDwaYbR
dc3f466f7e Translated using Weblate (Chinese (Simplified))
Currently translated at 18.3% (102 of 556 strings)
2020-04-20 22:21:18 +02:00
Alessandro Perlo
ff008af308 Translated using Weblate (Italian)
Currently translated at 90.0% (9039 of 10037 strings)
2020-04-20 22:21:17 +02:00
Gonk
050fc978da Merge branch 'RebalanceTheRebalancing' into nut_test_brimhaven 2020-04-19 20:58:05 +02:00
Gonk
001de75409 Adjusted weapons
- Adjusted damagModifier for 5 and especially 6 AC weapons so they are not OP
- added modifiers for 13 and 14 AC weapons
- nerfed hunter's sword
2020-04-19 20:48:28 +02:00
Jeannette L
5a961f2d34 Translated using Weblate (French)
Currently translated at 61.2% (6148 of 10037 strings)
2020-04-19 02:39:24 +02:00
Jeannette L
a4ce0b34c4 Translated using Weblate (Italian)
Currently translated at 99.1% (551 of 556 strings)
2020-04-19 02:39:23 +02:00
anonymous
99f3727ecd Translated using Weblate (French)
Currently translated at 99.8% (555 of 556 strings)
2020-04-19 02:39:22 +02:00
Jeannette L
be0fa04828 Translated using Weblate (French)
Currently translated at 99.8% (555 of 556 strings)
2020-04-19 02:39:22 +02:00
Jeannette L
b71db7fe56 Translated using Weblate (French)
Currently translated at 98.9% (550 of 556 strings)
2020-04-18 22:46:00 +02:00
anonymous
45e21670af Translated using Weblate (French)
Currently translated at 98.9% (550 of 556 strings)
2020-04-18 22:46:00 +02:00
anonymous
bd94b5e1e8 Translated using Weblate (French)
Currently translated at 98.3% (547 of 556 strings)
2020-04-18 22:45:01 +02:00
Jeannette L
2048329f9a Translated using Weblate (French)
Currently translated at 98.3% (547 of 556 strings)
2020-04-18 22:45:00 +02:00
anonymous
40b497ee19 Translated using Weblate (French)
Currently translated at 97.6% (543 of 556 strings)
2020-04-18 22:41:10 +02:00
Jeannette L
11b3b7ffdd Translated using Weblate (French)
Currently translated at 97.6% (543 of 556 strings)
2020-04-18 22:41:09 +02:00
anonymous
bfea644f0f Translated using Weblate (French)
Currently translated at 96.7% (538 of 556 strings)
2020-04-18 22:39:57 +02:00
Jeannette L
ada59afdba Translated using Weblate (French)
Currently translated at 96.7% (538 of 556 strings)
2020-04-18 22:39:57 +02:00
Alessandro Perlo
e659c8c82e Translated using Weblate (Italian)
Currently translated at 90.0% (9039 of 10037 strings)
2020-04-18 13:11:20 +02:00
arliantir
78295ac295 Translated using Weblate (French)
Currently translated at 61.2% (6147 of 10037 strings)
2020-04-18 13:11:18 +02:00
george k
f6fdcf1150 Translated using Weblate (German)
Currently translated at 100.0% (10037 of 10037 strings)
2020-04-18 13:11:15 +02:00
Alessandro Perlo
59f6081b4d Translated using Weblate (Italian)
Currently translated at 99.1% (551 of 556 strings)
2020-04-18 13:11:15 +02:00
george k
510caa518e Translated using Weblate (French)
Currently translated at 96.2% (535 of 556 strings)
2020-04-18 13:11:14 +02:00
Tofu Ming
b6cbbfc309 Translated using Weblate (Chinese (Simplified))
Currently translated at 17.4% (97 of 556 strings)
2020-04-16 11:11:32 +02:00
Tofu Ming
bfaecc58ad Translated using Weblate (Chinese (Traditional))
Currently translated at 42.0% (234 of 556 strings)
2020-04-16 11:11:32 +02:00
Daniel Stasiak
b0fb61f9df Translated using Weblate (Polish)
Currently translated at 100.0% (10037 of 10037 strings)
2020-04-16 11:11:32 +02:00
Alessandro Perlo
da9ee468e7 Translated using Weblate (Italian)
Currently translated at 90.0% (9039 of 10037 strings)
2020-04-16 11:11:30 +02:00
arliantir
f4bc781fce Translated using Weblate (French)
Currently translated at 60.7% (6098 of 10037 strings)
2020-04-16 11:11:27 +02:00
anonymous
f1f5469915 Translated using Weblate (French)
Currently translated at 60.7% (6098 of 10037 strings)
2020-04-16 11:11:17 +02:00
arliantir
e3dd3dbf3f Translated using Weblate (French)
Currently translated at 96.2% (535 of 556 strings)
2020-04-16 11:11:14 +02:00
arliantir
f918b22968 Translated using Weblate (French)
Currently translated at 96.2% (535 of 556 strings)
2020-04-14 18:32:34 +02:00
anonymous
5cd1f46109 Translated using Weblate (French)
Currently translated at 96.2% (535 of 556 strings)
2020-04-14 18:32:34 +02:00
Gonk
b94f2e85eb Moved items to the corresponding file 2020-04-13 22:31:18 +02:00
Gonk
e27bb2ac8c Merge branch 'test_brimhaven' of https://github.com/NutAndor/andors-trail into nut_test_brimhaven 2020-04-13 21:14:15 +02:00
Gonk
9f509e0f02 Added the assassin's gloves to Ganos and the Robe of the protector to Jalnos 2020-04-12 23:37:02 +02:00
Alessandro Perlo
feb0471c8d Translated using Weblate (Italian)
Currently translated at 90.0% (9037 of 10037 strings)
2020-04-09 00:13:51 +02:00
Alessandro Perlo
30c233ff63 Translated using Weblate (Italian)
Currently translated at 90.0% (9037 of 10037 strings)
2020-04-08 07:55:35 +02:00
Alessandro Perlo
1e92938783 Translated using Weblate (Italian)
Currently translated at 90.0% (9037 of 10037 strings)
2020-04-07 22:56:21 +02:00
anonymous
2930903d1f Translated using Weblate (German)
Currently translated at 100.0% (10037 of 10037 strings)
2020-04-05 20:10:27 +02:00
Nut Andor
3cdb3f3393 Translated using Weblate (German)
Currently translated at 100.0% (10037 of 10037 strings)
2020-04-05 20:10:26 +02:00
anonymous
5f2cfdf4b5 Translated using Weblate (German)
Currently translated at 99.8% (10024 of 10037 strings)
2020-04-05 18:29:12 +02:00
Nut Andor
72a780cb13 Translated using Weblate (German)
Currently translated at 99.8% (10024 of 10037 strings)
2020-04-05 18:29:12 +02:00
anonymous
0dba0d02fa Translated using Weblate (German)
Currently translated at 99.7% (10011 of 10037 strings)
2020-04-05 18:22:21 +02:00
Nut Andor
9b87d92861 Translated using Weblate (German)
Currently translated at 99.7% (10011 of 10037 strings)
2020-04-05 18:22:21 +02:00
anonymous
c89ebab7c0 Translated using Weblate (German)
Currently translated at 99.7% (10010 of 10037 strings)
2020-04-05 18:21:27 +02:00
Nut Andor
5e4b352594 Translated using Weblate (German)
Currently translated at 99.7% (10010 of 10037 strings)
2020-04-05 18:21:27 +02:00
anonymous
b341232916 Translated using Weblate (German)
Currently translated at 99.6% (10005 of 10037 strings)
2020-04-05 18:19:04 +02:00
Nut Andor
247644be3c Translated using Weblate (German)
Currently translated at 99.6% (10005 of 10037 strings)
2020-04-05 18:19:03 +02:00
anonymous
1218de5470 Translated using Weblate (German)
Currently translated at 99.6% (10003 of 10037 strings)
2020-04-05 18:16:55 +02:00
Nut Andor
ec82ce0da8 Translated using Weblate (German)
Currently translated at 99.6% (10003 of 10037 strings)
2020-04-05 18:16:55 +02:00
anonymous
56735fc2f2 Translated using Weblate (German)
Currently translated at 99.6% (10002 of 10037 strings)
2020-04-05 18:16:00 +02:00
Nut Andor
1e70c90aa6 Translated using Weblate (German)
Currently translated at 99.6% (10002 of 10037 strings)
2020-04-05 18:16:00 +02:00
anonymous
77e2ba1f00 Translated using Weblate (German)
Currently translated at 99.6% (10001 of 10037 strings)
2020-04-05 18:13:45 +02:00
Alessandro Perlo
38b7fcf0ae Translated using Weblate (Italian)
Currently translated at 90.0% (9037 of 10037 strings)
2020-04-05 17:49:41 +02:00
Stefanie Beck
346a6581c3 Translated using Weblate (German)
Currently translated at 99.5% (9991 of 10037 strings)
2020-04-05 17:49:38 +02:00
anonymous
15ce958bbb Translated using Weblate (German)
Currently translated at 99.5% (9991 of 10037 strings)
2020-04-05 17:49:38 +02:00
Nut Andor
f37115d051 Translated using Weblate (German)
Currently translated at 99.5% (9991 of 10037 strings)
2020-04-05 17:49:37 +02:00
anonymous
6650c2b44a Translated using Weblate (German)
Currently translated at 99.5% (9991 of 10037 strings)
2020-04-05 14:03:54 +02:00
Nut Andor
e199869667 Translated using Weblate (German)
Currently translated at 99.5% (9991 of 10037 strings)
2020-04-05 14:03:54 +02:00
anonymous
fa0550fd5c Translated using Weblate (German)
Currently translated at 99.5% (9991 of 10037 strings)
2020-04-05 13:43:16 +02:00
Nut Andor
39deee4158 Translated using Weblate (German)
Currently translated at 99.5% (9991 of 10037 strings)
2020-04-05 13:43:16 +02:00
anonymous
84d32548f7 Translated using Weblate (German)
Currently translated at 99.5% (9990 of 10037 strings)
2020-04-05 13:42:25 +02:00
Frank Senft
f830ea9e1c Translated using Weblate (German)
Currently translated at 99.5% (9990 of 10037 strings)
2020-04-05 13:42:25 +02:00
Stefanie Beck
03404fe583 Translated using Weblate (German)
Currently translated at 99.5% (9990 of 10037 strings)
2020-04-05 13:42:24 +02:00
Nut Andor
ae855f854c Translated using Weblate (German)
Currently translated at 99.5% (9990 of 10037 strings)
2020-04-05 13:42:24 +02:00
Wuerfelbruder
5c14d97327 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 13:10:30 +02:00
anonymous
fa8bba9286 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 13:10:29 +02:00
Nut Andor
cc3df7cfaf Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 13:10:29 +02:00
anonymous
4fa87374b0 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:47:47 +02:00
Alain
b1180a60d6 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:47:47 +02:00
Nut Andor
f33e5cee2a Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:47:46 +02:00
Alain
1487d2669f Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:39:07 +02:00
anonymous
11caad0322 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:39:07 +02:00
Nut Andor
315bea7e63 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:39:07 +02:00
anonymous
1f4be57ae1 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:29:03 +02:00
Nut Andor
c34d317466 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:29:02 +02:00
anonymous
462eec1c0a Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:24:54 +02:00
Nut Andor
6834342cf3 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:24:54 +02:00
anonymous
58cac5f463 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:23:28 +02:00
Nut Andor
8d7a181c16 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:23:28 +02:00
anonymous
a283048b38 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:09:35 +02:00
Nut Andor
f90f1d3404 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:09:35 +02:00
anonymous
10b08df20f Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:06:52 +02:00
Nut Andor
5a0e48f612 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:06:52 +02:00
anonymous
b1a4483e39 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:04:35 +02:00
Nut Andor
32c1e846ee Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:04:34 +02:00
anonymous
bb833e47f0 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:02:14 +02:00
Nut Andor
f4913e1e64 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:02:13 +02:00
anonymous
21578375e1 Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:01:23 +02:00
Nut Andor
e86c67504f Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 12:01:23 +02:00
Alain
b683eef12b Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 11:50:56 +02:00
Vanka
d9f9cb7a2e Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 11:50:55 +02:00
anonymous
653a080e5d Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 11:50:55 +02:00
Nut Andor
512dc3784f Translated using Weblate (German)
Currently translated at 99.5% (9989 of 10037 strings)
2020-04-05 11:50:54 +02:00
anonymous
bc1f4049a5 Translated using Weblate (German)
Currently translated at 99.5% (9988 of 10037 strings)
2020-04-05 11:33:11 +02:00
Nut Andor
edad9ad35c Translated using Weblate (German)
Currently translated at 99.5% (9988 of 10037 strings)
2020-04-05 11:33:11 +02:00
Daniel Stasiak
3ae0a3f75e Translated using Weblate (Polish)
Currently translated at 100.0% (10037 of 10037 strings)
2020-04-05 05:02:43 +02:00
Nut
7d7eec7f53 Preparations for beta build
(actual translations included)
2020-04-04 12:57:56 +02:00
Nut
f4a1a969d8 Merge remote-tracking branch 'andors-trail/master' into test_brimhaven 2020-04-04 12:46:04 +02:00
Nut
40b9d58664 Merge remote-tracking branch 'hosted.weblate/master' 2020-04-04 12:20:24 +02:00
Allan Nordhøy
0926a24378 Translated using Weblate (Bulgarian)
Currently translated at 0.7% (4 of 556 strings)
2020-04-03 21:14:56 +02:00
Allan Nordhøy
333507ad17 Translated using Weblate (German)
Currently translated at 99.4% (9986 of 10037 strings)
2020-04-03 21:14:55 +02:00
Alessandro Perlo
7855ff2150 Translated using Weblate (Italian)
Currently translated at 90.0% (9036 of 10037 strings)
2020-04-01 17:52:26 +02:00
Alessandro Perlo
db9c409835 Translated using Weblate (Italian)
Currently translated at 90.0% (9036 of 10037 strings)
2020-04-01 17:02:31 +02:00
Gonk
153ceafa9a Fixed a small map flashing in the map triggered by a transparent ground tile 2020-03-30 21:08:59 +02:00
Gonk
7e20a53581 Merge branch 'rebalancingLevel1to5' into nut_test_brimhaven 2020-03-30 18:46:41 +02:00
Gonk
071df20889 Fix and adjustment of drops
- Restored the missing and still used gold20
- Changed mikhail's bread reward to 50
2020-03-30 18:45:46 +02:00
Gonk
dc6f7db5c3 cancellation for long running operation 2020-03-30 18:39:12 +02:00
ellta
902698afa1 Translated using Weblate (Russian)
Currently translated at 100.0% (10037 of 10037 strings)
2020-03-29 23:01:30 +02:00
anonymous
4e3f8d103b Translated using Weblate (Russian)
Currently translated at 100.0% (10037 of 10037 strings)
2020-03-29 23:01:29 +02:00
Daniel Stasiak
89b2aa153c Translated using Weblate (Polish)
Currently translated at 100.0% (10037 of 10037 strings)
2020-03-29 23:01:29 +02:00
Alessandro Perlo
af673e4890 Translated using Weblate (Italian)
Currently translated at 90.0% (9036 of 10037 strings)
2020-03-29 23:01:27 +02:00
Gonk
19773c2606 Merge branch 'unarmedunarmored' into nut_test_brimhaven 2020-03-29 21:02:37 +02:00
Gonk
325f75f4be Typo 2020-03-29 21:01:48 +02:00
Gonk
a1bbe288df some debug logging 2020-03-29 21:00:37 +02:00
Gonk
366e3d8cfb missing comma 2020-03-29 16:07:09 +02:00
Gonk
2e0198d902 Merge branch 'rebalancing' into nut_test_brimhaven
# Conflicts:
#	AndorsTrail/res/raw/itemlist_v069_questitems.json
2020-03-29 15:47:21 +02:00
Gonk
18b9a86416 Always show the damage modifier even if it is 100% 2020-03-29 15:42:02 +02:00
Gonk
3af4c25d53 first tries 2020-03-29 15:40:13 +02:00
Rijackson
723816dd1d Changed damage modifiers by small random amounts (<10%) so that they are not all the same numbers. 2020-03-28 17:19:44 -04:00
Gonk
2713df8e5c Merge branch 'unarmedunarmored' into nut_test_brimhaven 2020-03-28 19:16:22 +01:00
Gonk
1541c5a5bb fixed typo compile error 2020-03-28 19:15:26 +01:00
Gonk
88d1260e4c Merge branch 'unarmedunarmored' into nut_test_brimhaven 2020-03-28 19:13:11 +01:00
Gonk
c3e012857e the skill now works only when fully unarmed and unarmored 2020-03-28 19:12:19 +01:00
Gonk
284c50fa41 First draft of the unarmed and unarmored skill 2020-03-28 18:59:34 +01:00
Alessandro Perlo
e64c5b89e9 Translated using Weblate (Italian)
Currently translated at 90.0% (9036 of 10037 strings)
2020-03-27 12:15:45 +01:00
Alessandro Perlo
6e0bfefeae Translated using Weblate (Italian)
Currently translated at 89.9% (9026 of 10037 strings)
2020-03-25 16:46:27 +01:00
Daniel Stasiak
44fdcf602c Translated using Weblate (Polish)
Currently translated at 100.0% (10037 of 10037 strings)
2020-03-25 16:46:23 +01:00
Gonk
aa269730b3 Merge branch 'rebalancingLevel1to5' into nut_test_brimhaven 2020-03-16 21:38:22 +01:00
Alessandro Perlo
1f70f8dd2c Translated using Weblate (Italian)
Currently translated at 89.9% (9027 of 10037 strings)
2020-03-16 17:29:43 +01:00
Daniel Stasiak
1875c3787b Translated using Weblate (Polish)
Currently translated at 100.0% (10037 of 10037 strings)
2020-03-16 17:29:39 +01:00
Gonk
a65aed1408 tried to reduce the grinding in the beginning of the game (rat cave and then after the first 4 quests in crossglen)
by increasing xp and gold drop
2020-03-15 21:16:06 +01:00
Sekhmet
e5308ace8d Translated using Weblate (French)
Currently translated at 56.4% (5662 of 10037 strings)
2020-03-15 14:14:16 +01:00
Alessandro Perlo
7b4fb14256 Translated using Weblate (Italian)
Currently translated at 89.9% (9027 of 10037 strings)
2020-03-15 14:14:11 +01:00
Daniel Stasiak
c74b820bb0 Translated using Weblate (Polish)
Currently translated at 100.0% (10037 of 10037 strings)
2020-03-15 14:14:07 +01:00
Gonk
ca125e87d3 Merge branch 'questsort' into nut_test_brimhaven 2020-03-10 20:58:39 +01:00
Gonk
cd3e50b34a Backward compatible code 2020-03-10 20:57:00 +01:00
김현수
650b34b6db Translated using Weblate (Korean)
Currently translated at 7.6% (767 of 10037 strings)
2020-03-10 11:33:07 +01:00
Alessandro Perlo
155717aca3 Translated using Weblate (Italian)
Currently translated at 89.9% (9033 of 10037 strings)
2020-03-10 11:33:04 +01:00
Daniel Stasiak
15c51a83e1 Translated using Weblate (Polish)
Currently translated at 97.4% (9786 of 10037 strings)
2020-03-10 11:32:59 +01:00
NELOK
4ee8df05e2 Translated using Weblate (Greek)
Currently translated at 100.0% (556 of 556 strings)
2020-03-10 11:32:57 +01:00
anonymous
1e9afd1dc9 Translated using Weblate (Greek)
Currently translated at 100.0% (556 of 556 strings)
2020-03-09 11:31:02 +01:00
NELOK
59334a4f41 Translated using Weblate (Greek)
Currently translated at 100.0% (556 of 556 strings)
2020-03-09 11:31:02 +01:00
anonymous
9bc49f1697 Translated using Weblate (Greek)
Currently translated at 100.0% (556 of 556 strings)
2020-03-09 11:29:23 +01:00
NELOK
ac1cbf708a Translated using Weblate (Greek)
Currently translated at 100.0% (556 of 556 strings)
2020-03-09 11:29:23 +01:00
anonymous
a362c34ae8 Translated using Weblate (Greek)
Currently translated at 100.0% (556 of 556 strings)
2020-03-09 11:26:28 +01:00
NELOK
a5de1c4ba2 Translated using Weblate (Greek)
Currently translated at 100.0% (556 of 556 strings)
2020-03-09 11:26:27 +01:00
anonymous
4dfcc844cf Translated using Weblate (Greek)
Currently translated at 86.5% (481 of 556 strings)
2020-03-09 10:28:01 +01:00
NELOK
bfd53275a1 Translated using Weblate (Greek)
Currently translated at 86.5% (481 of 556 strings)
2020-03-09 10:28:01 +01:00
anonymous
317a5c7aff Translated using Weblate (Greek)
Currently translated at 86.3% (480 of 556 strings)
2020-03-09 10:27:23 +01:00
NELOK
26a45f5ea2 Translated using Weblate (Greek)
Currently translated at 86.3% (480 of 556 strings)
2020-03-09 10:27:22 +01:00
anonymous
529565fb55 Translated using Weblate (Greek)
Currently translated at 86.1% (479 of 556 strings)
2020-03-09 10:26:38 +01:00
NELOK
e18f75c486 Translated using Weblate (Greek)
Currently translated at 86.1% (479 of 556 strings)
2020-03-09 10:26:38 +01:00
anonymous
08cbb638b2 Translated using Weblate (Greek)
Currently translated at 85.9% (478 of 556 strings)
2020-03-09 10:25:52 +01:00
NELOK
92aed5c1a8 Translated using Weblate (Greek)
Currently translated at 85.9% (478 of 556 strings)
2020-03-09 10:25:48 +01:00
anonymous
dbe3ce8edb Translated using Weblate (Greek)
Currently translated at 85.7% (477 of 556 strings)
2020-03-09 10:23:38 +01:00
NELOK
9f3485d143 Translated using Weblate (Greek)
Currently translated at 85.7% (477 of 556 strings)
2020-03-09 10:23:38 +01:00
anonymous
53750eb660 Translated using Weblate (Greek)
Currently translated at 85.6% (476 of 556 strings)
2020-03-09 10:22:15 +01:00
NELOK
e5196f3ab5 Translated using Weblate (Greek)
Currently translated at 85.6% (476 of 556 strings)
2020-03-09 10:22:15 +01:00
anonymous
e6e384e53d Translated using Weblate (Greek)
Currently translated at 85.4% (475 of 556 strings)
2020-03-09 10:21:12 +01:00
NELOK
c60664bc43 Translated using Weblate (Greek)
Currently translated at 85.4% (475 of 556 strings)
2020-03-09 10:21:12 +01:00
anonymous
4eebc9ef25 Translated using Weblate (Greek)
Currently translated at 83.9% (467 of 556 strings)
2020-03-09 09:48:52 +01:00
Daniel Stasiak
7078b3fa96 Translated using Weblate (Polish)
Currently translated at 97.4% (9782 of 10037 strings)
2020-03-08 10:09:34 +01:00
anonymous
c6faba040c Translated using Weblate (German)
Currently translated at 99.4% (9986 of 10037 strings)
2020-03-08 10:09:31 +01:00
Christian Zink
7af9c30c49 Translated using Weblate (German)
Currently translated at 99.4% (9986 of 10037 strings)
2020-03-08 10:09:31 +01:00
anonymous
841e7a2e85 Translated using Weblate (German)
Currently translated at 99.4% (9984 of 10037 strings)
2020-03-07 19:42:19 +01:00
Christian Zink
9d64074681 Translated using Weblate (German)
Currently translated at 99.4% (9984 of 10037 strings)
2020-03-07 19:42:17 +01:00
anonymous
a55c9e61fc Translated using Weblate (German)
Currently translated at 99.2% (9961 of 10037 strings)
2020-03-07 19:34:41 +01:00
Gonk
3d22750a4c Merge branch 'questsort' into nut_test_brimhaven 2020-03-07 14:35:55 +01:00
Gonk
e104ee8e9d adusted fileversion check 2020-03-07 14:34:41 +01:00
Gonk
ff5dbcaff1 Merge branch 'master' into nut_test_brimhaven 2020-03-07 14:30:41 +01:00
Francesco Bisignani
b03b2ff407 Translated using Weblate (Italian)
Currently translated at 89.9% (9033 of 10037 strings)
2020-03-06 23:06:44 +01:00
Alessandro Perlo
f8e1d502bc Translated using Weblate (Italian)
Currently translated at 89.9% (9033 of 10037 strings)
2020-03-06 23:06:43 +01:00
Daniel Stasiak
68ad3bfe4b Translated using Weblate (Polish)
Currently translated at 97.3% (9775 of 10037 strings)
2020-03-06 23:06:40 +01:00
NELOK
ef8836ee4a Translated using Weblate (Greek)
Currently translated at 1.4% (148 of 10036 strings)
2020-03-06 23:06:36 +01:00
anonymous
959120d890 Translated using Weblate (German)
Currently translated at 99.2% (9958 of 10037 strings)
2020-03-06 23:06:29 +01:00
Christian Zink
136dab9515 Translated using Weblate (German)
Currently translated at 99.2% (9958 of 10037 strings)
2020-03-06 23:06:27 +01:00
Alessandro Perlo
88c8773c9b Translated using Weblate (Italian)
Currently translated at 98.9% (550 of 556 strings)
2020-03-06 23:06:24 +01:00
Daniel Stasiak
48cc87ec0b Translated using Weblate (Polish)
Currently translated at 100.0% (556 of 556 strings)
2020-03-06 23:06:23 +01:00
NELOK
b8c12a6800 Translated using Weblate (Greek)
Currently translated at 83.8% (466 of 556 strings)
2020-03-06 23:06:22 +01:00
anonymous
0dcdaaea1f Translated using Weblate (German)
Currently translated at 99.0% (9938 of 10037 strings)
2020-03-06 16:32:37 +01:00
Christian Zink
927316c3c6 Translated using Weblate (German)
Currently translated at 99.0% (9938 of 10037 strings)
2020-03-06 16:32:37 +01:00
anonymous
89a4b76119 Translated using Weblate (German)
Currently translated at 99.0% (9937 of 10037 strings)
2020-03-06 16:32:16 +01:00
anonymous
82576f54cf Translated using Weblate (Greek)
Currently translated at 63.8% (355 of 556 strings)
2020-03-06 13:33:45 +01:00
NELOK
252cd497cf Translated using Weblate (Greek)
Currently translated at 63.8% (355 of 556 strings)
2020-03-06 13:32:58 +01:00
Nut
1bc6cb4bcb Preparation for next version (52) 0.7.10 2020-03-06 00:41:40 +01:00
Nut
47e9340e7f Preparation for next version (52) 0.7.10 2020-03-06 00:31:41 +01:00
anonymous
e7b947c981 Translated using Weblate (Indonesian)
Currently translated at 0.8% (89 of 10037 strings)
2020-03-05 10:57:16 +01:00
mario-boop
f1fdc59f6b Translated using Weblate (Spanish)
Currently translated at 90.7% (9113 of 10037 strings)
2020-03-05 10:33:30 +01:00
Daniel Stasiak
0febe59bae Translated using Weblate (Polish)
Currently translated at 97.0% (9737 of 10037 strings)
2020-03-05 10:33:28 +01:00
Christian Zink
90cf7f04dc Translated using Weblate (German)
Currently translated at 98.9% (9935 of 10037 strings)
2020-03-05 10:33:21 +01:00
Nut Andor
b91d59687a Translated using Weblate (German)
Currently translated at 98.9% (9935 of 10037 strings)
2020-03-05 10:33:13 +01:00
Anderson Guzman Abreu
993209c9c7 Translated using Weblate (Spanish)
Currently translated at 96.0% (534 of 556 strings)
2020-03-05 10:33:04 +01:00
Alessandro Perlo
defccb973f Translated using Weblate (Italian)
Currently translated at 98.9% (550 of 556 strings)
2020-03-04 17:33:03 +01:00
Christian Zink
1dc05d8452 Translated using Weblate (German)
Currently translated at 100.0% (556 of 556 strings)
2020-03-04 17:32:57 +01:00
Daniel Stasiak
b81522ec1e Translated using Weblate (Polish)
Currently translated at 95.6% (9600 of 10037 strings)
2020-03-01 20:58:15 +01:00
Nut Andor
8423e80d3b Translated using Weblate (German)
Currently translated at 96.7% (9715 of 10037 strings)
2020-03-01 20:58:08 +01:00
Gonk
38ce4a9b43 Merge branch 'fixlistenersync' into nut_test_brimhaven 2020-02-29 20:23:52 +01:00
Gonk
c3def649bc synchronized listeners to prevent crashs 2020-02-29 20:22:49 +01:00
Gonk
03584ecf93 Merge branch 'fixtoastcrash' into nut_test_brimhaven 2020-02-29 20:10:16 +01:00
Gonk
207397c325 Canceling an existing and shown toast on P and up should prevent app crashes 2020-02-29 19:36:48 +01:00
김현수
c06c8a34da Translated using Weblate (Korean)
Currently translated at 7.5% (753 of 10037 strings)
2020-02-29 01:35:36 +01:00
Sekhmet
67cfdbaa9d Translated using Weblate (French)
Currently translated at 56.0% (5629 of 10037 strings)
2020-02-29 01:35:23 +01:00
Daniel Stasiak
a568526523 Translated using Weblate (Polish)
Currently translated at 94.6% (9499 of 10037 strings)
2020-02-29 01:34:35 +01:00
Christian Zink
73ab6a3ab4 Translated using Weblate (German)
Currently translated at 96.7% (9715 of 10037 strings)
2020-02-29 01:34:08 +01:00
Daniel Stasiak
7fa9b3af45 Translated using Weblate (Polish)
Currently translated at 100.0% (556 of 556 strings)
2020-02-29 01:33:55 +01:00
Nut
b4dc5c9b1a Merge remote-tracking branch 'github.AndorsTrailRelease/master' 2020-02-28 00:41:23 +01:00
Nut
1c79196674 Merge remote-tracking branch 'github.AndorsTrailRelease/master' 2020-02-25 23:50:18 +01:00
Nut
943c4d4847 Merge Burhczyd 2020-02-25 23:07:02 +01:00
Gonk
0f5cdea3c6 Merge branch 'fixcurrentmapracecondition' into nut_test_brimhaven 2020-02-25 23:02:42 +01:00
Gonk
6935c26650 The different parts of the currently active map are now switched in one step. This should avoid a lot of dumps from race conditions.
Highly experimental!
2020-02-25 23:01:19 +01:00
Nut
66fb9c028c Building v079 2020-02-25 00:41:57 +01:00
Nut
ee4b038083 Merge pull request #34 from AndorsTrailRelease/master
tmp version for compile v079
2020-02-25 00:31:33 +01:00
Gonk
6be02aae36 Refactoring to make the code more readable 2020-02-23 22:10:36 +01:00
Gonk
f66451f3e6 Merge branch 'spawnidcheck' into nut_test_brimhaven 2020-02-22 20:50:04 +01:00
Gonk
6c61910bb1 Merge branch 'fixmonsterdifficulty' into nut_test_brimhaven
# Conflicts:
#	AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/CombatControllerTest.java.txt
2020-02-22 20:47:24 +01:00
Gonk
ca833b3803 Renamed the unittest file so it can be checked in without requiering the unittest libs when building 2020-02-22 20:45:07 +01:00
Gonk
f88fcbf5b4 First untested draft to sort quests by date started 2020-02-22 20:29:08 +01:00
Gonk
9b57ae21d3 Added validatedata for dupliacte spawn areas 2020-02-22 20:21:03 +01:00
Gonk
b03905c1f9 Merge branch 'nut_v079' into nut_test_brimhaven 2020-02-22 18:57:34 +01:00
Gonk
0d8fb12334 Adding display scaling factor 0.75 2020-02-22 18:48:29 +01:00
Nut
a4f12e4102 Revert "A couple of additional sprites"
This reverts commit 9d5132f282.
2020-02-22 11:56:26 +01:00
Gonk
48c64f32db Merge branch 'nut_v079' into nut_test_brimhaven 2020-02-22 08:34:59 +01:00
Gonk
74fa25c2b6 Changed the woodcutter's axe stats in AT to prevent the itemlist_weapons.json from beeing overwritten by ATCS 2020-02-20 21:38:18 +01:00
Gonk
ff468dadc0 Adding display scaling factor 0.5 as workaround for bug https://github.com/NutAndor/v079/issues/3 2020-02-20 21:08:22 +01:00
Gonk
b90cb991ce Merge branch 'languageselection' into nut_test_brimhaven 2020-02-16 21:47:30 +01:00
Gonk
687d1ed22c setNonWeaponDamageModifier , 2020-02-16 21:40:08 +01:00
Nut
d93a0eab6a setNonWeaponDamageModifier , 2020-02-16 13:29:37 +01:00
Rijackson
9d5132f282 A couple of additional sprites 2020-02-14 16:13:21 -05:00
Gonk
46b3135e81 Merge branch 'test_brimhaven' of https://github.com/NutAndor/andors-trail into nut_test_brimhaven 2020-02-11 00:25:02 +01:00
Gonk
bbb1bd6e11 Removed testclass until I found out how to add the lib reference to git 2020-02-11 00:24:15 +01:00
Nut
9717a062c3 Set debugMessages on 2020-02-10 23:04:46 +01:00
Gonk
fb64073961 Added more damage modifiers 2020-02-10 22:51:20 +01:00
Gonk
8341210381 Added damage modifiers for all existing weapons 2020-02-10 22:31:16 +01:00
Gonk
900fc6caa0 Merge branch 'test_brimhaven' of https://github.com/NutAndor/andors-trail into nut_test_brimhaven 2020-02-10 22:24:40 +01:00
Gonk
e5389a2b26 Merge branch 'fixmonsterdifficulty' into nut_test_brimhaven 2020-02-10 22:18:43 +01:00
Nut
27367518ea new version 51 2020-02-08 10:31:52 +01:00
Nut
e48a6da936 new version 0.7.9dev(50) 2020-02-05 00:09:39 +01:00
Gonk
d9b8683e59 Added a unit test which helped to find a parantheses bug 2020-02-02 20:00:07 +01:00
Gonk
08e6f1be27 some typos and a missing floor 2020-02-02 18:09:22 +01:00
Gonk
92073d8a52 First draft of the adjusted monster difficulty calculation
See https://andorstrail.com/viewtopic.php?f=3&t=6661
2020-02-01 00:29:10 +01:00
Gonk
d4b385e4fc Copied the en-US metadata from the play store; adjusted title and short description for en-UK 2020-01-26 19:26:26 +01:00
Gonk
645cee3a3d Template for storing the playstore metadata in the soruces
compatible to the triple t gradle plugin
2020-01-25 21:42:21 +01:00
Gonk
dc5db4e1e6 Added the giant_basilisk icon 2020-01-25 20:58:55 +01:00
Gonk
98646055d2 Merge branch 'rebalancing' into nut_test_brimhaven
rebalancing code (content will be placed in an ATCS project)
2020-01-21 21:50:58 +01:00
Gonk
0b2c21a4cc Merge branch 'explainpermission' into nut_test_brimhaven 2020-01-20 23:00:31 +01:00
Gonk
d6d8128fcf Merge branch 'conversationcloseonclickoutsideprevention' into nut_test_brimhaven 2020-01-20 22:58:48 +01:00
Gonk
c51ab49864 Merge branch 'questsortorder' into nut_test_brimhaven 2020-01-20 22:57:43 +01:00
Gonk
31d272dd0e Merge branch 'wearremove_requirement' into nut_test_brimhaven 2020-01-20 22:55:54 +01:00
Gonk
111a30a7b5 Merge remote-tracking branch 'origin/patch-1' into nut_test_brimhaven 2020-01-20 22:48:01 +01:00
Gonk
191a24c933 Merge branch 'development' into nut_test_brimhaven 2020-01-20 22:45:39 +01:00
Gonk
bf3abaa7b0 Typo 2020-01-20 22:29:30 +01:00
Nut
daaa6bd515 Merge pull request #32 from NutAndor/master
v078
2020-01-19 16:13:20 +01:00
Chriz76
32e58a7133 Corrected wiki link 2020-01-12 12:10:35 +01:00
Gonk
708deec0d1 Renamed quest filtering options 2020-01-05 23:13:09 +01:00
Gonk
883e46c115 a click outside of a conversation does no longer close the dialogue 2020-01-05 22:53:06 +01:00
Gonk
ea1667b59c first untested draft of sorting quests by name 2020-01-05 22:22:43 +01:00
Gonk
55fdce83c3 typo 2020-01-04 20:38:00 +01:00
Gonk
44a145be77 First draft 2019-12-30 22:18:14 +01:00
Gonk
346bc2730e typo 2019-12-26 21:18:02 +01:00
Gonk
8daf7ca144 first and untested draft of the damage rebalancing
uses a damage modifier for each weapon
the modifier is only applied to non-weapon damage
added default modifiers to existing weapons based on their AC and adjusted fot 8+ weapons based on an edjucated guess (when the appear in the game, etc)
2019-12-23 23:24:44 +01:00
Gonk
3d00ae6544 wearRemove requirement
wear and wearRemove behave similar and wear now also requires the value property.
adjusted dialogues with missing value property
2019-11-11 22:20:09 +01:00
Nut
ec1bf44d9c changed png 2019-08-23 03:10:04 +02:00
Nut
bfd833b24c Merge pull request #20 from NutAndor/master
sync with zukero
2019-06-05 20:50:29 +02:00
Nut
83165cfede Target 2019-04-20 10:57:37 +02:00
Nut
6d1e7b3001 Target for brimhaven compile by ATCS 2019-04-20 10:47:13 +02:00
1824 changed files with 3688723 additions and 146606 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/AndorsTrail/.idea/workspace.xml

14
.travis.yml Normal file
View File

@@ -0,0 +1,14 @@
dist: bionic
sudo: required
cache:
directories:
- $HOME/pbuilder-bases
matrix:
include:
- env: TARGET_OS=stretch
before_install:
- "$TRAVIS_BUILD_DIR/travis/$TRAVIS_OS_NAME.$TARGET_OS.before_install"
install:
- "$TRAVIS_BUILD_DIR/travis/$TRAVIS_OS_NAME.$TARGET_OS.install"
script:
- "$TRAVIS_BUILD_DIR/travis/$TRAVIS_OS_NAME.$TARGET_OS.script"

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>

View File

@@ -1,8 +1,13 @@
# Android ignores
gen/
bin/
target/
local.properties
app/build/intermediates/
build/
debug/
beta/
release/
.gradle/
#IntelliJ
.idea/
@@ -14,3 +19,37 @@ out/test/
# Other
.metadata
.svn/
#copied from https://github.com/github/gitignore/blob/main/Gradle.gitignore
.gradle
**/build/
!src/**/build/
# Ignore Gradle GUI config
gradle-app.setting
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar
# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties
# Cache of project
.gradletasknamecache
# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath
#copied from https://github.com/github/gitignore/blob/main/Gradle.gitignore
/AndorsTrail/.gradle
/AndorsTrail/gradle/wrapper
/AndorsTrail/app/build/
/AndorsTrail/app/debug/
/AndorsTrail/app/beta/
/AndorsTrail/app/release/
/AndorsTrail/app/beta/

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>AndorsTrail</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@@ -1,36 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="EclipseModuleManager" forced_jdk="true">
<conelement value="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK" />
<conelement value="com.android.ide.eclipse.adt.LIBRARIES" />
<src_description expected_position="1">
<src_folder value="file://$MODULE_DIR$/src" expected_position="0" />
<src_folder value="file://$MODULE_DIR$/gen" expected_position="1" />
</src_description>
</component>
<component name="FacetManager">
<facet type="android" name="Android">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/bin/classes" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/libs/android-support-v4.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>

View File

@@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gpl.rpg.AndorsTrail"
android:versionCode="51"
android:versionName="0.7.9"
android:installLocation="auto"
>
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="28"
/>
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"
/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name=".AndorsTrailApplication"
android:label="@string/app_name"
android:icon="@drawable/icon"
android:description="@string/app_description"
android:allowBackup="true"
android:theme="@style/AndorsTrailTheme_Blue"
>
<activity
android:name=".activity.StartScreenActivity"
android:clearTaskOnLaunch="true"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.MainActivity"
android:label="@string/app_name"
android:theme="@style/AndorsTrailTheme_Blue.NoBackground"
/>
<activity android:name=".activity.HeroinfoActivity" />
<activity android:name=".activity.MonsterInfoActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name=".activity.ItemInfoActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name=".activity.LevelUpActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name=".activity.MonsterEncounterActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name=".activity.ConversationActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name=".activity.ShopActivity" />
<activity android:name=".activity.AboutActivity" />
<activity android:name=".activity.LoadingActivity" />
<activity android:name=".activity.Preferences" />
<activity android:name=".activity.LoadSaveActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name=".activity.ActorConditionInfoActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name=".activity.BulkSelectionInterface" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name=".activity.SkillInfoActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name=".activity.DisplayWorldMapActivity" />
</application>
</manifest>

View File

@@ -0,0 +1,91 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 35
defaultConfig {
applicationId "com.gpl.rpg.AndorsTrail"
minSdkVersion 14
targetSdkVersion 35
}
buildTypes {
release {
manifestPlaceholders icon_name: 'icon', fileproviderPath: 'AndorsTrail'
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
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'
sourceSets {
main {
res.srcDirs = ['build/gen-res', 'src/main/res']
assets.srcDirs = ['build/gen-assets', 'src/main/assets']
}
}
}
dependencies {
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
}
task copyRes(type: Copy) {
description "Copies the res folder to the modules res folder (& renames .tmx to .xml)"
from "${rootDir}/res"
into "${projectDir}/build/gen-res"
rename "(.*)\\.tmx", "\$1.xml"
}
task copyResValuesIn(type: Copy) {
description "Exception Indonesian language code (Old IN was renamed to now ID)"
from "${rootDir}/res/values-id/"
into "${projectDir}/build/gen-res/values-in/"
}
task copyTranslation(type: Copy) {
description("Copies the translation files to the modules translations folder")
from "${rootDir}/assets/translation"
into "${projectDir}/build/gen-assets/translation"
}
task cleanup(type: Delete) {
description("Deletes the assets/translation and the res folder from the modules folder")
delete "${projectDir}/build/gen-res", "${projectDir}/build/gen-assets/translation"
}
afterEvaluate {
project.tasks.copyRes.dependsOn project.tasks.copyResValuesIn
mapReleaseSourceSetPaths.dependsOn project.tasks.copyRes
generateReleaseResources.dependsOn project.tasks.copyRes
generateDebugResources.dependsOn project.tasks.copyRes
mapDebugSourceSetPaths.dependsOn project.tasks.copyRes
mergeDebugResources.dependsOn project.tasks.copyRes
extractDeepLinksDebug.dependsOn project.tasks.copyRes
mergeReleaseResources.dependsOn project.tasks.copyRes
extractDeepLinksRelease.dependsOn project.tasks.copyRes
generateDebugResources.dependsOn project.tasks.copyTranslation
mapDebugSourceSetPaths.dependsOn project.tasks.copyTranslation
mergeDebugAssets.dependsOn project.tasks.copyTranslation
mergeReleaseAssets.dependsOn project.tasks.copyTranslation
extractDeepLinksDebug.dependsOn project.tasks.copyTranslation
extractDeepLinksRelease.dependsOn project.tasks.copyTranslation
clean.dependsOn project.tasks.cleanup
}

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="utf-8"?>
<lint>
<issue id="MissingTranslation" severity="ignore" />
<issue id="TypographyDashes" severity="ignore" />

View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gpl.rpg.AndorsTrail"
android:versionCode="82"
android:versionName="0.8.15"
android:installLocation="auto"
>
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"
/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name="com.gpl.rpg.AndorsTrail.AndorsTrailApplication"
android:label="@string/app_name"
android:icon="@drawable/${icon_name}"
android:description="@string/app_description"
android:allowBackup="true"
android:theme="@style/AndorsTrailTheme_Blue"
android:requestLegacyExternalStorage="true"
android:hasFragileUserData="true"
android:preserveLegacyExternalStorage="true"
>
<activity
android:exported="true"
android:name="com.gpl.rpg.AndorsTrail.activity.StartScreenActivity"
android:clearTaskOnLaunch="true"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.gpl.rpg.AndorsTrail.activity.MainActivity"
android:label="@string/app_name"
android:theme="@style/AndorsTrailTheme_Blue.NoBackground"
/>
<activity android:name="com.gpl.rpg.AndorsTrail.activity.HeroinfoActivity" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.MonsterInfoActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.ItemInfoActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.LevelUpActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.MonsterEncounterActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.ConversationActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.ShopActivity" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.AboutActivity" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.LoadingActivity" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.Preferences" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.LoadSaveActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.ActorConditionInfoActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.BulkSelectionInterface" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.SkillInfoActivity" android:theme="@style/AndorsTrailDialogTheme_Blue" />
<activity android:name="com.gpl.rpg.AndorsTrail.activity.DisplayWorldMapActivity" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/fileprovider" />
</provider>
</application>
</manifest>

View File

@@ -1,171 +1,225 @@
package com.gpl.rpg.AndorsTrail;
import java.io.File;
import java.io.IOException;
import java.util.Locale;
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.Pair;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Environment;
import android.view.Window;
import android.view.WindowManager;
public final class AndorsTrailApplication extends Application {
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_FASTSPEED = false;
public static final boolean DEVELOPMENT_VALIDATEDATA = false;
public static final boolean DEVELOPMENT_DEBUGMESSAGES = false;
public static final boolean DEVELOPMENT_INCOMPATIBLE_SAVEGAMES = DEVELOPMENT_DEBUGRESOURCES || DEVELOPMENT_DEBUGBUTTONS || DEVELOPMENT_FASTSPEED;
public static final int DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION = 999;
public static final int CURRENT_VERSION = DEVELOPMENT_INCOMPATIBLE_SAVEGAMES ? DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION : 51;
public static final String CURRENT_VERSION_DISPLAY = "0.7.9";
public static final boolean IS_RELEASE_VERSION = !CURRENT_VERSION_DISPLAY.matches(".*[a-d].*");
private final AndorsTrailPreferences preferences = new AndorsTrailPreferences();
private WorldContext world = new WorldContext();
private ControllerContext controllers = new ControllerContext(this, world);
private WorldSetup setup = new WorldSetup(world, controllers, this);
public WorldContext getWorld() { return world; }
public WorldSetup getWorldSetup() { return setup; }
public AndorsTrailPreferences getPreferences() { return preferences; }
public ControllerContext getControllerContext() { return controllers; }
public static AndorsTrailApplication getApplicationFromActivity(Activity activity) {
return ((AndorsTrailApplication) activity.getApplication());
}
public static AndorsTrailApplication getApplicationFromActivityContext(Context context) {
return getApplicationFromActivity(getActivityFromActivityContext(context));
}
private static Activity getActivityFromActivityContext(Context context) {
return (Activity) context;
}
public boolean isInitialized() { return world.model != null; }
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);
} else {
activity.getWindow().setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
//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();
private Pair<String, Locale> lastLocale = null;
public boolean setLocale(Activity context) {
Resources res = context.getResources();
Configuration conf = res.getConfiguration();
Locale targetLocale;
if (lastLocale != null && lastLocale.first == preferences.language) {
targetLocale = lastLocale.second;
} else {
targetLocale = localeForLanguageTag(preferences.language);
lastLocale = new Pair<String, Locale>(preferences.language, targetLocale);
}
if (targetLocale.equals(conf.locale)) {
return false;
}
conf.locale = targetLocale;
res.updateConfiguration(conf, res.getDisplayMetrics());
this.getResources().updateConfiguration(conf, res.getDisplayMetrics());
return true;
}
// Supports language or language_COUNTRY in short form e.g. "en" or "en_US"
private Locale localeForLanguageTag(String languageTag) {
Locale locale = null;
if (languageTag != null && !languageTag.equalsIgnoreCase("default")) {
final int pos = languageTag.indexOf('-');
if (pos == -1) {
locale = new Locale(languageTag);
}
else locale = new Locale(languageTag.substring(0, pos), languageTag.substring(pos+1));
}
if (locale == null) {
locale = defaultLocale;
}
return locale;
}
/**
* Logging to text file system as found on https://stackoverflow.com/questions/19565685/saving-logcat-to-a-text-file-in-android-device
*/
public void onCreate() {
super.onCreate();
if ( DEVELOPMENT_DEBUGMESSAGES && isExternalStorageWritable() ) {
File root = Environment.getExternalStorageDirectory();
File appDirectory = new File(root, Constants.FILENAME_SAVEGAME_DIRECTORY);
File logDirectory = new File( appDirectory, "log" );
File logFile = new File( logDirectory, "logcat" + System.currentTimeMillis() + ".txt" );
// create app folder
if ( !appDirectory.exists() ) {
appDirectory.mkdir();
}
// create log folder
if ( !logDirectory.exists() ) {
logDirectory.mkdir();
}
// clear the previous logcat and then write the new one to the file
try {
Process process = Runtime.getRuntime().exec("logcat -c");
process = Runtime.getRuntime().exec("logcat -f " + logFile+" *:W");
} catch ( IOException e ) {
e.printStackTrace();
}
}
}
/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if ( Environment.MEDIA_MOUNTED.equals( state ) ) {
return true;
}
return false;
}
/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
String state = Environment.getExternalStorageState();
if ( Environment.MEDIA_MOUNTED.equals( state ) ||
Environment.MEDIA_MOUNTED_READ_ONLY.equals( state ) ) {
return true;
}
return false;
}
public void discardWorld() {
world = new WorldContext();
controllers = new ControllerContext(this, world);
setup = new WorldSetup(world, controllers, getApplicationContext());
}
}
package com.gpl.rpg.AndorsTrail;
import java.io.File;
import java.io.IOException;
import java.util.Locale;
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 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 = IS_DEV_VERSION;
public static final boolean DEVELOPMENT_FASTSPEED = false;
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 : BuildConfig.VERSION_CODE;
private final AndorsTrailPreferences preferences = new AndorsTrailPreferences();
private WorldContext world = new WorldContext();
private ControllerContext controllers = new ControllerContext(this, world);
private WorldSetup setup = new WorldSetup(world, controllers, this);
public WorldContext getWorld() { return world; }
public WorldSetup getWorldSetup() { return setup; }
public AndorsTrailPreferences getPreferences() { return preferences; }
public ControllerContext getControllerContext() { return controllers; }
public static AndorsTrailApplication getApplicationFromActivity(Activity activity) {
return ((AndorsTrailApplication) activity.getApplication());
}
public static AndorsTrailApplication getApplicationFromActivityContext(Context context) {
return getApplicationFromActivity(getActivityFromActivityContext(context));
}
private static Activity getActivityFromActivityContext(Context context) {
return (Activity) context;
}
public boolean isInitialized() { return world.model != null; }
public void setWindowParameters(Activity activity) {
activity.requestWindowFeature(Window.FEATURE_NO_TITLE);
}
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 {
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();
private Pair<String, Locale> lastLocale = null;
public boolean setLocale(Activity context) {
Resources res = context.getResources();
Configuration conf = res.getConfiguration();
Locale targetLocale;
if (lastLocale != null && lastLocale.first == preferences.language) {
targetLocale = lastLocale.second;
} else {
targetLocale = localeForLanguageTag(preferences.language);
lastLocale = new Pair<String, Locale>(preferences.language, targetLocale);
}
if (targetLocale.equals(conf.locale)) {
return false;
}
conf.locale = targetLocale;
res.updateConfiguration(conf, res.getDisplayMetrics());
this.getResources().updateConfiguration(conf, res.getDisplayMetrics());
return true;
}
// Supports language or language_COUNTRY in short form e.g. "en" or "en_US"
private Locale localeForLanguageTag(String languageTag) {
Locale locale = null;
if (languageTag != null && !languageTag.equalsIgnoreCase("default")) {
final int pos = languageTag.indexOf('-');
if (pos == -1) {
locale = new Locale(languageTag);
}
else locale = new Locale(languageTag.substring(0, pos), languageTag.substring(pos+1));
}
if (locale == null) {
locale = defaultLocale;
}
return locale;
}
/**
* Logging to text file system as found on https://stackoverflow.com/questions/19565685/saving-logcat-to-a-text-file-in-android-device
*/
public void onCreate() {
super.onCreate();
if ( DEVELOPMENT_DEBUGMESSAGES && isExternalStorageWritable() ) {
File appDirectory = AndroidStorage.getStorageDirectory(getApplicationContext(), Constants.FILENAME_SAVEGAME_DIRECTORY);
File logDirectory = new File( appDirectory, "log" );
File logFile = new File( logDirectory, "logcat" + System.currentTimeMillis() + ".txt" );
// create app folder
if ( !appDirectory.exists() ) {
appDirectory.mkdir();
}
// create log folder
if ( !logDirectory.exists() ) {
logDirectory.mkdir();
}
// clear the previous logcat and then write the new one to the file
try {
Process process = Runtime.getRuntime().exec("logcat -c");
process = Runtime.getRuntime().exec("logcat -f " + logFile+" *:W");
} catch ( IOException e ) {
e.printStackTrace();
}
}
}
/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if ( Environment.MEDIA_MOUNTED.equals( state ) ) {
return true;
}
return false;
}
/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
String state = Environment.getExternalStorageState();
if ( Environment.MEDIA_MOUNTED.equals( state ) ||
Environment.MEDIA_MOUNTED_READ_ONLY.equals( state ) ) {
return true;
}
return false;
}
public void discardWorld() {
world = new WorldContext();
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

@@ -1,106 +1,112 @@
package com.gpl.rpg.AndorsTrail;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
public final class AndorsTrailPreferences {
public static final int DISPLAYLOOT_DIALOG_ALWAYS = 0;
public static final int DISPLAYLOOT_DIALOG_FOR_ITEMS = 3;
public static final int DISPLAYLOOT_DIALOG_FOR_ITEMS_ELSE_TOAST = 4;
public static final int DISPLAYLOOT_TOAST = 1;
public static final int DISPLAYLOOT_TOAST_FOR_ITEMS = 5;
public static final int DISPLAYLOOT_NONE = 2;
public static final int MOVEMENTMETHOD_STRAIGHT = 0;
public static final int MOVEMENTMETHOD_DIRECTIONAL = 1;
public static final int MOVEMENTAGGRESSIVENESS_NORMAL = 0;
public static final int MOVEMENTAGGRESSIVENESS_AGGRESSIVE = 1;
public static final int MOVEMENTAGGRESSIVENESS_DEFENSIVE = 2;
public static final int DPAD_POSITION_DISABLED = 0;
public static final int DPAD_POSITION_LOWER_RIGHT = 1;
public static final int DPAD_POSITION_LOWER_LEFT = 2;
public static final int DPAD_POSITION_LOWER_CENTER = 3;
public static final int DPAD_POSITION_CENTER_LEFT = 4;
public static final int DPAD_POSITION_CENTER_RIGHT = 5;
public static final int DPAD_POSITION_UPPER_LEFT = 6;
public static final int DPAD_POSITION_UPPER_RIGHT = 7;
public static final int DPAD_POSITION_UPPER_CENTER = 8;
public static final int CONFIRM_OVERWRITE_SAVEGAME_ALWAYS = 0;
public static final int CONFIRM_OVERWRITE_SAVEGAME_WHEN_PLAYERNAME_DIFFERS = 1;
public static final int CONFIRM_OVERWRITE_SAVEGAME_NEVER = 2;
public static final int QUICKSLOTS_POSITION_HORIZONTAL_CENTER_BOTTOM = 0;
public static final int QUICKSLOTS_POSITION_VERTICAL_CENTER_LEFT = 1;
public static final int QUICKSLOTS_POSITION_VERTICAL_CENTER_RIGHT = 2;
public static final int QUICKSLOTS_POSITION_VERTICAL_BOTTOM_LEFT = 3;
public static final int QUICKSLOTS_POSITION_HORIZONTAL_BOTTOM_LEFT = 4;
public static final int QUICKSLOTS_POSITION_HORIZONTAL_BOTTOM_RIGHT = 5;
public static final int QUICKSLOTS_POSITION_VERTICAL_BOTTOM_RIGHT = 6;
public static final int ATTACKSPEED_DEFAULT_MILLISECONDS = 1000;
public boolean confirmRest = true;
public boolean confirmAttack = true;
public int displayLoot = DISPLAYLOOT_DIALOG_ALWAYS;
public boolean fullscreen = true;
public int attackspeed_milliseconds = 1000;
public int movementMethod = MOVEMENTMETHOD_STRAIGHT;
public int movementAggressiveness = MOVEMENTAGGRESSIVENESS_NORMAL;
public float scalingFactor = 1.0f;
public int dpadPosition;
public boolean dpadMinimizeable = true;
public boolean optimizedDrawing = false;
public boolean highQualityFilters = true;
public boolean enableUiAnimations = true;
public int displayOverwriteSavegame = CONFIRM_OVERWRITE_SAVEGAME_ALWAYS;
public int quickslotsPosition = QUICKSLOTS_POSITION_HORIZONTAL_CENTER_BOTTOM;
public boolean showQuickslotsWhenToolboxIsVisible = false;
public String language = "default";
public int selectedTheme = 0;
public void read(final Context androidContext) {
AndorsTrailPreferences dest = this;
try {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(androidContext);
dest.confirmRest = prefs.getBoolean("confirm_rest", true);
dest.confirmAttack = prefs.getBoolean("confirm_attack", true);
dest.displayLoot = Integer.parseInt(prefs.getString("display_lootdialog", Integer.toString(DISPLAYLOOT_DIALOG_ALWAYS)));
dest.fullscreen = prefs.getBoolean("fullscreen", true);
dest.attackspeed_milliseconds = Integer.parseInt(prefs.getString("attackspeed", "1000"));
dest.movementMethod = Integer.parseInt(prefs.getString("movementmethod", Integer.toString(MOVEMENTMETHOD_STRAIGHT)));
dest.scalingFactor = Float.parseFloat(prefs.getString("scaling_factor", "1.0f"));
dest.dpadPosition = Integer.parseInt(prefs.getString("dpadposition", Integer.toString(DPAD_POSITION_DISABLED)));
dest.dpadMinimizeable = prefs.getBoolean("dpadMinimizeable", true);
dest.optimizedDrawing = prefs.getBoolean("optimized_drawing", false);
dest.highQualityFilters = prefs.getBoolean("high_quality_filters", true);
dest.enableUiAnimations = prefs.getBoolean("enableUiAnimations", true);
dest.displayOverwriteSavegame = Integer.parseInt(prefs.getString("display_overwrite_savegame", Integer.toString(CONFIRM_OVERWRITE_SAVEGAME_ALWAYS)));
dest.quickslotsPosition = Integer.parseInt(prefs.getString("quickslots_placement", Integer.toString(QUICKSLOTS_POSITION_HORIZONTAL_CENTER_BOTTOM)));
dest.showQuickslotsWhenToolboxIsVisible = prefs.getBoolean("showQuickslotsWhenToolboxIsVisible", false);
dest.language = prefs.getString("language", "default");
dest.selectedTheme = Integer.parseInt(prefs.getString("selectedTheme", Integer.toString(0)));
// This might be implemented as a skill in the future.
//dest.movementAggressiveness = Integer.parseInt(prefs.getString("movementaggressiveness", Integer.toString(MOVEMENTAGGRESSIVENESS_NORMAL)));
} catch (Exception e) {
dest.confirmRest = true;
dest.confirmAttack = true;
dest.displayLoot = DISPLAYLOOT_DIALOG_ALWAYS;
dest.fullscreen = true;
dest.attackspeed_milliseconds = 1000;
dest.movementMethod = MOVEMENTMETHOD_STRAIGHT;
dest.movementAggressiveness = MOVEMENTAGGRESSIVENESS_NORMAL;
dest.scalingFactor = 1.0f;
dest.dpadPosition = DPAD_POSITION_DISABLED;
dest.dpadMinimizeable = true;
dest.optimizedDrawing = false;
dest.highQualityFilters = true;
dest.enableUiAnimations = true;
dest.displayOverwriteSavegame = CONFIRM_OVERWRITE_SAVEGAME_ALWAYS;
dest.quickslotsPosition = QUICKSLOTS_POSITION_HORIZONTAL_CENTER_BOTTOM;
dest.showQuickslotsWhenToolboxIsVisible = false;
dest.language = "default";
dest.selectedTheme = 0;
}
}
}
package com.gpl.rpg.AndorsTrail;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
public final class AndorsTrailPreferences {
public static final int DISPLAYLOOT_DIALOG_ALWAYS = 0;
public static final int DISPLAYLOOT_DIALOG_FOR_ITEMS = 3;
public static final int DISPLAYLOOT_DIALOG_FOR_ITEMS_ELSE_TOAST = 4;
public static final int DISPLAYLOOT_TOAST = 1;
public static final int DISPLAYLOOT_TOAST_FOR_ITEMS = 5;
public static final int DISPLAYLOOT_NONE = 2;
public static final int MOVEMENTMETHOD_STRAIGHT = 0;
public static final int MOVEMENTMETHOD_DIRECTIONAL = 1;
public static final int MOVEMENTAGGRESSIVENESS_NORMAL = 0;
public static final int MOVEMENTAGGRESSIVENESS_AGGRESSIVE = 1;
public static final int MOVEMENTAGGRESSIVENESS_DEFENSIVE = 2;
public static final int DPAD_POSITION_DISABLED = 0;
public static final int DPAD_POSITION_LOWER_RIGHT = 1;
public static final int DPAD_POSITION_LOWER_LEFT = 2;
public static final int DPAD_POSITION_LOWER_CENTER = 3;
public static final int DPAD_POSITION_CENTER_LEFT = 4;
public static final int DPAD_POSITION_CENTER_RIGHT = 5;
public static final int DPAD_POSITION_UPPER_LEFT = 6;
public static final int DPAD_POSITION_UPPER_RIGHT = 7;
public static final int DPAD_POSITION_UPPER_CENTER = 8;
public static final int DPAD_TRANSPARENCY_30_PERCENT = 0;
public static final int DPAD_TRANSPARENCY_40_PERCENT = 1;
public static final int DPAD_TRANSPARENCY_50_PERCENT = 2;
public static final int DPAD_TRANSPARENCY_60_PERCENT = 3;
public static final int DPAD_TRANSPARENCY_70_PERCENT = 4;
public static final int CONFIRM_OVERWRITE_SAVEGAME_ALWAYS = 0;
public static final int CONFIRM_OVERWRITE_SAVEGAME_WHEN_PLAYERNAME_DIFFERS = 1;
public static final int CONFIRM_OVERWRITE_SAVEGAME_NEVER = 2;
public static final int QUICKSLOTS_POSITION_HORIZONTAL_CENTER_BOTTOM = 0;
public static final int QUICKSLOTS_POSITION_VERTICAL_CENTER_LEFT = 1;
public static final int QUICKSLOTS_POSITION_VERTICAL_CENTER_RIGHT = 2;
public static final int QUICKSLOTS_POSITION_VERTICAL_BOTTOM_LEFT = 3;
public static final int QUICKSLOTS_POSITION_HORIZONTAL_BOTTOM_LEFT = 4;
public static final int QUICKSLOTS_POSITION_HORIZONTAL_BOTTOM_RIGHT = 5;
public static final int QUICKSLOTS_POSITION_VERTICAL_BOTTOM_RIGHT = 6;
public static final int ATTACKSPEED_DEFAULT_MILLISECONDS = 1000;
public boolean confirmRest = true;
public boolean confirmAttack = true;
public int displayLoot = DISPLAYLOOT_DIALOG_ALWAYS;
public boolean fullscreen = true;
public int attackspeed_milliseconds = 1000;
public int movementMethod = MOVEMENTMETHOD_STRAIGHT;
public int movementAggressiveness = MOVEMENTAGGRESSIVENESS_NORMAL;
public float scalingFactor = 1.0f;
public int dpadPosition;
public int dpadTransparency;
public boolean dpadMinimizeable = true;
public boolean optimizedDrawing = false;
public boolean highQualityFilters = true;
public boolean enableUiAnimations = true;
public int displayOverwriteSavegame = CONFIRM_OVERWRITE_SAVEGAME_ALWAYS;
public int quickslotsPosition = QUICKSLOTS_POSITION_HORIZONTAL_CENTER_BOTTOM;
public boolean showQuickslotsWhenToolboxIsVisible = false;
public String language = "default";
public int selectedTheme = 0;
public void read(final Context androidContext) {
AndorsTrailPreferences dest = this;
try {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(androidContext);
dest.confirmRest = prefs.getBoolean("confirm_rest", true);
dest.confirmAttack = prefs.getBoolean("confirm_attack", true);
dest.displayLoot = Integer.parseInt(prefs.getString("display_lootdialog", Integer.toString(DISPLAYLOOT_DIALOG_ALWAYS)));
dest.fullscreen = prefs.getBoolean("fullscreen", true);
dest.attackspeed_milliseconds = Integer.parseInt(prefs.getString("attackspeed", "1000"));
dest.movementMethod = Integer.parseInt(prefs.getString("movementmethod", Integer.toString(MOVEMENTMETHOD_STRAIGHT)));
dest.scalingFactor = Float.parseFloat(prefs.getString("scaling_factor", "1.0f"));
dest.dpadPosition = Integer.parseInt(prefs.getString("dpadposition", Integer.toString(DPAD_POSITION_DISABLED)));
dest.dpadTransparency = Integer.parseInt(prefs.getString("dpadtransparency", Integer.toString(DPAD_TRANSPARENCY_50_PERCENT)));
dest.dpadMinimizeable = prefs.getBoolean("dpadMinimizeable", true);
dest.optimizedDrawing = prefs.getBoolean("optimized_drawing", false);
dest.highQualityFilters = prefs.getBoolean("high_quality_filters", false);
dest.enableUiAnimations = prefs.getBoolean("enableUiAnimations", true);
dest.displayOverwriteSavegame = Integer.parseInt(prefs.getString("display_overwrite_savegame", Integer.toString(CONFIRM_OVERWRITE_SAVEGAME_ALWAYS)));
dest.quickslotsPosition = Integer.parseInt(prefs.getString("quickslots_placement", Integer.toString(QUICKSLOTS_POSITION_HORIZONTAL_CENTER_BOTTOM)));
dest.showQuickslotsWhenToolboxIsVisible = prefs.getBoolean("showQuickslotsWhenToolboxIsVisible", false);
dest.language = prefs.getString("language", "default");
dest.selectedTheme = Integer.parseInt(prefs.getString("selectedTheme", Integer.toString(0)));
// This might be implemented as a skill in the future.
//dest.movementAggressiveness = Integer.parseInt(prefs.getString("movementaggressiveness", Integer.toString(MOVEMENTAGGRESSIVENESS_NORMAL)));
} catch (Exception e) {
dest.confirmRest = true;
dest.confirmAttack = true;
dest.displayLoot = DISPLAYLOOT_DIALOG_ALWAYS;
dest.fullscreen = true;
dest.attackspeed_milliseconds = 1000;
dest.movementMethod = MOVEMENTMETHOD_STRAIGHT;
dest.movementAggressiveness = MOVEMENTAGGRESSIVENESS_NORMAL;
dest.scalingFactor = 1.0f;
dest.dpadPosition = DPAD_POSITION_DISABLED;
dest.dpadTransparency = DPAD_TRANSPARENCY_50_PERCENT;
dest.dpadMinimizeable = true;
dest.optimizedDrawing = false;
dest.highQualityFilters = true;
dest.enableUiAnimations = true;
dest.displayOverwriteSavegame = CONFIRM_OVERWRITE_SAVEGAME_ALWAYS;
dest.quickslotsPosition = QUICKSLOTS_POSITION_HORIZONTAL_CENTER_BOTTOM;
dest.showQuickslotsWhenToolboxIsVisible = false;
dest.language = "default";
dest.selectedTheme = 0;
}
}
}

View File

@@ -1,449 +1,467 @@
package com.gpl.rpg.AndorsTrail;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.gpl.rpg.AndorsTrail.activity.ActorConditionInfoActivity;
import com.gpl.rpg.AndorsTrail.activity.BulkSelectionInterface;
import com.gpl.rpg.AndorsTrail.activity.ConversationActivity;
import com.gpl.rpg.AndorsTrail.activity.ItemInfoActivity;
import com.gpl.rpg.AndorsTrail.activity.LevelUpActivity;
import com.gpl.rpg.AndorsTrail.activity.LoadSaveActivity;
import com.gpl.rpg.AndorsTrail.activity.MainActivity;
import com.gpl.rpg.AndorsTrail.activity.MonsterEncounterActivity;
import com.gpl.rpg.AndorsTrail.activity.MonsterInfoActivity;
import com.gpl.rpg.AndorsTrail.activity.SkillInfoActivity;
import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_MainMenu;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionType;
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.item.Inventory;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
import com.gpl.rpg.AndorsTrail.view.ItemContainerAdapter;
public final class Dialogs {
private static void showDialogAndPause(Dialog d, final ControllerContext context) {
showDialogAndPause(d, context, null);
}
private static void showDialogAndPause(Dialog d, final ControllerContext context, final OnDismissListener onDismiss) {
context.gameRoundController.pause();
CustomDialogFactory.setDismissListener(d, new OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
if (onDismiss != null) onDismiss.onDismiss(arg0);
context.gameRoundController.resume();
}
});
CustomDialogFactory.show(d);
}
public static void showKeyArea(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
showConversation(currentActivity, context, phraseID, null);
}
public static void showMapSign(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
showConversation(currentActivity, context, phraseID, null);
}
public static void showMapScriptMessage(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
showConversation(currentActivity, context, phraseID, null, false);
}
public static void showConversation(final MainActivity currentActivity, final ControllerContext context, final String phraseID, final Monster npc) {
showConversation(currentActivity, context, phraseID, npc, true);
}
private static void showConversation(final MainActivity currentActivity, final ControllerContext context, final String phraseID, final Monster npc, boolean applyScriptEffectsForFirstPhrase) {
context.gameRoundController.pause();
Intent intent = new Intent(currentActivity, ConversationActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/conversation/" + phraseID));
intent.putExtra("applyScriptEffectsForFirstPhrase", applyScriptEffectsForFirstPhrase);
addMonsterIdentifiers(intent, npc);
currentActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_CONVERSATION);
}
public static void addMonsterIdentifiers(Intent intent, Monster monster) {
if (monster == null) return;
intent.putExtra("x", monster.position.x);
intent.putExtra("y", monster.position.y);
}
public static void addMonsterIdentifiers(Bundle bundle, Monster monster) {
if (monster == null) return;
bundle.putInt("x", monster.position.x);
bundle.putInt("y", monster.position.y);
}
public static Monster getMonsterFromIntent(Intent intent, final WorldContext world) {
return getMonsterFromBundle(intent.getExtras(), world);
}
public static Monster getMonsterFromBundle(Bundle params, final WorldContext world) {
if (params == null) return null;
if (!params.containsKey("x")) return null;
int x = params.getInt("x");
int y = params.getInt("y");
return world.model.currentMap.getMonsterAt(x, y);
}
public static void showMonsterEncounter(final MainActivity currentActivity, final ControllerContext context, final Monster monster) {
context.gameRoundController.pause();
Intent intent = new Intent(currentActivity, MonsterEncounterActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/monsterencounter"));
addMonsterIdentifiers(intent, monster);
currentActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_MONSTERENCOUNTER);
}
public static void showMonsterInfo(final Context context, final Monster monster) {
Intent intent = new Intent(context, MonsterInfoActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/monsterinfo"));
addMonsterIdentifiers(intent, monster);
context.startActivity(intent);
}
public static String getGroundLootFoundMessage(final Context ctx, final Loot loot) {
StringBuilder sb = new StringBuilder(60);
if (!loot.items.isEmpty()) {
sb.append(ctx.getString(R.string.dialog_groundloot_message));
}
appendGoldPickedUpMessage(ctx, loot, sb);
return sb.toString();
}
public static String getGroundLootPickedUpMessage(final Context ctx, final Loot loot) {
StringBuilder sb = new StringBuilder(60);
appendLootPickedUpMessage(ctx, loot, sb);
return sb.toString();
}
public static String getMonsterLootFoundMessage(final Context ctx, final Loot combinedLoot, final int exp) {
StringBuilder sb = new StringBuilder(60);
appendMonsterEncounterSurvivedMessage(ctx, sb, exp);
appendGoldPickedUpMessage(ctx, combinedLoot, sb);
return sb.toString();
}
public static String getMonsterLootPickedUpMessage(final Context ctx, final Loot combinedLoot, final int exp) {
StringBuilder sb = new StringBuilder(60);
appendMonsterEncounterSurvivedMessage(ctx, sb, exp);
appendLootPickedUpMessage(ctx, combinedLoot, sb);
return sb.toString();
}
private static void appendMonsterEncounterSurvivedMessage(final Context ctx, final StringBuilder sb, final int exp) {
sb.append(ctx.getString(R.string.dialog_monsterloot_message));
if (exp > 0) {
sb.append(' ');
sb.append(ctx.getString(R.string.dialog_monsterloot_gainedexp, exp));
}
}
private static void appendGoldPickedUpMessage(final Context ctx, final Loot loot, final StringBuilder sb) {
if (loot.gold > 0) {
sb.append(' ');
sb.append(ctx.getString(R.string.dialog_loot_foundgold, loot.gold));
}
}
private static void appendLootPickedUpMessage(final Context ctx, final Loot loot, final StringBuilder sb) {
appendGoldPickedUpMessage(ctx, loot, sb);
int numItems = loot.items.countItems();
if (numItems == 1) {
sb.append(' ');
sb.append(ctx.getString(R.string.dialog_loot_pickedupitem));
} else if (numItems > 1){
sb.append(' ');
sb.append(ctx.getString(R.string.dialog_loot_pickedupitems, numItems));
}
}
public static void showMonsterLoot(final MainActivity mainActivity, final ControllerContext controllers, final WorldContext world, final Collection<Loot> lootBags, final Loot combinedLoot, final String msg) {
// CombatController will do killedMonsterBags.clear() after this method has been called,
// so we need to keep the list of objects. Therefore, we create a shallow copy of the list of bags.
ArrayList<Loot> bags = new ArrayList<Loot>(lootBags);
showLoot(mainActivity, controllers, world, combinedLoot, bags, R.string.dialog_monsterloot_title, msg);
}
public static void showGroundLoot(final MainActivity mainActivity, final ControllerContext controllers, final WorldContext world, final Loot loot, final String msg) {
showLoot(mainActivity, controllers, world, loot, Collections.singletonList(loot), R.string.dialog_groundloot_title, msg);
}
private static void showLoot(final MainActivity mainActivity, final ControllerContext controllers, final WorldContext world, final Loot combinedLoot, final Iterable<Loot> lootBags, final int title, final String msg) {
final ListView itemList = new ListView(mainActivity);
itemList.setBackgroundResource(android.R.color.transparent);
itemList.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, ListView.LayoutParams.WRAP_CONTENT));
// itemList.setPadding(20, 0, 20, 20);
itemList.setAdapter(new ItemContainerAdapter(mainActivity, world.tileManager, combinedLoot.items, world.model.player));
final Dialog d = CustomDialogFactory.createDialog(mainActivity,
mainActivity.getResources().getString(title),
mainActivity.getResources().getDrawable(R.drawable.ui_icon_equipment),
msg,
combinedLoot.items.isEmpty() ? null : itemList,
true);
itemList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
final String itemTypeID = ((ItemContainerAdapter) parent.getAdapter()).getItem(position).itemType.id;
boolean removeFromCombinedLoot = true;
for (Loot l : lootBags) {
if (l == combinedLoot) removeFromCombinedLoot = false;
if (l.items.removeItem(itemTypeID)) {
controllers.itemController.removeLootBagIfEmpty(l);
break;
}
}
if (removeFromCombinedLoot) {
combinedLoot.items.removeItem(itemTypeID);
}
if (((ItemContainerAdapter) parent.getAdapter()).isEmpty()) {
ViewGroup vg = (ViewGroup) d.findViewById(R.id.dialog_content_container);
vg.setVisibility(View.GONE);
}
ItemType type = world.itemTypes.getItemType(itemTypeID);
world.model.player.inventory.addItem(type);
((ItemContainerAdapter) itemList.getAdapter()).notifyDataSetChanged();
}
});
if (!itemList.getAdapter().isEmpty()) {
CustomDialogFactory.addButton(d, R.string.dialog_loot_pickall, new View.OnClickListener() {
@Override
public void onClick(View v) {
controllers.itemController.pickupAll(lootBags);
}
});
}
CustomDialogFactory.addDismissButton(d, R.string.dialog_close);
showDialogAndPause(d, controllers, new OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
controllers.itemController.removeLootBagIfEmpty(lootBags);
}
});
}
public static void showHeroDied(final MainActivity mainActivity, final ControllerContext controllers) {
final Dialog d = CustomDialogFactory.createDialog(mainActivity,
mainActivity.getResources().getString(R.string.dialog_game_over_title),
mainActivity.getResources().getDrawable(R.drawable.ui_icon_combat),
mainActivity.getResources().getString(R.string.dialog_game_over_text),
null,
true);
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
showDialogAndPause(d, controllers, new OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
mainActivity.finish();
}
});
}
public static Intent getIntentForItemInfo(final Context ctx, String itemTypeID, ItemInfoActivity.ItemInfoAction actionType, String buttonText, boolean buttonEnabled, Inventory.WearSlot inventorySlot) {
Intent intent = new Intent(ctx, ItemInfoActivity.class);
intent.putExtra("buttonText", buttonText);
intent.putExtra("buttonEnabled", buttonEnabled);
intent.putExtra("moreActions", (actionType == ItemInfoActivity.ItemInfoAction.equip || actionType == ItemInfoActivity.ItemInfoAction.use || actionType == ItemInfoActivity.ItemInfoAction.none));
intent.putExtra("itemTypeID", itemTypeID);
intent.putExtra("actionType", actionType.name());
if (inventorySlot != null) intent.putExtra("inventorySlot", inventorySlot.name());
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/iteminfo/" + itemTypeID));
return intent;
}
public static Intent getIntentForLevelUp(final Context ctx) {
Intent intent = new Intent(ctx, LevelUpActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/levelup"));
return intent;
}
public static void showConfirmRest(final Activity currentActivity, final ControllerContext controllerContext, final MapObject area) {
final Dialog d = CustomDialogFactory.createDialog(currentActivity,
currentActivity.getResources().getString(R.string.dialog_rest_title),
null,
currentActivity.getResources().getString(R.string.dialog_rest_confirm_message),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.yes, new View.OnClickListener() {
@Override
public void onClick(View v) {
controllerContext.mapController.rest(area);
}
});
CustomDialogFactory.addDismissButton(d, android.R.string.no);
showDialogAndPause(d, controllerContext);
}
public static void showRested(final Activity currentActivity, final ControllerContext controllerContext) {
// Dialog d = new AlertDialog.Builder(new ContextThemeWrapper(currentActivity, R.style.AndorsTrailStyle))
// .setTitle(R.string.dialog_rest_title)
// .setMessage(R.string.dialog_rest_message)
// .setNeutralButton(android.R.string.ok, null)
// .create();
final Dialog d = CustomDialogFactory.createDialog(currentActivity,
currentActivity.getResources().getString(R.string.dialog_rest_title),
null,
currentActivity.getResources().getString(R.string.dialog_rest_message),
null,
true);
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
showDialogAndPause(d, controllerContext);
}
public static void showNewVersion(final Activity currentActivity) {
// new AlertDialog.Builder(new ContextThemeWrapper(currentActivity, R.style.AndorsTrailStyle))
// .setTitle(R.string.dialog_newversion_title)
// .setMessage(R.string.dialog_newversion_message)
// .setNeutralButton(android.R.string.ok, null)
// .show();
final Dialog d = CustomDialogFactory.createDialog(currentActivity,
currentActivity.getResources().getString(R.string.dialog_newversion_title),
null,
currentActivity.getResources().getString(R.string.dialog_newversion_message),
null,
true);
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
CustomDialogFactory.show(d);
}
public static boolean showSave(final Activity mainActivity, final ControllerContext controllerContext, final WorldContext world) {
if (world.model.uiSelections.isInCombat) {
Toast.makeText(mainActivity, R.string.menu_save_saving_not_allowed_in_combat, Toast.LENGTH_SHORT).show();
return false;
}
if (!world.model.statistics.hasUnlimitedSaves()) {
final Dialog d = CustomDialogFactory.createDialog(mainActivity,
mainActivity.getResources().getString(R.string.menu_save_switch_character_title),
null,
mainActivity.getResources().getString(R.string.menu_save_switch_character),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.ok, new View.OnClickListener() {
@Override
public void onClick(View v) {
controllerContext.gameRoundController.pause();
Intent intent = new Intent(mainActivity, LoadSaveActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/save"));
mainActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_SAVEGAME);
}
});
CustomDialogFactory.addDismissButton(d, android.R.string.cancel);
CustomDialogFactory.show(d);
return false;
} else {
controllerContext.gameRoundController.pause();
Intent intent = new Intent(mainActivity, LoadSaveActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/save"));
mainActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_SAVEGAME);
return true;
}
}
public static void showLoad(final Activity currentActivity) {
Intent intent = new Intent(currentActivity, LoadSaveActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/load"));
currentActivity.startActivityForResult(intent, StartScreenActivity_MainMenu.INTENTREQUEST_LOADGAME);
}
public static void showLoad(final Fragment currentFragment) {
Intent intent = new Intent(currentFragment.getActivity(), LoadSaveActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/load"));
currentFragment.startActivityForResult(intent, StartScreenActivity_MainMenu.INTENTREQUEST_LOADGAME);
}
public static void showActorConditionInfo(final Context context, ActorConditionType conditionType) {
Intent intent = new Intent(context, ActorConditionInfoActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/actorconditioninfo/" + conditionType.conditionTypeID));
context.startActivity(intent);
}
public static Intent getIntentForBulkBuyingInterface(final Context ctx, String itemTypeID, int totalAvailableAmount) {
return getIntentForBulkSelectionInterface(ctx, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BulkInterfaceType.buy);
}
public static Intent getIntentForBulkSellingInterface(final Context ctx, String itemTypeID, int totalAvailableAmount) {
return getIntentForBulkSelectionInterface(ctx, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BulkInterfaceType.sell);
}
public static Intent getIntentForBulkDroppingInterface(final Context ctx, String itemTypeID, int totalAvailableAmount) {
return getIntentForBulkSelectionInterface(ctx, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BulkInterfaceType.drop);
}
private static Intent getIntentForBulkSelectionInterface(final Context ctx, String itemTypeID, int totalAvailableAmount, BulkSelectionInterface.BulkInterfaceType interfaceType) {
Intent intent = new Intent(ctx, BulkSelectionInterface.class);
intent.putExtra("itemTypeID", itemTypeID);
intent.putExtra("totalAvailableAmount", totalAvailableAmount);
intent.putExtra("interfaceType", interfaceType.name());
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/bulkselection/" + itemTypeID));
return intent;
}
public static Intent getIntentForSkillInfo(final Context ctx, SkillCollection.SkillID skillID) {
Intent intent = new Intent(ctx, SkillInfoActivity.class);
intent.putExtra("skillID", skillID.name());
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/showskillinfo/" + skillID));
return intent;
}
public static void showCombatLog(final Context context, final ControllerContext controllerContext, final WorldContext world) {
String[] combatLogMessages = world.model.combatLog.getAllMessages();
View view = null;
ListView itemList = null;
itemList = new ListView(context);
itemList.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, ListView.LayoutParams.WRAP_CONTENT));
itemList.setStackFromBottom(true);
itemList.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
itemList.setChoiceMode(ListView.CHOICE_MODE_NONE);
itemList.setBackgroundColor(ThemeHelper.getThemeColor(context, R.attr.ui_theme_stdframe_bg_color));
if (combatLogMessages.length <= 0) {
combatLogMessages = new String[] {context.getResources().getString(R.string.combat_log_noentries)};
}
itemList.setAdapter(new ArrayAdapter<String>(context, R.layout.combatlog_row, android.R.id.text1, combatLogMessages));
view = itemList;
final Dialog d = CustomDialogFactory.createDialog(context,
context.getResources().getString(R.string.combat_log_title),
context.getResources().getDrawable(R.drawable.ui_icon_combat),
null,
view,
true);
CustomDialogFactory.addDismissButton(d, R.string.dialog_close);
showDialogAndPause(d, controllerContext);
}
}
package com.gpl.rpg.AndorsTrail;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.gpl.rpg.AndorsTrail.activity.ActorConditionInfoActivity;
import com.gpl.rpg.AndorsTrail.activity.BulkSelectionInterface;
import com.gpl.rpg.AndorsTrail.activity.ConversationActivity;
import com.gpl.rpg.AndorsTrail.activity.ItemInfoActivity;
import com.gpl.rpg.AndorsTrail.activity.LevelUpActivity;
import com.gpl.rpg.AndorsTrail.activity.LoadSaveActivity;
import com.gpl.rpg.AndorsTrail.activity.MainActivity;
import com.gpl.rpg.AndorsTrail.activity.MonsterEncounterActivity;
import com.gpl.rpg.AndorsTrail.activity.MonsterInfoActivity;
import com.gpl.rpg.AndorsTrail.activity.SkillInfoActivity;
import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_MainMenu;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionType;
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.item.Inventory;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory.CustomDialog;
import com.gpl.rpg.AndorsTrail.view.ItemContainerAdapter;
public final class Dialogs {
private static void showDialogAndPause(CustomDialog d, final ControllerContext context) {
showDialogAndPause(d, context, null);
}
private static void showDialogAndPause(CustomDialog d, final ControllerContext context, final OnDismissListener onDismiss) {
context.gameRoundController.pause();
CustomDialogFactory.setDismissListener(d, new OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
if (onDismiss != null) onDismiss.onDismiss(arg0);
context.gameRoundController.resume();
}
});
CustomDialogFactory.show(d);
}
public static void showMapScriptMessage(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
showConversation(currentActivity, context, phraseID, null, false);
}
public static void showConversation(final MainActivity currentActivity, final ControllerContext context, final String phraseID, final Monster npc) {
showConversation(currentActivity, context, phraseID, npc, true);
}
private static void showConversation(final MainActivity currentActivity, final ControllerContext context, final String phraseID, final Monster npc, boolean applyScriptEffectsForFirstPhrase) {
context.gameRoundController.pause();
Intent intent = new Intent(currentActivity, ConversationActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/conversation/" + phraseID));
intent.putExtra("applyScriptEffectsForFirstPhrase", applyScriptEffectsForFirstPhrase);
addMonsterIdentifiers(intent, npc);
currentActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_CONVERSATION);
}
public static void addMonsterIdentifiers(Intent intent, Monster monster) {
if (monster == null) return;
intent.putExtra("x", monster.position.x);
intent.putExtra("y", monster.position.y);
}
public static void addMonsterIdentifiers(Bundle bundle, Monster monster) {
if (monster == null) return;
bundle.putInt("x", monster.position.x);
bundle.putInt("y", monster.position.y);
}
public static Monster getMonsterFromIntent(Intent intent, final WorldContext world) {
return getMonsterFromBundle(intent.getExtras(), world);
}
public static Monster getMonsterFromBundle(Bundle params, final WorldContext world) {
if (params == null) return null;
if (!params.containsKey("x")) return null;
int x = params.getInt("x");
int y = params.getInt("y");
return world.model.currentMaps.map.getMonsterAt(x, y);
}
public static void showMonsterEncounter(final MainActivity currentActivity, final ControllerContext context, final Monster monster) {
context.gameRoundController.pause();
Intent intent = new Intent(currentActivity, MonsterEncounterActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/monsterencounter"));
addMonsterIdentifiers(intent, monster);
currentActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_MONSTERENCOUNTER);
}
public static void showMonsterInfo(final Context context, final Monster monster) {
Intent intent = new Intent(context, MonsterInfoActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/monsterinfo"));
addMonsterIdentifiers(intent, monster);
context.startActivity(intent);
}
public static String getGroundLootFoundMessage(final Context ctx, final Loot loot) {
StringBuilder sb = new StringBuilder(60);
if (!loot.items.isEmpty()) {
sb.append(ctx.getString(R.string.dialog_groundloot_message));
}
appendGoldPickedUpMessage(ctx, loot, sb);
return sb.toString();
}
public static String getGroundLootPickedUpMessage(final Context ctx, final Loot loot) {
StringBuilder sb = new StringBuilder(60);
appendLootPickedUpMessage(ctx, loot, sb);
return sb.toString();
}
public static String getMonsterLootFoundMessage(final Context ctx, final Loot combinedLoot, final int exp) {
StringBuilder sb = new StringBuilder(60);
appendMonsterEncounterSurvivedMessage(ctx, sb, exp);
appendGoldPickedUpMessage(ctx, combinedLoot, sb);
return sb.toString();
}
public static String getMonsterLootPickedUpMessage(final Context ctx, final Loot combinedLoot, final int exp) {
StringBuilder sb = new StringBuilder(60);
appendMonsterEncounterSurvivedMessage(ctx, sb, exp);
appendLootPickedUpMessage(ctx, combinedLoot, sb);
return sb.toString();
}
private static void appendMonsterEncounterSurvivedMessage(final Context ctx, final StringBuilder sb, final int exp) {
sb.append(ctx.getString(R.string.dialog_monsterloot_message));
if (exp > 0) {
sb.append(' ');
sb.append(ctx.getString(R.string.dialog_monsterloot_gainedexp, exp));
}
}
private static void appendGoldPickedUpMessage(final Context ctx, final Loot loot, final StringBuilder sb) {
if (loot.gold > 0) {
sb.append(' ');
sb.append(ctx.getString(R.string.dialog_loot_foundgold, loot.gold));
}
}
private static void appendLootPickedUpMessage(final Context ctx, final Loot loot, final StringBuilder sb) {
appendGoldPickedUpMessage(ctx, loot, sb);
int numItems = loot.items.countItems();
if (numItems == 1) {
sb.append(' ');
sb.append(ctx.getString(R.string.dialog_loot_pickedupitem));
} else if (numItems > 1){
sb.append(' ');
sb.append(ctx.getString(R.string.dialog_loot_pickedupitems, numItems));
}
}
public static void showMonsterLoot(final MainActivity mainActivity, final ControllerContext controllers, final WorldContext world, final Collection<Loot> lootBags, final Loot combinedLoot, final String msg) {
// CombatController will do killedMonsterBags.clear() after this method has been called,
// so we need to keep the list of objects. Therefore, we create a shallow copy of the list of bags.
ArrayList<Loot> bags = new ArrayList<Loot>(lootBags);
showLoot(mainActivity, controllers, world, combinedLoot, bags, R.string.dialog_monsterloot_title, msg);
}
public static void showGroundLoot(final MainActivity mainActivity, final ControllerContext controllers, final WorldContext world, final Loot loot, final String msg) {
showLoot(mainActivity, controllers, world, loot, Collections.singletonList(loot), R.string.dialog_groundloot_title, msg);
}
private static void showLoot(final MainActivity mainActivity, final ControllerContext controllers, final WorldContext world, final Loot combinedLoot, final Iterable<Loot> lootBags, final int title, final String msg) {
final ListView itemList = new ListView(mainActivity);
itemList.setBackgroundResource(android.R.color.transparent);
itemList.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, ListView.LayoutParams.WRAP_CONTENT));
// itemList.setPadding(20, 0, 20, 20);
itemList.setAdapter(new ItemContainerAdapter(mainActivity, world.tileManager, combinedLoot.items, world.model.player));
final CustomDialog d = CustomDialogFactory.createDialog(mainActivity,
mainActivity.getResources().getString(title),
mainActivity.getResources().getDrawable(R.drawable.ui_icon_equipment),
msg,
combinedLoot.items.isEmpty() ? null : itemList,
true,
false);
itemList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
final String itemTypeID = ((ItemContainerAdapter) parent.getAdapter()).getItem(position).itemType.id;
boolean removeFromCombinedLoot = true;
for (Loot l : lootBags) {
if (l == combinedLoot) removeFromCombinedLoot = false;
if (l.items.removeItem(itemTypeID)) {
controllers.itemController.removeLootBagIfEmpty(l);
break;
}
}
if (removeFromCombinedLoot) {
combinedLoot.items.removeItem(itemTypeID);
}
if (((ItemContainerAdapter) parent.getAdapter()).isEmpty()) {
ViewGroup vg = (ViewGroup) d.findViewById(R.id.dialog_content_container);
vg.setVisibility(View.GONE);
}
ItemType type = world.itemTypes.getItemType(itemTypeID);
world.model.player.inventory.addItem(type);
((ItemContainerAdapter) itemList.getAdapter()).notifyDataSetChanged();
}
});
if (!itemList.getAdapter().isEmpty()) {
CustomDialogFactory.addButton(d, R.string.dialog_loot_pickall, new View.OnClickListener() {
@Override
public void onClick(View v) {
controllers.itemController.pickupAll(lootBags);
}
});
}
CustomDialogFactory.addDismissButton(d, R.string.dialog_close);
showDialogAndPause(d, controllers, new OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
controllers.itemController.removeLootBagIfEmpty(lootBags);
}
});
}
public static void showHeroDied(final MainActivity mainActivity, final ControllerContext controllers) {
final CustomDialog d = CustomDialogFactory.createDialog(mainActivity,
mainActivity.getResources().getString(R.string.dialog_game_over_title),
mainActivity.getResources().getDrawable(R.drawable.ui_icon_combat),
mainActivity.getResources().getString(R.string.dialog_game_over_text),
null,
true,
false);
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
showDialogAndPause(d, controllers, new OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
mainActivity.finish();
}
});
}
public static Intent getIntentForItemInfo(final Context ctx, String itemTypeID, ItemInfoActivity.ItemInfoAction actionType, String buttonText, boolean buttonEnabled, Inventory.WearSlot inventorySlot) {
Intent intent = new Intent(ctx, ItemInfoActivity.class);
intent.putExtra("buttonText", buttonText);
intent.putExtra("buttonEnabled", buttonEnabled);
intent.putExtra("moreActions", (actionType == ItemInfoActivity.ItemInfoAction.equip || actionType == ItemInfoActivity.ItemInfoAction.use || actionType == ItemInfoActivity.ItemInfoAction.none));
intent.putExtra("itemTypeID", itemTypeID);
intent.putExtra("actionType", actionType.name());
if (inventorySlot != null) intent.putExtra("inventorySlot", inventorySlot.name());
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/iteminfo/" + itemTypeID));
return intent;
}
public static Intent getIntentForLevelUp(final Context ctx) {
Intent intent = new Intent(ctx, LevelUpActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/levelup"));
return intent;
}
public static void showConfirmRest(final Activity currentActivity, final ControllerContext controllerContext, final MapObject area) {
final CustomDialog d = CustomDialogFactory.createDialog(currentActivity,
currentActivity.getResources().getString(R.string.dialog_rest_title),
null,
currentActivity.getResources().getString(R.string.dialog_rest_confirm_message),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.yes, new View.OnClickListener() {
@Override
public void onClick(View v) {
controllerContext.mapController.rest(area);
}
});
CustomDialogFactory.addDismissButton(d, android.R.string.no);
showDialogAndPause(d, controllerContext);
}
public static void showRested(final Activity currentActivity, final ControllerContext controllerContext) {
// Dialog d = new AlertDialog.Builder(new ContextThemeWrapper(currentActivity, R.style.AndorsTrailStyle))
// .setTitle(R.string.dialog_rest_title)
// .setMessage(R.string.dialog_rest_message)
// .setNeutralButton(android.R.string.ok, null)
// .create();
final CustomDialog d = CustomDialogFactory.createDialog(currentActivity,
currentActivity.getResources().getString(R.string.dialog_rest_title),
null,
currentActivity.getResources().getString(R.string.dialog_rest_message),
null,
true);
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
showDialogAndPause(d, controllerContext);
}
public static void showNewVersion(final Activity currentActivity, final OnDismissListener onDismiss) {
// new AlertDialog.Builder(new ContextThemeWrapper(currentActivity, R.style.AndorsTrailStyle))
// .setTitle(R.string.dialog_newversion_title)
// .setMessage(R.string.dialog_newversion_message)
// .setNeutralButton(android.R.string.ok, null)
// .show();
String text = currentActivity.getResources().getString(R.string.dialog_newversion_message);
if (!hasPermissions(currentActivity) && Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
text += currentActivity.getResources().getString(R.string.dialog_newversion_permission_information);
}
final CustomDialog d = CustomDialogFactory.createDialog(currentActivity,
currentActivity.getResources().getString(R.string.dialog_newversion_title),
null,
text,
null,
true);
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
CustomDialogFactory.setDismissListener(d, new OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
if (onDismiss != null) onDismiss.onDismiss(arg0);
}
});
CustomDialogFactory.show(d);
}
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
|| activity.getApplicationContext().checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
return true;
}
public static boolean showSave(final Activity mainActivity, final ControllerContext controllerContext, final WorldContext world) {
if (world.model.uiSelections.isInCombat) {
Toast.makeText(mainActivity, R.string.menu_save_saving_not_allowed_in_combat, Toast.LENGTH_SHORT).show();
return false;
}
if (!world.model.statistics.hasUnlimitedSaves()) {
final CustomDialog d = CustomDialogFactory.createDialog(mainActivity,
mainActivity.getResources().getString(R.string.menu_save_switch_character_title),
null,
mainActivity.getResources().getString(R.string.menu_save_switch_character),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.ok, new View.OnClickListener() {
@Override
public void onClick(View v) {
controllerContext.gameRoundController.pause();
Intent intent = new Intent(mainActivity, LoadSaveActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/save"));
mainActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_SAVEGAME);
}
});
CustomDialogFactory.addDismissButton(d, android.R.string.cancel);
CustomDialogFactory.show(d);
return false;
} else {
controllerContext.gameRoundController.pause();
Intent intent = new Intent(mainActivity, LoadSaveActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/save"));
mainActivity.startActivityForResult(intent, MainActivity.INTENTREQUEST_SAVEGAME);
return true;
}
}
public static void showLoad(final Activity currentActivity) {
Intent intent = new Intent(currentActivity, LoadSaveActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/load"));
currentActivity.startActivityForResult(intent, StartScreenActivity_MainMenu.INTENTREQUEST_LOADGAME);
}
public static void showLoad(final Fragment currentFragment) {
Intent intent = new Intent(currentFragment.getActivity(), LoadSaveActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/load"));
currentFragment.startActivityForResult(intent, StartScreenActivity_MainMenu.INTENTREQUEST_LOADGAME);
}
public static void showActorConditionInfo(final Context context, ActorConditionType conditionType) {
Intent intent = new Intent(context, ActorConditionInfoActivity.class);
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/actorconditioninfo/" + conditionType.conditionTypeID));
context.startActivity(intent);
}
public static Intent getIntentForBulkBuyingInterface(final Context ctx, String itemTypeID, int totalAvailableAmount) {
return getIntentForBulkSelectionInterface(ctx, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BulkInterfaceType.buy);
}
public static Intent getIntentForBulkSellingInterface(final Context ctx, String itemTypeID, int totalAvailableAmount) {
return getIntentForBulkSelectionInterface(ctx, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BulkInterfaceType.sell);
}
public static Intent getIntentForBulkDroppingInterface(final Context ctx, String itemTypeID, int totalAvailableAmount) {
return getIntentForBulkSelectionInterface(ctx, itemTypeID, totalAvailableAmount, BulkSelectionInterface.BulkInterfaceType.drop);
}
private static Intent getIntentForBulkSelectionInterface(final Context ctx, String itemTypeID, int totalAvailableAmount, BulkSelectionInterface.BulkInterfaceType interfaceType) {
Intent intent = new Intent(ctx, BulkSelectionInterface.class);
intent.putExtra("itemTypeID", itemTypeID);
intent.putExtra("totalAvailableAmount", totalAvailableAmount);
intent.putExtra("interfaceType", interfaceType.name());
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/bulkselection/" + itemTypeID));
return intent;
}
public static Intent getIntentForSkillInfo(final Context ctx, SkillCollection.SkillID skillID) {
Intent intent = new Intent(ctx, SkillInfoActivity.class);
intent.putExtra("skillID", skillID.name());
intent.setData(Uri.parse("content://com.gpl.rpg.AndorsTrail/showskillinfo/" + skillID));
return intent;
}
public static void showCombatLog(final Context context, final ControllerContext controllerContext, final WorldContext world) {
String[] combatLogMessages = world.model.combatLog.getAllMessages();
View view = null;
ListView itemList = null;
itemList = new ListView(context);
itemList.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, ListView.LayoutParams.WRAP_CONTENT));
itemList.setStackFromBottom(true);
itemList.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
itemList.setChoiceMode(ListView.CHOICE_MODE_NONE);
itemList.setBackgroundColor(ThemeHelper.getThemeColor(context, R.attr.ui_theme_stdframe_bg_color));
if (combatLogMessages.length <= 0) {
combatLogMessages = new String[] {context.getResources().getString(R.string.combat_log_noentries)};
}
itemList.setAdapter(new ArrayAdapter<String>(context, R.layout.combatlog_row, android.R.id.text1, combatLogMessages));
view = itemList;
final CustomDialog d = CustomDialogFactory.createDialog(context,
context.getResources().getString(R.string.combat_log_title),
context.getResources().getDrawable(R.drawable.ui_icon_combat),
null,
view,
true);
CustomDialogFactory.addDismissButton(d, R.string.dialog_close);
showDialogAndPause(d, controllerContext);
}
}

View File

@@ -1,6 +1,5 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
@@ -25,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

@@ -1,6 +1,5 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
@@ -31,14 +30,16 @@ 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);
world.tileManager.setImageViewTile(getResources(), tv, conditionType);
TextView descriptionTv = (TextView) findViewById(R.id.actorconditioninfo_description);
if(conditionType.description != null && !conditionType.description.isEmpty()) descriptionTv.setText(conditionType.description);
else descriptionTv.setVisibility(View.GONE);
Button b = (Button) findViewById(R.id.actorconditioninfo_close);
b.setOnClickListener(new OnClickListener() {
@Override

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,12 +1,14 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import androidx.annotation.IdRes;
import androidx.annotation.LayoutRes;
import androidx.fragment.app.FragmentActivity;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
public abstract class AndorsTrailBaseFragmentActivity extends FragmentActivity {
@Override
@@ -22,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

@@ -1,6 +1,5 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.res.Resources;
@@ -24,6 +23,7 @@ import com.gpl.rpg.AndorsTrail.controller.ItemController;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory.CustomDialog;
/**
* @author ejwessel
@@ -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);
@@ -207,7 +206,7 @@ public final class BulkSelectionInterface extends AndorsTrailBaseActivity implem
// })
// .setNegativeButton(android.R.string.no, null)
// .show();
final Dialog d = CustomDialogFactory.createDialog(v.getContext(),
final CustomDialog d = CustomDialogFactory.createDialog(v.getContext(),
v.getContext().getResources().getString(R.string.bulkselection_sell_confirmation_title),
v.getContext().getResources().getDrawable(android.R.drawable.ic_dialog_info),
message,

View File

@@ -2,11 +2,11 @@ package com.gpl.rpg.AndorsTrail.activity;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
@@ -42,6 +42,7 @@ import com.gpl.rpg.AndorsTrail.model.item.Loot;
import com.gpl.rpg.AndorsTrail.model.quest.Quest;
import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry;
import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
@@ -74,13 +75,15 @@ public final class ConversationActivity
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.conversation);
initializeView(this, R.layout.conversation, R.id.conversation_root);
replyGroup = new RadioGroup(this);
setFinishOnTouchOutside(false);
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);
listAdapter = new StatementContainerAdapter(this, conversationHistory, world.tileManager);
listAdapter = new StatementContainerAdapter(this, conversationHistory, world.tileManager, world.model.currentMaps.tiles);
statementList.setAdapter(listAdapter);
nextButton = (Button) findViewById(R.id.conversation_next);
@@ -344,10 +347,12 @@ public final class ConversationActivity
private static final class StatementContainerAdapter extends ArrayAdapter<ConversationStatement> {
private final TileManager tileManager;
private final TileCollection tiles;
public StatementContainerAdapter(Context context, ArrayList<ConversationStatement> items, TileManager tileManager) {
public StatementContainerAdapter(Context context, ArrayList<ConversationStatement> items, TileManager tileManager, TileCollection tiles) {
super(context, 0, items);
this.tileManager = tileManager;
this.tiles = tiles;
}
@Override
@@ -362,7 +367,7 @@ public final class ConversationActivity
if (statement.hasActor()) {
final Resources res = getContext().getResources();
if (statement.isPlayerActor) tileManager.setImageViewTileForPlayer(res, tv, statement.iconID);
else tileManager.setImageViewTileForMonster(res, tv, statement.iconID);
else tileManager.setImageViewTileForMonster(res, tv, statement.iconID, tiles);
tv.setText(statement.actorName + ": " + statement.text, BufferType.SPANNABLE);
Spannable sp = (Spannable) tv.getText();

View File

@@ -0,0 +1,515 @@
package com.gpl.rpg.AndorsTrail.activity;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
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.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.view.MainView;
import android.content.Context;
import android.content.res.Resources;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;
public final class DebugInterface {
private final ControllerContext controllerContext;
private final MainActivity mainActivity;
private final Resources res;
private final WorldContext world;
private DebugButton[] buttons;
private List<DebugButton> tpButtons = new ArrayList<DebugButton>();
private List<DebugButton> tpButtons2 = new ArrayList<DebugButton>();
private List<DebugButton> tpButtons3 = new ArrayList<DebugButton>();
public DebugInterface(ControllerContext controllers, WorldContext world, MainActivity mainActivity) {
this.controllerContext = controllers;
this.world = world;
this.res = mainActivity.getResources();
this.mainActivity = mainActivity;
}
public void addDebugButtons() {
if (!AndorsTrailApplication.DEVELOPMENT_DEBUGBUTTONS) return;
List<DebugButton> buttonList = new ArrayList<DebugButton>();
buttonList.addAll(Arrays.asList(new DebugButton[] {
new DebugButton("dbg", new OnClickListener() {
boolean hidden = false;
@Override
public void onClick(View arg0) {
hidden = !hidden;
for (int i = 1; i < buttons.length; i++) {
buttons[i].b.setVisibility(hidden ? View.GONE : View.VISIBLE);
}
for (DebugButton b : tpButtons) {
b.b.setVisibility(View.GONE);
}
for (DebugButton b : tpButtons2) {
b.b.setVisibility(View.GONE);
}
for (DebugButton b : tpButtons3) {
b.b.setVisibility(View.GONE);
}
}
})
,new DebugButton("teleport", new OnClickListener() {
public void onClick(View arg0) {
for (int i = 0; i < buttons.length; i++) {
buttons[i].b.setVisibility(View.GONE);
}
for (DebugButton tpButton : tpButtons) {
tpButton.b.setVisibility(View.VISIBLE);
}
}
})
,new DebugButton("dmg", new OnClickListener() {
@Override
public void onClick(View arg0) {
world.model.player.damagePotential.set(500, 500);
world.model.player.attackChance = 500;
world.model.player.attackCost = 1;
showToast(mainActivity, "DEBUG: damagePotential=500, chance=500%, cost=1", Toast.LENGTH_SHORT);
}
})
/*,new DebugButton("dmg=1", new OnClickListener() {
@Override
public void onClick(View arg0) {
world.model.player.damagePotential.set(1, 1);
showToast(mainActivity, "DEBUG: damagePotential=1", Toast.LENGTH_SHORT);
}
})*/
,new DebugButton("itm", new OnClickListener() {
@Override
public void onClick(View arg0) {
for (ItemType item : world.itemTypes.UNITTEST_getAllItemTypes().values()) {
world.model.player.inventory.addItem(item, 10);
}
world.model.player.inventory.gold += 50000;
showToast(mainActivity, "DEBUG: added items", Toast.LENGTH_SHORT);
}
})
,new DebugButton("xp", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.actorStatsController.addExperience(10000);
showToast(mainActivity, "DEBUG: given 10000 exp", Toast.LENGTH_SHORT);
}
})
,new DebugButton("rst", new OnClickListener() {
@Override
public void onClick(View arg0) {
for(PredefinedMap map : world.maps.getAllMaps()) {
map.resetTemporaryData();
}
showToast(mainActivity, "DEBUG: maps respawned", Toast.LENGTH_SHORT);
}
})
,new DebugButton("hp", new OnClickListener() {
@Override
public void onClick(View arg0) {
world.model.player.baseTraits.maxHP = 500;
world.model.player.health.max = world.model.player.baseTraits.maxHP;
controllerContext.actorStatsController.setActorMaxHealth(world.model.player);
world.model.player.conditions.clear();
showToast(mainActivity, "DEBUG: hp set to max", Toast.LENGTH_SHORT);
}
})
,new DebugButton("skl", new OnClickListener() {
@Override
public void onClick(View arg0) {
world.model.player.availableSkillIncreases += 10;
showToast(mainActivity, "DEBUG: 10 skill points", Toast.LENGTH_SHORT);
}
})
,new DebugButton("spd", new OnClickListener() {
boolean fast = Constants.MINIMUM_INPUT_INTERVAL == Constants.MINIMUM_INPUT_INTERVAL_FAST;
@Override
public void onClick(View arg0) {
fast = !fast;
if (fast) {
Constants.MINIMUM_INPUT_INTERVAL = Constants.MINIMUM_INPUT_INTERVAL_FAST;
} else {
Constants.MINIMUM_INPUT_INTERVAL = Constants.MINIMUM_INPUT_INTERVAL_STD;
}
MainView.SCROLL_DURATION = Constants.MINIMUM_INPUT_INTERVAL;
AndorsTrailApplication.getApplicationFromActivity(mainActivity).getControllerContext().movementController.resetMovementHandler();
}
})
,new DebugButton("map", new OnClickListener() {
@Override
public void onClick(View arg0) {
showToast(mainActivity, "DEBUG: map=" + world.model.currentMaps.map.name , Toast.LENGTH_SHORT);
}
})
,new DebugButton("tim", new OnClickListener() {
@Override
public void onClick(View arg0) {
world.model.worldData.tickWorldTime(10);
}
})
}));
tpButtons.addAll(Arrays.asList(new DebugButton[] {
new DebugButton("teleport", new OnClickListener() {
@Override
public void onClick(View arg0) {
for (DebugButton tpButton : tpButtons2) {
tpButton.b.setVisibility(View.VISIBLE);
}
for (DebugButton tpButton : tpButtons) {
tpButton.b.setVisibility(View.GONE);
}
}
})
,new DebugButton("cg", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "crossglen", "hall", 0, 0);
}
})
,new DebugButton("vg", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "vilegard_s", "tavern", 0, 0);
}
})
,new DebugButton("cr", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "crossroads", "middle", 0, 0);
}
})
,new DebugButton("lf", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "loneford9", "south", 0, 0);
}
})
,new DebugButton("fh", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "fallhaven_ne", "clothes", 0, 0);
}
})
,new DebugButton("prm", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "blackwater_mountain29", "south", 0, 0);
}
})
,new DebugButton("bwm", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "blackwater_mountain43", "south", 0, 0);
}
})
,new DebugButton("rmg", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "remgard0", "east", 0, 0);
}
})
,new DebugButton("chr", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "waytolostmine2", "minerhouse4", 0, 0);
}
})
,new DebugButton("ldr", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "lodarhouse0", "lodarhouse", 0, 0);
}
})
,new DebugButton("sf", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "wild20", "south2", 0, 0);
}
})
,new DebugButton("gm", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "guynmart_wood_1", "farmhouse", 0, 0);
}
})
}));
buttonList.addAll(tpButtons);
tpButtons2.addAll(Arrays.asList(new DebugButton[] {
new DebugButton("teleport", new OnClickListener() {
@Override
public void onClick(View arg0) {
for (DebugButton tpButton : tpButtons3) {
tpButton.b.setVisibility(View.VISIBLE);
}
for (DebugButton tpButton : tpButtons2) {
tpButton.b.setVisibility(View.GONE);
}
}
})
,new DebugButton("brv", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "brimhaven4", "south2", 0, 0);
}
})
,new DebugButton("aru", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "mountainlake5", "north", 0, 0);
}
})
,new DebugButton("ws", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "woodsettlement0", "east", 0, 0);
}
})
,new DebugButton("sul", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "sullengard2", "south", 0, 0);
}
})
,new DebugButton("gal", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_19", "south", 0, 0);
}
})
,new DebugButton("apl", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "sullengard_apple_farm_east", "house", 0, 0);
}
})
,new DebugButton("wch", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "lake_shore_road_0", "west", 0, 0);
}
})
,new DebugButton("la1", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "laerothisland2", "south2", 0, 0);
}
})
,new DebugButton("la2", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "island3", "cave", 0, 0);
}
})
,new DebugButton("wx", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "wexlow_village", "north", 0, 0);
}
})
,new DebugButton("fey", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "guynmart_wood_17", "north", 0, 0);
}
})
}));
buttonList.addAll(tpButtons2);
tpButtons3.addAll(Arrays.asList(new DebugButton[] {
new DebugButton("teleport", new OnClickListener() {
@Override
public void onClick(View arg0) {
for (int i = 0; i < buttons.length; i++) {
buttons[i].b.setVisibility(View.VISIBLE);
}
for (DebugButton tpButton : tpButtons) {
tpButton.b.setVisibility(View.GONE);
}
for (DebugButton tpButton : tpButtons2) {
tpButton.b.setVisibility(View.GONE);
}
for (DebugButton tpButton : tpButtons3) {
tpButton.b.setVisibility(View.GONE);
}
}
})
,new DebugButton("#1", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "lake_shore_road_9", "north", 5, 0);
}
})
,new DebugButton("#2", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "undertell_3_lava_01", "west", 0, 0);
}
})
,new DebugButton("#3", new OnClickListener() {
@Override
public void onClick(View arg0) {
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, "galmore_35", "south", 11, 0);
}
})
,new DebugButton("#5", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "way_to_sullengard_west_5", "east", 0, 5);
}
})
,new DebugButton("#6", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_32", "south", 19, 0);
}
})
,new DebugButton("#7", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "cabin_norcity_road1", "north", 5, 0);
}
})
,new DebugButton("#8", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "wayto_feygard_duleian_2", "south", 0, 5);
}
})
,new DebugButton("#9", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_58", "north", 0, 0);
}
})
,new DebugButton("#10", new OnClickListener() {
@Override
public void onClick(View arg0) {
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);
buttons = buttonList.toArray(new DebugButton[buttonList.size()]);
addDebugButtons(buttons);
for (DebugButton b : tpButtons) {
b.b.setVisibility(View.GONE);
}
for (DebugButton b : tpButtons2) {
b.b.setVisibility(View.GONE);
}
for (DebugButton b : tpButtons3) {
b.b.setVisibility(View.GONE);
}
}
private void showToast(Context context, String msg, int duration) {
Toast.makeText(context, msg, duration).show();
}
private static class DebugButton {
public final String text;
public final OnClickListener listener;
public Button b = null;
public DebugButton(String text, OnClickListener listener) {
this.text = text;
this.listener = listener;
}
public void makeButton(Context c, int id) {
b = new Button(c);
b.setText(text);
b.setTextSize(10);//res.getDimension(R.dimen.actionbar_text));
b.setId(id);
b.setOnClickListener(listener);
}
}
private void addDebugButton(DebugButton button, int id, RelativeLayout layout) {
if (!AndorsTrailApplication.DEVELOPMENT_DEBUGBUTTONS) return;
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, res.getDimensionPixelSize(R.dimen.smalltext_buttonheight));
if (id == 1)
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
else
lp.addRule(RelativeLayout.RIGHT_OF, id - 1);
lp.addRule(RelativeLayout.ABOVE, R.id.main_statusview);
button.makeButton(mainActivity, id);
button.b.setLayoutParams(lp);
layout.addView(button.b);
}
private void addDebugButtons(DebugButton[] buttons) {
if (!AndorsTrailApplication.DEVELOPMENT_DEBUGBUTTONS) return;
if (buttons == null || buttons.length <= 0) return;
RelativeLayout layout = (RelativeLayout) mainActivity.findViewById(R.id.main_container);
int id = 1;
for (DebugButton b : buttons) {
addDebugButton(b, id, layout);
++id;
}
}
}

View File

@@ -1,168 +1,165 @@
package com.gpl.rpg.AndorsTrail.activity;
import java.io.File;
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.WorldMapController;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment;
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.WorldMapSegmentMap;
import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;
public final class DisplayWorldMapActivity extends AndorsTrailBaseActivity {
private WorldContext world;
private WebView displayworldmap_webview;
private String worldMapSegmentName;
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getBaseTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
this.world = app.getWorld();
app.setWindowParameters(this);
setContentView(R.layout.displayworldmap);
displayworldmap_webview = (WebView) findViewById(R.id.displayworldmap_webview);
displayworldmap_webview.setBackgroundColor(ThemeHelper.getThemeColor(this, R.attr.ui_theme_displayworldmap_bg_color));
displayworldmap_webview.getSettings().setBuiltInZoomControls(true);
displayworldmap_webview.getSettings().setUseWideViewPort(true);
displayworldmap_webview.setVerticalScrollBarEnabled(true);
displayworldmap_webview.setHorizontalScrollBarEnabled(true);
enableJavascript();
Button b = (Button) findViewById(R.id.displayworldmap_close);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
DisplayWorldMapActivity.this.finish();
}
});
b = (Button) findViewById(R.id.displayworldmap_recenter);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
recenter();
}
});
worldMapSegmentName = getIntent().getStringExtra("worldMapSegmentName");
}
@SuppressLint("SetJavaScriptEnabled")
public void enableJavascript() {
displayworldmap_webview.getSettings().setJavaScriptEnabled(true);
}
@Override
public void onResume() {
super.onResume();
update();
}
WorldMapSegmentMap map;
Coord offsetWorldmapTo;
@SuppressLint("NewApi")
private void update() {
File worldmap = WorldMapController.getCombinedWorldMapFile(worldMapSegmentName);
if (!worldmap.exists()) {
Toast.makeText(this, getResources().getString(R.string.menu_button_worldmap_failed), Toast.LENGTH_LONG).show();
this.finish();
}
WorldMapSegment segment = world.maps.worldMapSegments.get(worldMapSegmentName);
map = segment.maps.get(world.model.currentMap.name);
if (map == null) {
this.finish();
return;
}
offsetWorldmapTo = new Coord(999999, 999999);
for (WorldMapSegmentMap map : segment.maps.values()) {
PredefinedMap predefinedMap = world.maps.findPredefinedMap(map.mapName);
if (predefinedMap == null) continue;
if (!predefinedMap.visited) continue;
if (!WorldMapController.fileForMapExists(predefinedMap)) continue;
offsetWorldmapTo.x = Math.min(offsetWorldmapTo.x, map.worldPosition.x);
offsetWorldmapTo.y = Math.min(offsetWorldmapTo.y, map.worldPosition.y);
}
String url = "file://" + worldmap.getAbsolutePath() + '?'
+ (world.model.player.position.x + map.worldPosition.x) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE
+ ','
+ (world.model.player.position.y + map.worldPosition.y-1) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE;
L.log("Showing " + url);
displayworldmap_webview.loadUrl(url);
displayworldmap_webview.setBackgroundColor(ThemeHelper.getThemeColor(this, R.attr.ui_theme_displayworldmap_bg_color));
displayworldmap_webview.setWebViewClient(new WebViewClient() {
@SuppressLint("NewApi")
@Override
public void onPageFinished(WebView view, String url)
{
recenter();
}
});
}
private void recenter() {
displayworldmap_webview.postDelayed(new Runnable() {
@Override
public void run() {
if (map != null) {
//Local map to global worldmap
int x = world.model.player.position.x + map.worldPosition.x - offsetWorldmapTo.x;
//Tile coord to pixel coord
x *= WorldMapController.WORLDMAP_DISPLAY_TILESIZE;
x += WorldMapController.WORLDMAP_DISPLAY_TILESIZE/2;
//Zoom level
x = (int)(x * displayworldmap_webview.getScale());
//Center
x -= displayworldmap_webview.getWidth() / 2;
//Local map to global worldmap
int y = world.model.player.position.y + map.worldPosition.y - offsetWorldmapTo.y;
//Tile coord to pixel coord
y *= WorldMapController.WORLDMAP_DISPLAY_TILESIZE;
y += WorldMapController.WORLDMAP_DISPLAY_TILESIZE/2;
//Zoom level
y = (int)(y * displayworldmap_webview.getScale());
//Center
y -= displayworldmap_webview.getHeight() / 2;
displayworldmap_webview.scrollTo(x, y);
}
}
}, 100);
}
@Override
public void finish() {
ViewGroup view = (ViewGroup) getWindow().getDecorView();
view.removeAllViews();
super.finish();
}
}
package com.gpl.rpg.AndorsTrail.activity;
import java.io.File;
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.WorldMapController;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment;
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.WorldMapSegmentMap;
import com.gpl.rpg.AndorsTrail.util.AndroidStorage;
import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;
public final class DisplayWorldMapActivity extends AndorsTrailBaseActivity {
private WorldContext world;
private WebView displayworldmap_webview;
private String worldMapSegmentName;
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getBaseTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
this.world = app.getWorld();
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));
displayworldmap_webview.getSettings().setBuiltInZoomControls(true);
displayworldmap_webview.getSettings().setUseWideViewPort(true);
displayworldmap_webview.setVerticalScrollBarEnabled(true);
displayworldmap_webview.setHorizontalScrollBarEnabled(true);
displayworldmap_webview.getSettings().setAllowFileAccess(true);
enableJavascript();
Button b = (Button) findViewById(R.id.displayworldmap_close);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
DisplayWorldMapActivity.this.finish();
}
});
b = (Button) findViewById(R.id.displayworldmap_recenter);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
recenter();
}
});
worldMapSegmentName = getIntent().getStringExtra("worldMapSegmentName");
}
@SuppressLint("SetJavaScriptEnabled")
public void enableJavascript() {
displayworldmap_webview.getSettings().setJavaScriptEnabled(true);
}
@Override
public void onResume() {
super.onResume();
update();
}
WorldMapSegmentMap map;
Coord offsetWorldmapTo;
@SuppressLint("NewApi")
private void update() {
File worldmap = WorldMapController.getCombinedWorldMapFile(this, worldMapSegmentName);
if (!worldmap.exists()) {
Toast.makeText(this, getResources().getString(R.string.menu_button_worldmap_failed), Toast.LENGTH_LONG).show();
this.finish();
}
WorldMapSegment segment = world.maps.worldMapSegments.get(worldMapSegmentName);
map = segment.maps.get(world.model.currentMaps.map.name);
if (map == null) {
this.finish();
return;
}
offsetWorldmapTo = new Coord(999999, 999999);
for (WorldMapSegmentMap map : segment.maps.values()) {
PredefinedMap predefinedMap = world.maps.findPredefinedMap(map.mapName);
if (predefinedMap == null) continue;
if (!predefinedMap.visited) continue;
if (!WorldMapController.fileForMapExists(this, predefinedMap)) continue;
offsetWorldmapTo.x = Math.min(offsetWorldmapTo.x, map.worldPosition.x);
offsetWorldmapTo.y = Math.min(offsetWorldmapTo.y, map.worldPosition.y);
}
String url = AndroidStorage.getUrlForFile(this, worldmap) + '?'
+ (world.model.player.position.x + map.worldPosition.x) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE
+ ','
+ (world.model.player.position.y + map.worldPosition.y-1) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE;
L.log("Showing " + url);
displayworldmap_webview.loadUrl(url);
displayworldmap_webview.setBackgroundColor(ThemeHelper.getThemeColor(this, R.attr.ui_theme_displayworldmap_bg_color));
displayworldmap_webview.setWebViewClient(new WebViewClient() {
@SuppressLint("NewApi")
@Override
public void onPageFinished(WebView view, String url)
{
recenter();
}
});
}
private void recenter() {
displayworldmap_webview.postDelayed(new Runnable() {
@Override
public void run() {
if (map != null) {
//Local map to global worldmap
int x = world.model.player.position.x + map.worldPosition.x - offsetWorldmapTo.x;
//Tile coord to pixel coord
x *= WorldMapController.WORLDMAP_DISPLAY_TILESIZE;
x += WorldMapController.WORLDMAP_DISPLAY_TILESIZE/2;
//Zoom level
x = (int)(x * displayworldmap_webview.getScale());
//Center
x -= displayworldmap_webview.getWidth() / 2;
//Local map to global worldmap
int y = world.model.player.position.y + map.worldPosition.y - offsetWorldmapTo.y;
//Tile coord to pixel coord
y *= WorldMapController.WORLDMAP_DISPLAY_TILESIZE;
y += WorldMapController.WORLDMAP_DISPLAY_TILESIZE/2;
//Zoom level
y = (int)(y * displayworldmap_webview.getScale());
//Center
y -= displayworldmap_webview.getHeight() / 2;
displayworldmap_webview.scrollTo(x, y);
}
}
}, 100);
}
@Override
public void finish() {
ViewGroup view = (ViewGroup) getWindow().getDecorView();
view.removeAllViews();
super.finish();
}
}

View File

@@ -1,10 +1,8 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import androidx.fragment.app.FragmentTabHost;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.ImageView;
@@ -31,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

@@ -1,139 +1,142 @@
package com.gpl.rpg.AndorsTrail.activity;
import java.util.Collections;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
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.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.ItemEffectsView;
public final class ItemInfoActivity extends AndorsTrailBaseActivity {
public static enum ItemInfoAction {
none, use, equip, unequip, buy, sell
}
public static final int RESULT_MORE_ACTIONS = Activity.RESULT_FIRST_USER;
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getDialogTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
final WorldContext world = app.getWorld();
app.setWindowParameters(this);
final Intent intent = getIntent();
Bundle params = intent.getExtras();
String itemTypeID = params.getString("itemTypeID");
final ItemType itemType = world.itemTypes.getItemType(itemTypeID);
final String buttonText = params.getString("buttonText");
boolean buttonEnabled = params.getBoolean("buttonEnabled");
boolean moreButtonEnabled = params.getBoolean("moreActions");
setContentView(R.layout.iteminfo);
TextView tv = (TextView) findViewById(R.id.iteminfo_title);
tv.setText(itemType.getName(world.model.player));
world.tileManager.setImageViewTileForSingleItemType(getResources(), tv, itemType);
tv = (TextView) findViewById(R.id.iteminfo_description);
String description = itemType.getDescription();
if (description != null) {
tv.setText(description);
tv.setVisibility(View.VISIBLE);
} else {
tv.setVisibility(View.GONE);
}
tv = (TextView) findViewById(R.id.iteminfo_category);
tv.setText(itemType.category.displayName);
((ItemEffectsView) findViewById(R.id.iteminfo_effects)).update(
itemType.effects_equip,
itemType.effects_use == null ? null : Collections.singletonList(itemType.effects_use),
itemType.effects_hit == null ? null : Collections.singletonList(itemType.effects_hit),
itemType.effects_kill == null ? null : Collections.singletonList(itemType.effects_kill),
itemType.effects_hitReceived == null ? null : Collections.singletonList(itemType.effects_hitReceived),
null,
itemType.isWeapon()
);
Button b = (Button) findViewById(R.id.iteminfo_close);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
setResult(RESULT_CANCELED);
ItemInfoActivity.this.finish();
}
});
b = (Button) findViewById(R.id.iteminfo_more);
if (!moreButtonEnabled) {
b.setVisibility(View.GONE);
} else {
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent result = new Intent();
result.putExtras(intent);
setResult(RESULT_MORE_ACTIONS, intent);
ItemInfoActivity.this.finish();
}
});
}
b = (Button) findViewById(R.id.iteminfo_action);
if (buttonText != null && buttonText.length() > 0) {
b.setVisibility(View.VISIBLE);
b.setEnabled(buttonEnabled);
b.setText(buttonText);
} else {
b.setVisibility(View.GONE);
}
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent result = new Intent();
result.putExtras(intent);
setResult(RESULT_OK, result);
ItemInfoActivity.this.finish();
}
});
tv = (TextView) findViewById(R.id.iteminfo_displaytype);
if (itemType.isOrdinaryItem()) {
tv.setVisibility(View.GONE);
} else {
tv.setVisibility(View.VISIBLE);
final String diplayType = getDisplayTypeString(getResources(), itemType);
tv.setText(diplayType);
}
}
public static String getDisplayTypeString(Resources res, ItemType itemType) {
switch (itemType.displayType) {
case rare: return res.getString(R.string.iteminfo_displaytypes_rare);
case extraordinary: return res.getString(R.string.iteminfo_displaytypes_extraordinary);
case legendary: return res.getString(R.string.iteminfo_displaytypes_legendary);
case ordinary: return res.getString(R.string.iteminfo_displaytypes_ordinary);
case quest: return res.getString(R.string.iteminfo_displaytypes_quest);
default: return "";
}
}
}
package com.gpl.rpg.AndorsTrail.activity;
import java.util.Collections;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
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;
public final class ItemInfoActivity extends AndorsTrailBaseActivity {
public static enum ItemInfoAction {
none, use, equip, unequip, buy, sell
}
public static final int RESULT_MORE_ACTIONS = Activity.RESULT_FIRST_USER;
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getDialogTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
final WorldContext world = app.getWorld();
app.setWindowParameters(this);
final Intent intent = getIntent();
Bundle params = intent.getExtras();
String itemTypeID = params.getString("itemTypeID");
final ItemType itemType = world.itemTypes.getItemType(itemTypeID);
final String buttonText = params.getString("buttonText");
boolean buttonEnabled = params.getBoolean("buttonEnabled");
boolean moreButtonEnabled = params.getBoolean("moreActions");
initializeView(this, R.layout.iteminfo, R.id.iteminfo_root);
TextView tv = (TextView) findViewById(R.id.iteminfo_title);
tv.setText(itemType.getName(world.model.player));
world.tileManager.setImageViewTileForSingleItemType(getResources(), tv, itemType);
tv = (TextView) findViewById(R.id.iteminfo_description);
String description = itemType.getDescription();
if (description != null) {
tv.setText(description.replace(Constants.PLACEHOLDER_PLAYERNAME, world.model.player.getName()));
tv.setVisibility(View.VISIBLE);
} else {
tv.setVisibility(View.GONE);
}
tv = (TextView) findViewById(R.id.iteminfo_category);
tv.setText(itemType.category.displayName);
((ItemEffectsView) findViewById(R.id.iteminfo_effects)).update(
itemType.effects_equip,
itemType.effects_use == null ? null : Collections.singletonList(itemType.effects_use),
itemType.effects_hit == null ? null : Collections.singletonList(itemType.effects_hit),
itemType.effects_miss == null ? null : Collections.singletonList(itemType.effects_miss),
itemType.effects_kill == null ? null : Collections.singletonList(itemType.effects_kill),
itemType.effects_hitReceived == null ? null : Collections.singletonList(itemType.effects_hitReceived),
itemType.effects_missReceived == null ? null : Collections.singletonList(itemType.effects_missReceived),
null,
itemType.isWeapon()
);
Button b = (Button) findViewById(R.id.iteminfo_close);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
setResult(RESULT_CANCELED);
ItemInfoActivity.this.finish();
}
});
b = (Button) findViewById(R.id.iteminfo_more);
if (!moreButtonEnabled) {
b.setVisibility(View.GONE);
} else {
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent result = new Intent();
result.putExtras(intent);
setResult(RESULT_MORE_ACTIONS, intent);
ItemInfoActivity.this.finish();
}
});
}
b = (Button) findViewById(R.id.iteminfo_action);
if (buttonText != null && buttonText.length() > 0) {
b.setVisibility(View.VISIBLE);
b.setEnabled(buttonEnabled);
b.setText(buttonText);
} else {
b.setVisibility(View.GONE);
}
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent result = new Intent();
result.putExtras(intent);
setResult(RESULT_OK, result);
ItemInfoActivity.this.finish();
}
});
tv = (TextView) findViewById(R.id.iteminfo_displaytype);
if (itemType.isOrdinaryItem()) {
tv.setVisibility(View.GONE);
} else {
tv.setVisibility(View.VISIBLE);
final String diplayType = getDisplayTypeString(getResources(), itemType);
tv.setText(diplayType);
}
}
public static String getDisplayTypeString(Resources res, ItemType itemType) {
switch (itemType.displayType) {
case rare: return res.getString(R.string.iteminfo_displaytypes_rare);
case extraordinary: return res.getString(R.string.iteminfo_displaytypes_extraordinary);
case legendary: return res.getString(R.string.iteminfo_displaytypes_legendary);
case ordinary: return res.getString(R.string.iteminfo_displaytypes_ordinary);
case quest: return res.getString(R.string.iteminfo_displaytypes_quest);
default: return "";
}
}
}

View File

@@ -1,6 +1,5 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
@@ -38,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

@@ -0,0 +1,876 @@
package com.gpl.rpg.AndorsTrail.activity;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import android.Manifest;
import android.app.Activity;
import android.content.ClipData;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import androidx.annotation.RequiresApi;
import androidx.documentfile.provider.DocumentFile;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.controller.Constants;
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
import com.gpl.rpg.AndorsTrail.savegames.Savegames;
import com.gpl.rpg.AndorsTrail.savegames.Savegames.FileHeader;
import com.gpl.rpg.AndorsTrail.util.AndroidStorage;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory.CustomDialog;
public final class LoadSaveActivity extends AndorsTrailBaseActivity implements OnClickListener {
private boolean isLoading = true;
//region special slot numbers
private static final int SLOT_NUMBER_CREATE_NEW_SLOT = -1;
public static final int SLOT_NUMBER_EXPORT_SAVEGAMES = -2;
public static final int SLOT_NUMBER_IMPORT_SAVEGAMES = -3;
public static final int SLOT_NUMBER_IMPORT_WORLDMAP = -4;
private static final int SLOT_NUMBER_FIRST_SLOT = 1;
//endregion
private ModelContainer model;
private TileManager tileManager;
private AndorsTrailPreferences preferences;
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getDialogTheme());
super.onCreate(savedInstanceState);
final AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setWindowParameters(this);
this.model = app.getWorld().model;
this.preferences = app.getPreferences();
this.tileManager = app.getWorld().tileManager;
String loadsave = getIntent().getData().getLastPathSegment();
isLoading = (loadsave.equalsIgnoreCase("load"));
initializeView(this, R.layout.loadsave, R.id.loadsave_root);
TextView tv = (TextView) findViewById(R.id.loadsave_title);
if (isLoading) {
tv.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_menu_search, 0, 0, 0);
tv.setText(R.string.loadsave_title_load);
} else {
tv.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_menu_save, 0, 0, 0);
tv.setText(R.string.loadsave_title_save);
}
ViewGroup slotList = (ViewGroup) findViewById(R.id.loadsave_slot_list);
Button slotTemplateButton = (Button) findViewById(R.id.loadsave_slot_n);
LayoutParams params = slotTemplateButton.getLayoutParams();
slotList.removeView(slotTemplateButton);
ViewGroup newSlotContainer = (ViewGroup) findViewById(R.id.loadsave_save_to_new_slot_container);
Button createNewSlot = (Button) findViewById(R.id.loadsave_save_to_new_slot);
Button exportSaves = (Button) findViewById(R.id.loadsave_export_save);
Button importSaves = (Button) findViewById(R.id.loadsave_import_save);
Button importWorldmap = (Button) findViewById(R.id.loadsave_import_worldmap);
exportSaves.setTag(SLOT_NUMBER_EXPORT_SAVEGAMES);
importSaves.setTag(SLOT_NUMBER_IMPORT_SAVEGAMES);
importWorldmap.setTag(SLOT_NUMBER_IMPORT_WORLDMAP);
ViewGroup exportImportContainer = (ViewGroup) findViewById(R.id.loadsave_export_import_save_container);
addSavegameSlotButtons(slotList, params, Savegames.getUsedSavegameSlots(this));
checkAndRequestPermissions();
if (!isLoading) {
createNewSlot.setTag(SLOT_NUMBER_CREATE_NEW_SLOT);
createNewSlot.setOnClickListener(this);
newSlotContainer.setVisibility(View.VISIBLE);
exportImportContainer.setVisibility(View.GONE);
} else {
newSlotContainer.setVisibility(View.GONE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
exportSaves.setOnClickListener(this);
importSaves.setOnClickListener(this);
importWorldmap.setOnClickListener(this);
exportImportContainer.setVisibility(View.VISIBLE);
boolean hasSavegames = !Savegames.getUsedSavegameSlots(this).isEmpty();
exportSaves.setEnabled(hasSavegames);
} else {
exportImportContainer.setVisibility(View.GONE);
}
}
}
private static final int READ_EXTERNAL_STORAGE_REQUEST = 1;
private static final int WRITE_EXTERNAL_STORAGE_REQUEST = 2;
private void checkAndRequestPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) {
if (getApplicationContext().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
this.requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
READ_EXTERNAL_STORAGE_REQUEST);
}
if (getApplicationContext().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
this.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
WRITE_EXTERNAL_STORAGE_REQUEST);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (grantResults.length > 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, R.string.storage_permissions_mandatory, Toast.LENGTH_LONG).show();
((AndorsTrailApplication) getApplication()).discardWorld();
finish();
}
}
private void addSavegameSlotButtons(ViewGroup parent,
LayoutParams params,
List<Integer> usedSavegameSlots) {
int unused = 1;
for (int slot : usedSavegameSlots) {
final FileHeader header = Savegames.quickload(this, slot);
if (header == null) {
continue;
}
while (unused < slot) {
Button b = new Button(this);
b.setLayoutParams(params);
b.setTag(unused);
b.setOnClickListener(this);
b.setText(getString(R.string.loadsave_empty_slot, unused));
tileManager.setImageViewTileForPlayer(getResources(), b, header.iconID);
parent.addView(b, params);
unused++;
}
unused++;
Button b = new Button(this);
b.setLayoutParams(params);
b.setTag(slot);
b.setOnClickListener(this);
b.setText(slot + ". " + header.describe());
tileManager.setImageViewTileForPlayer(getResources(), b, header.iconID);
parent.addView(b, params);
}
}
private void cancelLoadSaveActivity(int slot) {
completeLoadSaveActivity(slot, false);
}
private void completeLoadSaveActivity(int slot) {
completeLoadSaveActivity(slot, true);
}
private void completeLoadSaveActivity(int slot, boolean success) {
Intent i = new Intent();
if (slot == SLOT_NUMBER_CREATE_NEW_SLOT) {
slot = getFirstFreeSlot();
} else if (slot == SLOT_NUMBER_EXPORT_SAVEGAMES
|| slot == SLOT_NUMBER_IMPORT_SAVEGAMES
|| slot == SLOT_NUMBER_IMPORT_WORLDMAP) {
i.putExtra("import_export", true);
if (slot == SLOT_NUMBER_IMPORT_WORLDMAP) {
i.putExtra("import_worldmap", true);
}
if (slot == SLOT_NUMBER_IMPORT_SAVEGAMES) {
i.putExtra("import_savegames", true);
}
if (slot == SLOT_NUMBER_EXPORT_SAVEGAMES) {
i.putExtra("export", true);
}
} else if (slot < SLOT_NUMBER_FIRST_SLOT) {
slot = SLOT_NUMBER_FIRST_SLOT;
}
i.putExtra("slot", slot);
if (success) {
setResult(Activity.RESULT_OK, i);
} else {
setResult(Activity.RESULT_CANCELED, i);
}
LoadSaveActivity.this.finish();
}
private int getFirstFreeSlot() {
int slot;
List<Integer> usedSlots = Savegames.getUsedSavegameSlots(this);
if (usedSlots.isEmpty()) {
slot = SLOT_NUMBER_FIRST_SLOT;
} else {
slot = Collections.max(usedSlots) + 1;
}
return slot;
}
private String getConfirmOverwriteQuestion(int slot) {
if (isLoading) {
return null;
}
return getConfirmOverwriteQuestionIgnoringLoading(slot);
}
private String getConfirmOverwriteQuestionIgnoringLoading(int slot) {
if (slot == SLOT_NUMBER_CREATE_NEW_SLOT) {
return null;//creating a new savegame
}
if (!Savegames.getSlotFile(slot, this).exists()) {
return null;//nothing in slot to overwrite
}
if (preferences.displayOverwriteSavegame
== AndorsTrailPreferences.CONFIRM_OVERWRITE_SAVEGAME_ALWAYS) {
return getString(R.string.loadsave_save_overwrite_confirmation_all);
}
if (preferences.displayOverwriteSavegame == AndorsTrailPreferences.CONFIRM_OVERWRITE_SAVEGAME_NEVER) {
return null;
}
final String currentPlayerName = model.player.getName();
final FileHeader header = Savegames.quickload(this, slot);
if (header == null) {
return null;
}
final String savedPlayerName = header.playerName;
if (currentPlayerName.equals(savedPlayerName)) {
return null; //if the names match
}
return getString(R.string.loadsave_save_overwrite_confirmation, savedPlayerName, currentPlayerName);
}
@Override
public void onClick(View view) {
final int slot = (Integer) view.getTag();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
switch (slot) {
case SLOT_NUMBER_IMPORT_WORLDMAP:
clickImportWorldmap();
return;
case SLOT_NUMBER_IMPORT_SAVEGAMES:
clickImportSaveGames();
return;
case SLOT_NUMBER_EXPORT_SAVEGAMES:
clickExportSaveGames();
return;
}
}
if (!isLoading
&& slot != SLOT_NUMBER_CREATE_NEW_SLOT
&& AndorsTrailApplication.CURRENT_VERSION
== AndorsTrailApplication.DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION) {
if (!isOverwriteTargetInIncompatibleVersion(slot)) {
saveOrOverwriteSavegame(slot);
}
} else if (isLoading) {
loadSaveGame(slot);
} else {
saveOrOverwriteSavegame(slot);
}
}
private void saveOrOverwriteSavegame(int slot) {
final String message = getConfirmOverwriteQuestion(slot);
if (message != null) {
showConfirmOverwriteQuestion(slot, message);
} else {
completeLoadSaveActivity(slot);
}
}
private boolean isOverwriteTargetInIncompatibleVersion(int slot) {
final FileHeader header = Savegames.quickload(this, slot);
if (header != null
&& header.fileversion != AndorsTrailApplication.DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION) {
final CustomDialog d = CustomDialogFactory.createErrorDialog(this,
"Overwriting not allowed",
"You are currently using a development version of Andor's trail. Overwriting a regular savegame is not allowed in development mode.");
CustomDialogFactory.show(d);
return true;
}
return false;
}
//region Imports/Exports
//region Export
@RequiresApi(api = Build.VERSION_CODES.P)
private void exportSaveGames(Intent data) {
Uri uri = data.getData();
Context context = getApplicationContext();
ContentResolver resolver = AndorsTrailApplication.getApplicationFromActivity(this)
.getContentResolver();
File storageDir = AndroidStorage.getStorageDirectory(context,
Constants.FILENAME_SAVEGAME_DIRECTORY);
DocumentFile target = DocumentFile.fromTreeUri(context, uri);
if (target == null) {
return;
}
File[] files = storageDir.listFiles();
if (files == null) {
showErrorExportingSaveGamesUnknown();
return;
}
boolean hasExistingFiles = false;
for (File file : files) {
String fileName = file.getName();
DocumentFile existingFile = target.findFile(fileName);
if (existingFile != null) {
hasExistingFiles = true;
break;
}
}
if (hasExistingFiles) {
showConfirmOverwriteByExportQuestion(resolver, target, files);
} else {
exportSaveGamesFolderContentToFolder(target, files);
}
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void exportSaveGamesFolderContentToFolder(DocumentFile target, File[] files) {
DocumentFile[] sourceFiles = new DocumentFile[files.length];
File[] worldmapFiles = null;
for (int i = 0; i < files.length; i++) {
File file = files[i];
if (file.isFile()) {
sourceFiles[i] = DocumentFile.fromFile(file);
} else if (file.isDirectory() && Objects.equals(file.getName(),
Constants.FILENAME_WORLDMAP_DIRECTORY)) {
worldmapFiles = file.listFiles();
}
}
Context context = this;
File[] finalWorldmapFiles = worldmapFiles;
CopyFilesToExternalFolder(target, sourceFiles, context, finalWorldmapFiles);
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void CopyFilesToExternalFolder(DocumentFile target,
DocumentFile[] sourceFiles,
Context context,
File[] finalWorldmapFiles) {
AndroidStorage.copyDocumentFilesToDirAsync(sourceFiles,
context,
target,
getString(R.string.loadsave_exporting_savegames),
(success) -> {
if (success) {
CopyWorldmapFilesAsZip(target,
context,
finalWorldmapFiles);
} else {
completeLoadSaveActivity(
SLOT_NUMBER_EXPORT_SAVEGAMES,
false);
}
});
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void CopyWorldmapFilesAsZip(DocumentFile target,
Context context,
File[] finalWorldmapFiles) {
AndroidStorage.createZipDocumentFileFromFilesAsync(finalWorldmapFiles,
context,
target,
Constants.FILENAME_WORLDMAP_DIRECTORY,
getString(R.string.loadsave_exporting_worldmap),
(successWorldmap) -> completeLoadSaveActivity(
SLOT_NUMBER_EXPORT_SAVEGAMES,
successWorldmap));
}
//endregion
@RequiresApi(api = Build.VERSION_CODES.P)
private void importSaveGames(Intent data) {
Uri uri = data.getData();
ClipData uris = data.getClipData();
if (uri == null && uris == null) {
//no file was selected
return;
}
Context context = getApplicationContext();
ContentResolver resolver = AndorsTrailApplication.getApplicationFromActivity(this)
.getContentResolver();
File storageDir = AndroidStorage.getStorageDirectory(context, Constants.FILENAME_SAVEGAME_DIRECTORY);
DocumentFile appSavegameFolder = DocumentFile.fromFile(storageDir);
List<Uri> uriList = new ArrayList<>();
if (uri != null) {
uriList.add(uri);
} else {
for (int i = 0; i < uris.getItemCount(); i++) {
uriList.add(uris.getItemAt(i).getUri());
}
}
importSaveGamesFromUris(context, resolver, appSavegameFolder, uriList);
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void importSaveGamesFromUris(Context context,
ContentResolver resolver,
DocumentFile appSavegameFolder,
List<Uri> uriList) {
int count = uriList.size();
ArrayList<DocumentFile> alreadyExistingFiles = new ArrayList<>();
ArrayList<DocumentFile> newFiles = new ArrayList<>();
for (int i = 0; i < count; i++) {
Uri item = uriList.get(i);
DocumentFile itemFile = DocumentFile.fromSingleUri(context, item);
boolean fileAlreadyExists = getExistsSavegameInOwnFiles(itemFile, appSavegameFolder);
if (fileAlreadyExists) {
alreadyExistingFiles.add(itemFile);
} else {
newFiles.add(itemFile);
}
}
if (alreadyExistingFiles.size() > 0) {
showConfirmOverwriteByImportQuestion(resolver, appSavegameFolder, alreadyExistingFiles, newFiles);
} else {
importSaveGames(resolver, appSavegameFolder, newFiles);
}
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void importSaveGames(ContentResolver resolver,
DocumentFile appSavegameFolder,
List<DocumentFile> saveFiles) {
int size = saveFiles.size();
DocumentFile[] sources = new DocumentFile[size];
DocumentFile[] targets = new DocumentFile[size];
boolean saveAsNew = false;
for (int i = 0; i < size; i++) {
DocumentFile file = saveFiles.get(i);
if (file == null) {//null is value a marker that the next should be saved as new
saveAsNew = true;
continue;
}
int slot = getSlotFromSavegameFileName(file.getName());
if (slot == -1) {
//invalid file name
continue;
}
if (saveAsNew) {
slot = getFirstFreeSlot();
saveAsNew = false;
}
String targetName = Savegames.getSlotFileName(slot);
sources[i] = file;
targets[i] = getOrCreateDocumentFile(appSavegameFolder, targetName);
}
AndroidStorage.copyDocumentFilesFromToAsync(sources,
this,
targets,
getString(R.string.loadsave_importing_savegames),
(sucess) -> completeLoadSaveActivity(
SLOT_NUMBER_IMPORT_SAVEGAMES,
sucess));
}
private boolean getExistsSavegameInOwnFiles(DocumentFile savegameFile, DocumentFile appSavegameFolder) {
if (savegameFile == null) {
return false;
}
DocumentFile foundFile = appSavegameFolder.findFile(Objects.requireNonNull(savegameFile.getName()));
return foundFile != null && foundFile.exists();
}
private int getSlotFromSavegameFileName(String fileName) {
if (fileName == null || !fileName.startsWith(Constants.FILENAME_SAVEGAME_FILENAME_PREFIX)) {
return -1;
}
String slotStr = fileName.substring(Constants.FILENAME_SAVEGAME_FILENAME_PREFIX.length());
int slot;
try {
slot = Integer.parseInt(slotStr);
return slot;
} catch (NumberFormatException e) {
return -1;
}
}
private DocumentFile getOrCreateDocumentFile(DocumentFile folder, String targetName) {
DocumentFile targetFile = folder.findFile(targetName);//try finding the file
if (targetFile == null)//no file found, creating new one
{
targetFile = folder.createFile(Constants.NO_FILE_EXTENSION_MIME_TYPE, targetName);
}
return targetFile;
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void importWorldmap(Intent data) {
Uri uri = data.getData();
Context context = AndorsTrailApplication.getApplicationFromActivity(this).getApplicationContext();
DocumentFile chosenZip = DocumentFile.fromSingleUri(context, uri);
if (chosenZip == null || !chosenZip.isFile()) {
showErrorImportingWorldmapWrongDirectory();
return;
}
String chosenZipName = chosenZip.getName();
if (!chosenZipName.startsWith(Constants.FILENAME_WORLDMAP_DIRECTORY)) {
showErrorImportingWorldmapWrongDirectory();
return;
}
File ownWorldmapFolder = getOwnWorldmapFolder(context);
AndroidStorage.unzipDocumentFileToDirectoryAsync(chosenZip,
this,
ownWorldmapFolder,
false,
getString(R.string.loadsave_importing_worldmap),
(success) -> completeLoadSaveActivity(
SLOT_NUMBER_IMPORT_WORLDMAP,
success));
}
private File getOwnWorldmapFolder(Context context) {
File storageDir = AndroidStorage.getStorageDirectory(context, Constants.FILENAME_SAVEGAME_DIRECTORY);
File ownWorldmapFolder = null;
for (File f : storageDir.listFiles()) {
if (f.getName().equals(Constants.FILENAME_WORLDMAP_DIRECTORY)) {
ownWorldmapFolder = f;
break;
}
}
if (ownWorldmapFolder == null) {
ownWorldmapFolder = new File(storageDir, Constants.FILENAME_WORLDMAP_DIRECTORY);
ownWorldmapFolder.mkdir();
}
return ownWorldmapFolder;
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void clickExportSaveGames() {
showStartExportInfo(view -> startActivityForResult(AndroidStorage.getNewOpenDirectoryIntent(),
-SLOT_NUMBER_EXPORT_SAVEGAMES));
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void clickImportSaveGames() {
showStartImportSavesInfo(view -> startActivityForResult(AndroidStorage.getNewSelectMultipleSavegameFilesIntent(),
-SLOT_NUMBER_IMPORT_SAVEGAMES));
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void clickImportWorldmap() {
showStartImportWorldmapInfo(view -> startActivityForResult(AndroidStorage.getNewSelectZipIntent(),
-SLOT_NUMBER_IMPORT_WORLDMAP));
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void showConfirmOverwriteByExportQuestion(ContentResolver resolver,
DocumentFile targetFolder,
File[] files) {
final CustomDialog d = CustomDialogFactory.createDialog(this,
getString(R.string.loadsave_export_overwrite_confirmation_title),
getResources().getDrawable(android.R.drawable.ic_dialog_alert),
getString(R.string.loadsave_export_overwrite_confirmation),
null,
true);
CustomDialogFactory.addButton(d,
android.R.string.yes,
v -> exportSaveGamesFolderContentToFolder(targetFolder, files));
CustomDialogFactory.addDismissButton(d, android.R.string.no);
CustomDialogFactory.show(d);
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void showConfirmOverwriteByImportQuestion(ContentResolver resolver,
DocumentFile appSavegameFolder,
List<DocumentFile> alreadyExistingFiles,
List<DocumentFile> newFiles) {
final String title = getString(R.string.loadsave_import_overwrite_confirmation_title);
String message = getString(R.string.loadsave_import_file_exists_question);
StringBuilder sb = new StringBuilder();
sb.append('\n');
int amount = alreadyExistingFiles.size();
Context context = AndorsTrailApplication.getApplicationFromActivity(this).getApplicationContext();
ArrayList<CustomDialog> dialogs = new ArrayList<>(amount);
for (int i = 0; i < amount; i++) {
DocumentFile alreadyExistingFile = alreadyExistingFiles.get(i);
int slot = getSlotFromSavegameFileName(alreadyExistingFile.getName());
FileHeader existingFileHeader = Savegames.quickload(context, slot);
FileHeader importedFileHeader = null;
try (InputStream stream = resolver.openInputStream(alreadyExistingFile.getUri());
DataInputStream dataStream = new DataInputStream(stream)) {
importedFileHeader = new FileHeader(dataStream, true);
} catch (FileNotFoundException e) {
e.printStackTrace();
continue;
} catch (IOException e) {
e.printStackTrace();
continue;
}
StringBuilder messageSb = new StringBuilder();
String existingFileDescription = getString(R.string.loadsave_import_existing_description,
Integer.toString(slot),
existingFileHeader.describe());
String importedFileDescription = getString(R.string.loadsave_import_imported_description,
Integer.toString(slot),
importedFileHeader.describe());
messageSb.append(getString(R.string.loadsave_import_file_exists_question,
existingFileDescription,
importedFileDescription));
String m = messageSb.toString();
CustomDialog dialog = CustomDialogFactory.createDialog(this,
title,
getResources().getDrawable(android.R.drawable.ic_dialog_alert),
m,
null,
true,
false,
true);
CustomDialogFactory.addButton(dialog, R.string.loadsave_import_option_keep_existing, v -> {
//do nothing
GoToNextConflictOrFinish(resolver, appSavegameFolder, newFiles, dialogs);
});
CustomDialogFactory.addButton(dialog, R.string.loadsave_import_option_keep_imported, v -> {
newFiles.add(alreadyExistingFile);
GoToNextConflictOrFinish(resolver, appSavegameFolder, newFiles, dialogs);
});
CustomDialogFactory.addButton(dialog, R.string.loadsave_import_option_add_as_new, v -> {
newFiles.add(null);//add a null element as marker to know later if the next file
// should be imported as new or overwrite the existing one
newFiles.add(alreadyExistingFile);
GoToNextConflictOrFinish(resolver, appSavegameFolder, newFiles, dialogs);
});
CustomDialogFactory.addCancelButton(dialog, android.R.string.cancel);
CustomDialogFactory.setCancelListener(dialog, v -> {
completeLoadSaveActivity(SLOT_NUMBER_IMPORT_SAVEGAMES, false);
});
dialogs.add(dialog);
}
GoToNextConflictOrFinish(resolver, appSavegameFolder, newFiles, dialogs);
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void GoToNextConflictOrFinish(ContentResolver resolver,
DocumentFile appSavegameFolder,
List<DocumentFile> newFiles,
ArrayList<CustomDialog> dialogs) {
if (dialogs.stream().count() > 0) {
CustomDialog d = dialogs.remove(0);
CustomDialogFactory.show(d);
} else {
importSaveGames(resolver, appSavegameFolder, newFiles);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != Activity.RESULT_OK) {
return;
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
switch (-requestCode) {
case SLOT_NUMBER_EXPORT_SAVEGAMES:
exportSaveGames(data);
return;
case SLOT_NUMBER_IMPORT_SAVEGAMES:
importSaveGames(data);
return;
case SLOT_NUMBER_IMPORT_WORLDMAP:
importWorldmap(data);
return;
}
}
}
//endregion
private void loadSaveGame(int slot) {
if (!Savegames.getSlotFile(slot, this).exists()) {
showErrorLoadingEmptySlot();
} else {
final FileHeader header = Savegames.quickload(this, slot);
if (header != null && !header.hasUnlimitedSaves) {
showSlotGetsDeletedOnLoadWarning(slot);
} else {
completeLoadSaveActivity(slot);
}
}
}
//region show Dialogs
//region Import/Export
@RequiresApi(api = Build.VERSION_CODES.P)
private void showStartExportInfo(OnClickListener onOk) {
final CustomDialog d = CustomDialogFactory.createDialog(this,
getString(R.string.loadsave_export),
getResources().getDrawable(android.R.drawable.ic_dialog_info),
getString(R.string.loadsave_export_info),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.yes, onOk);
CustomDialogFactory.addDismissButton(d, android.R.string.no);
CustomDialogFactory.show(d);
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void showStartImportSavesInfo(OnClickListener onOk) {
final CustomDialog d = CustomDialogFactory.createDialog(this,
getString(R.string.loadsave_import_save),
getResources().getDrawable(android.R.drawable.ic_dialog_info),
getString(R.string.loadsave_import_save_info),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.yes, onOk);
CustomDialogFactory.addDismissButton(d, android.R.string.no);
CustomDialogFactory.show(d);
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void showStartImportWorldmapInfo(OnClickListener onOk) {
final CustomDialog d = CustomDialogFactory.createDialog(this,
getString(R.string.loadsave_import_worldmap),
getResources().getDrawable(android.R.drawable.ic_dialog_info),
getString(R.string.loadsave_import_worldmap_info),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.yes, onOk);
CustomDialogFactory.addDismissButton(d, android.R.string.no);
CustomDialogFactory.show(d);
}
private void showErrorImportingWorldmapWrongDirectory() {
final CustomDialog d = CustomDialogFactory.createErrorDialog(this,
getString(R.string.loadsave_import_worldmap_unsuccessfull),
getString(R.string.loadsave_import_worldmap_wrong_file));
CustomDialogFactory.show(d);
}
private void showErrorExportingSaveGamesUnknown() {
final CustomDialog d = CustomDialogFactory.createErrorDialog(this,
getString(R.string.loadsave_export_unsuccessfull),
getString(R.string.loadsave_export_error_unknown));
CustomDialogFactory.show(d);
}
//endregion
private void showErrorLoadingEmptySlot() {
final CustomDialog d = CustomDialogFactory.createErrorDialog(this,
getString(R.string.startscreen_error_loading_game),
getString(R.string.startscreen_error_loading_empty_slot));
CustomDialogFactory.show(d);
}
private void showSlotGetsDeletedOnLoadWarning(final int slot) {
final CustomDialog d = CustomDialogFactory.createDialog(this,
getString(R.string.startscreen_attention_slot_gets_delete_on_load),
getResources().getDrawable(android.R.drawable.ic_dialog_alert),
getString(R.string.startscreen_attention_message_slot_gets_delete_on_load),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.ok, v -> completeLoadSaveActivity(slot));
CustomDialogFactory.show(d);
}
private void showConfirmOverwriteQuestion(final int slot, String message) {
final String title = getString(R.string.loadsave_save_overwrite_confirmation_title) + ' '
+ getString(R.string.loadsave_save_overwrite_confirmation_slot, slot);
final CustomDialog d = CustomDialogFactory.createDialog(this,
title,
getResources().getDrawable(android.R.drawable.ic_dialog_alert),
message,
null,
true);
CustomDialogFactory.addButton(d, android.R.string.yes, v -> completeLoadSaveActivity(slot));
CustomDialogFactory.addDismissButton(d, android.R.string.no);
CustomDialogFactory.show(d);
}
//endregion
}

View File

@@ -1,180 +1,179 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.ImageView;
import android.widget.TextView;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.WorldSetup;
import com.gpl.rpg.AndorsTrail.WorldSetup.OnResourcesLoadedListener;
import com.gpl.rpg.AndorsTrail.WorldSetup.OnSceneLoadedListener;
import com.gpl.rpg.AndorsTrail.savegames.Savegames;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.CloudsAnimatorView;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
public final class LoadingActivity extends AndorsTrailBaseActivity implements OnResourcesLoadedListener, OnSceneLoadedListener {
private WorldSetup setup;
private Dialog progressDialog;
private CloudsAnimatorView clouds_back, clouds_mid, clouds_front;
boolean loaded = false;
private Object semaphore = new Object();
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getBaseTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setWindowParameters(this);
setContentView(R.layout.startscreen);
TextView tv = (TextView) findViewById(R.id.startscreen_version);
tv.setVisibility(View.GONE);
clouds_back = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_back);
if (clouds_back != null) clouds_back.setCloudsCountAndLayer(40, CloudsAnimatorView.Layer.below);
clouds_mid = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_mid);
if (clouds_mid != null) clouds_mid.setCloudsCountAndLayer(15, CloudsAnimatorView.Layer.center);
clouds_front = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_front);
if (clouds_front != null) clouds_front.setCloudsCountAndLayer(8, CloudsAnimatorView.Layer.above);
this.setup = app.getWorldSetup();
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
((AnimationDrawable)((ImageView)findViewById(R.id.title_logo)).getDrawable()).start();
ImageView iv = (ImageView) findViewById(R.id.ts_foreground);
int ivWidth = iv.getWidth();
int drawableWidth = iv.getDrawable().getIntrinsicWidth();
float ratio = ((float)ivWidth) / ((float)drawableWidth);
if (clouds_back != null) {
clouds_back.setScalingRatio(ratio);
}
if (clouds_mid != null) {
clouds_mid.setScalingRatio(ratio);
}
if (clouds_front != null) {
clouds_front.setScalingRatio(ratio);
}
if (progressDialog == null) {
progressDialog = CustomDialogFactory.createDialog(this, getResources().getString(R.string.dialog_loading_message),
getResources().getDrawable(R.drawable.loading_anim), null, null, false, false);
synchronized (semaphore) {
if (!loaded) {
progressDialog.setOwnerActivity(this);
CustomDialogFactory.show(progressDialog);
}
}
}
}
}
@Override
public void onResume() {
super.onResume();
setup.setOnResourcesLoadedListener(this);
final ImageView iv = (ImageView) findViewById(R.id.ts_foreground);
iv.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
float[] point = new float[]{0f,0.25f * iv.getDrawable().getIntrinsicHeight()};
iv.getImageMatrix().mapPoints(point);
int imgY = (int) (iv.getTop() + point[1]);
if (clouds_back != null) {
clouds_back.setYMax(imgY);
}
if (clouds_mid != null) {
clouds_mid.setYMax(imgY);
}
if (clouds_front != null) {
clouds_front.setYMax(imgY);
}
iv.getViewTreeObserver().removeOnPreDrawListener(this);
return true;
}
});
if (clouds_back != null)clouds_back.resumeAnimation();
if (clouds_mid != null)clouds_mid.resumeAnimation();
if (clouds_front != null)clouds_front.resumeAnimation();
}
@Override
public void onPause() {
super.onPause();
setup.setOnResourcesLoadedListener(null);
setup.removeOnSceneLoadedListener(this);
if (clouds_back != null)clouds_back.pauseAnimation();
if (clouds_mid != null)clouds_mid.pauseAnimation();
if (clouds_front != null)clouds_front.pauseAnimation();
}
@Override
public void onResourcesLoaded() {
loaded = false;
setup.startCharacterSetup(this);
}
@Override
public void onSceneLoaded() {
synchronized (semaphore) {
if (progressDialog != null) progressDialog.dismiss();
loaded =true;
}
startActivity(new Intent(this, MainActivity.class));
this.finish();
}
@Override
public void onSceneLoadFailed(Savegames.LoadSavegameResult loadResult) {
synchronized (semaphore) {
if (progressDialog != null) progressDialog.dismiss();
loaded =true;
}
if (loadResult == Savegames.LoadSavegameResult.savegameIsFromAFutureVersion) {
showLoadingFailedDialog(R.string.dialog_loading_failed_incorrectversion);
} else if (loadResult == Savegames.LoadSavegameResult.cheatingDetected) {
showLoadingFailedDialog(R.string.dialog_loading_failed_cheat);
} else {
showLoadingFailedDialog(R.string.dialog_loading_failed_message);
}
}
private void showLoadingFailedDialog(int messageResourceID) {
final Dialog d = CustomDialogFactory.createDialog(this, getResources().getString(R.string.dialog_loading_failed_title), null, getResources().getString(messageResourceID), null, true);
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
CustomDialogFactory.setDismissListener(d, new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
LoadingActivity.this.finish();
}
});
CustomDialogFactory.show(d);
}
}
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.ImageView;
import android.widget.TextView;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.WorldSetup;
import com.gpl.rpg.AndorsTrail.WorldSetup.OnResourcesLoadedListener;
import com.gpl.rpg.AndorsTrail.WorldSetup.OnSceneLoadedListener;
import com.gpl.rpg.AndorsTrail.savegames.Savegames;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.CloudsAnimatorView;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory.CustomDialog;
public final class LoadingActivity extends AndorsTrailBaseActivity implements OnResourcesLoadedListener, OnSceneLoadedListener {
private WorldSetup setup;
private CustomDialog progressDialog;
private CloudsAnimatorView clouds_back, clouds_mid, clouds_front;
boolean loaded = false;
private Object semaphore = new Object();
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getBaseTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
initializeView(this, R.layout.startscreen, R.id.startscreen_fragment_container);
TextView tv = (TextView) findViewById(R.id.startscreen_version);
tv.setVisibility(View.GONE);
clouds_back = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_back);
if (clouds_back != null) clouds_back.setCloudsCountAndLayer(40, CloudsAnimatorView.Layer.below);
clouds_mid = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_mid);
if (clouds_mid != null) clouds_mid.setCloudsCountAndLayer(15, CloudsAnimatorView.Layer.center);
clouds_front = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_front);
if (clouds_front != null) clouds_front.setCloudsCountAndLayer(8, CloudsAnimatorView.Layer.above);
this.setup = app.getWorldSetup();
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
((AnimationDrawable)((ImageView)findViewById(R.id.title_logo)).getDrawable()).start();
ImageView iv = (ImageView) findViewById(R.id.ts_foreground);
int ivWidth = iv.getWidth();
int drawableWidth = iv.getDrawable().getIntrinsicWidth();
float ratio = ((float)ivWidth) / ((float)drawableWidth);
if (clouds_back != null) {
clouds_back.setScalingRatio(ratio);
}
if (clouds_mid != null) {
clouds_mid.setScalingRatio(ratio);
}
if (clouds_front != null) {
clouds_front.setScalingRatio(ratio);
}
if (progressDialog == null) {
progressDialog = CustomDialogFactory.createDialog(this, getResources().getString(R.string.dialog_loading_message),
getResources().getDrawable(R.drawable.loading_anim), null, null, false, false);
synchronized (semaphore) {
if (!loaded) {
progressDialog.setOwnerActivity(this);
CustomDialogFactory.show(progressDialog);
}
}
}
}
}
@Override
public void onResume() {
super.onResume();
setup.setOnResourcesLoadedListener(this);
final ImageView iv = (ImageView) findViewById(R.id.ts_foreground);
iv.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
float[] point = new float[]{0f,0.25f * iv.getDrawable().getIntrinsicHeight()};
iv.getImageMatrix().mapPoints(point);
int imgY = (int) (iv.getTop() + point[1]);
if (clouds_back != null) {
clouds_back.setYMax(imgY);
}
if (clouds_mid != null) {
clouds_mid.setYMax(imgY);
}
if (clouds_front != null) {
clouds_front.setYMax(imgY);
}
iv.getViewTreeObserver().removeOnPreDrawListener(this);
return true;
}
});
if (clouds_back != null)clouds_back.resumeAnimation();
if (clouds_mid != null)clouds_mid.resumeAnimation();
if (clouds_front != null)clouds_front.resumeAnimation();
}
@Override
public void onPause() {
super.onPause();
setup.setOnResourcesLoadedListener(null);
setup.removeOnSceneLoadedListener(this);
if (clouds_back != null)clouds_back.pauseAnimation();
if (clouds_mid != null)clouds_mid.pauseAnimation();
if (clouds_front != null)clouds_front.pauseAnimation();
}
@Override
public void onResourcesLoaded() {
loaded = false;
setup.startCharacterSetup(this);
}
@Override
public void onSceneLoaded() {
synchronized (semaphore) {
if (progressDialog != null) progressDialog.dismiss();
loaded =true;
}
startActivity(new Intent(this, MainActivity.class));
this.finish();
}
@Override
public void onSceneLoadFailed(Savegames.LoadSavegameResult loadResult) {
synchronized (semaphore) {
if (progressDialog != null) progressDialog.dismiss();
loaded =true;
}
if (loadResult == Savegames.LoadSavegameResult.savegameIsFromAFutureVersion) {
showLoadingFailedDialog(R.string.dialog_loading_failed_incorrectversion);
} else if (loadResult == Savegames.LoadSavegameResult.cheatingDetected) {
showLoadingFailedDialog(R.string.dialog_loading_failed_cheat);
} else {
showLoadingFailedDialog(R.string.dialog_loading_failed_message);
}
}
private void showLoadingFailedDialog(int messageResourceID) {
final CustomDialog d = CustomDialogFactory.createDialog(this, getResources().getString(R.string.dialog_loading_failed_title), null, getResources().getString(messageResourceID), null, true);
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
CustomDialogFactory.setDismissListener(d, new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
LoadingActivity.this.finish();
}
});
CustomDialogFactory.show(d);
}
}

View File

@@ -6,6 +6,7 @@ import java.util.Collection;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
@@ -33,7 +34,6 @@ import com.gpl.rpg.AndorsTrail.controller.listeners.WorldEventListener;
import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition;
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
@@ -43,6 +43,7 @@ import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.CombatView;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory.CustomDialog;
import com.gpl.rpg.AndorsTrail.view.DisplayActiveActorConditionIcons;
import com.gpl.rpg.AndorsTrail.view.ItemContainerAdapter;
import com.gpl.rpg.AndorsTrail.view.MainView;
@@ -90,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);
@@ -247,7 +248,7 @@ public final class MainActivity
final ItemContainerAdapter inventoryListAdapter = new QuickslotsItemContainerAdapter(lv.getContext(), world.tileManager, world.model.player.inventory.usableItems(), world.model.player, wornTiles);
lv.setAdapter(inventoryListAdapter);
final Dialog d = CustomDialogFactory.createDialog(v.getContext(),
final CustomDialog d = CustomDialogFactory.createDialog(v.getContext(),
v.getResources().getString(R.string.inventory_assign),
v.getResources().getDrawable(R.drawable.ui_icon_equipment),
v.getResources().getString(R.string.inventory_selectitem), view, false);
@@ -304,6 +305,10 @@ public final class MainActivity
t = Toast.makeText(this, msg, duration);
lastToast = new WeakReference<Toast>(t);
} else {
if (Build.VERSION.SDK_INT >= 30 ||
Build.VERSION.SDK_INT >= 26 && t.getView().isShown()) {
t.cancel();
}
t.setText(msg);
t.setDuration(duration);
}
@@ -392,12 +397,10 @@ public final class MainActivity
@Override
public void onPlayerSteppedOnMapSignArea(MapObject area) {
Dialogs.showMapSign(this, controllers, area.id);
}
@Override
public void onPlayerSteppedOnKeyArea(MapObject area) {
Dialogs.showKeyArea(this, controllers, area.id);
}
@Override

View File

@@ -1,6 +1,5 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
@@ -35,13 +34,13 @@ 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));
TextView tv = (TextView) findViewById(R.id.monsterencounter_title);
tv.setText(monster.getName());
world.tileManager.setImageViewTile(getResources(), tv, monster);
world.tileManager.setImageViewTile(getResources(), tv, monster, world.model.currentMaps.tiles);
tv = (TextView) findViewById(R.id.monsterencounter_description);
tv.setText(getString(R.string.dialog_monsterencounter_message, difficulty));

View File

@@ -1,6 +1,5 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
@@ -31,6 +30,7 @@ public final class MonsterInfoActivity extends AndorsTrailBaseActivity {
private RangeBar hp;
private ViewGroup monsterinfo_container;
private TextView monsterinfo_max_ap;
private TextView monsterinfo_killcount;
@Override
@@ -43,11 +43,12 @@ 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);
monsterinfo_max_ap = (TextView) findViewById(R.id.monsterinfo_max_ap);
monsterinfo_killcount = (TextView) findViewById(R.id.monsterinfo_killcount);
Button b = (Button) findViewById(R.id.monsterinfo_close);
b.setOnClickListener(new OnClickListener() {
@@ -79,7 +80,7 @@ public final class MonsterInfoActivity extends AndorsTrailBaseActivity {
private void updateTitle(Monster monster) {
monsterinfo_title.setText(monster.getName());
world.tileManager.setImageViewTile(getResources(), monsterinfo_title, monster);
world.tileManager.setImageViewTile(getResources(), monsterinfo_title, monster, world.model.currentMaps.tiles);
monsterinfo_difficulty.setText(getMonsterDifficultyResource(controllers, monster));
}
@@ -89,12 +90,15 @@ public final class MonsterInfoActivity extends AndorsTrailBaseActivity {
null,
null,
monster.getOnHitEffectsAsList(),
monster.getOnMissEffectsAsList(),
null,
monster.getOnHitReceivedEffectsAsList(),
monster.getOnMissReceivedEffectsAsList(),
monster.getOnDeathEffects(),
false);
hp.update(monster.getMaxHP(), monster.getCurrentHP());
monsterinfo_max_ap.setText(Integer.toString(monster.getMaxAP()));
monsterinfo_killcount.setText(Integer.toString(world.model.statistics.getNumberOfKillsForMonsterName(monster.getName()) ));
}
public static int getMonsterDifficultyResource(ControllerContext controllerContext, Monster monster) {

View File

@@ -1,36 +1,35 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.view.Window;
import android.view.WindowManager;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
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.setLocale(this);
addPreferencesFromResource(R.xml.preferences);
}
@Override
protected void onResume() {
super.onResume();
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setLocale(this);
}
}
package com.gpl.rpg.AndorsTrail.activity;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.view.Window;
import android.view.WindowManager;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
public final class Preferences extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getBaseTheme());
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setWindowParameters(this);
super.onCreate(savedInstanceState);
app.setFullscreenMode(this);
app.setLocale(this);
addPreferencesFromResource(R.xml.preferences);
}
@Override
protected void onResume() {
super.onResume();
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setLocale(this);
}
}

View File

@@ -2,10 +2,8 @@ package com.gpl.rpg.AndorsTrail.activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;
import androidx.fragment.app.FragmentTabHost;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
@@ -25,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

@@ -1,6 +1,5 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
@@ -32,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();
@@ -148,10 +145,12 @@ public final class SkillInfoActivity extends AndorsTrailBaseActivity {
case fightstyleDualWield: return R.string.skill_title_fightstyle_dualwield;
case fightstyle2hand: return R.string.skill_title_fightstyle_2hand;
case fightstyleWeaponShield: return R.string.skill_title_fightstyle_weapon_shield;
case fightstyleUnarmedUnarmored: return R.string.skill_title_fightstyle_unarmed_unarmored;
case specializationDualWield: return R.string.skill_title_specialization_dualwield;
case specialization2hand: return R.string.skill_title_specialization_2hand;
case specializationWeaponShield: return R.string.skill_title_specialization_weapon_shield;
case weaponProficiencyPole: return R.string.skill_title_weapon_prof_pole;
case sporeImmunity: return R.string.skill_title_spore_immunity;
default:
return -1;
}
@@ -180,6 +179,7 @@ public final class SkillInfoActivity extends AndorsTrailBaseActivity {
case resistancePhysical: return res.getString(R.string.skill_longdescription_resistance_physical_capacity, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT * SkillCollection.MAX_LEVEL_RESISTANCE);
case resistanceBlood: return res.getString(R.string.skill_longdescription_resistance_blood_disorder, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_CHANCE_PERCENT * SkillCollection.MAX_LEVEL_RESISTANCE);
case shadowBless: return res.getString(R.string.skill_longdescription_shadow_bless, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_SHADOW_BLESS);
case sporeImmunity: return res.getString(R.string.skill_longdescription_spore_immunity);
case crit1: return res.getString(R.string.skill_longdescription_crit1, SkillCollection.PER_SKILLPOINT_INCREASE_CRIT1_CHANCE);
case crit2: return res.getString(R.string.skill_longdescription_crit2, SkillCollection.PER_SKILLPOINT_INCREASE_CRIT2_CHANCE);
case rejuvenation: return res.getString(R.string.skill_longdescription_rejuvenation, SkillCollection.PER_SKILLPOINT_INCREASE_REJUVENATION_CHANCE);
@@ -194,10 +194,16 @@ public final class SkillInfoActivity extends AndorsTrailBaseActivity {
case armorProficiencyShield: return res.getString(R.string.skill_longdescription_armor_prof_shield, SkillCollection.PER_SKILLPOINT_INCREASE_SHIELD_PROF_DR);
case armorProficiencyUnarmored: return res.getString(R.string.skill_longdescription_armor_prof_unarmored, SkillCollection.PER_SKILLPOINT_INCREASE_UNARMORED_BC);
case armorProficiencyLight: return res.getString(R.string.skill_longdescription_armor_prof_light, SkillCollection.PER_SKILLPOINT_INCREASE_LIGHT_ARMOR_BC_PERCENT);
case armorProficiencyHeavy: return res.getString(R.string.skill_longdescription_armor_prof_heavy, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_BC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_MOVECOST_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_ATKCOST_PERCENT);
case armorProficiencyHeavy: return res.getString(R.string.skill_longdescription_armor_prof_heavy, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_BC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_MOVECOST_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_ATKCOST_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_USECOST_PERCENT);
case fightstyleDualWield: return res.getString(R.string.skill_longdescription_fightstyle_dualwield, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL0, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL1, SkillCollection.DUALWIELD_LEVEL1_OFFHAND_AP_COST_PERCENT, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL2);
case fightstyle2hand: return res.getString(R.string.skill_longdescription_fightstyle_2hand, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_2HAND_DMG_PERCENT);
case fightstyleWeaponShield: return res.getString(R.string.skill_longdescription_fightstyle_weapon_shield, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_WEAPON_AC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_FIGHTSTYLE_SHIELD_BC_PERCENT);
case fightstyleUnarmedUnarmored: return res.getString(R.string.skill_longdescription_fightstyle_unarmed_unarmored,
SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_AC,
SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_BC,
SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_DR,
SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_DMG_MAX,
SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_CM_PERCENT);
case specializationDualWield: return res.getString(R.string.skill_longdescription_specialization_dualwield, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_DUALWIELD_AC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_DUALWIELD_BC_PERCENT);
case specialization2hand: return res.getString(R.string.skill_longdescription_specialization_2hand, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_2HAND_DMG_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_2HAND_AC_PERCENT);
case specializationWeaponShield: return res.getString(R.string.skill_longdescription_specialization_weapon_shield, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_WEAPON_AC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_SPECIALIZATION_WEAPON_DMG_PERCENT);

View File

@@ -1,292 +1,296 @@
package com.gpl.rpg.AndorsTrail.activity;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_MainMenu;
import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_MainMenu.OnNewGameRequestedListener;
import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_NewGame;
import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_NewGame.GameCreationOverListener;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.CloudsAnimatorView;
import android.Manifest;
import android.annotation.TargetApi;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.drawable.AnimationDrawable;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager.OnBackStackChangedListener;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public final class StartScreenActivity extends AndorsTrailBaseFragmentActivity implements OnNewGameRequestedListener, GameCreationOverListener, OnBackStackChangedListener {
private TextView tv;
private TextView development_version;
private CloudsAnimatorView clouds_back, clouds_mid, clouds_front;
private Fragment currentFragment;
//Means false by default, as a toggle is initiated in onCreate.
boolean ui_visible = true;
@Override
public void onCreate(Bundle savedInstanceState) {
initPreferences();
setTheme(ThemeHelper.getBaseTheme());
super.onCreate(savedInstanceState);
final AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
final Resources res = getResources();
TileManager tileManager = app.getWorld().tileManager;
tileManager.setDensity(res);
app.setWindowParameters(this);
setContentView(R.layout.startscreen);
if (findViewById(R.id.startscreen_fragment_container) != null) {
StartScreenActivity_MainMenu mainMenu = new StartScreenActivity_MainMenu();
getSupportFragmentManager().beginTransaction()
.replace(R.id.startscreen_fragment_container, mainMenu)
.commit();
currentFragment = mainMenu;
getSupportFragmentManager().addOnBackStackChangedListener(this);
}
tv = (TextView) findViewById(R.id.startscreen_version);
tv.setText('v' + AndorsTrailApplication.CURRENT_VERSION_DISPLAY);
development_version = (TextView) findViewById(R.id.startscreen_dev_version);
if (AndorsTrailApplication.DEVELOPMENT_INCOMPATIBLE_SAVEGAMES) {
development_version.setText(R.string.startscreen_incompatible_savegames);
development_version.setVisibility(View.VISIBLE);
} else if (!AndorsTrailApplication.IS_RELEASE_VERSION) {
development_version.setText(R.string.startscreen_non_release_version);
development_version.setVisibility(View.VISIBLE);
}
clouds_back = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_back);
if (clouds_back != null) clouds_back.setCloudsCountAndLayer(40, CloudsAnimatorView.Layer.below);
clouds_mid = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_mid);
if (clouds_mid != null) clouds_mid.setCloudsCountAndLayer(15, CloudsAnimatorView.Layer.center);
clouds_front = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_front);
if (clouds_front != null) clouds_front.setCloudsCountAndLayer(8, CloudsAnimatorView.Layer.above);
View background = findViewById(R.id.title_bg);
if (background != null) {
background.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toggleUiVisibility();
}
});
}
if (development_version.getVisibility() == View.VISIBLE) {
development_version.setText(development_version.getText()
// +
// "\nMax Heap: " + Runtime.getRuntime().maxMemory() / (1024 * 1024) + "MB"+
// "\nUsed Heap: " + Runtime.getRuntime().totalMemory() / (1024 * 1024) + "MB"+
// "\nTile size: " + (int) (32 * res.getDisplayMetrics().density)
);
}
toggleUiVisibility();
app.getWorldSetup().startResourceLoader(res);
checkAndRequestPermissions();
}
private static final int READ_EXTERNAL_STORAGE_REQUEST=1;
private static final int WRITE_EXTERNAL_STORAGE_REQUEST=2;
@TargetApi(23)
private void checkAndRequestPermissions() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (getApplicationContext().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
this.requestPermissions(new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, READ_EXTERNAL_STORAGE_REQUEST);
}
if (getApplicationContext().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
this.requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_REQUEST);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (grantResults.length > 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, R.string.storage_permissions_mandatory, Toast.LENGTH_LONG).show();
((AndorsTrailApplication)getApplication()).discardWorld();
finish();
}
}
private void toggleUiVisibility() {
ui_visible = !ui_visible;
int visibility = ui_visible ? View.VISIBLE : View.GONE;
if (tv != null) tv.setVisibility(visibility);
if (!AndorsTrailApplication.IS_RELEASE_VERSION) {
if (development_version != null) development_version.setVisibility(visibility);
}
if (currentFragment != null) {
if (ui_visible) {
if (!AndorsTrailApplication.IS_RELEASE_VERSION) {
development_version.setText(
development_version.getText()
// +
// "\nMax Heap: " + Runtime.getRuntime().maxMemory() / (1024 * 1024) + "MB"+
// "\nUsed Heap: " + Runtime.getRuntime().totalMemory() / (1024 * 1024) + "MB"+
// "\nTile size: " + (int) (32 * getResources().getDisplayMetrics().density)
);
}
getSupportFragmentManager().beginTransaction()
.show(currentFragment)
.commit();
} else {
getSupportFragmentManager().beginTransaction()
.hide(currentFragment)
.commit();
}
}
}
private void initPreferences() {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
AndorsTrailPreferences preferences = app.getPreferences();
preferences.read(this);
ThemeHelper.changeTheme(preferences.selectedTheme);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
((AnimationDrawable)((ImageView)findViewById(R.id.title_logo)).getDrawable()).start();
ImageView iv = (ImageView) findViewById(R.id.ts_foreground);
int ivWidth = iv.getWidth();
int drawableWidth = iv.getDrawable().getIntrinsicWidth();
float ratio = ((float)ivWidth) / ((float)drawableWidth);
if (clouds_back != null) {
clouds_back.setScalingRatio(ratio);
}
if (clouds_mid != null) {
clouds_mid.setScalingRatio(ratio);
}
if (clouds_front != null) {
clouds_front.setScalingRatio(ratio);
}
}
}
@Override
protected void onResume() {
super.onResume();
final ImageView iv = (ImageView) findViewById(R.id.ts_foreground);
iv.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
float[] point = new float[]{0f,0.25f * iv.getDrawable().getIntrinsicHeight()};
iv.getImageMatrix().mapPoints(point);
int imgY = (int) (iv.getTop() + point[1]);
int screenHeight = getResources().getDisplayMetrics().heightPixels;
if (clouds_back != null) {
clouds_back.setYMax(imgY);
}
if (clouds_mid != null) {
clouds_mid.setYMax(imgY);
}
if (clouds_front != null) {
clouds_front.setYMax(imgY);
}
iv.getViewTreeObserver().removeOnPreDrawListener(this);
return true;
}
});
if (clouds_back != null)clouds_back.resumeAnimation();
if (clouds_mid != null)clouds_mid.resumeAnimation();
if (clouds_front != null)clouds_front.resumeAnimation();
}
@Override
protected void onPause() {
super.onPause();
if (clouds_back != null)clouds_back.pauseAnimation();
if (clouds_mid != null)clouds_mid.pauseAnimation();
if (clouds_front != null)clouds_front.pauseAnimation();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
backPressed();
return true;
} else {
return super.onKeyDown(keyCode, event);
}
}
return super.onKeyDown(keyCode, event);
}
private void backPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
getSupportFragmentManager().popBackStack();
currentFragment = getSupportFragmentManager().findFragmentById(R.id.startscreen_fragment_container);
}
}
public void onNewGameRequested() {
if (findViewById(R.id.startscreen_fragment_container) != null) {
StartScreenActivity_NewGame newGameFragment = new StartScreenActivity_NewGame();
getSupportFragmentManager().beginTransaction()
.replace(R.id.startscreen_fragment_container, newGameFragment)
.addToBackStack(null)
.commit();
currentFragment = newGameFragment;
}
}
@Override
public void onGameCreationCancelled() {
backPressed();
}
@Override
public void onBackStackChanged() {
currentFragment = getSupportFragmentManager().findFragmentById(R.id.startscreen_fragment_container);
}
}
package com.gpl.rpg.AndorsTrail.activity;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_MainMenu;
import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_MainMenu.OnNewGameRequestedListener;
import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_NewGame;
import com.gpl.rpg.AndorsTrail.activity.fragment.StartScreenActivity_NewGame.GameCreationOverListener;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.CloudsAnimatorView;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory.CustomDialog;
import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
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;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.ImageView;
import android.widget.TextView;
public final class StartScreenActivity extends AndorsTrailBaseFragmentActivity implements OnNewGameRequestedListener, GameCreationOverListener, OnBackStackChangedListener {
private TextView tv;
private TextView development_version;
private CloudsAnimatorView clouds_back, clouds_mid, clouds_front;
private Fragment currentFragment;
//Means false by default, as a toggle is initiated in onCreate.
boolean ui_visible = true;
@Override
public void onCreate(Bundle savedInstanceState) {
initPreferences();
setTheme(ThemeHelper.getBaseTheme());
super.onCreate(savedInstanceState);
final AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
final Resources res = getResources();
TileManager tileManager = app.getWorld().tileManager;
tileManager.setDensity(res);
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();
getSupportFragmentManager().beginTransaction()
.replace(R.id.startscreen_fragment_container, mainMenu)
.commit();
currentFragment = mainMenu;
getSupportFragmentManager().addOnBackStackChangedListener(this);
}
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);
} else if (!AndorsTrailApplication.IS_RELEASE_VERSION) {
development_version.setText(R.string.startscreen_non_release_version);
development_version.setVisibility(View.VISIBLE);
}
clouds_back = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_back);
if (clouds_back != null) clouds_back.setCloudsCountAndLayer(40, CloudsAnimatorView.Layer.below);
clouds_mid = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_mid);
if (clouds_mid != null) clouds_mid.setCloudsCountAndLayer(15, CloudsAnimatorView.Layer.center);
clouds_front = (CloudsAnimatorView) findViewById(R.id.ts_clouds_animator_front);
if (clouds_front != null) clouds_front.setCloudsCountAndLayer(8, CloudsAnimatorView.Layer.above);
View background = findViewById(R.id.title_bg);
if (background != null) {
background.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toggleUiVisibility();
}
});
}
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()
// +
// "\nMax Heap: " + Runtime.getRuntime().maxMemory() / (1024 * 1024) + "MB"+
// "\nUsed Heap: " + Runtime.getRuntime().totalMemory() / (1024 * 1024) + "MB"+
// "\nTile size: " + (int) (32 * res.getDisplayMetrics().density)
);
}
toggleUiVisibility();
app.getWorldSetup().startResourceLoader(res);
}
@Override
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,
getResources().getString(R.string.dialog_permission_information_title),
getResources().getDrawable(android.R.drawable.ic_dialog_info),
getResources().getString(R.string.dialog_permission_information),
null,
true);
final Activity activity = this;
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
CustomDialogFactory.setDismissListener(d, new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
StartScreenActivity_MainMenu.checkAndRequestPermissions(activity);
}
});
CustomDialogFactory.show(d);
}
}
private void toggleUiVisibility() {
ui_visible = !ui_visible;
int visibility = ui_visible ? View.VISIBLE : View.GONE;
if (tv != null) tv.setVisibility(visibility);
if (!AndorsTrailApplication.IS_RELEASE_VERSION) {
if (development_version != null) development_version.setVisibility(visibility);
}
if (currentFragment != null) {
if (ui_visible) {
if (!AndorsTrailApplication.IS_RELEASE_VERSION) {
development_version.setText(
development_version.getText()
// +
// "\nMax Heap: " + Runtime.getRuntime().maxMemory() / (1024 * 1024) + "MB"+
// "\nUsed Heap: " + Runtime.getRuntime().totalMemory() / (1024 * 1024) + "MB"+
// "\nTile size: " + (int) (32 * getResources().getDisplayMetrics().density)
);
}
getSupportFragmentManager().beginTransaction()
.show(currentFragment)
.commit();
} else {
getSupportFragmentManager().beginTransaction()
.hide(currentFragment)
.commit();
}
}
}
private void initPreferences() {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
AndorsTrailPreferences preferences = app.getPreferences();
preferences.read(this);
ThemeHelper.changeTheme(preferences.selectedTheme);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
((AnimationDrawable)((ImageView)findViewById(R.id.title_logo)).getDrawable()).start();
ImageView iv = (ImageView) findViewById(R.id.ts_foreground);
int ivWidth = iv.getWidth();
int drawableWidth = iv.getDrawable().getIntrinsicWidth();
float ratio = ((float)ivWidth) / ((float)drawableWidth);
if (clouds_back != null) {
clouds_back.setScalingRatio(ratio);
}
if (clouds_mid != null) {
clouds_mid.setScalingRatio(ratio);
}
if (clouds_front != null) {
clouds_front.setScalingRatio(ratio);
}
}
}
@Override
protected void onResume() {
super.onResume();
final ImageView iv = (ImageView) findViewById(R.id.ts_foreground);
iv.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
float[] point = new float[]{0f,0.25f * iv.getDrawable().getIntrinsicHeight()};
iv.getImageMatrix().mapPoints(point);
int imgY = (int) (iv.getTop() + point[1]);
int screenHeight = getResources().getDisplayMetrics().heightPixels;
if (clouds_back != null) {
clouds_back.setYMax(imgY);
}
if (clouds_mid != null) {
clouds_mid.setYMax(imgY);
}
if (clouds_front != null) {
clouds_front.setYMax(imgY);
}
iv.getViewTreeObserver().removeOnPreDrawListener(this);
return true;
}
});
if (clouds_back != null)clouds_back.resumeAnimation();
if (clouds_mid != null)clouds_mid.resumeAnimation();
if (clouds_front != null)clouds_front.resumeAnimation();
}
@Override
protected void onPause() {
super.onPause();
if (clouds_back != null)clouds_back.pauseAnimation();
if (clouds_mid != null)clouds_mid.pauseAnimation();
if (clouds_front != null)clouds_front.pauseAnimation();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
backPressed();
return true;
} else {
return super.onKeyDown(keyCode, event);
}
}
return super.onKeyDown(keyCode, event);
}
private void backPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
getSupportFragmentManager().popBackStack();
currentFragment = getSupportFragmentManager().findFragmentById(R.id.startscreen_fragment_container);
}
}
public void onNewGameRequested() {
if (findViewById(R.id.startscreen_fragment_container) != null) {
StartScreenActivity_NewGame newGameFragment = new StartScreenActivity_NewGame();
getSupportFragmentManager().beginTransaction()
.replace(R.id.startscreen_fragment_container, newGameFragment)
.addToBackStack(null)
.commit();
currentFragment = newGameFragment;
}
}
@Override
public void onGameCreationCancelled() {
backPressed();
}
@Override
public void onBackStackChanged() {
currentFragment = getSupportFragmentManager().findFragmentById(R.id.startscreen_fragment_container);
}
}

View File

@@ -1,476 +1,490 @@
package com.gpl.rpg.AndorsTrail.activity.fragment;
import java.util.Arrays;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.Dialogs;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.activity.ItemInfoActivity;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.ItemController;
import com.gpl.rpg.AndorsTrail.model.actor.HeroCollection;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.item.Inventory;
import com.gpl.rpg.AndorsTrail.model.item.ItemContainer;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection;
import com.gpl.rpg.AndorsTrail.view.CustomMenuInflater;
import com.gpl.rpg.AndorsTrail.view.ItemContainerAdapter;
import com.gpl.rpg.AndorsTrail.view.SpinnerEmulator;
public final class HeroinfoActivity_Inventory extends Fragment implements CustomMenuInflater.MenuItemSelectedListener {
private static final int INTENTREQUEST_ITEMINFO = 3;
private static final int INTENTREQUEST_BULKSELECT_DROP = 11;
private WorldContext world;
private ControllerContext controllers;
private TileCollection wornTiles;
private Player player;
private ListView inventoryList;
private ItemContainerAdapter inventoryListAdapter;
private ItemContainerAdapter inventoryWeaponsListAdapter;
private ItemContainerAdapter inventoryArmorListAdapter;
private ItemContainerAdapter inventoryUsableListAdapter;
private ItemContainerAdapter inventoryQuestListAdapter;
private ItemContainerAdapter inventoryOtherListAdapter;
private TextView heroinfo_stats_gold;
private TextView heroinfo_stats_attack;
private TextView heroinfo_stats_defense;
private ItemType lastSelectedItem; // Workaround android bug #7139
private final ImageView[] wornItemImage = new ImageView[Inventory.WearSlot.values().length];
private final int[] defaultWornItemImageResourceIDs = new int[Inventory.WearSlot.values().length];
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this.getActivity());
if (!app.isInitialized()) return;
this.world = app.getWorld();
this.controllers = app.getControllerContext();
this.player = world.model.player;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.heroinfo_inventory, container, false);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this.getActivity());
if (!app.isInitialized()) return v;
inventoryList = (ListView) v.findViewById(R.id.inventorylist_root);
ImageView heroicon = (ImageView) v.findViewById(R.id.heroinfo_inventory_heroicon);
heroinfo_stats_gold = (TextView) v.findViewById(R.id.heroinfo_stats_gold);
heroinfo_stats_attack = (TextView) v.findViewById(R.id.heroinfo_stats_attack);
heroinfo_stats_defense = (TextView) v.findViewById(R.id.heroinfo_stats_defense);
registerForContextMenu(inventoryList);
inventoryList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// Move this code to separate function? -- Done
ItemType itemType = getSelectedItemType(position);
showInventoryItemInfo(itemType.id);
}
});
inventoryList.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
showContextMenuForItem(getSelectedItemType(position));
return true;
}
});
new SpinnerEmulator(v, R.id.inventorylist_category_filters_button, R.array.inventorylist_category_filters, R.string.heroinfo_inventory_categories) {
@Override
public void setValue(int value) {
world.model.uiSelections.selectedInventoryCategory = value;
}
@Override
public void selectionChanged(int value) {
reloadShownCategory(value);
}
@Override
public int getValue() {
return world.model.uiSelections.selectedInventoryCategory;
}
};
new SpinnerEmulator(v, R.id.inventorylist_sort_filters_button, R.array.inventorylist_sort_filters, R.string.heroinfo_inventory_sort) {
@Override
public void setValue(int value) {
world.model.uiSelections.selectedInventorySort = value;
}
@Override
public void selectionChanged(int value) {
reloadShownSort(player.inventory);
}
@Override
public int getValue() {
return world.model.uiSelections.selectedInventorySort;
}
};
ItemContainer inv = player.inventory;
wornTiles = world.tileManager.loadTilesFor(player.inventory, getResources());
inventoryListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, inv, player, wornTiles);
inventoryList.setAdapter(inventoryListAdapter);
heroicon.setImageResource(HeroCollection.getHeroLargeSprite(player.iconID));
setWearSlot(v, Inventory.WearSlot.weapon, R.id.heroinfo_worn_weapon, R.drawable.equip_weapon);
setWearSlot(v, Inventory.WearSlot.shield, R.id.heroinfo_worn_shield, R.drawable.equip_shield);
setWearSlot(v, Inventory.WearSlot.head, R.id.heroinfo_worn_head, R.drawable.equip_head);
setWearSlot(v, Inventory.WearSlot.body, R.id.heroinfo_worn_body, R.drawable.equip_body);
setWearSlot(v, Inventory.WearSlot.feet, R.id.heroinfo_worn_feet, R.drawable.equip_feet);
setWearSlot(v, Inventory.WearSlot.neck, R.id.heroinfo_worn_neck, R.drawable.equip_neck);
setWearSlot(v, Inventory.WearSlot.hand, R.id.heroinfo_worn_hand, R.drawable.equip_hand);
setWearSlot(v, Inventory.WearSlot.leftring, R.id.heroinfo_worn_ringleft, R.drawable.equip_ring);
setWearSlot(v, Inventory.WearSlot.rightring, R.id.heroinfo_worn_ringright, R.drawable.equip_ring);
return v;
}
@Override
public void onStart() {
super.onStart();
update();
}
private void setWearSlot(final View v, final Inventory.WearSlot inventorySlot, int viewId, int resourceId) {
final ImageView imageView = (ImageView) v.findViewById(viewId);
wornItemImage[inventorySlot.ordinal()] = imageView;
defaultWornItemImageResourceIDs[inventorySlot.ordinal()] = resourceId;
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (player.inventory.isEmptySlot(inventorySlot)) return;
imageView.setClickable(false); // Will be enabled again on update()
showEquippedItemInfo(player.inventory.getItemTypeInWearSlot(inventorySlot), inventorySlot);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case INTENTREQUEST_ITEMINFO:
if (resultCode == ItemInfoActivity.RESULT_MORE_ACTIONS) {
showContextMenuForItem( world.itemTypes.getItemType(data.getExtras().getString("itemTypeID")));
break;
}
if (resultCode != Activity.RESULT_OK) break;
ItemType itemType = world.itemTypes.getItemType(data.getExtras().getString("itemTypeID"));
ItemInfoActivity.ItemInfoAction actionType = ItemInfoActivity.ItemInfoAction.valueOf(data.getExtras().getString("actionType"));
if (actionType == ItemInfoActivity.ItemInfoAction.unequip) {
Inventory.WearSlot slot = Inventory.WearSlot.valueOf(data.getExtras().getString("inventorySlot"));
controllers.itemController.unequipSlot(itemType, slot);
} else if (actionType == ItemInfoActivity.ItemInfoAction.equip) {
Inventory.WearSlot slot = suggestInventorySlot(itemType);
controllers.itemController.equipItem(itemType, slot);
} else if (actionType == ItemInfoActivity.ItemInfoAction.use) {
controllers.itemController.useItem(itemType);
}
break;
case INTENTREQUEST_BULKSELECT_DROP:
if (resultCode != Activity.RESULT_OK) break;
int quantity = data.getExtras().getInt("selectedAmount");
String itemTypeID = data.getExtras().getString("itemTypeID");
dropItem(itemTypeID, quantity);
break;
}
update();
}
private Inventory.WearSlot suggestInventorySlot(ItemType itemType) {
Inventory.WearSlot slot = itemType.category.inventorySlot;
if (player.inventory.isEmptySlot(slot)) return slot;
if (slot == Inventory.WearSlot.leftring) return Inventory.WearSlot.rightring;
if (itemType.isOffhandCapableWeapon()) {
ItemType mainWeapon = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon);
if (mainWeapon != null && mainWeapon.isTwohandWeapon()) return slot;
else if (player.inventory.isEmptySlot(Inventory.WearSlot.shield)) return Inventory.WearSlot.shield;
}
return slot;
}
private void dropItem(String itemTypeID, int quantity) {
ItemType itemType = world.itemTypes.getItemType(itemTypeID);
controllers.itemController.dropItem(itemType, quantity);
}
private void update() {
updateTraits();
updateWorn();
updateItemList();
}
private void updateTraits() {
heroinfo_stats_gold.setText(getResources().getString(R.string.heroinfo_gold, player.inventory.gold));
StringBuilder sb = new StringBuilder(10);
ItemController.describeAttackEffect(
player.getAttackChance(),
player.getDamagePotential().current,
player.getDamagePotential().max,
player.getCriticalSkill(),
player.getCriticalMultiplier(),
sb);
heroinfo_stats_attack.setText(sb.toString());
sb = new StringBuilder(10);
ItemController.describeBlockEffect(player.getBlockChance(), player.getDamageResistance(), sb);
heroinfo_stats_defense.setText(sb.toString());
}
private void updateWorn() {
for(Inventory.WearSlot slot : Inventory.WearSlot.values()) {
updateWornImage(wornItemImage[slot.ordinal()], defaultWornItemImageResourceIDs[slot.ordinal()], player.inventory.getItemTypeInWearSlot(slot));
}
}
private void updateWornImage(ImageView imageView, int resourceIDEmptyImage, ItemType type) {
if (type != null) {
world.tileManager.setImageViewTile(getResources(), imageView, type, wornTiles);
} else {
imageView.setImageResource(resourceIDEmptyImage);
}
imageView.setClickable(true);
}
private void updateItemList() {
int currentScreen = world.model.uiSelections.selectedInventoryCategory;
if (currentScreen == 0)
inventoryListAdapter.notifyDataSetChanged();
else
reloadShownCategory(world.model.uiSelections.selectedInventoryCategory);
}
// @Override
// public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {}
// ItemType type = getSelectedItemType((AdapterContextMenuInfo) menuInfo);
public void showContextMenuForItem(ItemType type) {
MenuInflater inflater = getActivity().getMenuInflater();
Menu menu = CustomMenuInflater.newMenuInstance(getActivity());
inflater.inflate(R.menu.inventoryitem, menu);
if (type.isUsable()){
menu.findItem(R.id.inv_menu_use).setVisible(true);
menu.findItem(R.id.inv_menu_assign).setVisible(true);
}
if (type.isEquippable()) {
menu.findItem(R.id.inv_menu_equip).setVisible(true);
if (type.isOffhandCapableWeapon()) menu.findItem(R.id.inv_menu_equip_offhand).setVisible(true);
else if (type.category.inventorySlot == Inventory.WearSlot.leftring) menu.findItem(R.id.inv_menu_equip_offhand).setVisible(true);
}
lastSelectedItem = null;
CustomMenuInflater.showMenuInDialog(getActivity(), menu, world.tileManager.getDrawableForItem(getResources(), type.iconID, world.tileManager.loadTilesFor(Arrays.asList(new Integer[] { type.iconID}), getResources())), type.getName(player), type, this);
}
private ItemType getSelectedItemType(int position) {
int v = world.model.uiSelections.selectedInventoryCategory;
if (v == 0) { //All items
return inventoryListAdapter.getItem(position).itemType;
}else if (v == 1) { //Weapon items
return inventoryWeaponsListAdapter.getItem(position).itemType;
} else if (v == 2) { //Armor items
return inventoryArmorListAdapter.getItem(position).itemType;
} else if (v == 3) { //Usable items
return inventoryUsableListAdapter.getItem(position).itemType;
} else if (v == 4) { //Quest items
return inventoryQuestListAdapter.getItem(position).itemType;
} else if (v == 5) { //Other items
return inventoryOtherListAdapter.getItem(position).itemType;
}
// Better than crashing...
return inventoryListAdapter.getItem(position).itemType;
}
private ItemType getSelectedItemType(AdapterContextMenuInfo info) {
return getSelectedItemType(info.position);
}
@Override
public void onMenuItemSelected(MenuItem item, Object data) {
ItemType itemType = (ItemType) data;
switch (item.getItemId()) {
case R.id.inv_menu_info:
showInventoryItemInfo(itemType);
//context.mapController.itemInfo(this, getSelectedItemType(info));
break;
case R.id.inv_menu_drop:
String itemTypeID = itemType.id;
int quantity = player.inventory.getItemQuantity(itemTypeID);
if (quantity > 1) {
Intent intent = Dialogs.getIntentForBulkDroppingInterface(getActivity(), itemTypeID, quantity);
startActivityForResult(intent, INTENTREQUEST_BULKSELECT_DROP);
} else {
dropItem(itemTypeID, quantity);
}
break;
case R.id.inv_menu_equip:
controllers.itemController.equipItem(itemType, itemType.category.inventorySlot);
break;
case R.id.inv_menu_equip_offhand:
if (itemType.category.inventorySlot == Inventory.WearSlot.weapon) {
controllers.itemController.equipItem(itemType, Inventory.WearSlot.shield);
} else if (itemType.category.inventorySlot == Inventory.WearSlot.leftring) {
controllers.itemController.equipItem(itemType, Inventory.WearSlot.rightring);
}
break;
/*case R.id.inv_menu_unequip:
context.mapController.unequipItem(this, getSelectedItemType(info));
break;*/
case R.id.inv_menu_use:
controllers.itemController.useItem(itemType);
break;
case R.id.inv_menu_assign:
//lastSelectedItem = itemType;
break;
case R.id.inv_assign_slot1:
controllers.itemController.setQuickItem(itemType, 0);
break;
case R.id.inv_assign_slot2:
controllers.itemController.setQuickItem(itemType, 1);
break;
case R.id.inv_assign_slot3:
controllers.itemController.setQuickItem(itemType, 2);
break;
case R.id.inv_menu_movetop:
player.inventory.sortToTop(itemType.id);
break;
case R.id.inv_menu_movebottom:
player.inventory.sortToBottom(itemType.id);
break;
}
update();
}
private void showEquippedItemInfo(ItemType itemType, Inventory.WearSlot inventorySlot) {
String text;
boolean enabled = true;
if (world.model.uiSelections.isInCombat) {
int ap = world.model.player.getReequipCost();
text = getResources().getString(R.string.iteminfo_action_unequip_ap, ap);
if (ap > 0) {
enabled = world.model.player.hasAPs(ap);
}
} else {
text = getResources().getString(R.string.iteminfo_action_unequip);
}
Intent intent = Dialogs.getIntentForItemInfo(getActivity(), itemType.id, ItemInfoActivity.ItemInfoAction.unequip, text, enabled, inventorySlot);
startActivityForResult(intent, INTENTREQUEST_ITEMINFO);
}
private void showInventoryItemInfo(String itemTypeID) {
showInventoryItemInfo(world.itemTypes.getItemType(itemTypeID));
}
private void showInventoryItemInfo(ItemType itemType) {
String text = "";
int ap = 0;
boolean enabled = true;
ItemInfoActivity.ItemInfoAction action = ItemInfoActivity.ItemInfoAction.none;
final boolean isInCombat = world.model.uiSelections.isInCombat;
if (itemType.isEquippable()) {
if (isInCombat) {
ap = world.model.player.getReequipCost();
text = getResources().getString(R.string.iteminfo_action_equip_ap, ap);
} else {
text = getResources().getString(R.string.iteminfo_action_equip);
}
action = ItemInfoActivity.ItemInfoAction.equip;
} else if (itemType.isUsable()) {
if (isInCombat) {
ap = world.model.player.getUseItemCost();
text = getResources().getString(R.string.iteminfo_action_use_ap, ap);
} else {
text = getResources().getString(R.string.iteminfo_action_use);
}
action = ItemInfoActivity.ItemInfoAction.use;
}
if (isInCombat && ap > 0) {
enabled = world.model.player.hasAPs(ap);
}
Intent intent = Dialogs.getIntentForItemInfo(getActivity(), itemType.id, action, text, enabled, null);
startActivityForResult(intent, INTENTREQUEST_ITEMINFO);
}
private void reloadShownCategory(int v) { // Apologies about the code duplication,
// just didn't seem to make sense as an array, although I did create a nice array for skill category adapters.
// Decide which category to show
if (v == 0) { //All items
inventoryList.setAdapter(inventoryListAdapter);
inventoryListAdapter.notifyDataSetChanged();
} else if (v == 1) { //Weapon items
inventoryWeaponsListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildWeaponItems(), player, wornTiles);
inventoryList.setAdapter(inventoryWeaponsListAdapter);
inventoryWeaponsListAdapter.notifyDataSetChanged();
} else if (v == 2) { //Armor items
inventoryArmorListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildArmorItems(), player, wornTiles);
inventoryList.setAdapter(inventoryArmorListAdapter);
inventoryArmorListAdapter.notifyDataSetChanged();
} else if (v == 3) { //Usable items
inventoryUsableListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildUsableItems(), player, wornTiles);
inventoryList.setAdapter(inventoryUsableListAdapter);
inventoryUsableListAdapter.notifyDataSetChanged();
} else if (v == 4) { //Quest items
inventoryQuestListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildQuestItems(), player, wornTiles);
inventoryList.setAdapter(inventoryQuestListAdapter);
inventoryQuestListAdapter.notifyDataSetChanged();
} else if (v == 5) { //Other items
inventoryOtherListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildOtherItems(), player, wornTiles);
inventoryList.setAdapter(inventoryOtherListAdapter);
inventoryOtherListAdapter.notifyDataSetChanged();
}
//updateItemList();
}
private void reloadShownSort(Inventory inv) {
int selected = world.model.uiSelections.selectedInventorySort;
inventoryListAdapter.reloadShownSort(selected, world.model.uiSelections.oldSortSelection, player.inventory, player);
// Currently not functional, perhaps because selection only updates when changed.
if (world.model.uiSelections.oldSortSelection == selected)
world.model.uiSelections.oldSortSelection = 0;
else world.model.uiSelections.oldSortSelection = selected;
updateItemList();
}
}
package com.gpl.rpg.AndorsTrail.activity.fragment;
import java.util.Arrays;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.Dialogs;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.activity.ItemInfoActivity;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.ItemController;
import com.gpl.rpg.AndorsTrail.model.actor.HeroCollection;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.item.Inventory;
import com.gpl.rpg.AndorsTrail.model.item.ItemContainer;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection;
import com.gpl.rpg.AndorsTrail.view.CustomMenuInflater;
import com.gpl.rpg.AndorsTrail.view.ItemContainerAdapter;
import com.gpl.rpg.AndorsTrail.view.SpinnerEmulator;
public final class HeroinfoActivity_Inventory extends Fragment implements CustomMenuInflater.MenuItemSelectedListener {
private static final int INTENTREQUEST_ITEMINFO = 3;
private static final int INTENTREQUEST_BULKSELECT_DROP = 11;
private WorldContext world;
private ControllerContext controllers;
private TileCollection wornTiles;
private Player player;
private ListView inventoryList;
private ItemContainerAdapter inventoryListAdapter;
private ItemContainerAdapter inventoryWeaponsListAdapter;
private ItemContainerAdapter inventoryArmorListAdapter;
private ItemContainerAdapter inventoryJewelryListAdapter;
private ItemContainerAdapter inventoryPotionListAdapter;
private ItemContainerAdapter inventoryFoodListAdapter;
private ItemContainerAdapter inventoryQuestListAdapter;
private ItemContainerAdapter inventoryOtherListAdapter;
private TextView heroinfo_stats_gold;
private TextView heroinfo_stats_attack;
private TextView heroinfo_stats_defense;
private ItemType lastSelectedItem; // Workaround android bug #7139
private final ImageView[] wornItemImage = new ImageView[Inventory.WearSlot.values().length];
private final int[] defaultWornItemImageResourceIDs = new int[Inventory.WearSlot.values().length];
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this.getActivity());
if (!app.isInitialized()) return;
this.world = app.getWorld();
this.controllers = app.getControllerContext();
this.player = world.model.player;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.heroinfo_inventory, container, false);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this.getActivity());
if (!app.isInitialized()) return v;
inventoryList = (ListView) v.findViewById(R.id.inventorylist_root);
ImageView heroicon = (ImageView) v.findViewById(R.id.heroinfo_inventory_heroicon);
heroinfo_stats_gold = (TextView) v.findViewById(R.id.heroinfo_stats_gold);
heroinfo_stats_attack = (TextView) v.findViewById(R.id.heroinfo_stats_attack);
heroinfo_stats_defense = (TextView) v.findViewById(R.id.heroinfo_stats_defense);
registerForContextMenu(inventoryList);
inventoryList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
// Move this code to separate function? -- Done
ItemType itemType = getSelectedItemType(position);
showInventoryItemInfo(itemType.id);
}
});
inventoryList.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
showContextMenuForItem(getSelectedItemType(position));
return true;
}
});
new SpinnerEmulator(v, R.id.inventorylist_category_filters_button, R.array.inventorylist_category_filters, R.string.heroinfo_inventory_categories) {
@Override
public void setValue(int value) {
world.model.uiSelections.selectedInventoryCategory = value;
}
@Override
public void selectionChanged(int value) {
reloadShownCategory(value);
}
@Override
public int getValue() {
return world.model.uiSelections.selectedInventoryCategory;
}
};
new SpinnerEmulator(v, R.id.inventorylist_sort_filters_button, R.array.inventorylist_sort_filters, R.string.heroinfo_inventory_sort) {
@Override
public void setValue(int value) {
world.model.uiSelections.selectedInventorySort = value;
}
@Override
public void selectionChanged(int value) {
reloadShownSort(player.inventory);
}
@Override
public int getValue() {
return world.model.uiSelections.selectedInventorySort;
}
};
ItemContainer inv = player.inventory;
wornTiles = world.tileManager.loadTilesFor(player.inventory, getResources());
inventoryListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, inv, player, wornTiles);
inventoryList.setAdapter(inventoryListAdapter);
heroicon.setImageResource(HeroCollection.getHeroLargeSprite(player.iconID));
setWearSlot(v, Inventory.WearSlot.weapon, R.id.heroinfo_worn_weapon, R.drawable.equip_weapon);
setWearSlot(v, Inventory.WearSlot.shield, R.id.heroinfo_worn_shield, R.drawable.equip_shield);
setWearSlot(v, Inventory.WearSlot.head, R.id.heroinfo_worn_head, R.drawable.equip_head);
setWearSlot(v, Inventory.WearSlot.body, R.id.heroinfo_worn_body, R.drawable.equip_body);
setWearSlot(v, Inventory.WearSlot.feet, R.id.heroinfo_worn_feet, R.drawable.equip_feet);
setWearSlot(v, Inventory.WearSlot.neck, R.id.heroinfo_worn_neck, R.drawable.equip_neck);
setWearSlot(v, Inventory.WearSlot.hand, R.id.heroinfo_worn_hand, R.drawable.equip_hand);
setWearSlot(v, Inventory.WearSlot.leftring, R.id.heroinfo_worn_ringleft, R.drawable.equip_ring);
setWearSlot(v, Inventory.WearSlot.rightring, R.id.heroinfo_worn_ringright, R.drawable.equip_ring);
return v;
}
@Override
public void onStart() {
super.onStart();
update();
}
private void setWearSlot(final View v, final Inventory.WearSlot inventorySlot, int viewId, int resourceId) {
final ImageView imageView = (ImageView) v.findViewById(viewId);
wornItemImage[inventorySlot.ordinal()] = imageView;
defaultWornItemImageResourceIDs[inventorySlot.ordinal()] = resourceId;
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (player.inventory.isEmptySlot(inventorySlot)) return;
imageView.setClickable(false); // Will be enabled again on update()
showEquippedItemInfo(player.inventory.getItemTypeInWearSlot(inventorySlot), inventorySlot);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case INTENTREQUEST_ITEMINFO:
if (resultCode == ItemInfoActivity.RESULT_MORE_ACTIONS) {
showContextMenuForItem( world.itemTypes.getItemType(data.getExtras().getString("itemTypeID")));
break;
}
if (resultCode != Activity.RESULT_OK) break;
ItemType itemType = world.itemTypes.getItemType(data.getExtras().getString("itemTypeID"));
ItemInfoActivity.ItemInfoAction actionType = ItemInfoActivity.ItemInfoAction.valueOf(data.getExtras().getString("actionType"));
if (actionType == ItemInfoActivity.ItemInfoAction.unequip) {
Inventory.WearSlot slot = Inventory.WearSlot.valueOf(data.getExtras().getString("inventorySlot"));
controllers.itemController.unequipSlot(itemType, slot);
} else if (actionType == ItemInfoActivity.ItemInfoAction.equip) {
Inventory.WearSlot slot = suggestInventorySlot(itemType);
controllers.itemController.equipItem(itemType, slot);
} else if (actionType == ItemInfoActivity.ItemInfoAction.use) {
controllers.itemController.useItem(itemType);
}
break;
case INTENTREQUEST_BULKSELECT_DROP:
if (resultCode != Activity.RESULT_OK) break;
int quantity = data.getExtras().getInt("selectedAmount");
String itemTypeID = data.getExtras().getString("itemTypeID");
dropItem(itemTypeID, quantity);
break;
}
update();
}
private Inventory.WearSlot suggestInventorySlot(ItemType itemType) {
Inventory.WearSlot slot = itemType.category.inventorySlot;
if (player.inventory.isEmptySlot(slot)) return slot;
if (slot == Inventory.WearSlot.leftring) return Inventory.WearSlot.rightring;
if (itemType.isOffhandCapableWeapon()) {
ItemType mainWeapon = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon);
if (mainWeapon != null && mainWeapon.isTwohandWeapon()) return slot;
else if (player.inventory.isEmptySlot(Inventory.WearSlot.shield)) return Inventory.WearSlot.shield;
}
return slot;
}
private void dropItem(String itemTypeID, int quantity) {
ItemType itemType = world.itemTypes.getItemType(itemTypeID);
controllers.itemController.dropItem(itemType, quantity);
}
private void update() {
updateTraits();
updateWorn();
updateItemList();
}
private void updateTraits() {
heroinfo_stats_gold.setText(getResources().getString(R.string.heroinfo_gold, player.inventory.gold));
StringBuilder sb = new StringBuilder(10);
ItemController.describeAttackEffect(
player.getAttackChance(),
player.getDamagePotential().current,
player.getDamagePotential().max,
player.getCriticalSkill(),
player.getCriticalMultiplier(),
sb);
heroinfo_stats_attack.setText(sb.toString());
sb = new StringBuilder(10);
ItemController.describeBlockEffect(player.getBlockChance(), player.getDamageResistance(), sb);
heroinfo_stats_defense.setText(sb.toString());
}
private void updateWorn() {
for(Inventory.WearSlot slot : Inventory.WearSlot.values()) {
updateWornImage(wornItemImage[slot.ordinal()], defaultWornItemImageResourceIDs[slot.ordinal()], player.inventory.getItemTypeInWearSlot(slot));
}
}
private void updateWornImage(ImageView imageView, int resourceIDEmptyImage, ItemType type) {
if (type != null) {
world.tileManager.setImageViewTile(getResources(), imageView, type, wornTiles);
} else {
imageView.setImageResource(resourceIDEmptyImage);
}
imageView.setClickable(true);
}
private void updateItemList() {
int currentScreen = world.model.uiSelections.selectedInventoryCategory;
if (currentScreen == 0)
inventoryListAdapter.notifyDataSetChanged();
else
reloadShownCategory(world.model.uiSelections.selectedInventoryCategory);
}
// @Override
// public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {}
// ItemType type = getSelectedItemType((AdapterContextMenuInfo) menuInfo);
public void showContextMenuForItem(ItemType type) {
MenuInflater inflater = getActivity().getMenuInflater();
Menu menu = CustomMenuInflater.newMenuInstance(getActivity());
inflater.inflate(R.menu.inventoryitem, menu);
if (type.isUsable()){
menu.findItem(R.id.inv_menu_use).setVisible(true);
menu.findItem(R.id.inv_menu_assign).setVisible(true);
}
if (type.isEquippable()) {
menu.findItem(R.id.inv_menu_equip).setVisible(true);
if (type.isOffhandCapableWeapon()) menu.findItem(R.id.inv_menu_equip_offhand).setVisible(true);
else if (type.category.inventorySlot == Inventory.WearSlot.leftring) menu.findItem(R.id.inv_menu_equip_offhand).setVisible(true);
}
lastSelectedItem = null;
CustomMenuInflater.showMenuInDialog(getActivity(), menu, world.tileManager.getDrawableForItem(getResources(), type.iconID, world.tileManager.loadTilesFor(Arrays.asList(new Integer[] { type.iconID}), getResources())), type.getName(player), type, this);
}
private ItemType getSelectedItemType(int position) {
int v = world.model.uiSelections.selectedInventoryCategory;
if (v == 0) { //All items
return inventoryListAdapter.getItem(position).itemType;
}else if (v == 1) { //Weapon items
return inventoryWeaponsListAdapter.getItem(position).itemType;
} else if (v == 2) { //Armor items
return inventoryArmorListAdapter.getItem(position).itemType;
} else if (v == 3) { //Jewelry items
return inventoryJewelryListAdapter.getItem(position).itemType;
} else if (v == 4) { //Potion items
return inventoryPotionListAdapter.getItem(position).itemType;
} else if (v == 5) { //Food items
return inventoryFoodListAdapter.getItem(position).itemType;
} else if (v == 6) { //Quest items
return inventoryQuestListAdapter.getItem(position).itemType;
} else if (v == 7) { //Other items
return inventoryOtherListAdapter.getItem(position).itemType;
}
// Better than crashing...
return inventoryListAdapter.getItem(position).itemType;
}
private ItemType getSelectedItemType(AdapterContextMenuInfo info) {
return getSelectedItemType(info.position);
}
@Override
public void onMenuItemSelected(MenuItem item, Object data) {
ItemType itemType = (ItemType) data;
switch (item.getItemId()) {
case R.id.inv_menu_info:
showInventoryItemInfo(itemType);
//context.mapController.itemInfo(this, getSelectedItemType(info));
break;
case R.id.inv_menu_drop:
String itemTypeID = itemType.id;
int quantity = player.inventory.getItemQuantity(itemTypeID);
if (quantity > 1) {
Intent intent = Dialogs.getIntentForBulkDroppingInterface(getActivity(), itemTypeID, quantity);
startActivityForResult(intent, INTENTREQUEST_BULKSELECT_DROP);
} else {
dropItem(itemTypeID, quantity);
}
break;
case R.id.inv_menu_equip:
controllers.itemController.equipItem(itemType, itemType.category.inventorySlot);
break;
case R.id.inv_menu_equip_offhand:
if (itemType.category.inventorySlot == Inventory.WearSlot.weapon) {
controllers.itemController.equipItem(itemType, Inventory.WearSlot.shield);
} else if (itemType.category.inventorySlot == Inventory.WearSlot.leftring) {
controllers.itemController.equipItem(itemType, Inventory.WearSlot.rightring);
}
break;
/*case R.id.inv_menu_unequip:
context.mapController.unequipItem(this, getSelectedItemType(info));
break;*/
case R.id.inv_menu_use:
controllers.itemController.useItem(itemType);
break;
case R.id.inv_menu_assign:
//lastSelectedItem = itemType;
break;
case R.id.inv_assign_slot1:
controllers.itemController.setQuickItem(itemType, 0);
break;
case R.id.inv_assign_slot2:
controllers.itemController.setQuickItem(itemType, 1);
break;
case R.id.inv_assign_slot3:
controllers.itemController.setQuickItem(itemType, 2);
break;
case R.id.inv_menu_movetop:
player.inventory.sortToTop(itemType.id);
break;
case R.id.inv_menu_movebottom:
player.inventory.sortToBottom(itemType.id);
break;
}
update();
}
private void showEquippedItemInfo(ItemType itemType, Inventory.WearSlot inventorySlot) {
String text;
boolean enabled = true;
if (world.model.uiSelections.isInCombat) {
int ap = world.model.player.getReequipCost();
text = getResources().getString(R.string.iteminfo_action_unequip_ap, ap);
if (ap > 0) {
enabled = world.model.player.hasAPs(ap);
}
} else {
text = getResources().getString(R.string.iteminfo_action_unequip);
}
Intent intent = Dialogs.getIntentForItemInfo(getActivity(), itemType.id, ItemInfoActivity.ItemInfoAction.unequip, text, enabled, inventorySlot);
startActivityForResult(intent, INTENTREQUEST_ITEMINFO);
}
private void showInventoryItemInfo(String itemTypeID) {
showInventoryItemInfo(world.itemTypes.getItemType(itemTypeID));
}
private void showInventoryItemInfo(ItemType itemType) {
String text = "";
int ap = 0;
boolean enabled = true;
ItemInfoActivity.ItemInfoAction action = ItemInfoActivity.ItemInfoAction.none;
final boolean isInCombat = world.model.uiSelections.isInCombat;
if (itemType.isEquippable()) {
if (isInCombat) {
ap = world.model.player.getReequipCost();
text = getResources().getString(R.string.iteminfo_action_equip_ap, ap);
} else {
text = getResources().getString(R.string.iteminfo_action_equip);
}
action = ItemInfoActivity.ItemInfoAction.equip;
} else if (itemType.isUsable()) {
if (isInCombat) {
ap = world.model.player.getUseItemCost();
text = getResources().getString(R.string.iteminfo_action_use_ap, ap);
} else {
text = getResources().getString(R.string.iteminfo_action_use);
}
action = ItemInfoActivity.ItemInfoAction.use;
}
if (isInCombat && ap > 0) {
enabled = world.model.player.hasAPs(ap);
}
Intent intent = Dialogs.getIntentForItemInfo(getActivity(), itemType.id, action, text, enabled, null);
startActivityForResult(intent, INTENTREQUEST_ITEMINFO);
}
private void reloadShownCategory(int v) { // Apologies about the code duplication,
// just didn't seem to make sense as an array, although I did create a nice array for skill category adapters.
// Decide which category to show
if (v == 0) { //All items
inventoryList.setAdapter(inventoryListAdapter);
inventoryListAdapter.notifyDataSetChanged();
} else if (v == 1) { //Weapon items
inventoryWeaponsListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildWeaponItems(), player, wornTiles);
inventoryList.setAdapter(inventoryWeaponsListAdapter);
inventoryWeaponsListAdapter.notifyDataSetChanged();
} else if (v == 2) { //Armor items
inventoryArmorListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildArmorItems(), player, wornTiles);
inventoryList.setAdapter(inventoryArmorListAdapter);
inventoryArmorListAdapter.notifyDataSetChanged();
} else if (v == 3) { //Jewelry items
inventoryJewelryListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildJewelryItems(), player, wornTiles);
inventoryList.setAdapter(inventoryJewelryListAdapter);
inventoryJewelryListAdapter.notifyDataSetChanged();
} else if (v == 4) { //Potion items
inventoryPotionListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildPotionItems(), player, wornTiles);
inventoryList.setAdapter(inventoryPotionListAdapter);
inventoryPotionListAdapter.notifyDataSetChanged();
} else if (v == 5) { //Food items
inventoryFoodListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildFoodItems(), player, wornTiles);
inventoryList.setAdapter(inventoryFoodListAdapter);
inventoryFoodListAdapter.notifyDataSetChanged();
} else if (v == 6) { //Quest items
inventoryQuestListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildQuestItems(), player, wornTiles);
inventoryList.setAdapter(inventoryQuestListAdapter);
inventoryQuestListAdapter.notifyDataSetChanged();
} else if (v == 7) { //Other items
inventoryOtherListAdapter = new ItemContainerAdapter(getActivity(), world.tileManager, player.inventory.buildOtherItems(), player, wornTiles);
inventoryList.setAdapter(inventoryOtherListAdapter);
inventoryOtherListAdapter.notifyDataSetChanged();
}
//updateItemList();
}
private void reloadShownSort(Inventory inv) {
int selected = world.model.uiSelections.selectedInventorySort;
inventoryListAdapter.reloadShownSort(selected, world.model.uiSelections.oldSortSelection, player.inventory, player);
// Currently not functional, perhaps because selection only updates when changed.
if (world.model.uiSelections.oldSortSelection == selected)
world.model.uiSelections.oldSortSelection = 0;
else world.model.uiSelections.oldSortSelection = selected;
updateItemList();
}
}

View File

@@ -8,7 +8,7 @@ import java.util.Map;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -116,43 +116,47 @@ public final class HeroinfoActivity_Quests extends Fragment {
groupList.clear();
childList.clear();
for (Quest q : world.quests.getAllQuests()) {
for (String questProgressID : player.getAllQuestProgressIDs()) {
Quest q = world.quests.getQuest(questProgressID);
if (q == null) continue; // This should not happen
if (!q.showInLog) continue; // Do not show
if (player.hasAnyQuestProgress(q.questID)) {
boolean isCompleted = q.isCompleted(player);
boolean isCompleted = q.isCompleted(player);
int v = world.model.uiSelections.selectedQuestFilter;
if (v == 0) { // Hide completed quests
if (isCompleted) continue;
} else if (v == 1) { // Include completed quests
// Always show.
} else if (v == 2) { // Only completed quests
if (!isCompleted) continue;
}
int v = world.model.uiSelections.selectedQuestFilter;
if (v == 0) { // Active quests
if (isCompleted) continue;
} else if (v == 1) { // All quests
// Always show.
} else if (v == 2) { // Completed quests
if (!isCompleted) continue;
}
int statusResId;
if (isCompleted) {
statusResId = R.string.questlog_queststatus_completed;
} else {
statusResId = R.string.questlog_queststatus_inprogress;
}
int statusResId;
if (isCompleted) {
statusResId = R.string.questlog_queststatus_completed;
} else {
statusResId = R.string.questlog_queststatus_inprogress;
}
Map<String, Object> item = new HashMap<String, Object>();
item.put(mn_questName, q.name);
item.put(mn_questStatus, getString(R.string.questlog_queststatus, getString(statusResId)));
groupList.add(item);
Map<String, Object> item = new HashMap<String, Object>();
item.put(mn_questName, q.name);
item.put(mn_questStatus, getString(R.string.questlog_queststatus, getString(statusResId)));
groupList.add(item);
List<Map<String, ?>> logItemList = new ArrayList<Map<String, ?>>();
for (QuestLogEntry e : q.stages) {
if (e.logtext.length() <= 0) continue; // Do not show if displaytext is empty.
if (player.hasExactQuestProgress(q.questID, e.progress)) {
item = new HashMap<String, Object>();
item.put(mn_logText, e.logtext);
logItemList.add(item);
List<Map<String, ?>> logItemList = new ArrayList<Map<String, ?>>();
for(Integer progress : player.getQuestProgress(q.questID)) {
for(QuestLogEntry e : q.stages) {
if (e.progress == progress.intValue()) {
if (e.logtext.length() > 0) {
item = new HashMap<String, Object>();
item.put(mn_logText, e.logtext);
logItemList.add(item);
}
continue;
}
}
childList.add(logItemList);
}
childList.add(logItemList);
}
questlog_contents_adapter.notifyDataSetChanged();
}

View File

@@ -5,7 +5,7 @@ import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@@ -5,11 +5,7 @@ import java.util.ArrayList;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.RelativeSizeSpan;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -187,19 +183,25 @@ public final class HeroinfoActivity_Stats extends Fragment {
);
ArrayList<ItemTraits_OnUse> effects_hit = new ArrayList<ItemTraits_OnUse>();
ArrayList<ItemTraits_OnUse> effects_miss = new ArrayList<ItemTraits_OnUse>();
ArrayList<ItemTraits_OnUse> effects_kill = new ArrayList<ItemTraits_OnUse>();
ArrayList<ItemTraits_OnHitReceived> effects_hitReceived = new ArrayList<ItemTraits_OnHitReceived>();
ArrayList<ItemTraits_OnHitReceived> effects_missReceived = new ArrayList<ItemTraits_OnHitReceived>();
for (Inventory.WearSlot slot : Inventory.WearSlot.values()) {
ItemType type = player.inventory.getItemTypeInWearSlot(slot);
if (type == null) continue;
if (type.effects_hit != null) effects_hit.add(type.effects_hit);
if (type.effects_miss != null) effects_miss.add(type.effects_miss);
if (type.effects_kill != null) effects_kill.add(type.effects_kill);
if (type.effects_hitReceived != null) effects_hitReceived.add(type.effects_hitReceived);
if (type.effects_missReceived != null) effects_missReceived.add(type.effects_missReceived);
}
if (effects_hit.isEmpty()) effects_hit = null;
if (effects_miss.isEmpty()) effects_miss = null;
if (effects_kill.isEmpty()) effects_kill = null;
if (effects_hitReceived.isEmpty()) effects_hitReceived = null;
actorinfo_onhiteffects.update(null, null, effects_hit, effects_kill, effects_hitReceived, null, false);
if (effects_missReceived.isEmpty()) effects_missReceived = null;
actorinfo_onhiteffects.update(null, null, effects_hit, effects_miss, effects_kill, effects_hitReceived,effects_missReceived, null, false);
updateStatsTableRow(world.model.statistics.getNumberOfCompletedQuests(world), R.id.heroinfo_gamestats_quests, R.id.heroinfo_gamestats_quests_row);

View File

@@ -1,131 +1,128 @@
package com.gpl.rpg.AndorsTrail.activity.fragment;
import java.util.HashSet;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.Dialogs;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.item.ItemContainer;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection;
import com.gpl.rpg.AndorsTrail.view.ShopItemContainerAdapter;
import com.gpl.rpg.AndorsTrail.view.SpinnerEmulator;
import com.gpl.rpg.AndorsTrail.view.ShopItemContainerAdapter.OnContainerItemClickedListener;
public abstract class ShopActivityFragment extends Fragment implements OnContainerItemClickedListener {
protected static final int INTENTREQUEST_ITEMINFO = 3;
protected static final int INTENTREQUEST_BULKSELECT = 9;
protected WorldContext world;
protected Player player;
protected ItemContainer shopInventory;
private TextView shop_gc;
private ShopItemContainerAdapter listAdapter;
private Button shoplist_sort;
protected abstract boolean isSellingInterface();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(getActivity());
if (!app.isInitialized()) return;
this.world = app.getWorld();
this.player = world.model.player;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.shoplist, container, false);
final Monster npc = Dialogs.getMonsterFromIntent(getActivity().getIntent(), world);
final Resources res = getResources();
shop_gc = (TextView) v.findViewById(R.id.shop_gc);
ListView shoplist = (ListView) v.findViewById(R.id.shop_list);
shopInventory = npc.getShopItems(player);
HashSet<Integer> iconIDs = world.tileManager.getTileIDsFor(shopInventory);
iconIDs.addAll(world.tileManager.getTileIDsFor(player.inventory));
TileCollection tiles = world.tileManager.loadTilesFor(iconIDs, res);
final boolean isSelling = isSellingInterface();
listAdapter = new ShopItemContainerAdapter(getActivity(), tiles, world.tileManager, player, isSelling ? player.inventory : shopInventory, this, isSelling);
shoplist.setAdapter(listAdapter);
//Initiating drop-down list for category filters
shoplist_sort = (Button) v.findViewById(R.id.shoplist_sort_filters);
new SpinnerEmulator(v, R.id.shoplist_sort_filters, R.array.shoplist_sort_filters, R.string.shop_item_sort) {
@Override
public void setValue(int value) {
world.model.uiSelections.selectedShopSort = value;
}
@Override
public void selectionChanged(int value) {
reloadShownSort(isSelling ? player.inventory : shopInventory);
}
@Override
public int getValue() {
return world.model.uiSelections.selectedShopSort;
}
};
return v;
}
private void reloadShownSort(ItemContainer itemContainer) {
listAdapter.reloadShownSort(world.model.uiSelections.selectedShopSort, itemContainer, player);
listAdapter.notifyDataSetChanged();
}
@Override
public void onStart() {
super.onStart();
update();
}
private Toast lastToast = null;
protected void displayStoreAction(final String msg) {
if (lastToast != null) {
lastToast.setText(msg);
} else {
lastToast = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT);
}
lastToast.show();
update();
}
@Override
public void onPause() {
super.onPause();
lastToast = null;
}
protected void update() {
listAdapter.notifyDataSetChanged();
String gc = getResources().getString(R.string.shop_yourgold, player.getGold());
shop_gc.setText(gc);
}
}
package com.gpl.rpg.AndorsTrail.activity.fragment;
import java.util.HashSet;
import android.content.res.Resources;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.Dialogs;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.item.ItemContainer;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection;
import com.gpl.rpg.AndorsTrail.view.ShopItemContainerAdapter;
import com.gpl.rpg.AndorsTrail.view.SpinnerEmulator;
import com.gpl.rpg.AndorsTrail.view.ShopItemContainerAdapter.OnContainerItemClickedListener;
public abstract class ShopActivityFragment extends Fragment implements OnContainerItemClickedListener {
protected static final int INTENTREQUEST_ITEMINFO = 3;
protected static final int INTENTREQUEST_BULKSELECT = 9;
protected WorldContext world;
protected Player player;
protected ItemContainer shopInventory;
private TextView shop_gc;
private ShopItemContainerAdapter listAdapter;
private Button shoplist_sort;
protected abstract boolean isSellingInterface();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(getActivity());
if (!app.isInitialized()) return;
this.world = app.getWorld();
this.player = world.model.player;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.shoplist, container, false);
final Monster npc = Dialogs.getMonsterFromIntent(getActivity().getIntent(), world);
final Resources res = getResources();
shop_gc = (TextView) v.findViewById(R.id.shop_gc);
ListView shoplist = (ListView) v.findViewById(R.id.shop_list);
shopInventory = npc.getShopItems(player);
HashSet<Integer> iconIDs = world.tileManager.getTileIDsFor(shopInventory);
iconIDs.addAll(world.tileManager.getTileIDsFor(player.inventory));
TileCollection tiles = world.tileManager.loadTilesFor(iconIDs, res);
final boolean isSelling = isSellingInterface();
listAdapter = new ShopItemContainerAdapter(getActivity(), tiles, world.tileManager, player, isSelling ? player.inventory : shopInventory, this, isSelling);
shoplist.setAdapter(listAdapter);
//Initiating drop-down list for category filters
shoplist_sort = (Button) v.findViewById(R.id.shoplist_sort_filters);
new SpinnerEmulator(v, R.id.shoplist_sort_filters, R.array.shoplist_sort_filters, R.string.shop_item_sort) {
@Override
public void setValue(int value) {
world.model.uiSelections.selectedShopSort = value;
}
@Override
public void selectionChanged(int value) {
reloadShownSort(isSelling ? player.inventory : shopInventory);
}
@Override
public int getValue() {
return world.model.uiSelections.selectedShopSort;
}
};
return v;
}
private void reloadShownSort(ItemContainer itemContainer) {
listAdapter.reloadShownSort(world.model.uiSelections.selectedShopSort, itemContainer, player);
listAdapter.notifyDataSetChanged();
}
@Override
public void onStart() {
super.onStart();
update();
}
private Toast lastToast = null;
protected void displayStoreAction(final String msg) {
if (lastToast != null) {
lastToast.setText(msg);
} else {
lastToast = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT);
}
lastToast.show();
update();
}
@Override
public void onPause() {
super.onPause();
lastToast = null;
}
protected void update() {
listAdapter.notifyDataSetChanged();
String gc = getResources().getString(R.string.shop_yourgold, player.getGold());
shop_gc.setText(gc);
}
}

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

@@ -1,320 +1,413 @@
package com.gpl.rpg.AndorsTrail.activity.fragment;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
import com.gpl.rpg.AndorsTrail.Dialogs;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.WorldSetup;
import com.gpl.rpg.AndorsTrail.activity.AboutActivity;
import com.gpl.rpg.AndorsTrail.activity.LoadingActivity;
import com.gpl.rpg.AndorsTrail.activity.Preferences;
import com.gpl.rpg.AndorsTrail.controller.Constants;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
import com.gpl.rpg.AndorsTrail.savegames.Savegames;
import com.gpl.rpg.AndorsTrail.savegames.Savegames.FileHeader;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
public class StartScreenActivity_MainMenu extends Fragment {
private static final int INTENTREQUEST_PREFERENCES = 7;
public static final int INTENTREQUEST_LOADGAME = 9;
private boolean hasExistingGame = false;
private Button startscreen_continue;
private Button startscreen_newgame;
private Button startscreen_load;
private ViewGroup save_preview_holder;
private ImageView save_preview_hero_icon;
private TextView save_preview_hero_desc;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
updatePreferences(false);
super.onCreateView(inflater, container, savedInstanceState);
if (container != null) {
container.removeAllViews();
}
View root = inflater.inflate(R.layout.startscreen_mainmenu, container, false);
save_preview_holder = (ViewGroup) root.findViewById(R.id.save_preview_holder);
save_preview_hero_icon = (ImageView) root.findViewById(R.id.save_preview_hero_icon);
save_preview_hero_desc = (TextView) root.findViewById(R.id.save_preview_hero_desc);
startscreen_continue = (Button) root.findViewById(R.id.startscreen_continue);
startscreen_continue.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
continueGame(false, Savegames.SLOT_QUICKSAVE, null);
}
});
startscreen_newgame = (Button) root.findViewById(R.id.startscreen_newgame);
startscreen_newgame.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (hasExistingGame) {
comfirmNewGame();
} else {
createNewGame();
}
}
});
Button b = (Button) root.findViewById(R.id.startscreen_about);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startActivity(new Intent(getActivity(), AboutActivity.class));
}
});
b = (Button) root.findViewById(R.id.startscreen_preferences);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(getActivity(), Preferences.class);
StartScreenActivity_MainMenu.this.startActivityForResult(intent, INTENTREQUEST_PREFERENCES);
}
});
startscreen_load = (Button) root.findViewById(R.id.startscreen_load);
startscreen_load.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(getActivity());
if (hasExistingGame && app != null && app.getWorld() != null && app.getWorld().model != null
&& app.getWorld().model.statistics != null && !app.getWorld().model.statistics.hasUnlimitedSaves()) {
final Dialog d = CustomDialogFactory.createDialog(getActivity(),
getString(R.string.startscreen_load_game),
getResources().getDrawable(android.R.drawable.ic_delete),
getString(R.string.startscreen_load_game_confirm),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.ok, new View.OnClickListener() {
@Override
public void onClick(View v) {
Dialogs.showLoad(StartScreenActivity_MainMenu.this);
}
});
CustomDialogFactory.addDismissButton(d, android.R.string.cancel);
CustomDialogFactory.show(d);
} else {
Dialogs.showLoad(StartScreenActivity_MainMenu.this);
}
}
});
if (AndorsTrailApplication.DEVELOPMENT_FORCE_STARTNEWGAME) {
if (AndorsTrailApplication.DEVELOPMENT_DEBUGRESOURCES) {
continueGame(true, 0, "Debug player");
} else {
continueGame(true, 0, "Player");
}
} else if (AndorsTrailApplication.DEVELOPMENT_FORCE_CONTINUEGAME) {
continueGame(false, Savegames.SLOT_QUICKSAVE, null);
}
return root;
}
@Override
public void onResume() {
super.onResume();
String playerName;
String displayInfo = null;
int iconID = TileManager.CHAR_HERO;
boolean isDead = false;
FileHeader header = Savegames.quickload(getActivity(), Savegames.SLOT_QUICKSAVE);
if (header != null && header.playerName != null) {
playerName = header.playerName;
displayInfo = header.displayInfo;
iconID = header.iconID;
isDead = header.isDead;
} else {
// Before fileversion 14 (v0.6.7), quicksave was stored in Shared preferences
SharedPreferences p = getActivity().getSharedPreferences("quicksave", Activity.MODE_PRIVATE);
playerName = p.getString("playername", null);
if (playerName != null) {
displayInfo = "level " + p.getInt("level", -1);
}
}
hasExistingGame = (playerName != null);
setButtonState(playerName, displayInfo, iconID, isDead);
if (isNewVersion()) {
Dialogs.showNewVersion(getActivity());
}
boolean hasSavegames = !Savegames.getUsedSavegameSlots().isEmpty();
startscreen_load.setEnabled(hasSavegames);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
listener = (OnNewGameRequestedListener) activity;
}
@Override
public void onDetach() {
super.onDetach();
listener = null;
}
private void setButtonState(final String playerName, final String displayInfo, int iconID, boolean isDead) {
startscreen_continue.setEnabled(hasExistingGame && !isDead);
startscreen_newgame.setEnabled(true);
if (hasExistingGame) {
TileManager tm = AndorsTrailApplication.getApplicationFromActivity(getActivity()).getWorld().tileManager;
tm.setImageViewTileForPlayer(getResources(), save_preview_hero_icon, iconID);
save_preview_hero_desc.setText((isDead ? getString(R.string.rip_startscreen) : "") + playerName + ", " + displayInfo);
save_preview_holder.setVisibility(View.VISIBLE);
} else {
save_preview_holder.setVisibility(View.GONE);
}
}
private void continueGame(boolean createNewCharacter, int loadFromSlot, String name) {
final WorldSetup setup = AndorsTrailApplication.getApplicationFromActivity(getActivity()).getWorldSetup();
setup.createNewCharacter = createNewCharacter;
setup.loadFromSlot = loadFromSlot;
setup.newHeroName = name;
startActivity(new Intent(getActivity(), LoadingActivity.class));
}
private void comfirmNewGame() {
// new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.AndorsTrailStyle_Dialog))
// .setTitle(R.string.startscreen_newgame)
// .setMessage(R.string.startscreen_newgame_confirm)
// .setIcon(android.R.drawable.ic_delete)
// .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// //continueGame(true);
//// hasExistingGame = false;
//// setButtonState(null, null, 0);
// createNewGame();
// }
// })
// .setNegativeButton(android.R.string.cancel, null)
// .create().show();
//
//
final Dialog d = CustomDialogFactory.createDialog(getActivity(),
getString(R.string.startscreen_newgame),
getResources().getDrawable(android.R.drawable.ic_delete),
getResources().getString(R.string.startscreen_newgame_confirm),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.ok, new View.OnClickListener() {
@Override
public void onClick(View v) {
createNewGame();
}
});
CustomDialogFactory.addDismissButton(d, android.R.string.cancel);
CustomDialogFactory.show(d);
}
private boolean isNewVersion() {
final String v = "lastversion";
SharedPreferences s = getActivity().getSharedPreferences(Constants.PREFERENCE_MODEL_LASTRUNVERSION, Activity.MODE_PRIVATE);
int lastversion = s.getInt(v, 0);
if (lastversion >= AndorsTrailApplication.CURRENT_VERSION) return false;
Editor e = s.edit();
e.putInt(v, AndorsTrailApplication.CURRENT_VERSION);
e.commit();
return true;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case INTENTREQUEST_LOADGAME:
if (resultCode != Activity.RESULT_OK) break;
final int slot = data.getIntExtra("slot", 1);
continueGame(false, slot, null);
break;
case INTENTREQUEST_PREFERENCES:
updatePreferences(true);
break;
}
}
private void updatePreferences(boolean alreadyStartedLoadingResources) {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(getActivity());
AndorsTrailPreferences preferences = app.getPreferences();
preferences.read(getActivity());
if (app.setLocale(getActivity())) {
if (alreadyStartedLoadingResources) {
// Changing the locale after having loaded the game requires resources to
// be re-loaded. Therefore, we just exit here.
Toast.makeText(getActivity(), R.string.change_locale_requires_restart, Toast.LENGTH_LONG).show();
doFinish();
return;
}
}
if (ThemeHelper.changeTheme(preferences.selectedTheme)) {
// Changing the theme requires a restart to re-create all activities.
Toast.makeText(getActivity(), R.string.change_theme_requires_restart, Toast.LENGTH_LONG).show();
doFinish();
return;
}
app.getWorld().tileManager.updatePreferences(preferences);
}
@SuppressLint("NewApi")
private void doFinish() {
//For Lollipop and above
((AndorsTrailApplication)getActivity().getApplication()).discardWorld();
getActivity().finish();
}
public interface OnNewGameRequestedListener {
public void onNewGameRequested();
}
private OnNewGameRequestedListener listener = null;
private void createNewGame() {
if (listener != null) {
listener.onNewGameRequested();
}
}
}
package com.gpl.rpg.AndorsTrail.activity.fragment;
import android.Manifest;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
import com.gpl.rpg.AndorsTrail.Dialogs;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.WorldSetup;
import com.gpl.rpg.AndorsTrail.activity.AboutActivity;
import com.gpl.rpg.AndorsTrail.activity.LoadingActivity;
import com.gpl.rpg.AndorsTrail.activity.Preferences;
import com.gpl.rpg.AndorsTrail.controller.Constants;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
import com.gpl.rpg.AndorsTrail.savegames.Savegames;
import com.gpl.rpg.AndorsTrail.savegames.Savegames.FileHeader;
import com.gpl.rpg.AndorsTrail.util.AndroidStorage;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory.CustomDialog;
public class StartScreenActivity_MainMenu extends Fragment {
private static final int INTENTREQUEST_PREFERENCES = 7;
public static final int INTENTREQUEST_LOADGAME = 9;
private boolean hasExistingGame = false;
private Button startscreen_continue;
private Button startscreen_newgame;
private Button startscreen_load;
private ViewGroup save_preview_holder;
private ImageView save_preview_hero_icon;
private TextView save_preview_hero_desc;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
updatePreferences(false);
super.onCreateView(inflater, container, savedInstanceState);
if (container != null) {
container.removeAllViews();
}
View root = inflater.inflate(R.layout.startscreen_mainmenu, container, false);
save_preview_holder = (ViewGroup) root.findViewById(R.id.save_preview_holder);
save_preview_hero_icon = (ImageView) root.findViewById(R.id.save_preview_hero_icon);
save_preview_hero_desc = (TextView) root.findViewById(R.id.save_preview_hero_desc);
startscreen_continue = (Button) root.findViewById(R.id.startscreen_continue);
startscreen_continue.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
continueGame(false, Savegames.SLOT_QUICKSAVE, null);
}
});
startscreen_newgame = (Button) root.findViewById(R.id.startscreen_newgame);
startscreen_newgame.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (hasExistingGame) {
comfirmNewGame();
} else {
createNewGame();
}
}
});
Button b = (Button) root.findViewById(R.id.startscreen_about);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startActivity(new Intent(getActivity(), AboutActivity.class));
}
});
b = (Button) root.findViewById(R.id.startscreen_preferences);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(getActivity(), Preferences.class);
StartScreenActivity_MainMenu.this.startActivityForResult(intent, INTENTREQUEST_PREFERENCES);
}
});
startscreen_load = (Button) root.findViewById(R.id.startscreen_load);
startscreen_load.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(getActivity());
if (hasExistingGame && app != null && app.getWorld() != null && app.getWorld().model != null
&& app.getWorld().model.statistics != null && !app.getWorld().model.statistics.hasUnlimitedSaves()) {
final CustomDialog d = CustomDialogFactory.createDialog(getActivity(),
getString(R.string.startscreen_load_game),
getResources().getDrawable(android.R.drawable.ic_delete),
getString(R.string.startscreen_load_game_confirm),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.ok, new View.OnClickListener() {
@Override
public void onClick(View v) {
Dialogs.showLoad(StartScreenActivity_MainMenu.this);
}
});
CustomDialogFactory.addDismissButton(d, android.R.string.cancel);
CustomDialogFactory.show(d);
} else {
Dialogs.showLoad(StartScreenActivity_MainMenu.this);
}
}
});
if (AndorsTrailApplication.DEVELOPMENT_FORCE_STARTNEWGAME) {
if (AndorsTrailApplication.DEVELOPMENT_DEBUGRESOURCES) {
continueGame(true, 0, "Debug player");
} else {
continueGame(true, 0, "Player");
}
} else if (AndorsTrailApplication.DEVELOPMENT_FORCE_CONTINUEGAME) {
continueGame(false, Savegames.SLOT_QUICKSAVE, null);
}
// if it is a new version we first fire a welcome screen in onResume
// and afterwards check the permissions
if (!isNewVersion()) {
checkAndRequestPermissions(getActivity());
migrateDataOnDemand(getActivity());
}
return root;
}
@Override
public void onResume() {
super.onResume();
String playerName;
String displayInfo = null;
int iconID = TileManager.CHAR_HERO;
boolean isDead = false;
FileHeader header = Savegames.quickload(getActivity(), Savegames.SLOT_QUICKSAVE);
if (header != null && header.playerName != null) {
playerName = header.playerName;
displayInfo = header.displayInfo;
iconID = header.iconID;
isDead = header.isDead;
} else {
// Before fileversion 14 (v0.6.7), quicksave was stored in Shared preferences
SharedPreferences p = getActivity().getSharedPreferences("quicksave", Activity.MODE_PRIVATE);
playerName = p.getString("playername", null);
if (playerName != null) {
displayInfo = "level " + p.getInt("level", -1);
}
}
hasExistingGame = (playerName != null);
setButtonState(playerName, displayInfo, iconID, isDead);
if (isNewVersion()) {
Dialogs.showNewVersion(getActivity(), new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
setCurrentVersionForVersionCheck();
checkAndRequestPermissions(getActivity());
migrateDataOnDemand(getActivity());
}
});
}
}
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) {
if (AndroidStorage.shouldMigrateToInternalStorage(activity.getApplicationContext())) {
final CustomDialog d = CustomDialogFactory.createDialog(activity,
getString(R.string.startscreen_migration_title),
activity.getResources().getDrawable(android.R.drawable.ic_dialog_alert),
getString(R.string.startscreen_migration_text),
null,
true);
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
CustomDialogFactory.show(d);
if (!AndroidStorage.migrateToInternalStorage(activity.getApplicationContext())) {
final CustomDialog errorDlg = CustomDialogFactory.createDialog(activity,
getString(R.string.startscreen_migration_title),
activity.getResources().getDrawable(android.R.drawable.ic_dialog_alert),
getString(R.string.startscreen_migration_failure),
null,
true);
CustomDialogFactory.addDismissButton(errorDlg, android.R.string.ok);
d.cancel();
CustomDialogFactory.show(errorDlg);
}
} else {
L.log("INFO: No external files or destination folder ist not empty. No data migration.");
}
} else {
L.log("INFO: No read permission on external folder. No data migration.");
}
}
}
private static final int READ_EXTERNAL_STORAGE_REQUEST=1;
private static final int WRITE_EXTERNAL_STORAGE_REQUEST=2;
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) {
activity.requestPermissions(new String[] {Manifest.permission.READ_EXTERNAL_STORAGE}, READ_EXTERNAL_STORAGE_REQUEST);
}
if (activity.getApplicationContext().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
activity.requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_REQUEST);
}
}
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
listener = (OnNewGameRequestedListener) activity;
}
@Override
public void onDetach() {
super.onDetach();
listener = null;
}
private void setButtonState(final String playerName, final String displayInfo, int iconID, boolean isDead) {
startscreen_continue.setEnabled(hasExistingGame && !isDead);
startscreen_newgame.setEnabled(true);
if (hasExistingGame) {
TileManager tm = AndorsTrailApplication.getApplicationFromActivity(getActivity()).getWorld().tileManager;
tm.setImageViewTileForPlayer(getResources(), save_preview_hero_icon, iconID);
save_preview_hero_desc.setText((isDead ? getString(R.string.rip_startscreen) : "") + playerName + ", " + displayInfo);
save_preview_holder.setVisibility(View.VISIBLE);
} else {
save_preview_holder.setVisibility(View.GONE);
}
}
private void continueGame(boolean createNewCharacter, int loadFromSlot, String name) {
final WorldSetup setup = AndorsTrailApplication.getApplicationFromActivity(getActivity()).getWorldSetup();
setup.createNewCharacter = createNewCharacter;
setup.loadFromSlot = loadFromSlot;
setup.newHeroName = name;
startActivity(new Intent(getActivity(), LoadingActivity.class));
}
private void comfirmNewGame() {
// new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.AndorsTrailStyle_Dialog))
// .setTitle(R.string.startscreen_newgame)
// .setMessage(R.string.startscreen_newgame_confirm)
// .setIcon(android.R.drawable.ic_delete)
// .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// //continueGame(true);
//// hasExistingGame = false;
//// setButtonState(null, null, 0);
// createNewGame();
// }
// })
// .setNegativeButton(android.R.string.cancel, null)
// .create().show();
//
//
final CustomDialog d = CustomDialogFactory.createDialog(getActivity(),
getString(R.string.startscreen_newgame),
getResources().getDrawable(android.R.drawable.ic_delete),
getResources().getString(R.string.startscreen_newgame_confirm),
null,
true);
CustomDialogFactory.addButton(d, android.R.string.ok, new View.OnClickListener() {
@Override
public void onClick(View v) {
createNewGame();
}
});
CustomDialogFactory.addDismissButton(d, android.R.string.cancel);
CustomDialogFactory.show(d);
}
private static final String versionCheck = "lastversion";
private boolean isNewVersion() {
SharedPreferences s = getActivity().getSharedPreferences(Constants.PREFERENCE_MODEL_LASTRUNVERSION, Activity.MODE_PRIVATE);
int lastversion = s.getInt(versionCheck, 0);
if (lastversion >= AndorsTrailApplication.CURRENT_VERSION) return false;
return true;
}
private void setCurrentVersionForVersionCheck() {
SharedPreferences s = getActivity().getSharedPreferences(Constants.PREFERENCE_MODEL_LASTRUNVERSION, Activity.MODE_PRIVATE);
Editor e = s.edit();
e.putInt(versionCheck, AndorsTrailApplication.CURRENT_VERSION);
e.commit();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case INTENTREQUEST_LOADGAME:
boolean unsuccessful = resultCode != Activity.RESULT_OK;
if(data == null) break;
final boolean wasImportOrExport = data.getBooleanExtra("import_export", false);
if (wasImportOrExport) {
String message = getImportExportMessage(!unsuccessful, data);
Toast.makeText(getActivity(), message, Toast.LENGTH_LONG).show();
break;
}
if (unsuccessful) break;
final int slot = data.getIntExtra("slot", 1);
continueGame(false, slot, null);
break;
case INTENTREQUEST_PREFERENCES:
updatePreferences(true);
break;
}
}
private String getImportExportMessage(boolean successful, Intent data) {
String message = "";
boolean isImportWorldmap = data.getBooleanExtra("import_worldmap", false);
boolean isImportSaves = data.getBooleanExtra("import_savegames", false);
boolean isExport = data.getBooleanExtra("export", false);
if(isImportWorldmap) {
message = getString(successful ? R.string.loadsave_import_worldmap_successfull : R.string.loadsave_import_worldmap_unsuccessfull);
} else if(isImportSaves) {
message = getString(successful ? R.string.loadsave_import_save_successfull : R.string.loadsave_import_save_unsuccessfull);
} else if(isExport) {
message = getString(successful ? R.string.loadsave_export_successfull : R.string.loadsave_export_unsuccessfull);
}
return message;
}
private void updatePreferences(boolean alreadyStartedLoadingResources) {
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(getActivity());
AndorsTrailPreferences preferences = app.getPreferences();
preferences.read(getActivity());
if (app.setLocale(getActivity())) {
if (alreadyStartedLoadingResources) {
// Changing the locale after having loaded the game requires resources to
// be re-loaded. Therefore, we just exit here.
Toast.makeText(getActivity(), R.string.change_locale_requires_restart, Toast.LENGTH_LONG).show();
doFinish();
return;
}
}
if (ThemeHelper.changeTheme(preferences.selectedTheme)) {
// Changing the theme requires a restart to re-create all activities.
Toast.makeText(getActivity(), R.string.change_theme_requires_restart, Toast.LENGTH_LONG).show();
doFinish();
return;
}
app.getWorld().tileManager.updatePreferences(preferences);
}
@SuppressLint("NewApi")
private void doFinish() {
//For Lollipop and above
((AndorsTrailApplication) getActivity().getApplication()).discardWorld();
getActivity().finish();
}
public interface OnNewGameRequestedListener {
public void onNewGameRequested();
}
private OnNewGameRequestedListener listener = null;
private void createNewGame() {
if (listener != null) {
listener.onNewGameRequested();
}
}
}

View File

@@ -3,7 +3,8 @@ package com.gpl.rpg.AndorsTrail.activity.fragment;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -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

@@ -2,6 +2,7 @@ package com.gpl.rpg.AndorsTrail.context;
import java.lang.ref.WeakReference;
import android.content.Context;
import android.content.res.Resources;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
@@ -58,4 +59,5 @@ public final class ControllerContext {
public Resources getResources() {
return app.get().getResources();
}
public Context getContext() {return app.get().getApplicationContext(); }
}

View File

@@ -1,5 +1,6 @@
package com.gpl.rpg.AndorsTrail.context;
import com.gpl.rpg.AndorsTrail.model.ChecksumBuilder;
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionTypeCollection;
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
@@ -13,6 +14,8 @@ import com.gpl.rpg.AndorsTrail.resource.ConversationLoader;
import com.gpl.rpg.AndorsTrail.resource.VisualEffectCollection;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
import java.security.DigestException;
public final class WorldContext {
//Objectcollections
public final ConversationLoader conversationLoader;
@@ -62,4 +65,11 @@ public final class WorldContext {
public void resetForNewGame() {
maps.resetForNewGame();
}
public byte[] getChecksum() throws DigestException {
ChecksumBuilder checksumBuilder = new ChecksumBuilder();
model.addToChecksum(checksumBuilder);
maps.addToChecksum(checksumBuilder, this);
return checksumBuilder.build();
}
}

View File

@@ -76,8 +76,7 @@ public final class ActorStatsController {
c.magnitude -= magnitude;
actorConditionListeners.onActorConditionMagnitudeChanged(actor, c);
} else {
actor.conditions.remove(i);
actorConditionListeners.onActorConditionRemoved(actor, c);
actorConditionsRemove(actor, c, i);
}
break;
}
@@ -232,9 +231,9 @@ public final class ActorStatsController {
public void removeAllTemporaryConditions(final Actor actor) {
for(int i = actor.conditions.size() - 1; i >= 0; --i) {
ActorCondition c = actor.conditions.get(i);
if (!c.isTemporaryEffect()) continue;
actor.conditions.remove(i);
actorConditionListeners.onActorConditionRemoved(actor, c);
if (c.isTemporaryEffect() || c.isDurationForeverUntilSleep()) {
actorConditionsRemove(actor, c, i);
}
}
}
@@ -242,8 +241,7 @@ public final class ActorStatsController {
for(int i = actor.conditions.size() - 1; i >= 0; --i) {
ActorCondition c = actor.conditions.get(i);
if (!c.conditionType.conditionTypeID.equals(conditionTypeID)) continue;
actor.conditions.remove(i);
actorConditionListeners.onActorConditionRemoved(actor, c);
actorConditionsRemove(actor, c, i);
}
}
@@ -272,27 +270,39 @@ public final class ActorStatsController {
actor.damagePotential.addToMax(effects.increaseMaxDamage * multiplier);
actor.blockChance += effects.increaseBlockChance * multiplier;
actor.damageResistance += effects.increaseDamageResistance * multiplier;
if (actor.attackChance < 0) actor.attackChance = 0;
if (actor.damagePotential.max < 0) actor.damagePotential.set(0, 0);
}
public void recalculatePlayerStats(Player player) {
player.weaponDamage.set(0,0);
player.resetStatsToBaseTraits();
player.recalculateLevelExperience();
controllers.itemController.applyInventoryEffects(player);
controllers.skillController.applySkillEffects(player);
applyEffectsFromCurrentConditions(player);
ItemController.recalculateHitEffectsFromWornItems(player);
ItemController.applyDamageModifier(player);
capActorHealthAtMax(player);
capActorAPAtMax(player);
lowCapActorAttackChance(player);
lowCapActorDamagePotential(player);
}
public void recalculateMonsterCombatTraits(Monster monster) {
monster.resetStatsToBaseTraits();
applyEffectsFromCurrentConditions(monster);
capActorHealthAtMax(monster);
capActorAPAtMax(monster);
lowCapActorAttackChance(monster);
lowCapActorDamagePotential(monster);
}
private void lowCapActorAttackChance(Actor actor) {
if (actor.attackChance < 0) actor.attackChance = 0;
}
private void lowCapActorDamagePotential(Actor actor) {
if (actor.damagePotential.max < 0) actor.damagePotential.set(0, 0);
}
private void recalculateActorCombatTraits(Actor actor) {
if (actor.isPlayer) recalculatePlayerStats((Player) actor);
else recalculateMonsterCombatTraits((Monster) actor);
@@ -394,14 +404,14 @@ public final class ActorStatsController {
ActorCondition c = actor.conditions.get(i);
if (!c.isTemporaryEffect()) continue;
if (c.duration <= 1) {
actor.conditions.remove(i);
actorConditionListeners.onActorConditionRemoved(actor, c);
actorConditionsRemove(actor, c, i);
removedAnyConditions = true;
} else {
c.duration -= 1;
actorConditionListeners.onActorConditionDurationChanged(actor, c);
}
}
// Immunities
for(int i = actor.immunities.size() - 1; i >= 0; --i) {
ActorCondition c = actor.immunities.get(i);
if (!c.isTemporaryEffect()) continue;
@@ -445,6 +455,50 @@ public final class ActorStatsController {
}
}
int actorConditionsRemove(Actor actor, ActorCondition c, int i) {
int magnitude = 0; //default: No condition from worn items
if (actor instanceof Player) {
Player player = (Player) actor;
magnitude = gotConditionFromWornItem(player, c);
if (magnitude > 0) { //condition from worn items?
c.magnitude = magnitude; // -> readd condition
actorConditionListeners.onActorConditionMagnitudeChanged(actor, c);
c.duration = ActorCondition.DURATION_FOREVER;
actorConditionListeners.onActorConditionDurationChanged(actor, c);
}
}
if (magnitude == 0) {
actor.conditions.remove(i);
actorConditionListeners.onActorConditionRemoved(actor, c);
}
return magnitude;
}
int gotConditionFromWornItem(Player player, ActorCondition c) {
int magnitude = 0; //Default: No worn item with this condition
for (Inventory.WearSlot slot : Inventory.WearSlot.values()) {
ItemType t = player.inventory.getItemTypeInWearSlot(slot);
if (t == null) continue;
ItemTraits_OnEquip equipEffects = t.effects_equip;
if (equipEffects == null) continue;
if (equipEffects.addedConditions == null) continue;
for (ActorConditionEffect e : equipEffects.addedConditions) {
if (e.conditionType.conditionTypeID.equals(c.conditionType.conditionTypeID)) {
if (e.magnitude == ActorCondition.MAGNITUDE_REMOVE_ALL) {
return 0; //On an item-based immunity the result is always 0
}
if (magnitude < e.magnitude) {
magnitude = e.magnitude;
}
}
}
}
return magnitude;
}
public void applyUseEffect(Actor source, Actor target, ItemTraits_OnUse effect) {
if (effect == null) return;
@@ -545,6 +599,11 @@ public final class ActorStatsController {
}
}
public void addPlayerWeaponDamage(Player player, int increaseMinDamage, int increaseMaxDamage) {
player.weaponDamage.add(increaseMinDamage, true);
player.weaponDamage.addToMax(increaseMaxDamage);
}
public static enum LevelUpSelection {
health
,attackChance

View File

@@ -18,6 +18,7 @@ import com.gpl.rpg.AndorsTrail.model.actor.Actor;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.actor.MonsterType;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.item.ItemContainer;
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnHitReceived;
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
@@ -25,6 +26,8 @@ import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea;
import com.gpl.rpg.AndorsTrail.resource.VisualEffectCollection;
import com.gpl.rpg.AndorsTrail.util.Coord;
import static java.lang.Math.max;
public final class CombatController implements VisualEffectCompletedCallback {
private final ControllerContext controllers;
private final WorldContext world;
@@ -56,6 +59,9 @@ public final class CombatController implements VisualEffectCompletedCallback {
public void exitCombat(boolean pickupLootBags) {
setCombatSelection(null, null);
world.model.uiSelections.isInCombat = false;
if (pickupLootBags) {
recordLootInCombatLog();
}
combatTurnListeners.onCombatEnded();
controllers.actorStatsController.setActorMaxAP(world.model.player);
world.model.uiSelections.selectedPosition = null;
@@ -73,6 +79,31 @@ public final class CombatController implements VisualEffectCompletedCallback {
resetCombatState();
}
private void recordLootInCombatLog() {
Loot combinedLoot = Loot.combine(killedMonsterBags);
if (combinedLoot.gold > 0) {
world.model.combatLog.append(controllers.getResources().getString(R.string.dialog_loot_foundgold, combinedLoot.gold));
}
int itemCount = combinedLoot.items.countItems();
if (itemCount > 0) {
StringBuilder itemMessage = new StringBuilder();
if (itemCount == 1) {
itemMessage.append(controllers.getResources().getString(R.string.combat_log_item_single));
} else {
itemMessage.append(controllers.getResources().getString(R.string.combat_log_item_plural, itemCount));
}
boolean firstItem = true;
for (ItemContainer.ItemEntry entry : combinedLoot.items.items) {
if (!firstItem) {
itemMessage.append(";");
}
itemMessage.append(" " + entry.itemType.getName(world.model.player) + " (" + entry.quantity + ")");
firstItem = false;
}
world.model.combatLog.append(itemMessage.toString());
}
}
private void resetCombatState() {
killedMonsterBags.clear();
totalExpThisFight = 0;
@@ -109,10 +140,10 @@ public final class CombatController implements VisualEffectCompletedCallback {
}
public void setCombatSelection(Coord p) {
Monster m = world.model.currentMap.getMonsterAt(p);
Monster m = world.model.currentMaps.map.getMonsterAt(p);
if (m != null) {
setCombatSelection(m, p);
} else if (world.model.currentTileMap.isWalkable(p)) {
} else if (world.model.currentMaps.tileMap.isWalkable(p)) {
setCombatSelection(null, p);
}
}
@@ -128,7 +159,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
public boolean canExitCombat() { return getAdjacentAggressiveMonster() == null; }
private Monster getAdjacentAggressiveMonster() {
return MovementController.getAdjacentAggressiveMonster(world.model.currentMap, world.model.player);
return MovementController.getAdjacentAggressiveMonster(world.model.currentMaps.map, world.model.player);
}
public void executeMoveAttack(int dx, int dy) {
@@ -155,7 +186,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
private void executeFlee(int dx, int dy) {
// avoid monster fields when fleeing
if (!controllers.movementController.findWalkablePosition(dx, dy, AndorsTrailPreferences.MOVEMENTAGGRESSIVENESS_DEFENSIVE)) return;
Monster m = world.model.currentMap.getMonsterAt(world.model.player.nextPosition);
Monster m = world.model.currentMaps.map.getMonsterAt(world.model.player.nextPosition);
if (m != null) return;
executeCombatMove(world.model.player.nextPosition);
}
@@ -198,17 +229,18 @@ public final class CombatController implements VisualEffectCompletedCallback {
public void playerKilledMonster(Monster killedMonster) {
final Player player = world.model.player;
Loot loot = world.model.currentMap.getBagOrCreateAt(killedMonster.position);
Loot loot = world.model.currentMaps.map.getBagOrCreateAt(killedMonster.position);
killedMonster.createLoot(loot, player);
controllers.monsterSpawnController.remove(world.model.currentMap, killedMonster);
controllers.effectController.addSplatter(world.model.currentMap, killedMonster);
controllers.monsterSpawnController.remove(world.model.currentMaps.map, killedMonster);
controllers.effectController.addSplatter(world.model.currentMaps.map, killedMonster);
controllers.actorStatsController.addActorAP(player, player.getSkillLevel(SkillCollection.SkillID.cleave) * SkillCollection.PER_SKILLPOINT_INCREASE_CLEAVE_AP);
controllers.actorStatsController.addActorHealth(player, player.getSkillLevel(SkillCollection.SkillID.eater) * SkillCollection.PER_SKILLPOINT_INCREASE_EATER_HEALTH);
world.model.statistics.addMonsterKill(killedMonster.getMonsterTypeID());
world.model.statistics.addMonsterKill(killedMonster.monsterType);
controllers.actorStatsController.addExperience(loot.exp);
world.model.combatLog.append(controllers.getResources().getString(R.string.dialog_monsterloot_gainedexp, loot.exp));
totalExpThisFight += loot.exp;
loot.exp = 0;
@@ -216,9 +248,10 @@ public final class CombatController implements VisualEffectCompletedCallback {
controllers.actorStatsController.applyOnDeathEffectsToPlayer(player, killedMonster);
if (!loot.hasItemsOrGold()) {
world.model.currentMap.removeGroundLoot(loot);
world.model.currentMaps.map.removeGroundLoot(loot);
} else if (world.model.uiSelections.isInCombat) {
killedMonsterBags.add(loot);
if(!killedMonsterBags.contains(loot))
killedMonsterBags.add(loot);
}
combatActionListeners.onPlayerKilledMonster(killedMonster);
@@ -238,7 +271,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
return true;
}
private boolean playerHasApLeft() {
public boolean playerHasApLeft() {
final Player player = world.model.player;
if (player.hasAPs(player.getUseItemCost())) return true;
if (player.hasAPs(player.getAttackCost())) return true;
@@ -305,7 +338,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
private void beginMonsterTurn(boolean isFirstRound) {
controllers.actorStatsController.setActorMinAP(world.model.player);
world.model.uiSelections.isPlayersCombatTurn = false;
for (MonsterSpawnArea a : world.model.currentMap.spawnAreas) {
for (MonsterSpawnArea a : world.model.currentMaps.map.spawnAreas) {
for (Monster m : a.monsters) {
controllers.actorStatsController.setActorMaxAP(m);
}
@@ -323,7 +356,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
if (shouldAttackWithMonsterInCombat(currentActiveMonster, playerPosition)) return MonsterAction.attack;
}
for (MonsterSpawnArea a : world.model.currentMap.spawnAreas) {
for (MonsterSpawnArea a : world.model.currentMaps.map.spawnAreas) {
for (Monster m : a.monsters) {
if (!m.isAgressive(world.model.player)) continue;
@@ -387,7 +420,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
}
final Monster movingMonster = currentActiveMonster;
controllers.monsterMovementController.moveMonsterToNextPositionDuringCombat(currentActiveMonster, world.model.currentMap, new VisualEffectController.VisualEffectCompletedCallback(){
controllers.monsterMovementController.moveMonsterToNextPositionDuringCombat(currentActiveMonster, world.model.currentMaps.map, new VisualEffectController.VisualEffectCompletedCallback(){
@Override
public void onVisualEffectCompleted(int callbackValue) {
combatActionListeners.onMonsterMovedDuringCombat(movingMonster);
@@ -484,13 +517,29 @@ public final class CombatController implements VisualEffectCompletedCallback {
if (target.isImmuneToCriticalHits()) return false;
return true;
}
private static float getAverageDamagePerHit(Actor attacker, Actor target) {
float result = (float) (getAttackHitChance(attacker, target)) * attacker.getDamagePotential().average() / 100;
if (hasCriticalAttack(attacker, target)) {
result += (float) attacker.getEffectiveCriticalChance() * result * attacker.getCriticalMultiplier() / 100;
// see this post for explenations about the calculation: https://andorstrail.com/viewtopic.php?f=3&t=6661
// if you change code here make sure to run the tests in CombatControllerTest.java
public static float getAverageDamagePerHit(final Actor attacker, final Actor target) {
final int numPossibleOutcomes = attacker.getDamagePotential().max - attacker.getDamagePotential().current + 1;
float avgNonCriticalDamage = 0;
for (int n = 0; n < numPossibleOutcomes; n++) {
avgNonCriticalDamage += max(0, (float) n + attacker.getDamagePotential().current - target.getDamageResistance()) / numPossibleOutcomes;
}
result -= target.getDamageResistance();
return result;
float avgCriticalDamage = 0;
float effectiveCriticalChance = 0;
if (hasCriticalAttack(attacker, target)) {
effectiveCriticalChance = attacker.getEffectiveCriticalChance();
}
if (effectiveCriticalChance > 0) {
for (int n = 0; n < numPossibleOutcomes; n++) {
avgCriticalDamage += max(0, Math.floor((n + attacker.getDamagePotential().current) * attacker.getCriticalMultiplier()) - target.getDamageResistance()) / numPossibleOutcomes;
}
}
float avgDamagePerSuccessfulStrike = (1 - effectiveCriticalChance / 100) * avgNonCriticalDamage + effectiveCriticalChance * avgCriticalDamage / 100;
return (float)getAttackHitChance(attacker, target) * avgDamagePerSuccessfulStrike / 100;
}
private static float getAverageDamagePerTurn(Actor attacker, Actor target) {
return getAverageDamagePerHit(attacker, target) * attacker.getAttacksPerTurn();
@@ -531,6 +580,13 @@ public final class CombatController implements VisualEffectCompletedCallback {
private static final int n = 50;
private static final int F = 40;
private static final float two_divided_by_PI = (float) (2f / Math.PI);
/**
* @implNote
* formula: 50 * (1 + (2 / pi) * atan((attackChance - blockChance - n) / F))
* <br/>
* n = {@value n}; F = {@value F}
* @return [0..100] . 100 == always hit.
*/
private static int getAttackHitChance(final Actor attacker, final Actor target) {
final int c = attacker.getAttackChance() - target.getBlockChance();
// (2/pi)*atan(..) will vary from -1 to +1 .
@@ -539,7 +595,10 @@ public final class CombatController implements VisualEffectCompletedCallback {
private AttackResult attack(final Actor attacker, final Actor target) {
int hitChance = getAttackHitChance(attacker, target);
if (!Constants.roll100(hitChance)) return AttackResult.MISS;
if (!Constants.roll100(hitChance)) {
applyAttackMissStatusEffects(attacker, target);
return AttackResult.MISS;
}
int damage = Constants.rollValue(attacker.getDamagePotential());
boolean isCriticalHit = false;
@@ -573,11 +632,26 @@ public final class CombatController implements VisualEffectCompletedCallback {
}
}
private void applyAttackMissStatusEffects(Actor attacker, Actor target) {
ItemTraits_OnUse[] onMissEffects = attacker.getOnMissEffects();
ItemTraits_OnHitReceived[] onMissReceivedEffects = target.getOnMissReceivedEffects();
if (onMissEffects != null) {
for (ItemTraits_OnUse e : onMissEffects) {
controllers.actorStatsController.applyUseEffect(attacker, target, e);
}
}
if (onMissReceivedEffects != null) {
for (ItemTraits_OnHitReceived e : onMissReceivedEffects) {
controllers.actorStatsController.applyHitReceivedEffect(target, attacker, e);
}
}
}
public void endOfCombatRound() {
world.model.worldData.tickWorldTime();
controllers.gameRoundController.resetRoundTimers();
controllers.actorStatsController.applyConditionsToPlayer(world.model.player, false);
controllers.actorStatsController.applyConditionsToMonsters(world.model.currentMap, true);
controllers.actorStatsController.applyConditionsToMonsters(world.model.currentMaps.map, true);
}
public void monsterSteppedOnPlayer(Monster m) {

View File

@@ -7,7 +7,7 @@ import com.gpl.rpg.AndorsTrail.util.ConstRange;
import com.gpl.rpg.AndorsTrail.util.Range;
public final class Constants {
public static final int PERCENT_EXP_LOST_WHEN_DIED = 30;
public static final int PERCENT_EXP_LOST_WHEN_DIED = 20;
public static final int LEVELUP_EFFECT_HEALTH = 5;
public static final int LEVELUP_EFFECT_ATK_CH = 5;
public static final int LEVELUP_EFFECT_ATK_DMG = 1;
@@ -23,10 +23,11 @@ public final class Constants {
public static final long MINIMUM_INPUT_INTERVAL_STD = 200;
//TODO restore final modifier before release
public static long MINIMUM_INPUT_INTERVAL = AndorsTrailApplication.DEVELOPMENT_FASTSPEED ? MINIMUM_INPUT_INTERVAL_FAST : MINIMUM_INPUT_INTERVAL_STD;
public static final int MAX_MAP_WIDTH = 33;
public static final int MAX_MAP_HEIGHT = 33;
public static final int MAX_MAP_WIDTH = 46;
public static final int MAX_MAP_HEIGHT = 46;
public static final int MONSTER_MOVEMENT_TURN_DURATION_MS = 1200;
public static final int MONSTER_IMMOBILE_MOVE_COST = 999;
public static final int TICK_DELAY = 500;
private static final int ROUND_DURATION = 6000;
@@ -48,10 +49,15 @@ public final class Constants {
public static final String FILENAME_SAVEGAME_FILENAME_PREFIX = "savegame";
public static final String PLACEHOLDER_PLAYERNAME = "$playername";
public static final String CHEAT_DETECTION_FOLDER = "dEAGyGE3YojqXjI3x4x7";
public static final String PASSIVE_ACHIEVEMENT_CHECK_PHRASE = "passive_achievement_check";
public static final String SAVEGAME_FILE_MIME_TYPE = "application/octet-stream";
public static final String WORLDMAP_FILE_MIME_TYPE = "image/png";
public static final String NO_FILE_EXTENSION_MIME_TYPE = "application/no_file_extension_mime_type";
public static final Random rnd = new Random();
public static int rollValue(final ConstRange r) { return rollValue(r.max, r.current); }
public static int rollValue(final ConstRange r, int bias) { return rollValue(r.max, r.current + bias); }
public static int rollValue(final ConstRange r, int bias) { return rollValue((r.max + 1) * 100 -1, r.current * 100 + bias)/100; }
public static int rollValue(final Range r) { return rollValue(r.max, r.current); }
private static int rollValue(final int max, final int min) {
if (max <= min) return max;
@@ -59,7 +65,7 @@ public final class Constants {
}
public static boolean roll100(final int chance) { return rollResult(100, chance); }
public static boolean rollResult(final ConstRange r) { return rollResult(r.max, r.current); }
public static boolean rollResult(final ConstRange r, int bias) { return rollResult(r.max, r.current + bias); }
public static boolean rollResult(final ConstRange r, int bias) { return rollResult(r.max * 100, r.current * 100 + bias); }
public static boolean rollResult(final Range r) { return rollResult(r.max, r.current); }
private static boolean rollResult(final int probabilityMax, final int probabilityValue) { return rnd.nextInt(probabilityMax) < probabilityValue; }
}

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;
@@ -22,6 +24,7 @@ import com.gpl.rpg.AndorsTrail.model.conversation.Reply;
import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry;
@@ -124,13 +127,16 @@ public final class ConversationController {
case changeMapFilter:
changeMapFilter(res, effect.mapName, effect.effectID);
break;
case mapchange:
mapchange(effect.mapName, effect.effectID);
break;
}
}
private void changeMapFilter(Resources res, String mapName, String effectID) {
PredefinedMap map = findMapForScriptEffect(mapName);
map.currentColorFilter = effectID;
if (world.model.currentMap == map) {
if (world.model.currentMaps.map == map) {
controllers.mapController.applyCurrentMapReplacements(res, true);
}
}
@@ -141,7 +147,7 @@ public final class ConversationController {
}
private PredefinedMap findMapForScriptEffect(String mapName) {
if (mapName == null) return world.model.currentMap;
if (mapName == null) return world.model.currentMaps.map;
return world.maps.findPredefinedMap(mapName);
}
@@ -153,8 +159,8 @@ public final class ConversationController {
private void spawnAll(String mapName, String areaId) {
PredefinedMap map = findMapForScriptEffect(mapName);
LayeredTileMap tileMap = null;
if (map == world.model.currentMap) {
tileMap = world.model.currentTileMap;
if (map == world.model.currentMaps.map) {
tileMap = world.model.currentMaps.tileMap;
}
for (MonsterSpawnArea area : map.spawnAreas) {
if (!area.areaID.equals(areaId)) continue;
@@ -172,14 +178,21 @@ public final class ConversationController {
}
}
private void mapchange(String mapName, String place) {
PredefinedMap map = findMapForScriptEffect(mapName);
// controllers.mapController.activateMapObjectGroup(map, mapObjectGroupID);
// controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, effect.mapName, effect.effectID, 0, 0); //cbcbcb check
controllers.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, mapName, place, 0, 0);
}
private void addAlignmentReward(Player player, String faction, int delta) {
player.addAlignment(faction, delta);
MovementController.refreshMonsterAggressiveness(world.model.currentMap, world.model.player);
MovementController.refreshMonsterAggressiveness(world.model.currentMaps.map, world.model.player);
}
private void setAlignmentReward(Player player, String faction, int delta) {
player.setAlignment(faction, delta);
MovementController.refreshMonsterAggressiveness(world.model.currentMap, world.model.player);
MovementController.refreshMonsterAggressiveness(world.model.currentMaps.map, world.model.player);
}
private void addQuestProgressReward(Player player, String questID, int questProgress, ScriptEffectResult result) {
@@ -241,11 +254,11 @@ public final class ConversationController {
result.actorConditions.add(e);
}
private static void applyReplyEffect(final WorldContext world, final Reply reply) {
private static void applyReplyEffect(final WorldContext world, final Reply reply, ControllerContext controllers) {
if (!reply.hasRequirements()) return;
for (Requirement requirement : reply.requires) {
requirementFulfilled(world, requirement);
requirementFulfilled(world, requirement, controllers);
}
}
@@ -270,6 +283,7 @@ public final class ConversationController {
result = player.isLatestQuestProgress(requirement.requireID, requirement.value);
break;
case wear:
case wearRemove:
result = player.inventory.isWearing(requirement.requireID, requirement.value);
break;
case inventoryKeep:
@@ -310,13 +324,35 @@ public final class ConversationController {
case factionScoreEquals:
result = player.getAlignment(requirement.requireID) == requirement.value;
break;
case date:
result = world.model.worldData.getDate(requirement.requireID) >= requirement.value;
break;
case dateEquals:
result = world.model.worldData.getDate(requirement.requireID) == requirement.value;
break;
case time:
result = world.model.worldData.getTime(requirement.requireID) >= requirement.value;
break;
case timeEquals:
result = world.model.worldData.getTime(requirement.requireID) == requirement.value;
break;
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;
}
return requirement.negate ? !result : result;
}
public static void requirementFulfilled(WorldContext world, Requirement requirement) {
public static void requirementFulfilled(WorldContext world, Requirement requirement, ControllerContext controllers) {
Player p = world.model.player;
switch (requirement.requireType) {
case inventoryRemove:
@@ -326,6 +362,10 @@ public final class ConversationController {
} else {
p.inventory.removeItem(requirement.requireID, requirement.value);
}
break;
case wearRemove:
controllers.itemController.removeEquippedItem(requirement.requireID, requirement.value);
break;
}
}
@@ -357,7 +397,7 @@ public final class ConversationController {
public String getCurrentPhraseID() { return currentPhraseID; }
public void playerSelectedReply(final Resources res, Reply r) {
applyReplyEffect(world, r);
applyReplyEffect(world, r, controllers);
proceedToPhrase(res, r.nextPhrase, true, true);
}
@@ -383,23 +423,29 @@ public final class ConversationController {
if (currentPhrase == null) currentPhrase = new Phrase("(phrase \"" + phraseID + "\" not implemented yet)", null, null, null);
}
if (this.currentPhrase.switchToNPC != null) {
setCurrentNPC(world.model.currentMap.findSpawnedMonster(this.currentPhrase.switchToNPC));
setCurrentNPC(world.model.currentMaps.map.findSpawnedMonster(this.currentPhrase.switchToNPC));
}
}
public void proceedToPhrase(final Resources res, String phraseID, boolean applyScriptEffects, boolean displayPhraseMessage) {
while (phraseID != null) {
phraseID = proceedToPhraseInternal(res, phraseID, applyScriptEffects, displayPhraseMessage);
}
}
private String proceedToPhraseInternal(final Resources res, String phraseID, boolean applyScriptEffects, boolean displayPhraseMessage) {
if (phraseID.equalsIgnoreCase(ConversationCollection.PHRASE_CLOSE)) {
listener.onConversationEnded();
return;
return null;
} else if (phraseID.equalsIgnoreCase(ConversationCollection.PHRASE_SHOP)) {
listener.onConversationEndedWithShop(npc);
return;
return null;
} else if (phraseID.equalsIgnoreCase(ConversationCollection.PHRASE_ATTACK)) {
endConversationWithCombat();
return;
return null;
} else if (phraseID.equalsIgnoreCase(ConversationCollection.PHRASE_REMOVE)) {
endConversationWithRemovingNPC();
return;
return null;
}
setCurrentPhrase(res, phraseID);
@@ -414,9 +460,8 @@ public final class ConversationController {
if (currentPhrase.message == null) {
for (Reply r : currentPhrase.replies) {
if (!canSelectReply(world, r)) continue;
applyReplyEffect(world, r);
proceedToPhrase(res, r.nextPhrase, applyScriptEffects, displayPhraseMessage);
return;
applyReplyEffect(world, r, controllers);
return r.nextPhrase;
}
} else if (displayPhraseMessage) {
String message = getDisplayMessage(currentPhrase, player);
@@ -425,13 +470,14 @@ public final class ConversationController {
if (hasOnlyOneNextReply()) {
listener.onConversationCanProceedWithNext();
return;
return null;
}
for (Reply r : currentPhrase.replies) {
if (!canSelectReply(world, r)) continue;
listener.onConversationHasReply(r, getDisplayMessage(r, player));
}
return null;
}
private void endConversationWithRemovingNPC() {
@@ -440,7 +486,7 @@ public final class ConversationController {
listener.onConversationEnded();
return;
}
controllers.monsterSpawnController.remove(world.model.currentMap, npc);
controllers.monsterSpawnController.remove(world.model.currentMaps.map, npc);
listener.onConversationEndedWithRemoval(npc);
}

View File

@@ -74,7 +74,7 @@ public final class GameRoundController implements TimedMessageTask.Callback {
public void onNewFullRound() {
controllers.mapController.resetMapsNotRecentlyVisited();
controllers.actorStatsController.applyConditionsToMonsters(world.model.currentMap, true);
controllers.actorStatsController.applyConditionsToMonsters(world.model.currentMaps.map, true);
controllers.actorStatsController.applyConditionsToPlayer(world.model.player, true);
gameRoundListeners.onNewFullRound();
}
@@ -87,19 +87,19 @@ public final class GameRoundController implements TimedMessageTask.Callback {
public void onNewPlayerRound() {
world.model.worldData.tickWorldTime();
controllers.actorStatsController.applyConditionsToPlayer(world.model.player, false);
controllers.actorStatsController.applySkillEffectsForNewRound(world.model.player, world.model.currentMap);
controllers.mapController.handleMapEvents(world.model.currentMap, world.model.player.position, MapObject.MapObjectEvaluationType.afterEveryRound);
controllers.actorStatsController.applySkillEffectsForNewRound(world.model.player, world.model.currentMaps.map);
controllers.mapController.handleMapEvents(world.model.currentMaps.map, world.model.player.position, MapObject.MapObjectEvaluationType.afterEveryRound);
}
public void onNewMonsterRound() {
controllers.actorStatsController.applyConditionsToMonsters(world.model.currentMap, false);
controllers.actorStatsController.applyConditionsToMonsters(world.model.currentMaps.map, false);
}
private void onNewTick() {
controllers.monsterMovementController.moveMonsters();
controllers.monsterSpawnController.maybeSpawn(world.model.currentMap, world.model.currentTileMap);
controllers.monsterSpawnController.maybeSpawn(world.model.currentMaps.map, world.model.currentMaps.tileMap);
controllers.monsterMovementController.attackWithAgressiveMonsters();
controllers.effectController.updateSplatters(world.model.currentMap);
controllers.mapController.handleMapEvents(world.model.currentMap, world.model.player.position, MapObject.MapObjectEvaluationType.continuously);
controllers.effectController.updateSplatters(world.model.currentMaps.map);
controllers.mapController.handleMapEvents(world.model.currentMaps.map, world.model.player.position, MapObject.MapObjectEvaluationType.continuously);
gameRoundListeners.onNewTick();
}
}

View File

@@ -0,0 +1,342 @@
package com.gpl.rpg.AndorsTrail.controller;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.util.SparseIntArray;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import com.gpl.rpg.AndorsTrail.activity.HeroinfoActivity;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.util.L;
public final class InputController implements OnClickListener, OnLongClickListener{
private final ControllerContext controllers;
private final WorldContext world;
private final Coord lastTouchPosition_tileCoords = new Coord();
private int lastTouchPosition_dx = 0;
private int lastTouchPosition_dy = 0;
private long lastTouchEventTime = 0;
private boolean isDpadActive = false;
private int keyState_dx = 0;
private int keyState_dy = 0;
private boolean keyState_attack = false;
private boolean keyState_flee = false;
private boolean keyState_endturn = false;
final private int KEY_UNHANDLED = 0; // Default, for unhandled keycodes
final private int KEY_MOVE_UP = 1;
final private int KEY_MOVE_DOWN = 2;
final private int KEY_MOVE_LEFT = 3;
final private int KEY_MOVE_RIGHT = 4;
final private int KEY_MOVE_UP_LEFT = 5;
final private int KEY_MOVE_UP_RIGHT = 6;
final private int KEY_MOVE_DOWN_LEFT = 7;
final private int KEY_MOVE_DOWN_RIGHT = 8;
final private int KEY_ATTACK = 9;
final private int KEY_FLEE = 10;
final private int KEY_END_TURN = 11;
final private int KEY_HERO_INFO = 12;
final private int KEY_TOOLBOX = 13;
private SparseIntArray keyMap = new SparseIntArray(); // Android keycode to internal key event mapping. TODO: Configure via preferences
public InputController(ControllerContext controllers, WorldContext world) {
this.controllers = controllers;
this.world = world;
initializeKeyMap();
}
/* New keyboard handler. Both Key Down and Key Up events handled here to allow conditional behaviours.
On 4-way dpad controllers, cursor keys, and WASD, diagonals are generated by chording two keys.
Single-key diagonals are supported on numeric keypad and 8-way dpads (not seen/tested in the wild).
Because two-key combos initially generate a ordinal movement (one key comes in first), which can
be dangerous in tight spaces, modifiers are provided to "lock" the input until both keys are down.
TODO: Use delay timer to enable chorded diagonals on first move without locking kludge?
*/
// Map key codes to spectic internal actions
// TODO: Move mapping out of code to JSON/XML file, or maybe player prefs
private void initializeKeyMap() {
int key;
// Keys mapping to UP
key = KEY_MOVE_UP;
keyMap.put(KeyEvent.KEYCODE_DPAD_UP, key);
keyMap.put(KeyEvent.KEYCODE_NUMPAD_8, key);
keyMap.put(KeyEvent.KEYCODE_8, key);
keyMap.put(KeyEvent.KEYCODE_W, key);
// Keys mapping to DOWN
key = KEY_MOVE_DOWN;
keyMap.put(KeyEvent.KEYCODE_DPAD_DOWN, key);
keyMap.put(KeyEvent.KEYCODE_NUMPAD_2, key);
keyMap.put(KeyEvent.KEYCODE_2, key);
keyMap.put(KeyEvent.KEYCODE_S, key);
// Keys mapping to LEFT
key = KEY_MOVE_LEFT;
keyMap.put(KeyEvent.KEYCODE_DPAD_LEFT, key);
keyMap.put(KeyEvent.KEYCODE_NUMPAD_4, key);
keyMap.put(KeyEvent.KEYCODE_4, key);
keyMap.put(KeyEvent.KEYCODE_A, key);
// Keys mapping to RIGHT
key = KEY_MOVE_RIGHT;
keyMap.put(KeyEvent.KEYCODE_DPAD_RIGHT, key);
keyMap.put(KeyEvent.KEYCODE_NUMPAD_6, key);
keyMap.put(KeyEvent.KEYCODE_6, key);
keyMap.put(KeyEvent.KEYCODE_D, key);
// Keys mapping to UP_LEFT
key = KEY_MOVE_UP_LEFT;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
keyMap.put(KeyEvent.KEYCODE_DPAD_UP_LEFT, key);
}
keyMap.put(KeyEvent.KEYCODE_NUMPAD_7, key);
keyMap.put(KeyEvent.KEYCODE_7, key);
keyMap.put(KeyEvent.KEYCODE_MOVE_HOME, key);
// Keys mapping to UP_RIGHT
key = KEY_MOVE_UP_RIGHT;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
keyMap.put(KeyEvent.KEYCODE_DPAD_UP_RIGHT, key);
}
keyMap.put(KeyEvent.KEYCODE_NUMPAD_9, key);
keyMap.put(KeyEvent.KEYCODE_9, key);
keyMap.put(KeyEvent.KEYCODE_PAGE_UP, key);
// Keys mapping to DOWN_LEFT
key = KEY_MOVE_DOWN_LEFT;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
keyMap.put(KeyEvent.KEYCODE_DPAD_DOWN_LEFT, key);
}
keyMap.put(KeyEvent.KEYCODE_NUMPAD_1, key);
keyMap.put(KeyEvent.KEYCODE_1, key);
keyMap.put(KeyEvent.KEYCODE_MOVE_END, key);
// Keys mapping to DOWN_RIGHT
key = KEY_MOVE_DOWN_RIGHT;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
keyMap.put(KeyEvent.KEYCODE_DPAD_DOWN_RIGHT, key);
}
keyMap.put(KeyEvent.KEYCODE_NUMPAD_3, key);
keyMap.put(KeyEvent.KEYCODE_3, key);
keyMap.put(KeyEvent.KEYCODE_PAGE_DOWN, key);
// Keys mapping to ATTACK
key = KEY_ATTACK;
keyMap.put(KeyEvent.KEYCODE_DPAD_CENTER, key);
keyMap.put(KeyEvent.KEYCODE_BUTTON_A, key);
keyMap.put(KeyEvent.KEYCODE_SPACE, key);
keyMap.put(KeyEvent.KEYCODE_NUMPAD_5, key);
// Keys mapping to FLEE
key = KEY_FLEE;
keyMap.put(KeyEvent.KEYCODE_BUTTON_X, key);
keyMap.put(KeyEvent.KEYCODE_F, key);
keyMap.put(KeyEvent.KEYCODE_NUMPAD_ENTER, key);
keyMap.put(KeyEvent.KEYCODE_ENTER, key);
// Keys mapping to END_TURN
key = KEY_END_TURN;
keyMap.put(KeyEvent.KEYCODE_BUTTON_Y, key);
keyMap.put(KeyEvent.KEYCODE_E, key);
keyMap.put(KeyEvent.KEYCODE_FORWARD_DEL, key);
keyMap.put(KeyEvent.KEYCODE_NUMPAD_DOT, key);
// Keys mapping to HERO_INFO
key = KEY_HERO_INFO;
//keyMap.put(KeyEvent.KEYCODE_BUTTON_SELECT, key);
keyMap.put(KeyEvent.KEYCODE_BUTTON_L1, key);
keyMap.put(KeyEvent.KEYCODE_NUM_LOCK, key);
keyMap.put(KeyEvent.KEYCODE_C, key);
// Keys mapping to TOOLBOX
key = KEY_TOOLBOX;
keyMap.put(KeyEvent.KEYCODE_BUTTON_R1, key);
keyMap.put(KeyEvent.KEYCODE_NUMPAD_DIVIDE, key);
keyMap.put(KeyEvent.KEYCODE_B, key);
}
// Generate game actions based on mapped keys
public boolean onKeyboardAction(Context context, KeyEvent event, boolean acceptInput) {
//L.log("onKeyboardAction(): Processing action " + event.getAction() + " for keyCode " + event.getKeyCode());
if (event.getAction() != KeyEvent.ACTION_DOWN && event.getAction() != KeyEvent.ACTION_UP) return false; // don't handle other actions
boolean keydown = (event.getAction() == KeyEvent.ACTION_DOWN);
boolean inihbit = (keyState_attack || keyState_flee); // used to inhibit movement if an action key is held down
switch (keyMap.get(event.getKeyCode())) {
// Ordinal directional keys - only modify one direction register; registers are combined when
// keys used simultaneously to create synthetic diagonals
case KEY_MOVE_UP:
keyState_dy = keydown ? -1 : 0;
if (acceptInput && !inihbit) onRelativeMovement(keyState_dx, keyState_dy);
break;
case KEY_MOVE_DOWN:
keyState_dy = keydown ? 1 : 0;
if (acceptInput && !inihbit) onRelativeMovement(keyState_dx, keyState_dy);
break;
case KEY_MOVE_LEFT:
keyState_dx = keydown ? -1 : 0;
if (acceptInput && !inihbit) onRelativeMovement(keyState_dx, keyState_dy);
break;
case KEY_MOVE_RIGHT:
keyState_dx = keydown ? 1 : 0;
if (acceptInput && !inihbit) onRelativeMovement(keyState_dx, keyState_dy);
break;
// Diagonal directional keys. Modify both direction registers, can't be combined
// TODO: store individual key position to allow combinations. May not be worth the trouble.
case KEY_MOVE_UP_LEFT:
keyState_dx = keydown ? -1 : 0;
keyState_dy = keydown ? -1 : 0;
if (acceptInput && !inihbit) onRelativeMovement(keyState_dx, keyState_dy);
break;
case KEY_MOVE_UP_RIGHT:
keyState_dx = keydown ? 1 : 0;
keyState_dy = keydown ? -1 : 0;
if (acceptInput && !inihbit) onRelativeMovement(keyState_dx, keyState_dy);
break;
case KEY_MOVE_DOWN_LEFT:
keyState_dx = keydown ? -1 : 0;
keyState_dy = keydown ? 1 : 0;
if (acceptInput && !inihbit) onRelativeMovement(keyState_dx, keyState_dy);
break;
case KEY_MOVE_DOWN_RIGHT:
keyState_dx = keydown ? 1 : 0;
keyState_dy = keydown ? 1 : 0;
if (acceptInput && !inihbit) onRelativeMovement(keyState_dx, keyState_dy);
break;
// Special key handling below - some combat/movement stuff done here because it's too
// specific for logic in onRelativeMovement
// "Attack" shortcut - freeze movement to allow chorded direction when key is released.
// if in combat, executes an attack on key release
case KEY_ATTACK:
if (keydown && !keyState_attack) { // key pressed - pause any movement
if(!world.model.uiSelections.isInCombat) controllers.movementController.stopMovement();
} else if (!keydown && keyState_attack) { // key released - execute attack / move in direction
if (acceptInput) onRelativeMovement(keyState_dx, keyState_dy);
}
keyState_attack = keydown;
break;
// "Flee" shortcut. Intitiates flee when pressed. If a direction is held, moves in chosen direction when released
case KEY_FLEE:
if (world.model.uiSelections.isInCombat) {
if (keydown && !keyState_flee) { // button pressed - set flee; movement locked while pressed
if(acceptInput) controllers.combatController.startFlee();
} else if (!keydown && keyState_flee) { // button released - move flee direction, if held
// We need to do a special call because the movement key may already be down, and if the device
// doesn't generate repeat keystrokes, this handler won't get another event
if ((keyState_dx != 0 || keyState_dy != 0) && allowInputInterval()) {
if(acceptInput) controllers.combatController.executeMoveAttack(keyState_dx, keyState_dy);
}
}
}
keyState_flee = keydown;
break;
// "End Turn" shortcut. Flag prevents repeated end turn if key is held down.
case KEY_END_TURN:
if (acceptInput && keydown && !keyState_endturn) {
if (world.model.uiSelections.isInCombat) controllers.combatController.endPlayerTurn();
}
keyState_endturn = keydown;
break;
// "Hero Info" screen shortcut. New activity takes focus, so we don't need to worry about repeats.
case KEY_HERO_INFO:
if (acceptInput && keydown) context.startActivity(new Intent(context, HeroinfoActivity.class));
break;
case KEY_TOOLBOX:
// ??? ToolboxView toolboxview = context.getApplicationContext(). findViewById(R.id.main_toolboxview);
break;
case KEY_UNHANDLED: // Unhandled keycode
return false;
default: // unhandled keymap code entry (should not happen)
L.log("onKeyboardAction(): Unhandled keyMap code constant " + keyMap.get(event.getKeyCode()) + " for keyCode " + event.getKeyCode());
return false;
}
return true;
}
public void onRelativeMovement(int dx, int dy) {
//L.log("onRelativeMovement(): dx=" + dx + " dy=" + dy + " combat: " + world.model.uiSelections.isInCombat);
if (world.model.uiSelections.isInCombat) {
if (allowInputInterval()) controllers.combatController.executeMoveAttack(dx, dy);
} else if (dx == 0 && dy == 0) {
controllers.movementController.stopMovement();
} else {
controllers.movementController.startMovement(dx, dy, null);
}
}
public void onKeyboardCancel() {
controllers.movementController.stopMovement();
}
@Override
public void onClick(View arg0) {
if (!world.model.uiSelections.isInCombat) return;
onRelativeMovement(lastTouchPosition_dx, lastTouchPosition_dy);
}
@Override
public boolean onLongClick(View arg0) {
if (world.model.uiSelections.isInCombat) {
//TODO: Should be able to mark positions far away (mapwalk / ranged combat)
if (lastTouchPosition_dx == 0 && lastTouchPosition_dy == 0) return false;
if (Math.abs(lastTouchPosition_dx) > 1) return false;
if (Math.abs(lastTouchPosition_dy) > 1) return false;
controllers.combatController.setCombatSelection(lastTouchPosition_tileCoords);
return true;
}
return false;
}
private boolean allowInputInterval() {
final long now = System.currentTimeMillis();
if ((now - lastTouchEventTime) < Constants.MINIMUM_INPUT_INTERVAL) return false;
lastTouchEventTime = now;
return true;
}
public void setDpadActive(boolean isDpadActive) {
this.isDpadActive = isDpadActive;
}
public void onTouchCancel() {
controllers.movementController.stopMovement();
}
public boolean onTouchedTile(int tile_x, int tile_y) {
lastTouchPosition_tileCoords.set(tile_x, tile_y);
lastTouchPosition_dx = tile_x - world.model.player.position.x;
lastTouchPosition_dy = tile_y - world.model.player.position.y;
if (world.model.uiSelections.isInCombat || isDpadActive) return false;
controllers.movementController.startMovement(lastTouchPosition_dx, lastTouchPosition_dy, lastTouchPosition_tileCoords);
return true;
}
}

View File

@@ -1,386 +1,468 @@
package com.gpl.rpg.AndorsTrail.controller;
import java.util.ArrayList;
import java.util.Collection;
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.listeners.QuickSlotListeners;
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
import com.gpl.rpg.AndorsTrail.model.ability.traits.AbilityModifierTraits;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.item.Inventory;
import com.gpl.rpg.AndorsTrail.model.item.ItemContainer;
import com.gpl.rpg.AndorsTrail.model.item.ItemContainer.ItemEntry;
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnHitReceived;
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
public final class ItemController {
private final ControllerContext controllers;
private final WorldContext world;
public final QuickSlotListeners quickSlotListeners = new QuickSlotListeners();
public ItemController(ControllerContext controllers, WorldContext world) {
this.controllers = controllers;
this.world = world;
}
public void dropItem(ItemType type, int quantity) {
if (world.model.player.inventory.getItemQuantity(type.id) < quantity) return;
world.model.player.inventory.removeItem(type.id, quantity);
world.model.currentMap.itemDropped(type, quantity, world.model.player.position);
}
public void equipItem(ItemType type, Inventory.WearSlot slot) {
if (!type.isEquippable()) return;
final Player player = world.model.player;
if (world.model.uiSelections.isInCombat) {
boolean changed = controllers.actorStatsController.useAPs(player, player.getReequipCost());
if (!changed) return;
}
if (!player.inventory.removeItem(type.id, 1)) return;
unequipSlot(player, slot);
if (type.isTwohandWeapon()) unequipSlot(player, Inventory.WearSlot.shield);
else if (slot == Inventory.WearSlot.shield) {
ItemType currentWeapon = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon);
if (currentWeapon != null && currentWeapon.isTwohandWeapon()) unequipSlot(player, Inventory.WearSlot.weapon);
}
player.inventory.setItemTypeInWearSlot(slot, type);
controllers.actorStatsController.addConditionsFromEquippedItem(player, type);
controllers.actorStatsController.recalculatePlayerStats(player);
}
public void unequipSlot(ItemType type, Inventory.WearSlot slot) {
if (!type.isEquippable()) return;
final Player player = world.model.player;
if (player.inventory.isEmptySlot(slot)) return;
if (world.model.uiSelections.isInCombat) {
boolean changed = controllers.actorStatsController.useAPs(player, player.getReequipCost());
if (!changed) return;
}
unequipSlot(player, slot);
controllers.actorStatsController.recalculatePlayerStats(player);
}
private void unequipSlot(Player player, Inventory.WearSlot slot) {
ItemType removedItemType = player.inventory.getItemTypeInWearSlot(slot);
if (removedItemType == null) return;
player.inventory.addItem(removedItemType);
player.inventory.setItemTypeInWearSlot(slot, null);
controllers.actorStatsController.removeConditionsFromUnequippedItem(player, removedItemType);
}
public void useItem(ItemType type) {
if (!type.isUsable()) return;
final Player player = world.model.player;
if (world.model.uiSelections.isInCombat) {
boolean changed = controllers.actorStatsController.useAPs(player, player.getUseItemCost());
if (!changed) return;
}
if (!player.inventory.removeItem(type.id, 1)) return;
controllers.actorStatsController.applyUseEffect(player, null, type.effects_use);
world.model.statistics.addItemUsage(type);
//TODO: provide feedback that the item has been used.
//context.mainActivity.message(androidContext.getResources().getString(R.string.inventory_item_used, type.name));
}
public void playerSteppedOnLootBag(Loot loot) {
if (pickupLootBagWithoutConfirmation(loot)) {
controllers.mapController.worldEventListeners.onPlayerPickedUpGroundLoot(loot);
pickupAll(loot);
removeLootBagIfEmpty(loot);
} else {
controllers.mapController.worldEventListeners.onPlayerSteppedOnGroundLoot(loot);
consumeNonItemLoot(loot);
}
}
public void lootMonsterBags(Collection<Loot> killedMonsterBags, int totalExpThisFight) {
if (pickupLootBagsWithoutConfirmation(killedMonsterBags)) {
controllers.mapController.worldEventListeners.onPlayerPickedUpMonsterLoot(killedMonsterBags, totalExpThisFight);
pickupAll(killedMonsterBags);
removeLootBagIfEmpty(killedMonsterBags);
controllers.gameRoundController.resume();
} else {
controllers.mapController.worldEventListeners.onPlayerFoundMonsterLoot(killedMonsterBags, totalExpThisFight);
consumeNonItemLoot(killedMonsterBags);
}
}
private boolean pickupLootBagWithoutConfirmation(Loot bag) {
if (bag.isContainer()) return false;
switch (controllers.preferences.displayLoot) {
case AndorsTrailPreferences.DISPLAYLOOT_DIALOG_ALWAYS:
return false;
case AndorsTrailPreferences.DISPLAYLOOT_DIALOG_FOR_ITEMS:
case AndorsTrailPreferences.DISPLAYLOOT_DIALOG_FOR_ITEMS_ELSE_TOAST:
if (bag.hasItems()) return false;
}
return true;
}
private boolean pickupLootBagsWithoutConfirmation(Collection<Loot> bags) {
if (controllers.preferences.displayLoot == AndorsTrailPreferences.DISPLAYLOOT_DIALOG_ALWAYS) return false;
for (Loot bag : bags) {
if (!pickupLootBagWithoutConfirmation(bag)) return false;
}
return true;
}
public void applyInventoryEffects(Player player) {
ItemType weapon = getMainWeapon(player);
if (weapon != null) {
player.attackCost = 0;
player.criticalMultiplier = weapon.effects_equip.stats.setCriticalMultiplier;
}
applyInventoryEffects(player, Inventory.WearSlot.weapon);
applyInventoryEffects(player, Inventory.WearSlot.shield);
SkillController.applySkillEffectsFromFightingStyles(player);
applyInventoryEffects(player, Inventory.WearSlot.head);
applyInventoryEffects(player, Inventory.WearSlot.body);
applyInventoryEffects(player, Inventory.WearSlot.hand);
applyInventoryEffects(player, Inventory.WearSlot.feet);
applyInventoryEffects(player, Inventory.WearSlot.neck);
applyInventoryEffects(player, Inventory.WearSlot.leftring);
applyInventoryEffects(player, Inventory.WearSlot.rightring);
SkillController.applySkillEffectsFromItemProficiencies(player);
}
public static ItemType getMainWeapon(Player player) {
ItemType itemType = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon);
if (itemType != null) return itemType;
itemType = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.shield);
if (itemType != null && itemType.isWeapon()) return itemType;
return null;
}
private void applyInventoryEffects(Player player, Inventory.WearSlot slot) {
ItemType type = player.inventory.getItemTypeInWearSlot(slot);
if (type == null) return;
if (slot == Inventory.WearSlot.shield) {
ItemType mainHandItem = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon);
// The stats for off-hand weapons will be added later in SkillController.applySkillEffectsFromFightingStyles
if (SkillController.isDualWielding(mainHandItem, type)) return;
}
if (type.effects_equip != null && type.effects_equip.stats != null)
controllers.actorStatsController.applyAbilityEffects(player, type.effects_equip.stats, 1);
}
public static void recalculateHitEffectsFromWornItems(Player player) {
ArrayList<ItemTraits_OnUse> effects_onHit = null;
ArrayList<ItemTraits_OnHitReceived> effects_onHitReceived = null;
for (Inventory.WearSlot slot : Inventory.WearSlot.values()) {
ItemType type = player.inventory.getItemTypeInWearSlot(slot);
if (type == null) continue;
ItemTraits_OnUse eh = type.effects_hit;
ItemTraits_OnHitReceived ehr = type.effects_hitReceived;
if (eh == null && ehr == null) continue;
if (effects_onHit == null) effects_onHit = new ArrayList<ItemTraits_OnUse>();
if (eh != null) effects_onHit.add(eh);
if (effects_onHitReceived == null) effects_onHitReceived = new ArrayList<ItemTraits_OnHitReceived>();
if (ehr != null) effects_onHitReceived.add(ehr);
}
if (effects_onHit != null) {
ItemTraits_OnUse[] effects_ = new ItemTraits_OnUse[effects_onHit.size()];
effects_ = effects_onHit.toArray(effects_);
player.onHitEffects = effects_;
} else {
player.onHitEffects = null;
}
if (effects_onHitReceived != null) {
ItemTraits_OnHitReceived[] effects_ = new ItemTraits_OnHitReceived[effects_onHitReceived.size()];
effects_ = effects_onHitReceived.toArray(effects_);
player.onHitReceivedEffects = effects_;
} else {
player.onHitReceivedEffects = null;
}
}
public void consumeNonItemLoot(Loot loot) {
// Experience will be given as soon as the monster is killed.
world.model.player.inventory.gold += loot.gold;
loot.gold = 0;
removeLootBagIfEmpty(loot);
}
public void consumeNonItemLoot(Iterable<Loot> lootBags) {
for(Loot l : lootBags) {
consumeNonItemLoot(l);
}
}
public void pickupAll(Loot loot) {
world.model.player.inventory.add(loot.items);
consumeNonItemLoot(loot);
checkQuickslotItemLooted(loot.items);
loot.clear();
}
public void pickupAll(Iterable<Loot> lootBags) {
for(Loot l : lootBags) {
pickupAll(l);
}
}
public boolean removeLootBagIfEmpty(final Loot loot) {
if (loot.hasItemsOrGold()) return false;
world.model.currentMap.removeGroundLoot(loot);
controllers.mapController.mapLayoutListeners.onLootBagRemoved(world.model.currentMap, loot.position);
return true; // The bag was removed.
}
public boolean removeLootBagIfEmpty(final Iterable<Loot> lootBags) {
boolean isEmpty = true;
for (Loot l : lootBags) {
if (!removeLootBagIfEmpty(l)) isEmpty = false;
}
return isEmpty;
}
private static int getMarketPriceFactor(Player player) {
return Constants.MARKET_PRICEFACTOR_PERCENT
- player.getSkillLevel(SkillCollection.SkillID.barter) * SkillCollection.PER_SKILLPOINT_INCREASE_BARTER_PRICEFACTOR_PERCENTAGE;
}
public static int getBuyingPrice(Player player, ItemType itemType) {
return itemType.baseMarketCost + itemType.baseMarketCost * getMarketPriceFactor(player) / 100;
}
public static int getSellingPrice(Player player, ItemType itemType) {
return itemType.baseMarketCost - itemType.baseMarketCost * getMarketPriceFactor(player) / 100;
}
public static boolean canAfford(Player player, ItemType itemType) {
return player.inventory.gold >= getBuyingPrice(player, itemType);
}
public static boolean canAfford(Player player, int price) {
return player.inventory.gold >= price;
}
public static boolean maySellItem(Player player, ItemType itemType) {
if (!itemType.isSellable()) return false;
return true;
}
public static boolean sell(Player player, ItemType itemType, ItemContainer merchant, int quantity) {
int price = getSellingPrice(player, itemType) * quantity;
if (!maySellItem(player, itemType)) return false;
if (!player.inventory.removeItem(itemType.id, quantity)) return false;
player.inventory.gold += price;
merchant.addItem(itemType, quantity);
return true;
}
public static boolean buy(ModelContainer model, Player player, ItemType itemType, ItemContainer merchant, int quantity) {
int price = getBuyingPrice(player, itemType) * quantity;
if (!canAfford(player, price)) return false;
if (!merchant.removeItem(itemType.id, quantity)) return false;
player.inventory.gold -= price;
player.inventory.addItem(itemType, quantity);
model.statistics.addGoldSpent(price);
return true;
}
public static String describeItemForListView(ItemEntry item, Player player) {
StringBuilder sb = new StringBuilder(item.itemType.getName(player));
if (item.quantity > 1) {
sb.append(" (");
sb.append(item.quantity);
sb.append(')');
}
if (item.itemType.effects_equip != null) {
AbilityModifierTraits t = item.itemType.effects_equip.stats;
if (t != null) {
if (t.increaseAttackChance != 0
|| t.increaseMinDamage != 0
|| t.increaseMaxDamage != 0
|| t.increaseCriticalSkill != 0
|| t.setCriticalMultiplier != 0) {
sb.append(" [");
describeAttackEffect(t.increaseAttackChance, t.increaseMinDamage, t.increaseMaxDamage, t.increaseCriticalSkill, t.setCriticalMultiplier, sb);
sb.append(']');
}
if (t.increaseBlockChance != 0
|| t.increaseDamageResistance != 0) {
sb.append(" [");
describeBlockEffect(t.increaseBlockChance, t.increaseDamageResistance, sb);
sb.append(']');
}
}
}
return sb.toString();
}
public static void describeAttackEffect(int attackChance, int minDamage, int maxDamage, int criticalSkill, float criticalMultiplier, StringBuilder sb) {
boolean addSpace = false;
if (attackChance != 0) {
sb.append(attackChance);
addSpace = true;
}
if (minDamage != 0 || maxDamage != 0) {
if (addSpace) sb.append(' ');
sb.append(minDamage);
if (minDamage != maxDamage) {
sb.append('-');
sb.append(maxDamage);
}
addSpace = true;
}
if (criticalSkill != 0) {
if (addSpace) sb.append(' ');
if (criticalSkill >= 0) {
sb.append('+');
}
sb.append(criticalSkill);
}
if (criticalMultiplier != 0 && criticalMultiplier != 1) {
sb.append('x');
sb.append(criticalMultiplier);
}
}
public static void describeBlockEffect(int blockChance, int damageResistance, StringBuilder sb) {
if (blockChance != 0) {
sb.append(blockChance);
}
if (damageResistance != 0) {
sb.append('/');
sb.append(damageResistance);
}
}
public void quickitemUse(int quickSlotId) {
useItem(world.model.player.inventory.quickitem[quickSlotId]);
quickSlotListeners.onQuickSlotUsed(quickSlotId);
}
public void setQuickItem(ItemType itemType, int quickSlotId) {
world.model.player.inventory.quickitem[quickSlotId] = itemType;
quickSlotListeners.onQuickSlotChanged(quickSlotId);
}
private void checkQuickslotItemLooted(ItemContainer items) {
for (ItemEntry item : items.items) {
if (item.itemType.isUsable()) {
for (int i = 0; i < world.model.player.inventory.quickitem.length; i++) {
if (item.itemType == world.model.player.inventory.quickitem[i]) {
quickSlotListeners.onQuickSlotChanged(i);
}
}
}
}
}
}
package com.gpl.rpg.AndorsTrail.controller;
import java.util.ArrayList;
import java.util.Collection;
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.listeners.QuickSlotListeners;
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
import com.gpl.rpg.AndorsTrail.model.ability.traits.AbilityModifierTraits;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.item.Inventory;
import com.gpl.rpg.AndorsTrail.model.item.ItemContainer;
import com.gpl.rpg.AndorsTrail.model.item.ItemContainer.ItemEntry;
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnHitReceived;
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
import static java.lang.Math.min;
public final class ItemController {
private final ControllerContext controllers;
private final WorldContext world;
public final QuickSlotListeners quickSlotListeners = new QuickSlotListeners();
public ItemController(ControllerContext controllers, WorldContext world) {
this.controllers = controllers;
this.world = world;
}
public void dropItem(ItemType type, int quantity) {
if (world.model.player.inventory.getItemQuantity(type.id) < quantity) return;
world.model.player.inventory.removeItem(type.id, quantity);
world.model.currentMaps.map.itemDropped(type, quantity, world.model.player.position);
}
public void equipItem(ItemType type, Inventory.WearSlot slot) {
if (!type.isEquippable()) return;
final Player player = world.model.player;
if (world.model.uiSelections.isInCombat) {
boolean changed = controllers.actorStatsController.useAPs(player, player.getReequipCost());
if (!changed) return;
}
if (!player.inventory.removeItem(type.id, 1)) return;
unequipSlot(player, slot);
if (type.isTwohandWeapon()) unequipSlot(player, Inventory.WearSlot.shield);
else if (slot == Inventory.WearSlot.shield) {
ItemType currentWeapon = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon);
if (currentWeapon != null && currentWeapon.isTwohandWeapon()) unequipSlot(player, Inventory.WearSlot.weapon);
}
player.inventory.setItemTypeInWearSlot(slot, type);
controllers.actorStatsController.addConditionsFromEquippedItem(player, type);
controllers.actorStatsController.recalculatePlayerStats(player);
if (world.model.uiSelections.isInCombat && !controllers.combatController.playerHasApLeft()) {
controllers.combatController.endPlayerTurn();
}
}
public void unequipSlot(ItemType type, Inventory.WearSlot slot) {
if (!type.isEquippable()) return;
final Player player = world.model.player;
if (player.inventory.isEmptySlot(slot)) return;
if (world.model.uiSelections.isInCombat) {
boolean changed = controllers.actorStatsController.useAPs(player, player.getReequipCost());
if (!changed) return;
}
unequipSlot(player, slot);
controllers.actorStatsController.recalculatePlayerStats(player);
if (world.model.uiSelections.isInCombat && !controllers.combatController.playerHasApLeft()) {
controllers.combatController.endPlayerTurn();
}
}
private void unequipSlot(Player player, Inventory.WearSlot slot) {
ItemType removedItemType = player.inventory.getItemTypeInWearSlot(slot);
if (removedItemType == null) return;
player.inventory.addItem(removedItemType);
player.inventory.setItemTypeInWearSlot(slot, null);
controllers.actorStatsController.removeConditionsFromUnequippedItem(player, removedItemType);
}
public void useItem(ItemType type) {
if (!type.isUsable()) return;
final Player player = world.model.player;
if (world.model.uiSelections.isInCombat) {
boolean changed = controllers.actorStatsController.useAPs(player, player.getUseItemCost());
if (!changed) return;
}
if (!player.inventory.removeItem(type.id, 1)) return;
world.model.combatLog.append(controllers.getResources().getString(R.string.inventory_item_used, type.getName(player)));
controllers.actorStatsController.applyUseEffect(player, null, type.effects_use);
world.model.statistics.addItemUsage(type);
if (world.model.uiSelections.isInCombat && !controllers.combatController.playerHasApLeft()) {
controllers.combatController.endPlayerTurn();
}
}
public void playerSteppedOnLootBag(Loot loot) {
if (pickupLootBagWithoutConfirmation(loot)) {
controllers.mapController.worldEventListeners.onPlayerPickedUpGroundLoot(loot);
pickupAll(loot);
removeLootBagIfEmpty(loot);
} else {
controllers.mapController.worldEventListeners.onPlayerSteppedOnGroundLoot(loot);
consumeNonItemLoot(loot);
}
}
public void lootMonsterBags(Collection<Loot> killedMonsterBags, int totalExpThisFight) {
if (pickupLootBagsWithoutConfirmation(killedMonsterBags)) {
controllers.mapController.worldEventListeners.onPlayerPickedUpMonsterLoot(killedMonsterBags, totalExpThisFight);
pickupAll(killedMonsterBags);
removeLootBagIfEmpty(killedMonsterBags);
controllers.gameRoundController.resume();
} else {
controllers.mapController.worldEventListeners.onPlayerFoundMonsterLoot(killedMonsterBags, totalExpThisFight);
consumeNonItemLoot(killedMonsterBags);
}
}
private boolean pickupLootBagWithoutConfirmation(Loot bag) {
if (bag.isContainer()) return false;
switch (controllers.preferences.displayLoot) {
case AndorsTrailPreferences.DISPLAYLOOT_DIALOG_ALWAYS:
return false;
case AndorsTrailPreferences.DISPLAYLOOT_DIALOG_FOR_ITEMS:
case AndorsTrailPreferences.DISPLAYLOOT_DIALOG_FOR_ITEMS_ELSE_TOAST:
if (bag.hasItems()) return false;
}
return true;
}
private boolean pickupLootBagsWithoutConfirmation(Collection<Loot> bags) {
if (controllers.preferences.displayLoot == AndorsTrailPreferences.DISPLAYLOOT_DIALOG_ALWAYS) return false;
for (Loot bag : bags) {
if (!pickupLootBagWithoutConfirmation(bag)) return false;
}
return true;
}
public void applyInventoryEffects(Player player) {
ItemType weapon = getMainWeapon(player);
if (weapon != null) {
player.attackCost = 0;
player.criticalMultiplier = weapon.effects_equip.stats.setCriticalMultiplier;
}
applyInventoryEffects(player, Inventory.WearSlot.weapon);
applyInventoryEffects(player, Inventory.WearSlot.shield);
SkillController.applySkillEffectsFromFightingStyles(player);
applyInventoryEffects(player, Inventory.WearSlot.head);
applyInventoryEffects(player, Inventory.WearSlot.body);
applyInventoryEffects(player, Inventory.WearSlot.hand);
applyInventoryEffects(player, Inventory.WearSlot.feet);
applyInventoryEffects(player, Inventory.WearSlot.neck);
applyInventoryEffects(player, Inventory.WearSlot.leftring);
applyInventoryEffects(player, Inventory.WearSlot.rightring);
SkillController.applySkillEffectsFromItemProficiencies(player);
}
public static ItemType getMainWeapon(Player player) {
ItemType itemType = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon);
if (itemType != null) return itemType;
itemType = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.shield);
if (itemType != null && itemType.isWeapon()) return itemType;
return null;
}
private void applyInventoryEffects(Player player, Inventory.WearSlot slot) {
ItemType type = player.inventory.getItemTypeInWearSlot(slot);
if (type == null) return;
if (slot == Inventory.WearSlot.shield) {
ItemType mainHandItem = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon);
// The stats for off-hand weapons will be added later in SkillController.applySkillEffectsFromFightingStyles
if (SkillController.isDualWielding(mainHandItem, type)) return;
}
if (type.effects_equip != null && type.effects_equip.stats != null) {
controllers.actorStatsController.applyAbilityEffects(player, type.effects_equip.stats, 1);
if (type.isWeapon()) {
controllers.actorStatsController.addPlayerWeaponDamage(player, type.effects_equip.stats.increaseMinDamage, type.effects_equip.stats.increaseMaxDamage);
}
}
}
public static void recalculateHitEffectsFromWornItems(Player player) {
ArrayList<ItemTraits_OnUse> effects_onHit = null;
ArrayList<ItemTraits_OnUse> effects_onMiss = null;
ArrayList<ItemTraits_OnHitReceived> effects_onHitReceived = null;
ArrayList<ItemTraits_OnHitReceived> effects_onMissReceived = null;
for (Inventory.WearSlot slot : Inventory.WearSlot.values()) {
ItemType type = player.inventory.getItemTypeInWearSlot(slot);
if (type == null) continue;
ItemTraits_OnUse eh = type.effects_hit;
ItemTraits_OnHitReceived ehr = type.effects_hitReceived;
ItemTraits_OnUse em = type.effects_miss;
ItemTraits_OnHitReceived emr = type.effects_missReceived;
if (eh == null && ehr == null && em == null && emr == null) continue;
if (effects_onHit == null) effects_onHit = new ArrayList<ItemTraits_OnUse>();
if (eh != null) effects_onHit.add(eh);
if (effects_onMiss == null) effects_onMiss = new ArrayList<ItemTraits_OnUse>();
if (em != null) effects_onMiss.add(em);
if (effects_onHitReceived == null) effects_onHitReceived = new ArrayList<ItemTraits_OnHitReceived>();
if (ehr != null) effects_onHitReceived.add(ehr);
if (effects_onMissReceived == null) effects_onMissReceived = new ArrayList<ItemTraits_OnHitReceived>();
if (emr != null) effects_onMissReceived.add(emr);
}
if (effects_onHit != null) {
ItemTraits_OnUse[] effects_ = new ItemTraits_OnUse[effects_onHit.size()];
effects_ = effects_onHit.toArray(effects_);
player.onHitEffects = effects_;
} else {
player.onHitEffects = null;
}
if (effects_onMiss != null) {
ItemTraits_OnUse[] effects_ = new ItemTraits_OnUse[effects_onMiss.size()];
effects_ = effects_onMiss.toArray(effects_);
player.onMissEffects = effects_;
} else {
player.onMissEffects = null;
}
if (effects_onHitReceived != null) {
ItemTraits_OnHitReceived[] effects_ = new ItemTraits_OnHitReceived[effects_onHitReceived.size()];
effects_ = effects_onHitReceived.toArray(effects_);
player.onHitReceivedEffects = effects_;
} else {
player.onHitReceivedEffects = null;
}
if (effects_onMissReceived != null) {
ItemTraits_OnHitReceived[] effects_ = new ItemTraits_OnHitReceived[effects_onMissReceived.size()];
effects_ = effects_onMissReceived.toArray(effects_);
player.onMissReceivedEffects = effects_;
} else {
player.onMissReceivedEffects = null;
}
}
public void consumeNonItemLoot(Loot loot) {
// Experience will be given as soon as the monster is killed.
world.model.player.inventory.gold += loot.gold;
loot.gold = 0;
removeLootBagIfEmpty(loot);
}
public void consumeNonItemLoot(Iterable<Loot> lootBags) {
for(Loot l : lootBags) {
consumeNonItemLoot(l);
}
}
public void pickupAll(Loot loot) {
world.model.player.inventory.add(loot.items);
consumeNonItemLoot(loot);
checkQuickslotItemLooted(loot.items);
loot.clear();
}
public void pickupAll(Iterable<Loot> lootBags) {
for(Loot l : lootBags) {
pickupAll(l);
}
}
public boolean removeLootBagIfEmpty(final Loot loot) {
if (loot.hasItemsOrGold()) return false;
world.model.currentMaps.map.removeGroundLoot(loot);
controllers.mapController.mapLayoutListeners.onLootBagRemoved(world.model.currentMaps.map, loot.position);
return true; // The bag was removed.
}
public boolean removeLootBagIfEmpty(final Iterable<Loot> lootBags) {
boolean isEmpty = true;
for (Loot l : lootBags) {
if (!removeLootBagIfEmpty(l)) isEmpty = false;
}
return isEmpty;
}
private static int getMarketPriceFactor(Player player) {
return Constants.MARKET_PRICEFACTOR_PERCENT
- player.getSkillLevel(SkillCollection.SkillID.barter) * SkillCollection.PER_SKILLPOINT_INCREASE_BARTER_PRICEFACTOR_PERCENTAGE;
}
public static int getBuyingPrice(Player player, ItemType itemType) {
return itemType.baseMarketCost + itemType.baseMarketCost * getMarketPriceFactor(player) / 100;
}
public static int getSellingPrice(Player player, ItemType itemType) {
return itemType.baseMarketCost - itemType.baseMarketCost * getMarketPriceFactor(player) / 100;
}
public static boolean canAfford(Player player, ItemType itemType) {
return player.inventory.gold >= getBuyingPrice(player, itemType);
}
public static boolean canAfford(Player player, int price) {
return player.inventory.gold >= price;
}
public static boolean maySellItem(Player player, ItemType itemType) {
if (!itemType.isSellable()) return false;
return true;
}
public static boolean sell(Player player, ItemType itemType, ItemContainer merchant, int quantity) {
int price = getSellingPrice(player, itemType) * quantity;
if (!maySellItem(player, itemType)) return false;
if (!player.inventory.removeItem(itemType.id, quantity)) return false;
player.inventory.gold += price;
merchant.addItem(itemType, quantity);
return true;
}
public static boolean buy(ModelContainer model, Player player, ItemType itemType, ItemContainer merchant, int quantity) {
int price = getBuyingPrice(player, itemType) * quantity;
if (!canAfford(player, price)) return false;
if (!merchant.removeItem(itemType.id, quantity)) return false;
player.inventory.gold -= price;
player.inventory.addItem(itemType, quantity);
model.statistics.addGoldSpent(price);
return true;
}
public static String describeItemForListView(ItemEntry item, Player player) {
StringBuilder sb = new StringBuilder(item.itemType.getName(player));
if (item.quantity > 1) {
sb.append(" (");
sb.append(item.quantity);
sb.append(')');
}
if (item.itemType.effects_equip != null) {
AbilityModifierTraits t = item.itemType.effects_equip.stats;
if (t != null) {
if (t.increaseAttackChance != 0
|| t.increaseMinDamage != 0
|| t.increaseMaxDamage != 0
|| t.increaseCriticalSkill != 0
|| t.setCriticalMultiplier != 0) {
sb.append(" [");
describeAttackEffect(t.increaseAttackChance, t.increaseMinDamage, t.increaseMaxDamage, t.increaseCriticalSkill, t.setCriticalMultiplier, sb);
sb.append(']');
}
if (t.increaseBlockChance != 0
|| t.increaseDamageResistance != 0) {
sb.append(" [");
describeBlockEffect(t.increaseBlockChance, t.increaseDamageResistance, sb);
sb.append(']');
}
}
}
return sb.toString();
}
public static void describeAttackEffect(int attackChance, int minDamage, int maxDamage, int criticalSkill, float criticalMultiplier, StringBuilder sb) {
boolean addSpace = false;
if (attackChance != 0) {
sb.append(attackChance);
addSpace = true;
}
if (minDamage != 0 || maxDamage != 0) {
if (addSpace) sb.append(' ');
sb.append(minDamage);
if (minDamage != maxDamage) {
sb.append('-');
sb.append(maxDamage);
}
addSpace = true;
}
if (criticalSkill != 0) {
if (addSpace) sb.append(' ');
if (criticalSkill >= 0) {
sb.append('+');
}
sb.append(criticalSkill);
}
if (criticalMultiplier != 0 && criticalMultiplier != 1) {
sb.append('x');
sb.append(criticalMultiplier);
}
}
public static void describeBlockEffect(int blockChance, int damageResistance, StringBuilder sb) {
if (blockChance != 0) {
sb.append(blockChance);
}
if (damageResistance != 0) {
sb.append('/');
sb.append(damageResistance);
}
}
public void quickitemUse(int quickSlotId) {
useItem(world.model.player.inventory.quickitem[quickSlotId]);
quickSlotListeners.onQuickSlotUsed(quickSlotId);
}
public void setQuickItem(ItemType itemType, int quickSlotId) {
world.model.player.inventory.quickitem[quickSlotId] = itemType;
quickSlotListeners.onQuickSlotChanged(quickSlotId);
}
private void checkQuickslotItemLooted(ItemContainer items) {
for (ItemEntry item : items.items) {
if (item.itemType.isUsable()) {
for (int i = 0; i < world.model.player.inventory.quickitem.length; i++) {
if (item.itemType == world.model.player.inventory.quickitem[i]) {
quickSlotListeners.onQuickSlotChanged(i);
}
}
}
}
}
public int removeEquippedItem(String itemTypeID, int count) {
int removed = 0;
final Player player = world.model.player;
for (Inventory.WearSlot slot : Inventory.WearSlot.values()) {
ItemType type = player.inventory.getItemTypeInWearSlot(slot);
if (type != null && type.id.equals(itemTypeID)) {
player.inventory.setItemTypeInWearSlot(slot, null);
controllers.actorStatsController.removeConditionsFromUnequippedItem(player, type);
controllers.actorStatsController.recalculatePlayerStats(player);
removed++;
if (removed >= count) {
break;
}
}
}
return removed;
}
public static void applyDamageModifier(Player player) {
ItemType itemType = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon);
int modifier1 = -1;
int modifier2 = -1;
if (itemType != null) modifier1 = itemType.effects_equip.stats.setNonWeaponDamageModifier;
itemType = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.shield);
if (itemType != null && itemType.isWeapon()) modifier2 = itemType.effects_equip.stats.setNonWeaponDamageModifier;
int modifier = 100;
if (modifier1 >= 0 && modifier2 >= 0) {
int skillLevelFightStyle = player.getSkillLevel(SkillCollection.SkillID.fightstyleDualWield);
if (skillLevelFightStyle == 2) {
modifier = Math.max(modifier1, modifier2);
} else if (skillLevelFightStyle == 1) {
modifier = (modifier1 + modifier2) / 2;
} else {
modifier = Math.min(modifier1, modifier2);
}
}
else if (modifier1 <= 0 && modifier2 >= 0) modifier = modifier2;
else if (modifier2 <= 0 && modifier1 >= 0) modifier = modifier1;
if (modifier != 100) {
final int minBaseDamage = player.damagePotential.current - player.weaponDamage.current;
final int maxBaseDamage = player.damagePotential.max - player.weaponDamage.max;
player.damagePotential.add(Math.round(minBaseDamage * ((modifier - 100)/100f)), true);
player.damagePotential.addToMax(Math.round(maxBaseDamage * ((modifier - 100)/100f)));
}
}
}

View File

@@ -68,6 +68,7 @@ public final class MapController {
case sign:
if (o.id == null || o.id.length() <= 0) return;
worldEventListeners.onPlayerSteppedOnMapSignArea(o);
runScriptInArea(o);
break;
case newmap:
if (o.map == null || o.place == null) return;
@@ -79,7 +80,7 @@ public final class MapController {
steppedOnRestArea(o);
break;
case script:
runScriptArea(o);
runScriptInArea(o);
break;
}
}
@@ -93,7 +94,7 @@ public final class MapController {
return true;
}
private void runScriptArea(MapObject o) {
private void runScriptInArea(MapObject o) {
Resources res = controllers.getResources();
mapScriptExecutor.proceedToPhrase(res, o.id, true, true);
controllers.mapController.applyCurrentMapReplacements(res, true);
@@ -146,29 +147,31 @@ public final class MapController {
for (PredefinedMap m : world.maps.getAllMaps()) {
m.resetTemporaryData();
}
controllers.monsterSpawnController.spawnAll(world.model.currentMap, world.model.currentTileMap);
controllers.monsterSpawnController.spawnAll(world.model.currentMaps.map, world.model.currentMaps.tileMap);
world.model.worldData.tickWorldTime(20);
controllers.gameRoundController.resetRoundTimers();
mapScriptExecutor.proceedToPhrase(controllers.getResources(), Constants.PASSIVE_ACHIEVEMENT_CHECK_PHRASE, true, true);
}
public void rest(MapObject area) {
lotsOfTimePassed();
world.model.player.setSpawnPlace(world.model.currentMap.name, area.id);
world.model.player.setSpawnPlace(world.model.currentMaps.map.name, area.id);
worldEventListeners.onPlayerRested();
}
public boolean canEnterKeyArea(MapObject area) {
if (ConversationController.canFulfillRequirement(world, area.enteringRequirement)) {
ConversationController.requirementFulfilled(world, area.enteringRequirement);
ConversationController.requirementFulfilled(world, area.enteringRequirement, controllers);
return true;
}
worldEventListeners.onPlayerSteppedOnKeyArea(area);
runScriptInArea(area);
return false;
}
public void resetMapsNotRecentlyVisited() {
for (PredefinedMap m : world.maps.getAllMaps()) {
if (m == world.model.currentMap) continue;
if (m == world.model.currentMaps.map) continue;
if (m.isRecentlyVisited()) continue;
if (m.hasResetTemporaryData()) continue;
m.resetTemporaryData();
@@ -176,12 +179,12 @@ public final class MapController {
}
public void applyCurrentMapReplacements(final Resources res, boolean updateWorldmap) {
if (!applyReplacements(world.model.currentMap, world.model.currentTileMap)) return;
if (!applyReplacements(world.model.currentMaps.map, world.model.currentMaps.tileMap)) return;
world.maps.worldMapRequiresUpdate = true;
if (!updateWorldmap) return;
WorldMapController.updateWorldMap(world, res);
mapLayoutListeners.onMapTilesChanged(world.model.currentMap, world.model.currentTileMap);
WorldMapController.updateWorldMap(controllers.getContext(), world, res);
mapLayoutListeners.onMapTilesChanged(world.model.currentMaps.map, world.model.currentMaps.tileMap);
}
private boolean applyReplacements(PredefinedMap map, LayeredTileMap tileMap) {
@@ -190,10 +193,10 @@ public final class MapController {
for(ReplaceableMapSection replacement : tileMap.replacements) {
if (replacement.isApplied) continue;
if (!satisfiesCondition(replacement)) continue;
else ConversationController.requirementFulfilled(world, replacement.requirement);
else ConversationController.requirementFulfilled(world, replacement.requirement, controllers);
tileMap.applyReplacement(replacement);
for (ReplaceableMapSection impactedReplacement : tileMap.replacements) {
if (impactedReplacement.isApplied && impactedReplacement.replacementArea.intersects(replacement.replacementArea)) {
if (replacement != impactedReplacement && impactedReplacement.isApplied && impactedReplacement.replacementArea.intersects(replacement.replacementArea)) {
//The applied replacement has overwritten changes made by a previously applied replacement.
//This previous replacement must now be considered as unapplied to let it be reapplied later eventually.
impactedReplacement.isApplied = false;
@@ -209,7 +212,7 @@ public final class MapController {
hasUpdated = true;
}
}
if (map.lastSeenLayoutHash != tileMap.getCurrentLayoutHash()) {
if (!map.lastSeenLayoutHash.equalsIgnoreCase(tileMap.getCurrentLayoutHash())) {
map.lastSeenLayoutHash = tileMap.getCurrentLayoutHash();
hasUpdated = true;
}

View File

@@ -27,7 +27,7 @@ public final class MonsterMovementController implements EvaluateWalkable {
public void moveMonsters() {
long currentTime = System.currentTimeMillis();
for (MonsterSpawnArea a : world.model.currentMap.spawnAreas) {
for (MonsterSpawnArea a : world.model.currentMaps.map.spawnAreas) {
for (Monster m : a.monsters) {
if (m.nextActionTime <= currentTime) {
moveMonster(m, a);
@@ -37,7 +37,7 @@ public final class MonsterMovementController implements EvaluateWalkable {
}
public void attackWithAgressiveMonsters() {
for (MonsterSpawnArea a : world.model.currentMap.spawnAreas) {
for (MonsterSpawnArea a : world.model.currentMaps.map.spawnAreas) {
for (Monster m : a.monsters) {
if (!m.isAgressive(world.model.player)) continue;
if (!m.isAdjacentTo(world.model.player)) continue;
@@ -75,8 +75,11 @@ public final class MonsterMovementController implements EvaluateWalkable {
}
private void moveMonster(final Monster m, final MonsterSpawnArea area) {
PredefinedMap map = world.model.currentMap;
LayeredTileMap tileMap = world.model.currentTileMap;
if (m.getMoveCost() == Constants.MONSTER_IMMOBILE_MOVE_COST) {
return;
}
PredefinedMap map = world.model.currentMaps.map;
LayeredTileMap tileMap = world.model.currentMaps.tileMap;
m.nextActionTime = System.currentTimeMillis() + getMillisecondsPerMove(m);
if (m.movementDestination != null && m.position.equals(m.movementDestination)) {
// Monster has been moving and arrived at the destination.
@@ -159,7 +162,7 @@ public final class MonsterMovementController implements EvaluateWalkable {
@Override
public boolean isWalkable(CoordRect r, Monster m) {
return monsterCanMoveTo(null, world.model.currentMap, world.model.currentTileMap, r, m.area.ignoreAreas);
return monsterCanMoveTo(null, world.model.currentMaps.map, world.model.currentMaps.tileMap, r, m.area.ignoreAreas);
}
public void moveMonsterToNextPosition(final Monster m, final PredefinedMap map) {

View File

@@ -7,6 +7,7 @@ import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.listeners.PlayerMovementListeners;
import com.gpl.rpg.AndorsTrail.model.MapBundle;
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
@@ -56,7 +57,7 @@ public final class MovementController implements TimedMessageTask.Callback {
protected void onPostExecute(Void result) {
super.onPostExecute(result);
stopMovement();
playerMovementListeners.onPlayerEnteredNewMap(world.model.currentMap, world.model.player.position);
playerMovementListeners.onPlayerEnteredNewMap(world.model.currentMaps.map, world.model.player.position);
controllers.gameRoundController.resume();
}
@@ -83,7 +84,7 @@ public final class MovementController implements TimedMessageTask.Callback {
}
final ModelContainer model = world.model;
if (model.currentMap != null) model.currentMap.updateLastVisitTime();
if (model.currentMaps.map != null) model.currentMaps.map.updateLastVisitTime();
model.player.position.set(place.position.topLeft);
model.player.position.x += Math.min(offset_x, place.position.size.width-1);
model.player.position.y += Math.min(offset_y, place.position.size.height-1);
@@ -103,22 +104,31 @@ public final class MovementController implements TimedMessageTask.Callback {
public void prepareMapAsCurrentMap(PredefinedMap newMap, Resources res, boolean spawnMonsters) {
final ModelContainer model = world.model;
model.currentMap = newMap;
cacheCurrentMapData(res, newMap);
MapBundle newMaps = new MapBundle();
newMaps.map = newMap;
LayeredTileMap mapTiles = TMXMapTranslator.readLayeredTileMap(res, world.tileManager.tileCache, newMaps.map);
mapTiles.changeColorFilter(newMaps.map.currentColorFilter);
TileCollection cachedTiles = world.tileManager.loadTilesFor(newMaps.map, mapTiles, world, res);
newMaps.tileMap = mapTiles;
newMaps.tiles = cachedTiles;
world.tileManager.cacheAdjacentMaps(res, world, newMaps.map);
world.model.currentMaps = newMaps;
//Apply replacements before spawning, so that MonsterSpawnArea's isActive variable is up to date.
controllers.mapController.applyCurrentMapReplacements(res, false);
if (spawnMonsters) {
if (!newMap.isRecentlyVisited()) {
controllers.monsterSpawnController.spawnAll(newMap, model.currentTileMap);
controllers.monsterSpawnController.spawnAll(newMap, model.currentMaps.tileMap);
}
}
controllers.mapController.prepareScriptsOnCurrentMap();
newMap.visited = true;
newMap.updateLastVisitTime();
moveBlockedActors(newMap, model.currentTileMap);
moveBlockedActors(newMap, model.currentMaps.tileMap);
refreshMonsterAggressiveness(newMap, model.player);
controllers.effectController.updateSplatters(newMap);
WorldMapController.updateWorldMap(world, res);
WorldMapController.updateWorldMap(controllers.getContext(), world, res);
}
private boolean mayMovePlayer() {
@@ -131,7 +141,7 @@ public final class MovementController implements TimedMessageTask.Callback {
if (!findWalkablePosition(dx, dy)) return;
Monster m = world.model.currentMap.getMonsterAt(world.model.player.nextPosition);
Monster m = world.model.currentMaps.map.getMonsterAt(world.model.player.nextPosition);
if (m != null) {
controllers.mapController.steppedOnMonster(m, world.model.player.nextPosition);
return;
@@ -196,14 +206,14 @@ public final class MovementController implements TimedMessageTask.Callback {
,player.position.y + dy
);
if (!world.model.currentTileMap.isWalkable(player.nextPosition)) return false;
if (!world.model.currentMaps.tileMap.isWalkable(player.nextPosition)) return false;
// allow player to enter every field when he is NORMAL
// prevent player from entering "non-monster-fields" when he is AGGRESSIVE
// prevent player from entering "monster-fields" when he is DEFENSIVE
if (aggressiveness == AndorsTrailPreferences.MOVEMENTAGGRESSIVENESS_NORMAL) return true;
Monster m = world.model.currentMap.getMonsterAt(player.nextPosition);
Monster m = world.model.currentMaps.map.getMonsterAt(player.nextPosition);
if (m != null && !m.isAgressive(player)) return true; // avoid MOVEMENTAGGRESSIVENESS settings for NPCs
if (aggressiveness == AndorsTrailPreferences.MOVEMENTAGGRESSIVENESS_AGGRESSIVE && m == null) return false;
@@ -225,7 +235,7 @@ public final class MovementController implements TimedMessageTask.Callback {
public void moveToNextIfPossible() {
final Player player = world.model.player;
final PredefinedMap currentMap = world.model.currentMap;
final PredefinedMap currentMap = world.model.currentMaps.map;
final Coord newPosition = player.nextPosition;
for (MapObject o : currentMap.eventObjects) {
@@ -251,7 +261,7 @@ public final class MovementController implements TimedMessageTask.Callback {
if (!world.model.uiSelections.isInCombat) {
//currentMap can be outdated due to mapchange events processed above.
Loot loot = world.model.currentMap.getBagAt(newPosition);
Loot loot = world.model.currentMaps.map.getBagAt(newPosition);
if (loot != null) controllers.itemController.playerSteppedOnLootBag(loot);
}
}
@@ -262,7 +272,7 @@ public final class MovementController implements TimedMessageTask.Callback {
public void respawnPlayer(Resources res) {
placePlayerAt(res, MapObject.MapObjectType.rest, world.model.player.getSpawnMap(), world.model.player.getSpawnPlace(), 0, 0);
playerMovementListeners.onPlayerEnteredNewMap(world.model.currentMap, world.model.player.position);
playerMovementListeners.onPlayerEnteredNewMap(world.model.currentMaps.map, world.model.player.position);
}
public void respawnPlayerAsync() {
placePlayerAsyncAt(MapObject.MapObjectType.rest, world.model.player.getSpawnMap(), world.model.player.getSpawnPlace(), 0, 0);
@@ -311,16 +321,6 @@ public final class MovementController implements TimedMessageTask.Callback {
return null;
}
private void cacheCurrentMapData(final Resources res, final PredefinedMap nextMap) {
LayeredTileMap mapTiles = TMXMapTranslator.readLayeredTileMap(res, world.tileManager.tileCache, nextMap);
mapTiles.changeColorFilter(nextMap.currentColorFilter);
TileCollection cachedTiles = world.tileManager.loadTilesFor(nextMap, mapTiles, world, res);
world.model.currentTileMap = mapTiles;
world.tileManager.currentMapTiles = cachedTiles;
world.tileManager.cacheAdjacentMaps(res, world, nextMap);
}
private int movementDx;
private int movementDy;
public void startMovement(int dx, int dy, Coord destination) {

View File

@@ -1,5 +1,6 @@
package com.gpl.rpg.AndorsTrail.controller;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.listeners.CombatActionListeners;
@@ -17,6 +18,7 @@ import com.gpl.rpg.AndorsTrail.model.item.ItemCategory;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.model.item.ItemTypeCollection;
import com.gpl.rpg.AndorsTrail.util.ConstRange;
import com.gpl.rpg.AndorsTrail.util.L;
public final class SkillController {
private final ControllerContext controllers;
@@ -58,6 +60,9 @@ public final class SkillController {
public static int getDropChanceRollBias(DropItem item, Player player) {
if (player == null) return 0;
if(item.itemType == null && AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES){
L.log("Item type missing: " + item + " " + player.id);
}
if (ItemTypeCollection.isGoldItemType(item.itemType.id)) {
return getRollBias(item, player, SkillID.coinfinder, SkillCollection.PER_SKILLPOINT_INCREASE_COINFINDER_CHANCE_PERCENT);
@@ -72,7 +77,7 @@ public final class SkillController {
if (player == null) return 0;
if (!ItemTypeCollection.isGoldItemType(item.itemType.id)) return 0;
return getRollBias(item, player, SkillID.coinfinder, SkillCollection.PER_SKILLPOINT_INCREASE_COINFINDER_QUANTITY_PERCENT);
return getRollBias(item.quantity, player, SkillID.coinfinder, SkillCollection.PER_SKILLPOINT_INCREASE_COINFINDER_QUANTITY_PERCENT);
}
private static int getRollBias(DropItem item, Player player, SkillID skill, int perSkillpointIncrease) {
@@ -82,21 +87,21 @@ public final class SkillController {
private static int getRollBias(ConstRange chance, Player player, SkillID skill, int perSkillpointIncrease) {
int skillLevel = player.getSkillLevel(skill);
if (skillLevel <= 0) return 0;
return chance.current * skillLevel * perSkillpointIncrease / 100;
return chance.current * skillLevel * perSkillpointIncrease;
}
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;
@@ -109,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;
}
@@ -126,6 +131,9 @@ public final class SkillController {
int result = 0;
result += getActorConditionEffectChanceRollBiasFromResistanceSkills(effect, player);
result += getActorConditionEffectChanceRollBias(effect, player, SkillID.shadowBless, SkillCollection.PER_SKILLPOINT_INCREASE_RESISTANCE_SHADOW_BLESS);
if ("spore_poison".equals(effect.conditionType.conditionTypeID)) {
result += getActorConditionEffectChanceRollBias(effect, player, SkillID.sporeImmunity, 100);
}
return result;
}
@@ -245,6 +253,7 @@ public final class SkillController {
addPercentBlockChance(player, itemType, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_BC_PERCENT * skillLevelHeavyArmor, 0);
playerTraits.moveCost -= getPercentage(itemType.effects_equip.stats.increaseMoveCost, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_MOVECOST_PERCENT * skillLevelHeavyArmor, 0);
playerTraits.attackCost -= getPercentage(itemType.effects_equip.stats.increaseAttackCost, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_ATKCOST_PERCENT * skillLevelHeavyArmor, 0);
playerTraits.useItemCost -= getPercentage(itemType.effects_equip.stats.increaseUseItemCost, SkillCollection.PER_SKILLPOINT_INCREASE_HEAVY_ARMOR_USECOST_PERCENT * skillLevelHeavyArmor, 0);
}
}
}
@@ -307,6 +316,15 @@ public final class SkillController {
ItemType mainHandItem = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.weapon);
ItemType offHandItem = player.inventory.getItemTypeInWearSlot(Inventory.WearSlot.shield);
final int skillLevelFightStyleUnarmedUnarmored = player.getSkillLevel(SkillID.fightstyleUnarmedUnarmored);
if (skillLevelFightStyleUnarmedUnarmored > 0 && isUnarmored(player) && mainHandItem == null && offHandItem == null) {
player.blockChance += SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_BC * skillLevelFightStyleUnarmedUnarmored;
player.damageResistance += SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_DR * skillLevelFightStyleUnarmedUnarmored;
player.attackChance += SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_AC * skillLevelFightStyleUnarmedUnarmored;
player.damagePotential.addToMax(SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_DMG_MAX * skillLevelFightStyleUnarmedUnarmored);
player.criticalMultiplier = 1 + ((float)SkillCollection.PER_SKILLPOINT_INCREASE_UNARMED_UNARMORED_CM_PERCENT / 100) * skillLevelFightStyleUnarmedUnarmored;
}
if (isWielding2HandItem(mainHandItem, offHandItem)) {
int skillLevelFightStyle = player.getSkillLevel(SkillID.fightstyle2hand);
int skillLevelSpecialization = player.getSkillLevel(SkillID.specialization2hand);
@@ -386,6 +404,11 @@ public final class SkillController {
if (itemType.effects_equip == null) return;
player.damagePotential.addToMax(getPercentage(itemType.effects_equip.stats.increaseMaxDamage, percentForPositiveValues, percentForNegativeValues));
player.damagePotential.add(getPercentage(itemType.effects_equip.stats.increaseMinDamage, percentForPositiveValues, percentForNegativeValues), false);
if (itemType.isWeapon()) {
player.weaponDamage.addToMax(getPercentage(itemType.effects_equip.stats.increaseMaxDamage, percentForPositiveValues, percentForNegativeValues));
player.weaponDamage.add(getPercentage(itemType.effects_equip.stats.increaseMinDamage, percentForPositiveValues, percentForNegativeValues), false);
}
}
private static void addPercentCriticalSkill(Player player, ItemType itemType, int percentForPositiveValues, int percentForNegativeValues) {

View File

@@ -21,14 +21,21 @@ import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.util.CoordRect;
import com.gpl.rpg.AndorsTrail.util.Size;
public final class VisualEffectController {
private int effectCount = 0;
import java.util.ArrayList;
import java.util.List;
public final class VisualEffectController {
private static final long EFFECT_UPDATE_INTERVAL = 25;
private final ControllerContext controllers;
private final WorldContext world;
private final VisualEffectCollection effectTypes;
private final Handler animationHandler = new Handler();
private final List<VisualEffectAnimation> activeAnimations = new ArrayList<>();
public final VisualEffectFrameListeners visualEffectFrameListeners = new VisualEffectFrameListeners();
private long getEffectUpdateInterval() {
return EFFECT_UPDATE_INTERVAL * controllers.preferences.attackspeed_milliseconds / AndorsTrailPreferences.ATTACKSPEED_DEFAULT_MILLISECONDS;
}
public VisualEffectController(ControllerContext controllers, WorldContext world) {
this.controllers = controllers;
@@ -37,11 +44,41 @@ public final class VisualEffectController {
}
public void startEffect(Coord position, VisualEffectCollection.VisualEffectID effectID, String displayValue, VisualEffectCompletedCallback callback, int callbackValue) {
++effectCount;
(new VisualEffectAnimation(effectTypes.getVisualEffect(effectID), position, displayValue, callback, callbackValue))
.start();
VisualEffectAnimation animation = new VisualEffectAnimation(effectTypes.getVisualEffect(effectID), position, displayValue, callback, callbackValue);
animation.start();
}
private void startAnimation(VisualEffectAnimation animation) {
activeAnimations.add(animation);
animation.update();
if (activeAnimations.size() == 1) {
animationHandler.postDelayed(animationRunnable, 0);
}
}
private final Runnable animationRunnable = new Runnable() {
@Override
public void run() {
if(!activeAnimations.isEmpty()) {
long updateInterval = getEffectUpdateInterval();
if(updateInterval > 0) animationHandler.postDelayed(this, updateInterval);
for (int i = 0; i < activeAnimations.size(); i++) {
VisualEffectAnimation animation = activeAnimations.get(i);
animation.durationPassed += updateInterval;
animation.updateFrame();
animation.update();
if (controllers.preferences.attackspeed_milliseconds <= 0 || animation.currentFrame >= animation.effect.lastFrame) {
animation.onCompleted();
activeAnimations.remove(i);
i--;
}
}
visualEffectFrameListeners.onNewAnimationFrames(activeAnimations);
}
}
};
private VisualEffectCollection.VisualEffectID enqueuedEffectID = null;
private int enqueuedEffectValue = 0;
public void enqueueEffect(VisualEffectCollection.VisualEffectID effectID, int displayValue) {
@@ -60,15 +97,13 @@ public final class VisualEffectController {
}
public void startActorMoveEffect(Actor actor, PredefinedMap map, Coord origin, Coord destination, int duration, VisualEffectCompletedCallback callback, int callbackValue) {
++effectCount;
(new SpriteMoveAnimation(origin, destination, duration, actor, map, callback, callbackValue))
.start();
}
public final class SpriteMoveAnimation extends Handler implements Runnable {
// private static final int millisecondsPerFrame=25;
public final class SpriteMoveAnimation implements Runnable {
private final Handler handler = new Handler();
private final VisualEffectCompletedCallback callback;
private final int callbackValue;
@@ -82,11 +117,6 @@ public final class VisualEffectController {
@Override
public void run() {
onCompleted();
// update();
// if (System.currentTimeMillis() - actor.vfxStartTime >= duration) {
// } else {
// postDelayed(this, millisecondsPerFrame);
// }
}
public SpriteMoveAnimation(Coord origin, Coord destination, int duration, Actor actor, PredefinedMap map, VisualEffectCompletedCallback callback, int callbackValue) {
@@ -99,19 +129,12 @@ public final class VisualEffectController {
this.destination = destination;
}
// private void update() {
//
// visualEffectFrameListeners.onNewSpriteMoveFrame(this);
// }
private void onCompleted() {
--effectCount;
actor.hasVFXRunning = false;
if (callback != null) callback.onVisualEffectCompleted(callbackValue);
visualEffectFrameListeners.onSpriteMoveCompleted(this);
}
public void start() {
actor.hasVFXRunning = true;
@@ -120,12 +143,9 @@ public final class VisualEffectController {
visualEffectFrameListeners.onSpriteMoveStarted(this);
if (duration == 0 || !controllers.preferences.enableUiAnimations) onCompleted();
else {
postDelayed(this, duration);
handler.postDelayed(this, duration);
}
}
}
public static final Paint textPaint = new Paint();
@@ -134,41 +154,45 @@ public final class VisualEffectController {
textPaint.setAlpha(255);
textPaint.setTextAlign(Align.CENTER);
}
public final class VisualEffectAnimation extends Handler implements Runnable {
@Override
public void run() {
if (currentFrame >= effect.lastFrame) {
onCompleted();
} else {
postDelayed(this, effect.millisecondPerFrame * controllers.preferences.attackspeed_milliseconds / AndorsTrailPreferences.ATTACKSPEED_DEFAULT_MILLISECONDS);
update();
/// only for combat effects, movement & blood splatters etc. are handled elsewhere.
public final class VisualEffectAnimation {
public int tileID;
public int textYOffset;
public long durationPassed = 0;
private void updateFrame() {
long frameDuration = (long) effect.millisecondPerFrame * controllers.preferences.attackspeed_milliseconds / AndorsTrailPreferences.ATTACKSPEED_DEFAULT_MILLISECONDS;
while (frameDuration > 0 && durationPassed > frameDuration) {
currentFrame++;
durationPassed -= frameDuration;
}
}
private void update() {
++currentFrame;
int frame = currentFrame;
int tileID = effect.frameIconIDs[frame];
int textYOffset = -2 * (frame);
if (frame >= beginFadeAtFrame && displayText != null) {
textPaint.setAlpha(255 * (effect.lastFrame - frame) / (effect.lastFrame - beginFadeAtFrame));
if (currentFrame >= effect.lastFrame) {
return;
}
tileID = effect.frameIconIDs[currentFrame];
textYOffset = -2 * (currentFrame);
if (currentFrame >= beginFadeAtFrame && displayText != null) {
textPaint.setAlpha(255 * (effect.lastFrame - currentFrame) / (effect.lastFrame - beginFadeAtFrame));
}
area.topLeft.y = position.y - 1;
visualEffectFrameListeners.onNewAnimationFrame(this, tileID, textYOffset);
}
private void onCompleted() {
--effectCount;
visualEffectFrameListeners.onAnimationCompleted(this);
if (callback != null) callback.onVisualEffectCompleted(callbackValue);
}
public void start() {
if (!controllers.preferences.enableUiAnimations) onCompleted();
else postDelayed(this, 0);
if (!controllers.preferences.enableUiAnimations
|| effect.duration == 0
|| controllers.preferences.attackspeed_milliseconds <= 0) onCompleted();
else startAnimation(this);
}
private int currentFrame = 0;
@@ -197,7 +221,7 @@ public final class VisualEffectController {
this.area = new CoordRect(new Coord(position.x - (widthNeededInTiles / 2), position.y - 1), new Size(widthNeededInTiles, 2));
this.beginFadeAtFrame = effect.lastFrame / 2;
}
public Paint getTextPaint(){
return textPaint;
}
@@ -208,7 +232,7 @@ public final class VisualEffectController {
}
public boolean isRunningVisualEffect() {
return effectCount > 0;
return !activeAnimations.isEmpty();
}
@@ -268,10 +292,10 @@ public final class VisualEffectController {
return -1;
}
}
public void asyncUpdateArea(CoordRect area) {
visualEffectFrameListeners.onAsyncAreaUpdate(area);
}
}

View File

@@ -1,318 +1,346 @@
package com.gpl.rpg.AndorsTrail.controller;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.AsyncTask;
import android.os.Environment;
import android.widget.Toast;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.activity.DisplayWorldMapActivity;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
import com.gpl.rpg.AndorsTrail.model.map.MapLayer;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment;
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.NamedWorldMapArea;
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.WorldMapSegmentMap;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection;
import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.util.CoordRect;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.Size;
public final class WorldMapController {
private static final int WORLDMAP_SCREENSHOT_TILESIZE = 8;
public static final int WORLDMAP_DISPLAY_TILESIZE = WORLDMAP_SCREENSHOT_TILESIZE;
public static void updateWorldMap(final WorldContext world, final Resources res) {
updateWorldMap(world, world.model.currentMap, world.model.currentTileMap, world.tileManager.currentMapTiles, res);
}
private static void updateWorldMap(
final WorldContext world,
final PredefinedMap map,
final LayeredTileMap mapTiles,
final TileCollection cachedTiles,
final Resources res) {
final String worldMapSegmentName = world.maps.getWorldMapSegmentNameForMap(map.name);
if (worldMapSegmentName == null) return;
if (!shouldUpdateWorldMap(map, worldMapSegmentName, world.maps.worldMapRequiresUpdate)) return;
(new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... arg0) {
final MapRenderer renderer = new MapRenderer(world, map, mapTiles, cachedTiles);
try {
updateCachedBitmap(map, renderer);
updateWorldMapSegment(res, world, worldMapSegmentName);
world.maps.worldMapRequiresUpdate = false;
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) {
L.log("WorldMapController: Updated worldmap segment " + worldMapSegmentName + " for map " + map.name);
}
} catch (IOException e) {
L.log("Error creating worldmap file for map " + map.name + " : " + e.toString());
}
return null;
}
}).execute();
}
private static boolean shouldUpdateWorldMap(PredefinedMap map, String worldMapSegmentName, boolean forceUpdate) {
if (forceUpdate) return true;
if (!map.visited) return true;
File file = getFileForMap(map, false);
if (!file.exists()) return true;
file = getCombinedWorldMapFile(worldMapSegmentName);
if (!file.exists()) return true;
return false;
}
private static void updateCachedBitmap(PredefinedMap map, MapRenderer renderer) throws IOException {
ensureWorldmapDirectoryExists();
File file = getFileForMap(map, false);
if (file.exists()) return;
Bitmap image = renderer.drawMap();
FileOutputStream fos = new FileOutputStream(file);
image.compress(Bitmap.CompressFormat.PNG, 70, fos);
fos.flush();
fos.close();
image.recycle();
L.log("WorldMapController: Wrote " + file.getAbsolutePath());
}
private static final class MapRenderer {
private final PredefinedMap map;
private final LayeredTileMap mapTiles;
private final TileCollection cachedTiles;
private final int tileSize;
private final float scale;
private final Paint mPaint = new Paint();
public MapRenderer(final WorldContext world, final PredefinedMap map, final LayeredTileMap mapTiles, final TileCollection cachedTiles) {
this.map = map;
this.mapTiles = mapTiles;
this.cachedTiles = cachedTiles;
this.tileSize = world.tileManager.tileSize;
this.scale = (float) WORLDMAP_SCREENSHOT_TILESIZE / world.tileManager.tileSize;
mapTiles.setColorFilter(mPaint, null, true);
}
public Bitmap drawMap() {
Bitmap image = Bitmap.createBitmap(map.size.width * WORLDMAP_SCREENSHOT_TILESIZE, map.size.height * WORLDMAP_SCREENSHOT_TILESIZE, Config.RGB_565);
image.setDensity(Bitmap.DENSITY_NONE);
Canvas canvas = new Canvas(image);
canvas.scale(scale, scale);
synchronized (cachedTiles) {
drawMapLayer(canvas, mapTiles.currentLayout.layerGround);
tryDrawMapLayer(canvas, mapTiles.currentLayout.layerObjects);
tryDrawMapLayer(canvas, mapTiles.currentLayout.layerAbove);
tryDrawMapLayer(canvas, mapTiles.currentLayout.layerTop);
}
return image;
}
private void tryDrawMapLayer(Canvas canvas, final MapLayer layer) {
if (layer != null) drawMapLayer(canvas, layer);
}
private void drawMapLayer(Canvas canvas, final MapLayer layer) {
int py = 0;
for (int y = 0; y < map.size.height; ++y, py += tileSize) {
int px = 0;
for (int x = 0; x < map.size.width; ++x, px += tileSize) {
final int tile = layer.tiles[x][y];
if (tile == 0) continue;
cachedTiles.drawTile(canvas, tile, px, py, mPaint);
}
}
}
}
private static void ensureWorldmapDirectoryExists() throws IOException {
File root = Environment.getExternalStorageDirectory();
File dir = new File(root, Constants.FILENAME_SAVEGAME_DIRECTORY);
if (!dir.exists()) dir.mkdir();
dir = new File(dir, Constants.FILENAME_WORLDMAP_DIRECTORY);
if (!dir.exists()) dir.mkdir();
File noMediaFile = new File(dir, ".nomedia");
if (!noMediaFile.exists()) noMediaFile.createNewFile();
}
public static boolean fileForMapExists(PredefinedMap map) {
if (map.lastSeenLayoutHash.length() > 0) {
return getPngFile(map.name + '.' + map.lastSeenLayoutHash).exists();
}
return getPngFile(map.name).exists();
}
private static File getFileForMap(PredefinedMap map, boolean verifyFileExists) {
if (map.lastSeenLayoutHash.length() > 0) {
File fileWithHash = getPngFile(map.name + '.' + map.lastSeenLayoutHash);
if (!verifyFileExists) return fileWithHash;
else if (fileWithHash.exists()) return fileWithHash;
}
return getPngFile(map.name);
}
private static File getPngFile(String fileName) {
return new File(getWorldmapDirectory(), fileName + ".png");
}
private static File getWorldmapDirectory() {
File dir = Environment.getExternalStorageDirectory();
dir = new File(dir, Constants.FILENAME_SAVEGAME_DIRECTORY);
return new File(dir, Constants.FILENAME_WORLDMAP_DIRECTORY);
}
public static File getCombinedWorldMapFile(String segmentName) {
return new File(getWorldmapDirectory(), Constants.FILENAME_WORLDMAP_HTMLFILE_PREFIX + segmentName + Constants.FILENAME_WORLDMAP_HTMLFILE_SUFFIX);
}
private static String getWorldMapSegmentAsHtml(Resources res, WorldContext world, String segmentName) {
WorldMapSegment segment = world.maps.worldMapSegments.get(segmentName);
Map<String, File> displayedMapFilenamesPerMapName = new HashMap<String, File>(segment.maps.size());
Coord offsetWorldmapTo = new Coord(999999, 999999);
for (WorldMapSegmentMap map : segment.maps.values()) {
PredefinedMap predefinedMap = world.maps.findPredefinedMap(map.mapName);
if (predefinedMap == null) continue;
if (!predefinedMap.visited) continue;
File f = WorldMapController.getFileForMap(predefinedMap, true);
if (!f.exists()) continue;
displayedMapFilenamesPerMapName.put(map.mapName, f);
offsetWorldmapTo.x = Math.min(offsetWorldmapTo.x, map.worldPosition.x);
offsetWorldmapTo.y = Math.min(offsetWorldmapTo.y, map.worldPosition.y);
}
Coord bottomRight = new Coord(0, 0);
StringBuilder mapsAsHtml = new StringBuilder(1000);
for (WorldMapSegmentMap segmentMap : segment.maps.values()) {
File f = displayedMapFilenamesPerMapName.get(segmentMap.mapName);
if (f == null) continue;
Size size = getMapSize(segmentMap, world);
mapsAsHtml
.append("<img src=\"")
.append(f.getName())
.append("\" id=\"")
.append(segmentMap.mapName)
.append("\" style=\"width:")
.append(size.width * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; height:")
.append(size.height * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; left:")
.append((segmentMap.worldPosition.x - offsetWorldmapTo.x) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; top:")
.append((segmentMap.worldPosition.y - offsetWorldmapTo.y) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px;\" />");
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) mapsAsHtml.append('\n');
bottomRight.x = Math.max(bottomRight.x, segmentMap.worldPosition.x + size.width);
bottomRight.y = Math.max(bottomRight.y, segmentMap.worldPosition.y + size.height);
}
Size worldmapSegmentSize = new Size(
(bottomRight.x - offsetWorldmapTo.x) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE
,(bottomRight.y - offsetWorldmapTo.y) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE
);
StringBuilder namedAreasAsHtml = new StringBuilder(500);
for (NamedWorldMapArea area : segment.namedAreas.values()) {
CoordRect r = determineNamedAreaBoundary(area, segment, world, displayedMapFilenamesPerMapName.keySet());
if (r == null) continue;
namedAreasAsHtml
.append("<div class=\"namedarea ")
.append(area.type)
.append("\" style=\"width:")
.append(r.size.width * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; line-height:")
.append(r.size.height * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; left:")
.append((r.topLeft.x - offsetWorldmapTo.x) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; top:")
.append((r.topLeft.y - offsetWorldmapTo.y) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px;\"><span>")
.append(area.name)
.append("</span></div>");
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) namedAreasAsHtml.append('\n');
}
return res.getString(R.string.worldmap_template)
.replace("{{maps}}", mapsAsHtml.toString())
.replace("{{areas}}", namedAreasAsHtml.toString())
.replace("{{sizex}}", Integer.toString(worldmapSegmentSize.width))
.replace("{{sizey}}", Integer.toString(worldmapSegmentSize.height))
.replace("{{offsetx}}", Integer.toString(offsetWorldmapTo.x * WorldMapController.WORLDMAP_DISPLAY_TILESIZE))
.replace("{{offsety}}", Integer.toString(offsetWorldmapTo.y * WorldMapController.WORLDMAP_DISPLAY_TILESIZE));
}
private static Size getMapSize(WorldMapSegmentMap map, WorldContext world) {
return world.maps.findPredefinedMap(map.mapName).size;
}
private static CoordRect determineNamedAreaBoundary(NamedWorldMapArea area, WorldMapSegment segment, WorldContext world, Set<String> displayedMapNames) {
Coord topLeft = null;
Coord bottomRight = null;
for (String mapName : area.mapNames) {
if (!displayedMapNames.contains(mapName)) continue;
WorldMapSegmentMap map = segment.maps.get(mapName);
Size size = getMapSize(map, world);
if (topLeft == null) {
topLeft = new Coord(map.worldPosition);
} else {
topLeft.x = Math.min(topLeft.x, map.worldPosition.x);
topLeft.y = Math.min(topLeft.y, map.worldPosition.y);
}
if (bottomRight == null) {
bottomRight = new Coord(map.worldPosition.x + size.width, map.worldPosition.y + size.height);
} else {
bottomRight.x = Math.max(bottomRight.x, map.worldPosition.x + size.width);
bottomRight.y = Math.max(bottomRight.y, map.worldPosition.y + size.height);
}
}
if (topLeft == null) return null;
return new CoordRect(topLeft, new Size(bottomRight.x - topLeft.x, bottomRight.y - topLeft.y));
}
public static void updateWorldMapSegment(Resources res, WorldContext world, String segmentName) throws IOException {
String mapAsHtml = getWorldMapSegmentAsHtml(res, world, segmentName);
File outputFile = getCombinedWorldMapFile(segmentName);
PrintWriter pw = new PrintWriter(outputFile);
pw.write(mapAsHtml);
pw.close();
}
public static boolean displayWorldMap(Context context, WorldContext world) {
String worldMapSegmentName = world.maps.getWorldMapSegmentNameForMap(world.model.currentMap.name);
if (worldMapSegmentName == null) {
Toast.makeText(context, context.getResources().getString(R.string.display_worldmap_not_available), Toast.LENGTH_LONG).show();
return false;
}
Intent intent = new Intent(context, DisplayWorldMapActivity.class);
intent.putExtra("worldMapSegmentName", worldMapSegmentName);
context.startActivity(intent);
return true;
}
}
package com.gpl.rpg.AndorsTrail.controller;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.AsyncTask;
import android.widget.Toast;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.activity.DisplayWorldMapActivity;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
import com.gpl.rpg.AndorsTrail.model.map.MapLayer;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.model.map.TMXMapTranslator;
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment;
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.NamedWorldMapArea;
import com.gpl.rpg.AndorsTrail.model.map.WorldMapSegment.WorldMapSegmentMap;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection;
import com.gpl.rpg.AndorsTrail.util.AndroidStorage;
import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.util.CoordRect;
import com.gpl.rpg.AndorsTrail.util.L;
import com.gpl.rpg.AndorsTrail.util.Size;
public final class WorldMapController {
private static final int WORLDMAP_SCREENSHOT_TILESIZE = 8;
public static final int WORLDMAP_DISPLAY_TILESIZE = WORLDMAP_SCREENSHOT_TILESIZE;
public static void updateWorldMap(Context context, final WorldContext world, final Resources res) {
updateWorldMap(context, world, world.model.currentMaps.map, world.model.currentMaps.tileMap, world.model.currentMaps.tiles, res);
}
private static void updateWorldMap(
Context context, final WorldContext world,
final PredefinedMap map,
final LayeredTileMap mapTiles,
final TileCollection cachedTiles,
final Resources res) {
final String worldMapSegmentName = world.maps.getWorldMapSegmentNameForMap(map.name);
if (worldMapSegmentName == null) return;
if (!shouldUpdateWorldMap(context, map, worldMapSegmentName, world.maps.worldMapRequiresUpdate)) return;
(new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... arg0) {
final MapRenderer renderer = new MapRenderer(world, map, mapTiles, cachedTiles);
try {
updateCachedBitmap(context, map, renderer);
updateWorldMapSegment(context, res, world, worldMapSegmentName);
world.maps.worldMapRequiresUpdate = false;
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) {
L.log("WorldMapController: Updated worldmap segment " + worldMapSegmentName + " for map " + map.name);
}
} catch (IOException e) {
L.log("Error creating worldmap file for map " + map.name + " : " + e.toString());
}
return null;
}
}).execute();
}
private static boolean shouldUpdateWorldMap(Context context, PredefinedMap map, String worldMapSegmentName, boolean forceUpdate) {
if (forceUpdate) return true;
if (!map.visited) return true;
File file = getFileForMap(context, map, false);
if (!file.exists()) return true;
file = getCombinedWorldMapFile(context, worldMapSegmentName);
if (!file.exists()) return true;
return false;
}
private static void updateCachedBitmap(Context context, PredefinedMap map, MapRenderer renderer) throws IOException {
ensureWorldmapDirectoryExists(context);
File file = getFileForMap(context, map, false);
if (file.exists()) return;
Bitmap image = renderer.drawMap();
FileOutputStream fos = new FileOutputStream(file);
image.compress(Bitmap.CompressFormat.PNG, 70, fos);
fos.flush();
fos.close();
image.recycle();
L.log("WorldMapController: Wrote " + file.getAbsolutePath());
}
private static final class MapRenderer {
private final PredefinedMap map;
private final LayeredTileMap mapTiles;
private final TileCollection cachedTiles;
private final int tileSize;
private final float scale;
private final Paint mPaint = new Paint();
public MapRenderer(final WorldContext world, final PredefinedMap map, final LayeredTileMap mapTiles, final TileCollection cachedTiles) {
this.map = map;
this.mapTiles = mapTiles;
this.cachedTiles = cachedTiles;
this.tileSize = world.tileManager.tileSize;
this.scale = (float) WORLDMAP_SCREENSHOT_TILESIZE / world.tileManager.tileSize;
mapTiles.setColorFilter(mPaint, null, true);
}
public Bitmap drawMap() {
Bitmap image = Bitmap.createBitmap(map.size.width * WORLDMAP_SCREENSHOT_TILESIZE, map.size.height * WORLDMAP_SCREENSHOT_TILESIZE, Config.RGB_565);
image.setDensity(Bitmap.DENSITY_NONE);
Canvas canvas = new Canvas(image);
canvas.scale(scale, scale);
synchronized (cachedTiles) {
tryDrawMapLayer(canvas, mapTiles.currentLayout.layerBase);
tryDrawMapLayer(canvas, mapTiles.currentLayout.layerGround);
tryDrawMapLayer(canvas, mapTiles.currentLayout.layerObjects);
tryDrawMapLayer(canvas, mapTiles.currentLayout.layerAbove);
tryDrawMapLayer(canvas, mapTiles.currentLayout.layerTop);
}
return image;
}
private void tryDrawMapLayer(Canvas canvas, final MapLayer layer) {
if (layer != null) drawMapLayer(canvas, layer);
}
private void drawMapLayer(Canvas canvas, final MapLayer layer) {
int py = 0;
for (int y = 0; y < map.size.height; ++y, py += tileSize) {
int px = 0;
for (int x = 0; x < map.size.width; ++x, px += tileSize) {
final int tile = layer.tiles[x][y];
if (tile == 0) continue;
cachedTiles.drawTile(canvas, tile, px, py, mPaint);
}
}
}
}
private static void ensureWorldmapDirectoryExists(Context context) throws IOException {
File dir = AndroidStorage.getStorageDirectory(context, Constants.FILENAME_SAVEGAME_DIRECTORY);
if (!dir.exists()) dir.mkdir();
dir = new File(dir, Constants.FILENAME_WORLDMAP_DIRECTORY);
if (!dir.exists()) dir.mkdir();
File noMediaFile = new File(dir, ".nomedia");
if (!noMediaFile.exists()) noMediaFile.createNewFile();
}
public static boolean fileForMapExists(Context context, PredefinedMap map) {
if (map.lastSeenLayoutHash.length() > 0) {
return getPngFile(context, map.name + '.' + map.lastSeenLayoutHash).exists();
}
return getPngFile(context, map.name).exists();
}
private static File getFileForMap(Context context, PredefinedMap map, boolean verifyFileExists) {
if (map.lastSeenLayoutHash.length() > 0) {
File fileWithHash = getPngFile(context, map.name + '.' + map.lastSeenLayoutHash);
if (!verifyFileExists) return fileWithHash;
else if (fileWithHash.exists()) return fileWithHash;
}
return getPngFile(context, map.name);
}
private static File getPngFile(Context context, String fileName) {
return new File(getWorldmapDirectory(context), fileName + ".png");
}
private static File getWorldmapDirectory(Context context) {
File dir = AndroidStorage.getStorageDirectory(context, Constants.FILENAME_SAVEGAME_DIRECTORY);
return new File(dir, Constants.FILENAME_WORLDMAP_DIRECTORY);
}
public static File getCombinedWorldMapFile(Context context, String segmentName) {
return new File(getWorldmapDirectory(context), Constants.FILENAME_WORLDMAP_HTMLFILE_PREFIX + segmentName + Constants.FILENAME_WORLDMAP_HTMLFILE_SUFFIX);
}
private static String getWorldMapSegmentAsHtml(Context context, Resources res, WorldContext world, String segmentName) {
WorldMapSegment segment = world.maps.worldMapSegments.get(segmentName);
Map<String, File> displayedMapFilenamesPerMapName = new HashMap<String, File>(segment.maps.size());
Coord offsetWorldmapTo = new Coord(999999, 999999);
for (WorldMapSegmentMap map : segment.maps.values()) {
PredefinedMap predefinedMap = world.maps.findPredefinedMap(map.mapName);
if (predefinedMap == null) continue;
if (!predefinedMap.visited) continue;
File f = WorldMapController.getFileForMap(context, predefinedMap, true);
if (!f.exists()) continue;
displayedMapFilenamesPerMapName.put(map.mapName, f);
offsetWorldmapTo.x = Math.min(offsetWorldmapTo.x, map.worldPosition.x);
offsetWorldmapTo.y = Math.min(offsetWorldmapTo.y, map.worldPosition.y);
}
Coord bottomRight = new Coord(0, 0);
StringBuilder mapsAsHtml = new StringBuilder(1000);
for (WorldMapSegmentMap segmentMap : segment.maps.values()) {
File f = displayedMapFilenamesPerMapName.get(segmentMap.mapName);
if (f == null) continue;
Size size = getMapSize(segmentMap, world);
mapsAsHtml
.append("<img src=\"")
.append(f.getName())
.append("\" id=\"")
.append(segmentMap.mapName)
.append("\" style=\"width:")
.append(size.width * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; height:")
.append(size.height * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; left:")
.append((segmentMap.worldPosition.x - offsetWorldmapTo.x) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; top:")
.append((segmentMap.worldPosition.y - offsetWorldmapTo.y) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px;\" />");
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) mapsAsHtml.append('\n');
bottomRight.x = Math.max(bottomRight.x, segmentMap.worldPosition.x + size.width);
bottomRight.y = Math.max(bottomRight.y, segmentMap.worldPosition.y + size.height);
}
Size worldmapSegmentSize = new Size(
(bottomRight.x - offsetWorldmapTo.x) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE
,(bottomRight.y - offsetWorldmapTo.y) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE
);
StringBuilder namedAreasAsHtml = new StringBuilder(500);
for (NamedWorldMapArea area : segment.namedAreas.values()) {
CoordRect r = determineNamedAreaBoundary(area, segment, world, displayedMapFilenamesPerMapName.keySet());
if (r == null) continue;
namedAreasAsHtml
.append("<div class=\"namedarea ")
.append(area.type)
.append("\" style=\"width:")
.append(r.size.width * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; line-height:")
.append(r.size.height * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; left:")
.append((r.topLeft.x - offsetWorldmapTo.x) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px; top:")
.append((r.topLeft.y - offsetWorldmapTo.y) * WorldMapController.WORLDMAP_DISPLAY_TILESIZE)
.append("px;\"><span>")
.append(area.name)
.append("</span></div>");
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) namedAreasAsHtml.append('\n');
}
return res.getString(R.string.worldmap_template)
.replace("{{maps}}", mapsAsHtml.toString())
.replace("{{areas}}", namedAreasAsHtml.toString())
.replace("{{sizex}}", Integer.toString(worldmapSegmentSize.width))
.replace("{{sizey}}", Integer.toString(worldmapSegmentSize.height))
.replace("{{offsetx}}", Integer.toString(offsetWorldmapTo.x * WorldMapController.WORLDMAP_DISPLAY_TILESIZE))
.replace("{{offsety}}", Integer.toString(offsetWorldmapTo.y * WorldMapController.WORLDMAP_DISPLAY_TILESIZE));
}
private static Size getMapSize(WorldMapSegmentMap map, WorldContext world) {
return world.maps.findPredefinedMap(map.mapName).size;
}
private static CoordRect determineNamedAreaBoundary(NamedWorldMapArea area, WorldMapSegment segment, WorldContext world, Set<String> displayedMapNames) {
Coord topLeft = null;
Coord bottomRight = null;
for (String mapName : area.mapNames) {
if (!displayedMapNames.contains(mapName)) continue;
WorldMapSegmentMap map = segment.maps.get(mapName);
Size size = getMapSize(map, world);
if (topLeft == null) {
topLeft = new Coord(map.worldPosition);
} else {
topLeft.x = Math.min(topLeft.x, map.worldPosition.x);
topLeft.y = Math.min(topLeft.y, map.worldPosition.y);
}
if (bottomRight == null) {
bottomRight = new Coord(map.worldPosition.x + size.width, map.worldPosition.y + size.height);
} else {
bottomRight.x = Math.max(bottomRight.x, map.worldPosition.x + size.width);
bottomRight.y = Math.max(bottomRight.y, map.worldPosition.y + size.height);
}
}
if (topLeft == null) return null;
return new CoordRect(topLeft, new Size(bottomRight.x - topLeft.x, bottomRight.y - topLeft.y));
}
public static void updateWorldMapSegment(Context context, Resources res, WorldContext world, String segmentName) throws IOException {
String mapAsHtml = getWorldMapSegmentAsHtml(context, res, world, segmentName);
File outputFile = getCombinedWorldMapFile(context, segmentName);
PrintWriter pw = new PrintWriter(outputFile);
pw.write(mapAsHtml);
pw.close();
}
public static boolean displayWorldMap(Context context, WorldContext world) {
String worldMapSegmentName = world.maps.getWorldMapSegmentNameForMap(world.model.currentMaps.map.name);
if (worldMapSegmentName == null) {
Toast.makeText(context, context.getResources().getString(R.string.display_worldmap_not_available), Toast.LENGTH_LONG).show();
return false;
}
Intent intent = new Intent(context, DisplayWorldMapActivity.class);
intent.putExtra("worldMapSegmentName", worldMapSegmentName);
context.startActivity(intent);
return true;
}
public static void populateWorldMap(Context context, WorldContext world, Resources res) throws IOException {
ensureWorldmapDirectoryExists(context);
File dir = getWorldmapDirectory(context);
File idFile = new File(dir, world.model.player.id);
if (idFile.exists()) return;
idFile.createNewFile();
for (PredefinedMap map : world.maps.getAllMaps()) {
if (!map.visited) continue;
String worldMapSegmentName = world.maps.getWorldMapSegmentNameForMap(map.name);
if (worldMapSegmentName == null) continue;
boolean mapFileExists = fileForMapExists(context, map);
File worldMapFile = getCombinedWorldMapFile(context, worldMapSegmentName);
if (mapFileExists && worldMapFile.exists()) continue;
LayeredTileMap mapTiles = TMXMapTranslator.readLayeredTileMap(res, world.tileManager.tileCache, map);
mapTiles.changeColorFilter(map.currentColorFilter);
TileCollection cachedTiles = world.tileManager.loadTilesFor(map, mapTiles, world, res);
MapRenderer renderer = new MapRenderer(world, map, mapTiles, cachedTiles);
updateCachedBitmap(context, map, renderer);
updateWorldMapSegment(context, res, world, worldMapSegmentName);
}
}
}

View File

@@ -4,8 +4,10 @@ import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.SpriteMoveAnima
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAnimation;
import com.gpl.rpg.AndorsTrail.util.CoordRect;
import java.util.List;
public interface VisualEffectFrameListener {
void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset);
void onNewAnimationFrames(List<VisualEffectAnimation> effects);
void onAnimationCompleted(VisualEffectAnimation animation);
void onSpriteMoveStarted(SpriteMoveAnimation animation);
void onNewSpriteMoveFrame(SpriteMoveAnimation animation);

View File

@@ -5,10 +5,12 @@ import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAni
import com.gpl.rpg.AndorsTrail.util.CoordRect;
import com.gpl.rpg.AndorsTrail.util.ListOfListeners;
import java.util.List;
public final class VisualEffectFrameListeners extends ListOfListeners<VisualEffectFrameListener> implements VisualEffectFrameListener {
private final Function3<VisualEffectFrameListener, VisualEffectAnimation, Integer, Integer> onNewAnimationFrame = new Function3<VisualEffectFrameListener, VisualEffectAnimation, Integer, Integer>() {
@Override public void call(VisualEffectFrameListener listener, VisualEffectAnimation animation, Integer tileID, Integer textYOffset) { listener.onNewAnimationFrame(animation, tileID, textYOffset); }
private final Function1<VisualEffectFrameListener, List<VisualEffectAnimation>> onNewAnimationFrames = new Function1<VisualEffectFrameListener, List<VisualEffectAnimation>>() {
@Override public void call(VisualEffectFrameListener listener, List<VisualEffectAnimation> effects) { listener.onNewAnimationFrames(effects); }
};
private final Function1<VisualEffectFrameListener, VisualEffectAnimation> onAnimationCompleted = new Function1<VisualEffectFrameListener, VisualEffectAnimation>() {
@@ -30,10 +32,10 @@ public final class VisualEffectFrameListeners extends ListOfListeners<VisualEffe
private final Function1<VisualEffectFrameListener, CoordRect> onAsyncAreaUpdate = new Function1<VisualEffectFrameListener, CoordRect>() {
@Override public void call(VisualEffectFrameListener listener, CoordRect area) { listener.onAsyncAreaUpdate(area); }
};
@Override
public void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset) {
callAllListeners(this.onNewAnimationFrame, animation, tileID, textYOffset);
public void onNewAnimationFrames(List<VisualEffectAnimation> effects) {
callAllListeners(this.onNewAnimationFrames, effects);
}
@Override

View File

@@ -0,0 +1,115 @@
package com.gpl.rpg.AndorsTrail.model;
import android.os.Build;
import com.gpl.rpg.AndorsTrail.util.L;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.charset.StandardCharsets;
import java.security.DigestException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class ChecksumBuilder {
public static final int CHECKSUM_LENGTH = 32;// 256 bits (depends on the hash algorithm)
public static final String CHECKSUM_ALGORITHM = "SHA-256"; //Should be available in all Android versions
private ByteBuffer buffer;
private final MessageDigest digest;
private ChecksumBuilder(int initialCapacity, ByteOrder byteOrder) {
buffer = ByteBuffer.allocate(initialCapacity);
buffer.order(byteOrder);
try {
digest = MessageDigest.getInstance(CHECKSUM_ALGORITHM); // Or SHA-512 for even stronger hash
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("Hash algorithm not found", e);
}
}
private ChecksumBuilder(int initialCapacity) {
this(initialCapacity, ByteOrder.BIG_ENDIAN); // Default to big-endian
}
public ChecksumBuilder() {
this(1024*10); // A reasonable default initial capacity
}
// --- Methods for adding different data types ---
public ChecksumBuilder add(String value) {
if (value != null) {
byte[] bytes;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
bytes = value.getBytes(StandardCharsets.UTF_8);
} else {
bytes = value.getBytes();
}
add(bytes);
} else {
add(-1); // Use -1 to represent a null string
}
return this;
}
public ChecksumBuilder add(byte[] bytes) {
add(bytes.length); // Add length prefix
ensureCapacity(bytes.length + 4); // +4 for length prefix (int)
buffer.put(bytes);
return this;
}
public ChecksumBuilder add(boolean value) {
ensureCapacity(1);
buffer.put(value ? (byte) 1 : (byte) 0);
return this;
}
public ChecksumBuilder add(long value) {
ensureCapacity(8);
buffer.putLong(value);
return this;
}
public ChecksumBuilder add(int value) {
ensureCapacity(4);
buffer.putInt(value);
return this;
}
public ChecksumBuilder add(float value) {
ensureCapacity(8);
buffer.putFloat(value);
return this;
}
public ChecksumBuilder add(double value) {
ensureCapacity(4);
buffer.putDouble(value);
return this;
}
// --- Method to finalize and get the checksum ---
public byte[] build() throws DigestException {
buffer.flip(); // Prepare for reading
digest.update(buffer);// Only use the actually used part of the buffer
buffer.flip(); // Prepare for further writing
return digest.digest();
}
// --- Utility method to ensure sufficient capacity ---
private void ensureCapacity(int required) {
if (buffer.remaining() < required) {
int newCapacity = Math.max(buffer.capacity() * 2, buffer.capacity() + required);
ByteBuffer newBuffer = ByteBuffer.allocate(newCapacity);
newBuffer.order(buffer.order());
buffer.flip(); // Prepare for reading
newBuffer.put(buffer); // Copy existing data
buffer = newBuffer; // Assign the new buffer to the field
}
}
}

View File

@@ -3,6 +3,7 @@ package com.gpl.rpg.AndorsTrail.model;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -19,10 +20,14 @@ import com.gpl.rpg.AndorsTrail.model.actor.MonsterType;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.model.quest.Quest;
import com.gpl.rpg.AndorsTrail.util.HashMapHelper;
public final class GameStatistics {
private boolean isAlteredSavegame = false;
private byte[] checksum = new byte[ChecksumBuilder.CHECKSUM_LENGTH];
private int deaths = 0;
private final HashMap<String, Integer> killedMonsters = new HashMap<String, Integer>();
private final HashMap<String, Integer> killedMonstersByTypeID = new HashMap<String, Integer>();
private final HashMap<String, Integer> killedMonstersByName = new HashMap<String, Integer>();
private final HashMap<String, Integer> usedItems = new HashMap<String, Integer>();
private int spentGold = 0;
private boolean unlimitedSaves = true;
@@ -33,10 +38,14 @@ public final class GameStatistics {
this.startLives = startLives;
}
public void addMonsterKill(String monsterTypeID) {
if (!killedMonsters.containsKey(monsterTypeID)) killedMonsters.put(monsterTypeID, 1);
else killedMonsters.put(monsterTypeID, killedMonsters.get(monsterTypeID) + 1);
public void addMonsterKill(MonsterType monsterType) {
// Track monster kills by type ID, for savegame file
killedMonstersByTypeID.put(monsterType.id, getNumberOfKillsForMonsterType(monsterType.id) + 1);
// Also track by name, for statistics display (multiple IDs w/same name don't matter to player)
killedMonstersByName.put(monsterType.name, getNumberOfKillsForMonsterName(monsterType.name) + 1);
}
public void addPlayerDeath(int lostExp) {
++deaths;
}
@@ -45,8 +54,7 @@ public final class GameStatistics {
}
public void addItemUsage(ItemType type) {
final String n = type.id;
if (!usedItems.containsKey(n)) usedItems.put(n, 1);
else usedItems.put(n, usedItems.get(n) + 1);
usedItems.put(n, HashMapHelper.getOrDefault(usedItems, n,0) + 1);
}
public int getDeaths() {
@@ -62,36 +70,37 @@ public final class GameStatistics {
public boolean hasUnlimitedLives() { return startLives == -1; }
public int getStartLives() { return startLives; }
public boolean getIsAlteredSavegame() { return isAlteredSavegame; }
public int getLivesLeft() { return hasUnlimitedLives() ? -1 : startLives - deaths; }
public boolean isDead() { return !hasUnlimitedLives() && getLivesLeft() < 1; }
public int getNumberOfKillsForMonsterType(String monsterTypeID) {
Integer v = killedMonsters.get(monsterTypeID);
if (v == null) return 0;
return v;
return HashMapHelper.getOrDefault(killedMonstersByTypeID, monsterTypeID, 0);
}
public int getNumberOfKillsForMonsterName(String monsterName) {
return HashMapHelper.getOrDefault(killedMonstersByName, monsterName, 0);
}
public String getTop5MostCommonlyKilledMonsters(WorldContext world, Resources res) {
if (killedMonsters.isEmpty()) return null;
List<Entry<String, Integer>> entries = new ArrayList<Entry<String, Integer>>(killedMonsters.entrySet());
if (killedMonstersByTypeID.isEmpty()) return null;
List<Entry<String, Integer>> entries = new ArrayList<Entry<String, Integer>>(killedMonstersByName.entrySet());
Collections.sort(entries, descendingValueComparator);
StringBuilder sb = new StringBuilder(100);
int i = 0;
for (Entry<String, Integer> e : entries) {
if (i++ >= 5) break;
MonsterType t = world.monsterTypes.getMonsterType(e.getKey());
if (t == null) continue;
sb.append(res.getString(R.string.heroinfo_gamestats_name_and_qty, t.name, e.getValue())).append('\n');
sb.append(res.getString(R.string.heroinfo_gamestats_name_and_qty, e.getKey(), e.getValue())).append('\n');
}
return sb.toString();
}
public String getMostPowerfulKilledMonster(WorldContext world) {
if (killedMonsters.isEmpty()) return null;
HashMap<String, Integer> expPerMonsterType = new HashMap<String, Integer>(killedMonsters.size());
for (String monsterTypeID : killedMonsters.keySet()) {
if (killedMonstersByTypeID.isEmpty()) return null;
HashMap<String, Integer> expPerMonsterType = new HashMap<String, Integer>(killedMonstersByTypeID.size());
for (String monsterTypeID : killedMonstersByTypeID.keySet()) {
MonsterType t = world.monsterTypes.getMonsterType(monsterTypeID);
expPerMonsterType.put(monsterTypeID, t != null ? t.exp : 0);
}
@@ -135,20 +144,15 @@ public final class GameStatistics {
}
public int getNumberOfUsedItems() {
int result = 0;
for (int v : usedItems.values()) result += v;
return result;
return HashMapHelper.sumIntegerValues(usedItems);
}
public int getNumberOfTimesItemHasBeenUsed(String itemId) {
if (!usedItems.containsKey(itemId)) return 0;
return usedItems.get(itemId);
return HashMapHelper.getOrDefault(usedItems, itemId, 0);
}
public int getNumberOfKilledMonsters() {
int result = 0;
for (int v : killedMonsters.values()) result += v;
return result;
return HashMapHelper.sumIntegerValues(killedMonstersByTypeID);
}
private static final Comparator<Entry<String, Integer>> descendingValueComparator = new Comparator<Entry<String, Integer>>() {
@@ -158,6 +162,18 @@ public final class GameStatistics {
}
};
public void setChecksum(byte[] checksum) {
if (checksum.length != ChecksumBuilder.CHECKSUM_LENGTH) throw new IllegalArgumentException("Invalid checksum length.");
this.checksum = checksum;
}
public boolean compareChecksum(byte[] checksum) {
return this.checksum.length == checksum.length && MessageDigest.isEqual(this.checksum, checksum);
}
public void markAsAlteredSavegame() {
isAlteredSavegame = true;
}
// ====== PARCELABLE ===================================================================
@@ -172,8 +188,14 @@ public final class GameStatistics {
if (type == null) continue;
id = type.id;
}
this.killedMonsters.put(id, value);
this.killedMonstersByTypeID.put(id, value);
// Also track by name, for statistics display (multiple IDs w/same name don't matter to player)
MonsterType t = world.monsterTypes.getMonsterType(id);
if (t != null) killedMonstersByName.put(t.name, getNumberOfKillsForMonsterName(t.name) + value);
}
if (fileversion <= 17) return;
final int numItems = src.readInt();
@@ -188,11 +210,16 @@ public final class GameStatistics {
this.startLives = src.readInt();
this.unlimitedSaves = src.readBoolean();
if (fileversion < 81) return;
this.isAlteredSavegame = src.readBoolean();
final int checksumLength = src.readInt();
this.checksum = new byte[checksumLength];
if( src.read(checksum) != checksumLength) throw new IOException("Failed to read full checksum.");
}
public void writeToParcel(DataOutputStream dest) throws IOException {
dest.writeInt(deaths);
Set<Entry<String, Integer> > set = killedMonsters.entrySet();
Set<Entry<String, Integer> > set = killedMonstersByTypeID.entrySet();
dest.writeInt(set.size());
for (Entry<String, Integer> e : set) {
dest.writeUTF(e.getKey());
@@ -207,5 +234,29 @@ public final class GameStatistics {
dest.writeInt(spentGold);
dest.writeInt(startLives);
dest.writeBoolean(unlimitedSaves);
dest.writeBoolean(isAlteredSavegame);
dest.writeInt(checksum.length);
dest.write(checksum);
}
public void addToChecksum(ChecksumBuilder builder) {
builder.add(deaths);
Set<Entry<String, Integer> > set = killedMonstersByTypeID.entrySet();
builder.add(set.size());
for (Entry<String, Integer> e : set) {
builder.add(e.getKey());
builder.add(e.getValue());
}
set = usedItems.entrySet();
builder.add(set.size());
for (Entry<String, Integer> e : set) {
builder.add(e.getKey());
builder.add(e.getValue());
}
builder.add(spentGold);
builder.add(startLives);
builder.add(unlimitedSaves);
builder.add(isAlteredSavegame);
}
}

View File

@@ -51,4 +51,12 @@ public final class InterfaceData {
}
dest.writeUTF(selectedTabHeroInfo);
}
public void addToChecksum(ChecksumBuilder builder) {
builder.add(isMainActivityVisible);
builder.add(isInCombat);
builder.add(selectedPosition != null);
if (selectedPosition != null) selectedPosition.addToChecksum(builder);
builder.add(selectedTabHeroInfo);
}
}

View File

@@ -0,0 +1,11 @@
package com.gpl.rpg.AndorsTrail.model;
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection;
public final class MapBundle {
public PredefinedMap map;
public LayeredTileMap tileMap;
public TileCollection tiles;
}

View File

@@ -7,8 +7,6 @@ import java.io.IOException;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
public final class ModelContainer {
@@ -17,8 +15,7 @@ public final class ModelContainer {
public final CombatLog combatLog = new CombatLog();
public final GameStatistics statistics;
public final WorldData worldData;
public PredefinedMap currentMap;
public LayeredTileMap currentTileMap;
public MapBundle currentMaps = new MapBundle();;
public ModelContainer(int startLives, boolean unlimitedSaves) {
player = new Player();
@@ -31,13 +28,13 @@ public final class ModelContainer {
public ModelContainer(DataInputStream src, WorldContext world, ControllerContext controllers, int fileversion) throws IOException {
this.player = Player.newFromParcel(src, world, controllers, fileversion);
this.currentMap = world.maps.findPredefinedMap(src.readUTF());
this.currentMaps.map = world.maps.findPredefinedMap(src.readUTF());
this.uiSelections = new InterfaceData(src, fileversion);
if (uiSelections.selectedPosition != null) {
this.uiSelections.selectedMonster = currentMap.getMonsterAt(uiSelections.selectedPosition);
this.uiSelections.selectedMonster = currentMaps.map.getMonsterAt(uiSelections.selectedPosition);
}
this.statistics = new GameStatistics(src, world, fileversion);
this.currentTileMap = null;
this.currentMaps.tileMap = null;
if (fileversion >= 40) {
this.worldData = new WorldData(src, fileversion);
} else {
@@ -47,9 +44,16 @@ public final class ModelContainer {
public void writeToParcel(DataOutputStream dest) throws IOException {
player.writeToParcel(dest);
dest.writeUTF(currentMap.name);
dest.writeUTF(currentMaps.map.name);
uiSelections.writeToParcel(dest);
statistics.writeToParcel(dest);
worldData.writeToParcel(dest);
}
public void addToChecksum(ChecksumBuilder builder){
player.addToChecksum(builder);
builder.add(currentMaps.map.name);
uiSelections.addToChecksum(builder);
statistics.addToChecksum(builder);
worldData.addToChecksum(builder);
}
}

View File

@@ -0,0 +1,126 @@
package com.gpl.rpg.AndorsTrail.model;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Calendar;
public final class WorldData {
private long worldTime = 0; // Measured in number of game rounds
private final HashMap<String, Long> timers = new HashMap<String, Long>();
public WorldData() {}
public void tickWorldTime() {
++worldTime;
}
public void tickWorldTime(int ticks) {
worldTime += ticks;
}
public long getWorldTime() {
return worldTime;
}
public void createTimer(String name) {
timers.put(name, worldTime);
}
public void removeTimer(String name) {
timers.remove(name);
}
public boolean hasTimerElapsed(String name, long duration) {
Long v = timers.get(name);
if (v == null) return false;
return v + duration <= worldTime;
}
public int getDate(String format) {
Calendar now = Calendar.getInstance();
int ret;
switch (format) {
case "YYYYMMDD":
ret = now.get(Calendar.YEAR)*10000 + (now.get(Calendar.MONTH) + 1)*100 + now.get(Calendar.DAY_OF_MONTH);
break;
case "YYYYMM":
ret = now.get(Calendar.YEAR)*100 + (now.get(Calendar.MONTH) + 1);
break;
case "YYYY":
ret = now.get(Calendar.YEAR);
break;
case "MMDD":
ret = (now.get(Calendar.MONTH) + 1)*100 + now.get(Calendar.DAY_OF_MONTH);
break;
case "MM":
ret = (now.get(Calendar.MONTH) + 1);
break;
case "DD":
ret = now.get(Calendar.DAY_OF_MONTH);
break;
default:
ret = 99999999; //never true
}
return ret;
}
public int getTime(String format) {
Calendar now = Calendar.getInstance();
int ret;
switch (format) {
case "HHMMSS":
ret = now.get(Calendar.HOUR_OF_DAY)*10000 + now.get(Calendar.MINUTE)*100 + now.get(Calendar.SECOND);
break;
case "HHMM":
ret = now.get(Calendar.HOUR_OF_DAY)*100 + now.get(Calendar.MINUTE);
break;
case "HH":
ret = now.get(Calendar.HOUR_OF_DAY);
break;
case "MMSS":
ret = now.get(Calendar.MINUTE)*100 + now.get(Calendar.SECOND);
break;
case "MM":
ret = now.get(Calendar.MINUTE);
break;
case "SS":
ret = now.get(Calendar.SECOND);
break;
default:
ret = 99999999; //never true
}
return ret;
}
// ====== PARCELABLE ===================================================================
public WorldData(DataInputStream src, int fileversion) throws IOException {
worldTime = src.readLong();
final int numTimers = src.readInt();
for(int i = 0; i < numTimers; ++i) {
final String timerName = src.readUTF();
final long value = src.readLong();
this.timers.put(timerName, value);
}
}
public void writeToParcel(DataOutputStream dest) throws IOException {
dest.writeLong(worldTime);
dest.writeInt(timers.size());
for(Map.Entry<String, Long> e : timers.entrySet()) {
dest.writeUTF(e.getKey());
dest.writeLong(e.getValue());
}
}
public void addToChecksum(ChecksumBuilder builder) {
builder.add(worldTime);
builder.add(timers.size());
for(Map.Entry<String, Long> e : timers.entrySet()) {
builder.add(e.getKey());
builder.add(e.getValue());
}
}
}

View File

@@ -5,10 +5,12 @@ import java.io.DataOutputStream;
import java.io.IOException;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.ChecksumBuilder;
public final class ActorCondition {
public static final int MAGNITUDE_REMOVE_ALL = -99;
public static final int DURATION_FOREVER = 999;
public static final int DURATION_FOREVER_UNTIL_SLEEP = 998;
public static final int DURATION_NONE = 0;
public final ActorConditionType conditionType;
@@ -27,7 +29,12 @@ public final class ActorCondition {
public boolean isTemporaryEffect() { return isTemporaryEffect(duration); }
public static boolean isTemporaryEffect(int duration) {
return duration != DURATION_FOREVER;
return ( duration != DURATION_FOREVER && duration != DURATION_FOREVER_UNTIL_SLEEP );
}
public boolean isDurationForeverUntilSleep() { return isDurationForeverUntilSleep(duration); }
public static boolean isDurationForeverUntilSleep(int duration) {
return ( duration == DURATION_FOREVER_UNTIL_SLEEP );
}
@@ -45,4 +52,11 @@ public final class ActorCondition {
dest.writeInt(magnitude);
dest.writeInt(duration);
}
public void addToChecksum(ChecksumBuilder builder) {
builder.add(conditionType.conditionTypeID);
builder.add(magnitude);
builder.add(duration);
}
}

View File

@@ -10,6 +10,7 @@ public final class ActorConditionType {
public final String conditionTypeID;
public final String name;
public final String description;
public final int iconID;
public final ConditionCategory conditionCategory;
public final boolean isStacking;
@@ -21,6 +22,7 @@ public final class ActorConditionType {
public ActorConditionType(
String conditionTypeID
, String name
, String description
, int iconID
, ConditionCategory conditionCategory
, boolean isStacking
@@ -31,6 +33,7 @@ public final class ActorConditionType {
) {
this.conditionTypeID = conditionTypeID;
this.name = name;
this.description = description;
this.iconID = iconID;
this.conditionCategory = conditionCategory;
this.isStacking = isStacking;

Some files were not shown because too many files have changed in this diff Show More