Compare commits

...

5338 Commits

Author SHA1 Message Date
Nut.andor
3ada8ceaa7 V0.8.3 2022-11-13 00:54:22 +01:00
Nut.andor
7b5fc79375 fixes from beta 2022-11-09 07:30:19 +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
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
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
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
60ffafab9e fixed typo 2020-02-28 00:31:48 +01:00
Nut
a8466e838c actual translations 2020-02-28 00:30:55 +01:00
Nut
3da959524a PotComparator 2020-02-27 23:04:21 +01:00
Alessandro Perlo
7165f7b3a5 Translated using Weblate (Italian)
Currently translated at 89.9% (9032 of 10037 strings)
2020-02-27 01:04:16 +01:00
d2cyb
51ff5c0580 Translated using Weblate (Russian)
Currently translated at 100.0% (10037 of 10037 strings)
2020-02-27 01:04:10 +01:00
Nut Andor
9b26833d55 Translated using Weblate (Ukrainian)
Currently translated at 91.0% (506 of 556 strings)
2020-02-27 01:04:08 +01:00
ellta
ce6063d192 Translated using Weblate (Russian)
Currently translated at 100.0% (556 of 556 strings)
2020-02-27 01:04:08 +01:00
Chriz76
3cff123571 Update readme.md 2020-02-26 21:11:48 +01:00
Chriz76
4c96bcb423 Update readme.md 2020-02-26 21:10:15 +01:00
Chriz76
72534b885d Update readme.md 2020-02-26 20:42:53 +01:00
Nut
1c79196674 Merge remote-tracking branch 'github.AndorsTrailRelease/master' 2020-02-25 23:50:18 +01:00
Nut
eecbbffcba PotComparator 2020-02-25 23:43:57 +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
aa3dd67e0b prep for v079 2020-02-25 22:59:08 +01:00
Nut
eda3875d7d Merge remote-tracking branch 'github.nutAndor/v079' 2020-02-25 22:56:39 +01:00
Nut
eafcfc2fd8 Burchzyd 2020-02-25 22:44:22 +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
Nut
db489fe0d3 Merge pull request #7 from atsymboldot/master
minor spelling fixes
2020-02-24 23:53:33 +01:00
Nut
b3b3f42c88 AT source link updated 2020-02-24 00:22:57 +01:00
Nut
9aa3e0e777 Merge remote-tracking branch 'hosted.weblate/master'
# Conflicts:
#	AndorsTrail/res/values-hu/strings.xml
#	AndorsTrail/res/values-pl/strings.xml
#	AndorsTrail/res/values-ru/strings.xml
#	AndorsTrail/res/values-uk/strings.xml
2020-02-24 00:06:15 +01:00
Nut
dfb4f11447 Revert "Actual translations"
This reverts commit 13e8f38e63.
2020-02-23 22:33:19 +01:00
Nut
870b92d1a2 Revert "Translations - changes from v079"
This reverts commit ac856675f1.
2020-02-23 22:32:47 +01:00
Nut
07f6b2ca31 Revert "without Read Log permission"
This reverts commit 35a09bbbd3.
2020-02-23 22:31:44 +01:00
Gonk
6be02aae36 Refactoring to make the code more readable 2020-02-23 22:10:36 +01:00
Nut
35a09bbbd3 without Read Log permission 2020-02-23 19:26:25 +01:00
Nut
ac856675f1 Translations - changes from v079 2020-02-23 17:38:57 +01:00
Nut
13e8f38e63 Actual translations 2020-02-23 17:05:25 +01:00
Nut
ec4131a560 Merge pull request #8 from NutAndor/v079
V079
2020-02-23 16:39:56 +01:00
Nut
2a10a2dfd0 Building v079 from ATCS v079 2020-02-23 16:30:49 +01:00
Daniel Stasiak
5f1bb833b5 Translated using Weblate (Polish)
Currently translated at 94.1% (9452 of 10036 strings)
2020-02-23 14:59:46 +01:00
Nathan Watson
c9503d18bb minor spelling fixes 2020-02-22 15:37:31 -08: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
9a27bc935f Merge branch 'v079' of https://github.com/NutAndor/andors-trail into nut_v079 2020-02-22 18:51:13 +01:00
Gonk
9a8ad47fd2 Adding display scaling factor 0.75 2020-02-22 18:50:38 +01:00
Gonk
0d8fb12334 Adding display scaling factor 0.75 2020-02-22 18:48:29 +01:00
Nut
d3df37a769 translation states 2020-02-22 15:56:34 +01:00
Nut
a4f12e4102 Revert "A couple of additional sprites"
This reverts commit 9d5132f282.
2020-02-22 11:56:26 +01:00
Nut
a28a677036 changed source repo 2020-02-22 11:13:58 +01:00
Gonk
48c64f32db Merge branch 'nut_v079' into nut_test_brimhaven 2020-02-22 08:34:59 +01:00
Gonk
d6823bdf07 Adding display scaling factor 0.5 as workaround for bug https://github.com/NutAndor/v079/issues/3 2020-02-22 08:32:15 +01:00
Daniel Stasiak
1eb446e335 Translated using Weblate (Polish)
Currently translated at 93.6% (9399 of 10036 strings)
2020-02-22 04:36:20 +01:00
김현수
52a2f5c008 Translated using Weblate (Korean)
Currently translated at 7.4% (746 of 10036 strings)
2020-02-21 12:10:23 +01:00
Daniel Stasiak
26b567bd31 Translated using Weblate (Polish)
Currently translated at 93.6% (9399 of 10036 strings)
2020-02-21 12:10:17 +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
김현수
f84d8dd0dd Translated using Weblate (Korean)
Currently translated at 6.8% (692 of 10036 strings)
2020-02-20 13:33:01 +01:00
Michal Biesiada
ac845d6860 Translated using Weblate (Polish)
Currently translated at 93.6% (9394 of 10036 strings)
2020-02-20 13:32:57 +01:00
Daniel Stasiak
340f816960 Translated using Weblate (Polish)
Currently translated at 93.6% (9394 of 10036 strings)
2020-02-20 13:32:56 +01:00
Allan Nordhøy
d8c9bc0680 Translated using Weblate (Norwegian Bokmål)
Currently translated at 94.5% (524 of 554 strings)
2020-02-20 13:32:49 +01:00
김현수
46f38f974a Translated using Weblate (Korean)
Currently translated at 93.8% (520 of 554 strings)
2020-02-20 13:32:48 +01:00
Nut
9a7f18525b teleport AR 2020-02-18 23:30:22 +01:00
Daniel Stasiak
956e96f0eb Translated using Weblate (Polish)
Currently translated at 92.8% (9314 of 10036 strings)
2020-02-18 03:22:32 +01:00
ellta
0e24376b25 Translated using Weblate (Russian)
Currently translated at 100.0% (10036 of 10036 strings)
2020-02-18 03:22:28 +01:00
Daniel Stasiak
f80f8b98d8 Translated using Weblate (Polish)
Currently translated at 92.4% (9278 of 10036 strings)
2020-02-17 02:52:10 +01:00
Gonk
b90cb991ce Merge branch 'languageselection' into nut_test_brimhaven 2020-02-16 21:47:30 +01:00
Gonk
3a7d170ee0 Merge branch 'languageselection' into nut_v079 2020-02-16 21:43:41 +01:00
Gonk
687d1ed22c setNonWeaponDamageModifier , 2020-02-16 21:40:08 +01:00
Gonk
db4c4a0ce9 Replaced Locale.forLanguageTag which is only availale starting at API level 21 2020-02-16 21:33:06 +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
Daniel Stasiak
2ad55ce122 Translated using Weblate (Polish)
Currently translated at 92.3% (9264 of 10036 strings)
2020-02-14 04:18:43 +01:00
iLocIT!
3891e494e2 Translated using Weblate (German)
Currently translated at 96.7% (9700 of 10036 strings)
2020-02-14 04:18:39 +01:00
Arif Fahmi Fisal
e096ce148b Translated using Weblate (Malay)
Currently translated at 1.1% (108 of 10036 strings)
2020-02-12 08:50:21 +01: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
Daniel Stasiak
8cb68d536b Translated using Weblate (Polish)
Currently translated at 92.3% (9263 of 10036 strings)
2020-02-10 23:50:21 +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
baab4773d5 enable debug buttons 2020-02-10 00:28:37 +01:00
jbmeyer
c46407661a Translated using Weblate (French)
Currently translated at 55.8% (5598 of 10036 strings)
2020-02-08 22:50:19 +01:00
Nut
9042fa9daa new version 0.7.9dev(51):
Probably the next release with bugfixes and translations
2020-02-08 20:14:18 +01:00
Nut
27367518ea new version 51 2020-02-08 10:31:52 +01:00
Nut
ef969ef1ae Merge pull request #33 from AndorsTrailRelease/master
internal version to 50
2020-02-08 10:26:29 +01:00
Christian Zink
03d5655af9 Translated using Weblate (German)
Currently translated at 96.6% (9695 of 10036 strings)
2020-02-07 00:34:44 +01:00
Nut
a4b86b4abe internal version to 50 2020-02-06 23:37:02 +01:00
Daniel Stasiak
4744cca5c3 Translated using Weblate (Polish)
Currently translated at 91.9% (9226 of 10036 strings)
2020-02-06 20:50:22 +01:00
Christian Zink
68d47e10da Translated using Weblate (German)
Currently translated at 96.1% (9644 of 10036 strings)
2020-02-06 20:50:18 +01:00
Nut
e48a6da936 new version 0.7.9dev(50) 2020-02-05 00:09:39 +01:00
Daniel Stasiak
250b538ce2 Translated using Weblate (Polish)
Currently translated at 91.6% (9194 of 10036 strings)
2020-02-03 22:16:23 +01:00
Anatoly Chub
ee8bac2e1e Translated using Weblate (Ukrainian)
Currently translated at 13.3% (1330 of 10036 strings)
2020-02-03 22:16:20 +01:00
Christian Zink
e498ac0d05 Translated using Weblate (German)
Currently translated at 95.8% (9610 of 10036 strings)
2020-02-03 22:16:16 +01:00
ellta
4abafc2fd3 Translated using Weblate (Russian)
Currently translated at 100.0% (554 of 554 strings)
2020-02-03 22:16:11 +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
Karakai András
6c3dc8b7ba Translated using Weblate (Hungarian)
Currently translated at 41.4% (4155 of 10036 strings)
2020-01-31 14:50:44 +01:00
ellta
16768484c1 Translated using Weblate (Russian)
Currently translated at 100.0% (10036 of 10036 strings)
2020-01-31 14:50:35 +01:00
Christian Zink
2d219fc441 Translated using Weblate (German)
Currently translated at 94.9% (9523 of 10036 strings)
2020-01-31 14:50:32 +01:00
Nut Andor
8e5be1a6bd Translated using Weblate (German)
Currently translated at 94.9% (9523 of 10036 strings)
2020-01-31 14:50:29 +01:00
Karakai András
d8ceddbaaa Translated using Weblate (Hungarian)
Currently translated at 98.2% (544 of 554 strings)
2020-01-31 14:50:26 +01:00
ellta
7a7b1a486f Translated using Weblate (Russian)
Currently translated at 100.0% (554 of 554 strings)
2020-01-31 14:50:25 +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
Nut Andor
ef4f05f119 Translated using Weblate (German)
Currently translated at 94.4% (9471 of 10036 strings)
2020-01-26 09:21:31 +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
Francesco Bisignani
017c0f289b Translated using Weblate (Italian)
Currently translated at 98.2% (544 of 554 strings)
2020-01-21 14:44:13 +01:00
Juan Manuel Cantero Diego
9da4bdcc94 Translated using Weblate (Spanish)
Currently translated at 90.8% (9113 of 10036 strings)
2020-01-20 23:39:00 +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
Daniel Stasiak
989ac542db Translated using Weblate (Polish)
Currently translated at 91.0% (9136 of 10036 strings)
2020-01-20 08:33:03 +01:00
Deleted User
78052e12d3 Translated using Weblate (German)
Currently translated at 93.8% (9411 of 10036 strings)
2020-01-20 08:33:00 +01:00
Tymofij Lytvynenko
a861265835 Translated using Weblate (Ukrainian)
Currently translated at 91.5% (507 of 554 strings)
2020-01-20 08:32:57 +01:00
Daniel Stasiak
34797a1a7b Translated using Weblate (Polish)
Currently translated at 100.0% (554 of 554 strings)
2020-01-20 08:32:57 +01:00
Nut
daaa6bd515 Merge pull request #32 from NutAndor/master
v078
2020-01-19 16:13:20 +01:00
Nut
735b2b997a Merge pull request #31 from AndorsTrailRelease/master
release v078
2020-01-19 16:10:59 +01:00
ellta
efa22283d0 Translated using Weblate (Russian)
Currently translated at 100.0% (10036 of 10036 strings)
2020-01-19 14:22:14 +01:00
람델사자드
46afce0757 Translated using Weblate (Korean)
Currently translated at 6.4% (647 of 10036 strings)
2020-01-19 14:21:52 +01:00
ellta
e6d0f0be14 Translated using Weblate (Russian)
Currently translated at 100.0% (554 of 554 strings)
2020-01-19 14:21:48 +01:00
Nut Andor
2ec1adfba5 Translated using Weblate (German)
Currently translated at 99.8% (553 of 554 strings)
2020-01-19 14:21:46 +01:00
Hosted Weblate
03de40501b Merge branch 'origin/master' into Weblate. 2020-01-18 08:24:56 +01:00
Lukáš Uhrin
c2b2668f0d Added translation using Weblate (English) 2020-01-13 16:46:34 +01:00
Chriz76
32e58a7133 Corrected wiki link 2020-01-12 12:10:35 +01:00
Nut
19cda28d42 Actual translations - statistics spanish 2020-01-11 01:59:44 +01:00
Nut
f43c67ec87 Actual translations - statistics 2020-01-11 01:56:34 +01:00
Nut
10b25cd4e6 Actual translations 2020-01-10 22:55:19 +01:00
Nut
d7b899aa7e Merge pull request #4 from NutAndor/arulir_mountain
Arulir mountain
2020-01-09 23:37:06 +01:00
Nut
d2ccb9b118 v078 (yet without translations) 2020-01-09 23:23:21 +01:00
Nut
46af6d3c4c Revert "v078"
This reverts commit 4cff325789.
2020-01-09 22:08:02 +01:00
Nut
4cff325789 v078 2020-01-09 00:25:33 +01:00
Nut
bfc0fc95d9 Typo in values_tr/strings.xml 2020-01-08 23:34:53 +01:00
Nut
0c0407aeba translate percentage and author bulletins 2020-01-08 23:20:17 +01:00
Nut
aad0781ab2 Authors with bulletin 2020-01-07 03:59:08 +01:00
Gonk
d54c66cabb disable debug buttos 2020-01-06 20:51:49 +01:00
Gonk
0d94686e98 Merge remote-tracking branch 'weblate/master' into AndorsTrailRelease_master 2020-01-06 20:51:21 +01:00
Gonk
681d78aa9c Merge branch 'nut_arulir_mountain' into AndorsTrailRelease_master
- All changes to PO and POT files from nut_arulir_mountain ignored, used the ones from AndorsTrailRelease_master because they contain the latest changes
- Small changes to authors.xml from nut_arulir_mountain ignored, used the ones from AndorsTrailRelease_master and checked that everything is there
- Current version display contains "dev". This has to be changed for the release

# Conflicts:
#	AndorsTrail/AndroidManifest.xml
#	AndorsTrail/assets/translation/ar.po
#	AndorsTrail/assets/translation/bg.po
#	AndorsTrail/assets/translation/ca.po
#	AndorsTrail/assets/translation/cs.po
#	AndorsTrail/assets/translation/de.po
#	AndorsTrail/assets/translation/el.po
#	AndorsTrail/assets/translation/english.pot
#	AndorsTrail/assets/translation/es.po
#	AndorsTrail/assets/translation/es_AR.po
#	AndorsTrail/assets/translation/fi.po
#	AndorsTrail/assets/translation/fil.po
#	AndorsTrail/assets/translation/fr.po
#	AndorsTrail/assets/translation/fr_AG.po
#	AndorsTrail/assets/translation/gl.po
#	AndorsTrail/assets/translation/hu.po
#	AndorsTrail/assets/translation/id.po
#	AndorsTrail/assets/translation/it.po
#	AndorsTrail/assets/translation/ja.po
#	AndorsTrail/assets/translation/ko.po
#	AndorsTrail/assets/translation/ms.po
#	AndorsTrail/assets/translation/nb.po
#	AndorsTrail/assets/translation/nl.po
#	AndorsTrail/assets/translation/pa.po
#	AndorsTrail/assets/translation/pl.po
#	AndorsTrail/assets/translation/pt.po
#	AndorsTrail/assets/translation/pt_BR.po
#	AndorsTrail/assets/translation/ru.po
#	AndorsTrail/assets/translation/sl.po
#	AndorsTrail/assets/translation/sv.po
#	AndorsTrail/assets/translation/th.po
#	AndorsTrail/assets/translation/tr.po
#	AndorsTrail/assets/translation/uk.po
#	AndorsTrail/assets/translation/zh_CN.po
#	AndorsTrail/assets/translation/zh_TW.po
#	AndorsTrail/res/values/authors.xml
#	AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
2020-01-06 20:34:17 +01:00
Daniel Stasiak
dc355b9c9f Translated using Weblate (Polish)
Currently translated at 94.0% (9107 of 9692 strings)
2020-01-06 17:24:03 +01:00
Christian Zink
8393afcdd0 Translated using Weblate (German)
Currently translated at 96.8% (9382 of 9692 strings)
2020-01-06 17:23:57 +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
Daniel Stasiak
96b1a3c8fb Translated using Weblate (Polish)
Currently translated at 93.2% (9037 of 9692 strings)
2020-01-05 21:21:28 +01:00
Christian Zink
bb287a18a3 Translated using Weblate (German)
Currently translated at 100.0% (523 of 523 strings)
2020-01-05 21:21:18 +01:00
Gonk
35d831485a corrected the link in about to the game wiki and spelling of "lose" 2020-01-04 21:08:46 +01:00
Gonk
9e7e3b3fbd changed "armour" to "armor" (american english) 2020-01-04 20:54:42 +01:00
Gonk
55fdce83c3 typo 2020-01-04 20:38:00 +01:00
Christian Zink
9b6643faf9 Translated using Weblate (German)
Currently translated at 96.5% (9350 of 9692 strings)
2020-01-04 03:00:59 +01:00
ellta
4bfc96dc11 Translated using Weblate (Russian)
Currently translated at 100.0% (9692 of 9692 strings)
2020-01-03 16:55:50 +01:00
Christian Zink
2051fd6dc3 Translated using Weblate (German)
Currently translated at 95.7% (9276 of 9692 strings)
2020-01-03 16:55:44 +01:00
ellta
f696e3f6dc Translated using Weblate (Russian)
Currently translated at 98.8% (9573 of 9692 strings)
2020-01-02 22:55:19 +01:00
Christian Zink
951e7d0129 Translated using Weblate (German)
Currently translated at 95.7% (9271 of 9692 strings)
2020-01-02 22:55:04 +01:00
Christian Zink
272ffb7f07 Translated using Weblate (German)
Currently translated at 93.9% (9098 of 9692 strings)
2020-01-01 09:03:13 +01:00
Leonardo Lelli
a05f4e7557 Translated using Weblate (Italian)
Currently translated at 93.1% (9019 of 9692 strings)
2019-12-31 19:21:17 +01:00
Christian Zink
4bd28fdd2f Translated using Weblate (German)
Currently translated at 93.6% (9073 of 9692 strings)
2019-12-31 19:21:16 +01:00
Gonk
44a145be77 First draft 2019-12-30 22:18:14 +01:00
Christian Zink
654799b94c Translated using Weblate (German)
Currently translated at 93.6% (9073 of 9692 strings)
2019-12-30 18:50:54 +01:00
Nut Andor
4eb054a3d6 Translated using Weblate (German)
Currently translated at 93.6% (9073 of 9692 strings)
2019-12-30 18:50:54 +01:00
Arthur Gomes de Lima
0d1b83d941 Translated using Weblate (Portuguese)
Currently translated at 80.6% (7814 of 9692 strings)
2019-12-30 06:21:17 +01:00
Arthur Gomes de Lima
e00aa6df7a Translated using Weblate (Portuguese (Brazil))
Currently translated at 85.2% (8255 of 9692 strings)
2019-12-30 06:21:15 +01:00
nickfla1
5a324f5f28 Translated using Weblate (Italian)
Currently translated at 93.0% (9017 of 9692 strings)
2019-12-28 15:40:43 +01:00
josep constanti
c8c23e67f6 Translated using Weblate (Catalan)
Currently translated at 5.6% (547 of 9692 strings)
2019-12-28 15:40:40 +01:00
Gonk
346bc2730e typo 2019-12-26 21:18:02 +01:00
J
b92c27c5f5 Translated using Weblate (Spanish)
Currently translated at 93.8% (9088 of 9692 strings)
2019-12-25 22:21:20 +01:00
Nut
0d3ac02dc1 pahsito and russian translate percentage 2019-12-24 00:06:44 +01:00
Gonk
5ae78dd2fb make sure after loading a limitedsaves game that it is saved to the quickslot before deleting the savegame file 2019-12-23 23:58:42 +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
Gökhan Demirden
9ba049c924 Translated using Weblate (Turkish)
Currently translated at 16.5% (1598 of 9692 strings)
2019-12-23 03:12:56 +01:00
Henrik Dankvardt
5b97fb16b5 Translated using Weblate (Danish)
Currently translated at 14.1% (74 of 523 strings)
2019-12-23 03:12:53 +01:00
Nut
2d9cf8e364 Translation state per language 2019-12-22 09:15:26 +01:00
Grant-Hwang
c1a86a7bd8 Translated using Weblate (Korean)
Currently translated at 6.7% (645 of 9692 strings)
2019-12-22 08:57:58 +01:00
Grant-Hwang
48c02277e3 Translated using Weblate (Korean)
Currently translated at 99.6% (521 of 523 strings)
2019-12-22 08:57:54 +01:00
Nut
5b5e6cffe2 added pahsito again 2019-12-22 08:54:27 +01:00
Mattias Münster
5a240c2bc4 Translated using Weblate (Swedish)
Currently translated at 5.5% (536 of 9692 strings)
2019-12-22 00:16:38 +01:00
Nut
aad26bd23e Translations update - 'Thieves' 2019-12-21 10:01:56 +01:00
Gonk
cfa2640e6a Merge branch 'permadeath' into nut_arulir_mountain
# Conflicts:
#	AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
2019-12-20 15:20:02 +01:00
Gonk
c9c4c6377e incremented versionnumber for permadeath savegames because 48 was already used for the released 077 2019-12-20 15:14:36 +01:00
Gonk
a3e496eebb Merge remote-tracking branch 'weblate/master' into AndorsTrailRelease_master 2019-12-19 23:19:37 +01:00
Gonk
e2340536a0 Reseted language changes so we can make a clean weblate sync 2019-12-19 22:59:01 +01:00
Gonk
7d133b2d1c Merge remote-tracking branch 'typos/typos' into nut_arulir_mountain 2019-12-15 21:54:31 +01:00
Nut
2f8cff48b0 Merge pull request #29 from AndorsTrailRelease/master
sync master v077
2019-12-15 21:23:30 +01:00
Nut
06a806837c from Richard 14.12. 2019-12-15 06:10:48 +01:00
Nut
a3cfe18b53 Merge pull request #2 from AndorsTrailRelease/v077
V077
2019-12-15 05:47:55 +01:00
Nut
b51622e213 Merge pull request #1 from NutAndor/v077
V077
2019-12-14 23:48:33 +01:00
Nut
e4c6cbcb77 init branch v077 2019-12-14 23:31:52 +01:00
Kai-fong Chang
7ec59efc1d Translated using Weblate (Chinese (Traditional))
Currently translated at 3.6% (321 of 9023 strings)
2019-12-12 08:05:57 +01:00
Luboš Nečas
95c027b098 Translated using Weblate (Czech)
Currently translated at 15.5% (1401 of 9023 strings)
2019-12-09 04:49:32 +01:00
Ueliton Alves Dos Santos
14dc6613e8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.5% (8257 of 9023 strings)
2019-12-09 04:49:29 +01:00
Gökhan Demirden
d3d93bbeae Translated using Weblate (Turkish)
Currently translated at 17.4% (1573 of 9023 strings)
2019-12-09 04:49:09 +01:00
Ueliton Alves Dos Santos
9477e44b2b Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.5% (8257 of 9023 strings)
2019-12-05 22:09:19 +01:00
Anatoly Chub
a96630436f Translated using Weblate (Ukrainian)
Currently translated at 14.5% (1305 of 9023 strings)
2019-12-05 05:47:15 +01:00
Ueliton Alves Dos Santos
b89fcb71ea Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.5% (8255 of 9023 strings)
2019-12-05 05:47:13 +01:00
Ueliton Alves Dos Santos
45b7887366 Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.5% (8255 of 9023 strings)
2019-12-04 20:12:05 +01:00
Nut
57b17af382 add monsters_fatboy73 to base for arulir tests (correct typo) 2019-12-02 00:31:27 +01:00
Nut
dfc63029e7 add monsters_fatboy73 to base for arulir tests 2019-12-02 00:15:58 +01:00
Gonk
968b63394f Merge branch 'permadeath' into nut_arulir_mountain 2019-12-01 19:34:55 +01:00
Gonk
6e0a94898c Changed the labeling and display of the play modes 2019-12-01 19:33:25 +01:00
Ueliton Alves Dos Santos
481aafe6a0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.5% (8255 of 9023 strings)
2019-12-01 00:14:54 +01:00
Gonk
2d2bc41708 Merge branch 'arulir_mountain' of https://github.com/NutAndor/andors-trail into nut_arulir_mountain 2019-11-30 00:25:37 +01:00
Gonk
b91e924a75 Added my self to the authors 2019-11-30 00:25:02 +01:00
Ewe Pacheco
ab861e683a Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.5% (8253 of 9023 strings)
2019-11-30 00:05:21 +01:00
Ueliton Alves Dos Santos
84f009042a Translated using Weblate (Portuguese (Brazil))
Currently translated at 91.5% (8253 of 9023 strings)
2019-11-30 00:05:18 +01:00
Ewe Pacheco
ef03e337cf Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (523 of 523 strings)
2019-11-30 00:05:00 +01:00
Vanka
1af85dd9c1 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-11-28 19:05:31 +01:00
Ueliton Alves Dos Santos
ac23103605 Translated using Weblate (Portuguese (Brazil))
Currently translated at 87.9% (7928 of 9023 strings)
2019-11-28 19:05:25 +01:00
Vanka
0bafe112ef Translated using Weblate (Slovenian)
Currently translated at 0.4% (2 of 523 strings)
2019-11-28 19:04:57 +01:00
Davide Neri
71c86661d0 Translated using Weblate (Italian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-11-25 05:18:16 +01:00
Chriz76
16eece8ee4 Merge pull request #28 from Chriz76/actionpointsfix
action points are reset after a fight so the action points displayed …
2019-11-24 20:17:13 +01:00
Nut
de1e5fe34e base for v078dev
with added new Arulir graphics
2019-11-24 05:05:12 +01:00
Gonk
b3cecaf845 action points are reset after a fight so the action points displayed are always max when not in a fight 2019-11-20 23:04:48 +01:00
Oğuz Ersen
b0c821662c Translated using Weblate (Turkish)
Currently translated at 17.4% (1569 of 9023 strings)
2019-11-15 21:04:33 +01:00
Oğuz Ersen
1049f93dd5 Translated using Weblate (Turkish)
Currently translated at 80.9% (423 of 523 strings)
2019-11-15 21:04:28 +01:00
Gonk
bf9e2ce947 Merge branch 'rangefix' into nut_arulir_mountain 2019-11-14 22:34:37 +01:00
Gonk
9c4374502e some fixes regarding ranges
corrected display of negative values
min value has to be smaller than max value
added a debug check
2019-11-14 22:33:07 +01:00
Anatoly Chub
2e38431291 Translated using Weblate (Ukrainian)
Currently translated at 14.3% (1288 of 9023 strings)
2019-11-14 13:29:10 +01:00
Murat Tuna
b10dd7bfad Translated using Weblate (Turkish)
Currently translated at 17.3% (1565 of 9023 strings)
2019-11-13 20:04:23 +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
Anatoly Chub
221db78032 Translated using Weblate (Ukrainian)
Currently translated at 14.1% (1275 of 9023 strings)
2019-11-10 10:04:18 +01:00
Gonk
764f39967d Merge branch 'localefix' into nut_arulir_mountain 2019-11-10 09:07:49 +01:00
Gonk
228cc308d7 Removed check if AT is initialized when changing the locale to fix problems on some activities where still the localized content was shown 2019-11-10 09:06:00 +01:00
Nut
cdb16da819 base for v077
with corrected internal google version nbr
2019-11-09 14:53:50 +01:00
Byron Igoe
f8271a5aed Missing a word 2019-11-06 15:28:08 -08:00
Allan Nordhøy
ec239973bf Translated using Weblate (Korean)
Currently translated at 99.4% (520 of 523 strings)
2019-11-06 10:17:25 +01:00
Anatoly Chub
4cc44b81bf Translated using Weblate (Ukrainian)
Currently translated at 13.7% (1237 of 9023 strings)
2019-11-06 09:04:11 +01:00
김승언
918fc46072 Translated using Weblate (Korean)
Currently translated at 6.7% (603 of 9023 strings)
2019-11-03 22:22:03 +01:00
Anatoly Chub
287d90d34a Translated using Weblate (Ukrainian)
Currently translated at 12.7% (1149 of 9023 strings)
2019-11-03 22:21:58 +01:00
김승언
691c139a43 Translated using Weblate (Korean)
Currently translated at 99.4% (520 of 523 strings)
2019-11-03 22:21:56 +01:00
Anatoly Chub
c2bf25388f Translated using Weblate (Ukrainian)
Currently translated at 12.6% (1140 of 9023 strings)
2019-11-01 22:03:53 +01:00
Byron Igoe
6ae9f3b458 Typos 2019-11-01 11:27:43 -07:00
Gonk
382a26a18d Merge branch 'permadeath' into nut_arulir_mountain 2019-11-01 18:47:43 +01:00
Gonk
6511333545 fixed closure compiler error 2019-11-01 18:47:13 +01:00
Gonk
008a37a6ac Merge branch 'permadeath' into nut_arulir_mountain 2019-11-01 13:05:33 +01:00
Gonk
50373951b5 mode selection values for new heroes are now translateble 2019-11-01 13:03:40 +01:00
Anatoly Chub
2cbc91cae3 Translated using Weblate (Ukrainian)
Currently translated at 12.5% (1124 of 9023 strings)
2019-10-31 21:03:47 +01:00
Gonk
5131183af4 Merge branch 'languageselection' into nut_arulir_mountain 2019-10-30 23:00:40 +01:00
Gonk
2697d3aad3 Merge branch 'localefix' into nut_arulir_mountain 2019-10-30 22:56:13 +01:00
Gonk
ea257dffee Merge branch 'developmentsavegames' into nut_arulir_mountain 2019-10-30 22:55:17 +01:00
Gonk
65461fcf65 Merge branch 'poleweapon' into nut_arulir_mountain 2019-10-30 22:50:32 +01:00
Gonk
045b4708fa Merge branch 'factionscoreequals' into nut_arulir_mountain 2019-10-30 22:48:17 +01:00
Gonk
17e6cf3bec Merge branch 'permadeath' into nut_arulir_mountain 2019-10-30 22:47:13 +01:00
Gonk
f7ebf1be0e hidden backup for limited saves games at a maximum of 2 minutes 2019-10-30 22:18:03 +01:00
Gonk
5e4278bec6 hidden backup for limited saves games at a maximum of 2 minutes 2019-10-30 22:16:32 +01:00
Anatoly Chub
6979b951e8 Translated using Weblate (Ukrainian)
Currently translated at 12.4% (1115 of 9023 strings)
2019-10-30 17:59:04 +01:00
Marcela Korreshi
db7fa91795 Added translation using Weblate (Albanian) 2019-10-30 15:31:47 +01:00
Anatoly Chub
14d8cbd3dd Translated using Weblate (Ukrainian)
Currently translated at 12.2% (1101 of 9023 strings)
2019-10-30 01:53:16 +01:00
Nut
83c1f5e860 Merge pull request #24 from NutAndor/v0761a
Sync with V077
2019-10-29 23:44:25 +01:00
Nut
35e1e5a501 Merge branch 'arulir_mountain' into v0761a 2019-10-29 23:40:10 +01:00
Gonk
da7dbdcf69 ui language can now be chosen in the preferences 2019-10-28 23:59:29 +01:00
Byron Igoe
c9495ed113 Another typo 2019-10-28 13:59:21 -07:00
Anatoly Chub
b1e73de3da Translated using Weblate (Ukrainian)
Currently translated at 12.0% (1086 of 9023 strings)
2019-10-27 20:23:18 +01:00
John Rey Basilio
adfd1d8dc5 Translated using Weblate (Filipino)
Currently translated at 1.7% (151 of 9022 strings)
2019-10-27 20:23:15 +01:00
Anatoly Chub
2a04b65c13 Translated using Weblate (Ukrainian)
Currently translated at 11.8% (1064 of 9023 strings)
2019-10-27 12:35:56 +01:00
Nut
4b0851b417 translator added to authors list 2019-10-27 02:00:46 +02:00
Byron Igoe
98edee2b4f Typo 2019-10-25 16:45:14 -07:00
Byron Igoe
54f231d738 Fixed grammar 2019-10-25 16:39:39 -07:00
Anatoly Chub
4151afd11c Translated using Weblate (Ukrainian)
Currently translated at 11.4% (1033 of 9023 strings)
2019-10-26 01:06:11 +02:00
Nut
d6ef0c9867 release build v0.7.7 before compression 2019-10-24 20:56:27 +02:00
Nut Andor
ade2e8f8de Translated using Weblate (Chinese (Simplified))
Currently translated at 18.5% (97 of 523 strings)
2019-10-24 00:14:40 +02:00
Nut Andor
8b02857456 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (523 of 523 strings)
2019-10-23 23:55:04 +02:00
Nut Andor
0394f4cba3 Translated using Weblate (Italian)
Currently translated at 100.0% (523 of 523 strings)
2019-10-23 23:55:04 +02:00
Nut Andor
26a42b6c75 Translated using Weblate (Greek)
Currently translated at 26.8% (140 of 523 strings)
2019-10-23 23:55:03 +02:00
Anatoly Chub
5cfdeaeec1 Translated using Weblate (Ukrainian)
Currently translated at 10.4% (942 of 9023 strings)
2019-10-23 22:53:26 +02:00
Anatoly Chub
d346586796 Translated using Weblate (Ukrainian)
Currently translated at 96.4% (504 of 523 strings)
2019-10-23 22:53:13 +02:00
Christian Zink
48f7978c6a Translated using Weblate (Greek)
Currently translated at 26.8% (140 of 523 strings)
2019-10-23 22:53:00 +02:00
Byron Igoe
0967ee76b2 More typos 2019-10-22 10:27:58 -07:00
Anatoly Chub
7c9e934f30 Translated using Weblate (Ukrainian)
Currently translated at 8.1% (731 of 9023 strings)
2019-10-22 00:53:25 +02:00
Anatoly Chub
510965737b Translated using Weblate (Ukrainian)
Currently translated at 82.0% (429 of 523 strings)
2019-10-22 00:53:20 +02:00
Nut
93ba6ee4ac release build v0.7.6.1 before compression 2019-10-20 23:18:02 +02:00
Nut
126fb0d951 author 2019-10-20 23:06:32 +02:00
Nut
3245f18b55 preparation for release build v0.7.6.1 2019-10-20 22:37:09 +02:00
Ilya
45d5378092 Translated using Weblate (Russian)
Currently translated at 100.0% (523 of 523 strings)
2019-10-20 15:44:59 +02:00
Nut Andor
22c4f132c5 Translated using Weblate (Greek)
Currently translated at 26.8% (140 of 523 strings)
2019-10-20 15:44:59 +02:00
Mattias Münster
584d47f98b Translated using Weblate (Swedish)
Currently translated at 5.9% (534 of 9023 strings)
2019-10-19 19:52:58 +02:00
Mattias Münster
45288f4b04 Translated using Weblate (Swedish)
Currently translated at 46.7% (244 of 523 strings)
2019-10-19 19:52:52 +02:00
Byron Igoe
cdcd67601e Fixed a few typos 2019-10-15 10:29:40 -07:00
Gonk
755854c93a factionScoreEquals Requirement
- Also added the "old" factionScore to the isValid methode. This should make it possible to use the factionScore in replaceAre requirements
2019-10-13 18:06:39 +02:00
ni
4756554648 Translated using Weblate (Arabic)
Currently translated at 0.2% (20 of 9022 strings)
2019-10-09 17:56:07 +02:00
Alexander Kern
f03971078b Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-10-09 17:56:05 +02:00
kty919
d065f04f83 Translated using Weblate (Korean)
Currently translated at 6.6% (592 of 9023 strings)
2019-10-05 08:56:16 +02:00
Nut
2b72395196 Merge pull request #23 from Zukero/master
PR to get actual
2019-10-03 22:16:20 +02:00
Zukero
495b48cbf8 Merge pull request #138 from NutAndor/v076
Release candidate v076 before compression
2019-10-03 22:09:43 +02:00
Nut
837e54c33e preparation for release build 2019-10-03 21:43:25 +02:00
Nut Andor
c8f131e95f Translated using Weblate (German)
Currently translated at 99.9% (9022 of 9023 strings)
2019-10-03 07:41:02 +02:00
kty919
7360dd2ce4 Translated using Weblate (Korean)
Currently translated at 6.3% (567 of 9023 strings)
2019-10-02 03:56:11 +02:00
Marie-Helene
d512550c78 Translated using Weblate (French)
Currently translated at 62.1% (5603 of 9023 strings)
2019-10-02 03:56:03 +02:00
Manuela Silva
e28ebc3f25 Translated using Weblate (Portuguese)
Currently translated at 100.0% (523 of 523 strings)
2019-10-02 03:56:00 +02:00
Nut Andor
658854f203 Translated using Weblate (Punjabi)
Currently translated at 27.0% (141 of 523 strings)
2019-09-29 11:12:11 +02:00
kty919
7a0528e7df Translated using Weblate (Korean)
Currently translated at 5.5% (494 of 9023 strings)
2019-09-29 09:24:56 +02:00
kty919
ac76c417c3 Translated using Weblate (Korean)
Currently translated at 100.0% (523 of 523 strings)
2019-09-29 09:24:39 +02:00
kty919
9559a0a253 Translated using Weblate (Korean)
Currently translated at 2.7% (245 of 9023 strings)
2019-09-28 13:04:34 +02:00
Allan Nordhøy
f1e844a1c6 Translated using Weblate (French)
Currently translated at 62.1% (5603 of 9023 strings)
2019-09-28 13:04:30 +02:00
kty919
6047d842d9 Translated using Weblate (Korean)
Currently translated at 100.0% (523 of 523 strings)
2019-09-28 13:04:28 +02:00
kty919
c7a4798a39 Translated using Weblate (Korean)
Currently translated at 2.6% (238 of 9023 strings)
2019-09-27 18:49:44 +02:00
kty919
9328c5b297 Translated using Weblate (Korean)
Currently translated at 89.1% (466 of 523 strings)
2019-09-27 18:49:39 +02:00
kty919
9b07e7e3d6 Translated using Weblate (Korean)
Currently translated at 73.2% (383 of 523 strings)
2019-09-26 21:05:56 +02:00
kty919
ced166e81d Translated using Weblate (Korean)
Currently translated at 46.7% (244 of 523 strings)
2019-09-26 04:53:29 +02:00
kty919
24e153a049 Translated using Weblate (Korean)
Currently translated at 2.6% (238 of 9023 strings)
2019-09-26 00:55:09 +02:00
kty919
c3ab5438f8 Translated using Weblate (Korean)
Currently translated at 21.6% (113 of 523 strings)
2019-09-26 00:55:01 +02:00
Lea Callu
cd2e0cfc45 Translated using Weblate (French)
Currently translated at 62.1% (5603 of 9023 strings)
2019-09-23 03:27:53 +02:00
Daniel Stasiak
89d0e389c6 Translated using Weblate (Polish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-09-23 03:27:50 +02:00
Lea Callu
8a4874794d Translated using Weblate (French)
Currently translated at 61.8% (5579 of 9023 strings)
2019-09-20 02:47:27 +02:00
Daniel Stasiak
4d71718108 Translated using Weblate (Polish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-09-18 19:24:02 +02:00
Nut Andor
98e2a9f32d Translated using Weblate (German)
Currently translated at 99.9% (9022 of 9023 strings)
2019-09-16 17:23:59 +02:00
Gökhan Demirden
3b5194138b Translated using Weblate (Turkish)
Currently translated at 17.2% (1553 of 9023 strings)
2019-09-13 23:23:51 +02:00
Alexis Raison
f5c4258511 Translated using Weblate (French)
Currently translated at 61.3% (5531 of 9023 strings)
2019-09-12 21:34:37 +02:00
Gonk
5812f49fc3 added null check 2019-09-10 22:33:37 +02:00
Gonk
22bd3da2a9 development savegames are marked and overwriting regular savegames is not allowed in development mode 2019-09-10 21:38:03 +02:00
Nut Andor
1aab0b9dbc Translated using Weblate (German)
Currently translated at 99.9% (9022 of 9023 strings)
2019-09-09 12:24:22 +02:00
Nut Andor
4ef645aa7a Translated using Weblate (Thai)
Currently translated at 0.2% (18 of 9023 strings)
2019-09-09 12:24:20 +02:00
Nut Andor
cd5f156fb6 Translated using Weblate (Thai)
Currently translated at 0.2% (18 of 9023 strings)
2019-09-08 11:31:55 +02:00
Nux Sec
91c3bcad5b Translated using Weblate (Thai)
Currently translated at 0.2% (19 of 9023 strings)
2019-09-08 03:24:05 +02:00
shog ge
849611f3cf Translated using Weblate (Chinese (Simplified))
Currently translated at 8.0% (726 of 9023 strings)
2019-09-06 19:24:12 +02:00
leela
c6c36a9179 Translated using Weblate (French)
Currently translated at 0.8% (73 of 9022 strings)
2019-08-29 06:24:12 +02:00
leela
bda495275a Translated using Weblate (French)
Currently translated at 61.2% (5526 of 9023 strings)
2019-08-29 06:24:09 +02:00
leela
f3c3522c9e Translated using Weblate (Norwegian Bokmål)
Currently translated at 4.0% (362 of 9023 strings)
2019-08-27 14:23:47 +02:00
leela
e7cd9830b4 Translated using Weblate (Italian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-08-27 14:23:45 +02:00
leela
52d6093b9f Translated using Weblate (Japanese)
Currently translated at 2.5% (222 of 9023 strings)
2019-08-27 14:23:43 +02:00
Swann Martinet
dc78a50773 Translated using Weblate (French)
Currently translated at 61.2% (5526 of 9023 strings)
2019-08-24 02:23:27 +02:00
Swann Martinet
d28a75f187 Translated using Weblate (Finnish)
Currently translated at 1.9% (10 of 523 strings)
2019-08-24 02:23:24 +02:00
Swann Martinet
b8e6544d26 Translated using Weblate (French)
Currently translated at 100.0% (523 of 523 strings)
2019-08-24 02:23:23 +02:00
Nut
ec1bf44d9c changed png 2019-08-23 03:10:04 +02:00
Sanjna
610e74766a Translated using Weblate (Punjabi)
Currently translated at 0.1% (6 of 9023 strings)
2019-08-22 20:23:26 +02:00
Mansour Sarsor
499aeef269 Translated using Weblate (Arabic)
Currently translated at 10.1% (53 of 523 strings)
2019-08-22 20:23:24 +02:00
Owarz
6a178a79cb Translated using Weblate (Turkish)
Currently translated at 72.3% (378 of 523 strings)
2019-08-22 20:23:22 +02:00
Sanjna
8b80a40b91 Translated using Weblate (Punjabi)
Currently translated at 27.0% (141 of 523 strings)
2019-08-22 16:41:01 +02:00
James Doakes
4f1c6018a1 Translated using Weblate (Norwegian Bokmål)
Currently translated at 4.0% (362 of 9023 strings)
2019-08-20 03:23:35 +02:00
Katerina Katapodi
43856bad6f Translated using Weblate (French)
Currently translated at 0.8% (73 of 9022 strings)
2019-08-20 03:23:29 +02:00
Katerina Katapodi
f6bed7ecc3 Translated using Weblate (Greek)
Currently translated at 0.7% (63 of 9022 strings)
2019-08-20 03:23:26 +02:00
Katerina Katapodi
bba7d43296 Translated using Weblate (Greek)
Currently translated at 26.6% (139 of 523 strings)
2019-08-20 03:23:19 +02:00
James Doakes
213cc31fe2 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (523 of 523 strings)
2019-08-18 21:10:25 +02:00
Allan Nordhøy
6434f979b8 Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.2% (286 of 9023 strings)
2019-08-18 19:20:03 +02:00
James Doakes
1477487466 Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.2% (286 of 9023 strings)
2019-08-18 19:20:02 +02:00
허준
5ef23829f6 Translated using Weblate (Korean)
Currently translated at 2.2% (194 of 9023 strings)
2019-08-17 19:23:14 +02:00
허준
141ad69e7b Translated using Weblate (Korean)
Currently translated at 4.6% (24 of 523 strings)
2019-08-17 19:23:10 +02:00
Katerina Katapodi
c1906cb1c6 Translated using Weblate (Greek)
Currently translated at 12.0% (63 of 523 strings)
2019-08-17 19:23:08 +02:00
xiazhang
455a0222d4 Translated using Weblate (Chinese (Simplified))
Currently translated at 18.5% (97 of 523 strings)
2019-08-14 18:23:16 +02:00
James Doakes
800246e55a Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.0% (273 of 9023 strings)
2019-08-11 01:22:56 +02:00
Evaristo Sintetas
c0ecff7afa Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-08-10 00:22:52 +02:00
Anon
599a36da4a Translated using Weblate (Malay)
Currently translated at 1.1% (101 of 9023 strings)
2019-08-10 00:22:49 +02:00
James Doakes
30f4d54a0a Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (523 of 523 strings)
2019-08-10 00:22:46 +02:00
Elizabeth Sherrock
dc39835505 Translated using Weblate (Chinese (Simplified))
Currently translated at 8.0% (725 of 9023 strings)
2019-08-08 18:23:06 +02:00
Evaristo Sintetas
420c564117 Translated using Weblate (Spanish)
Currently translated at 99.9% (9021 of 9023 strings)
2019-08-08 18:23:04 +02:00
James Doakes
6302c22e62 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (523 of 523 strings)
2019-08-08 18:22:55 +02:00
Evaristo Sintetas
d26b9a90c2 Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-08-03 17:22:47 +02:00
Elizabeth Sherrock
13e79cd270 Translated using Weblate (Chinese (Simplified))
Currently translated at 17.8% (93 of 523 strings)
2019-08-03 17:22:42 +02:00
Elizabeth Sherrock
fb41291dcb Translated using Weblate (Chinese (Simplified))
Currently translated at 8.0% (725 of 9023 strings)
2019-08-01 07:11:48 +02:00
Evaristo Sintetas
5a70895cc2 Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-08-01 07:11:46 +02:00
roberto
33b0b02ad0 Translated using Weblate (Italian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-08-01 07:11:35 +02:00
Alba Kaydus
c243b3e8ca Translated using Weblate (Filipino)
Currently translated at 1.4% (128 of 9022 strings)
2019-08-01 07:11:33 +02:00
Gökhan Demirden
87e5706301 Translated using Weblate (Turkish)
Currently translated at 17.1% (1540 of 9023 strings)
2019-08-01 07:11:21 +02:00
Elizabeth Sherrock
40d42de08b Translated using Weblate (Chinese (Simplified))
Currently translated at 16.1% (84 of 523 strings)
2019-08-01 07:11:16 +02:00
Gonk
0975ac7b26 permadeath and limited saves
- When starting a new game the player can choose the regular default mode (unlimited saves and lives) or one of the new modes (Unlimited lives, 50, 10 ,3, 1 life)
- The mode and remaining lives is displayed on the hero overview page.
- There can be only one savegame for a limited saves game: Saving a limited save game ends the game. Loading a limited saves game deletes the save slot.
- Heros now have a hero ID and there is a cheat prevention that checks if the savegame was already continued.
- Added some warning and explanation dialogues
2019-07-28 22:32:20 +02:00
Mateusz Mendel
620c4b68e2 Translated using Weblate (Polish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-07-21 20:07:06 +02:00
Elizabeth Sherrock
24e4df9c5c Translated using Weblate (Chinese (Simplified))
Currently translated at 8.0% (725 of 9023 strings)
2019-07-19 19:07:07 +02:00
Mateusz Mendel
248db61ae2 Translated using Weblate (Polish)
Currently translated at 97.2% (8773 of 9023 strings)
2019-07-19 19:07:04 +02:00
Gökhan Demirden
ae9a1a6cde Translated using Weblate (Turkish)
Currently translated at 16.9% (1525 of 9023 strings)
2019-07-19 19:06:47 +02:00
Elizabeth Sherrock
5449ed4f31 Translated using Weblate (Chinese (Simplified))
Currently translated at 8.0% (724 of 9023 strings)
2019-07-16 18:05:23 +02:00
Mateusz Mendel
4e0b0a8eb7 Translated using Weblate (Polish)
Currently translated at 93.4% (8423 of 9023 strings)
2019-07-16 18:05:19 +02:00
Gökhan Demirden
a522987eac Translated using Weblate (Turkish)
Currently translated at 14.7% (1330 of 9023 strings)
2019-07-16 18:05:01 +02:00
Elizabeth Sherrock
72a4d3a82d Translated using Weblate (Chinese (Simplified))
Currently translated at 15.1% (79 of 523 strings)
2019-07-16 18:04:56 +02:00
Gökhan Demirden
ffee004dfe Translated using Weblate (Turkish)
Currently translated at 72.3% (378 of 523 strings)
2019-07-16 18:04:55 +02:00
Elizabeth Sherrock
537d2c6d20 Translated using Weblate (Chinese (Simplified))
Currently translated at 7.8% (705 of 9023 strings)
2019-07-13 23:01:52 +02:00
Mateusz Mendel
7d6605aaf6 Translated using Weblate (Polish)
Currently translated at 90.6% (8173 of 9023 strings)
2019-07-13 23:01:34 +02:00
Elias Bottega
975b43a85a Translated using Weblate (Portuguese (Brazil))
Currently translated at 84.0% (7575 of 9023 strings)
2019-07-13 23:01:19 +02:00
Gonk
d04176e055 adjusted sorting of skills
- until now the ordinal value of the skill id was used as default sort order. Since the ordinals are stored in the savegames  inserting new skills was only possible at the end of the list.
- skills now have a position member that determines the default sort order
- now using a linkedhashmap for storing the skills. this map allows iterating in the order in which the values were inserted
- switching back to "unsorted" restores the default sort order
- changed the order for the pole weapon proficency to be behind the other weapon proficiencies
2019-07-11 21:28:31 +02:00
Mateusz Mendel
df63a63a8f Translated using Weblate (Polish)
Currently translated at 88.4% (7973 of 9023 strings)
2019-07-09 01:01:04 +02:00
Gökhan Demirden
3043803f31 Translated using Weblate (Turkish)
Currently translated at 14.4% (1301 of 9023 strings)
2019-07-09 01:00:57 +02:00
Gonk
6a7a9a8750 added pole weapons category and proficiency, removed scythe category 2019-07-07 22:55:32 +02:00
Elizabeth Sherrock
fec42dc2ad Translated using Weblate (Chinese (Simplified))
Currently translated at 6.4% (576 of 9023 strings)
2019-07-06 22:01:22 +02:00
Mateusz Mendel
5cd3a066df Translated using Weblate (Polish)
Currently translated at 87.3% (7873 of 9023 strings)
2019-07-06 22:01:19 +02:00
Elizabeth Sherrock
d131419eb0 Translated using Weblate (Chinese (Simplified))
Currently translated at 6.3% (569 of 9023 strings)
2019-07-05 17:01:46 +02:00
Mateusz Mendel
16b8d6d420 Translated using Weblate (Polish)
Currently translated at 85.6% (7723 of 9023 strings)
2019-07-05 17:01:16 +02:00
Gökhan Demirden
0b89047692 Translated using Weblate (Turkish)
Currently translated at 14.3% (1290 of 9023 strings)
2019-07-05 17:01:09 +02:00
Elizabeth Sherrock
5e5972862e Translated using Weblate (Chinese (Simplified))
Currently translated at 14.7% (77 of 523 strings)
2019-07-05 17:01:05 +02:00
THANOS SIOURDAKIS
ca2aea5d57 Translated using Weblate (Greek)
Currently translated at 2.1% (11 of 523 strings)
2019-07-05 17:01:04 +02:00
Elizabeth Sherrock
1c3afb5c8e Translated using Weblate (Chinese (Simplified))
Currently translated at 4.0% (358 of 9023 strings)
2019-07-02 03:01:13 +02:00
Evaristo Sintetas
9591a8bcea Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-07-02 03:01:04 +02:00
Mateusz Mendel
fda2b13a74 Translated using Weblate (Polish)
Currently translated at 84.5% (7623 of 9023 strings)
2019-07-02 03:01:01 +02:00
Elizabeth Sherrock
1a6ee91e2a Translated using Weblate (Chinese (Simplified))
Currently translated at 14.5% (76 of 523 strings)
2019-07-02 03:00:54 +02:00
Evaristo Sintetas
f3752f6544 Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-06-30 14:01:17 +02:00
Mateusz Mendel
e6523359e1 Translated using Weblate (Polish)
Currently translated at 83.4% (7523 of 9023 strings)
2019-06-30 14:01:15 +02:00
Mateusz Mendel
81f00aafcd Translated using Weblate (Polish)
Currently translated at 80.1% (7223 of 9023 strings)
2019-06-28 15:01:19 +02:00
DamN
b72341e0d3 Translated using Weblate (Polish)
Currently translated at 80.1% (7223 of 9023 strings)
2019-06-28 15:01:09 +02:00
Cenk YILDIZLI
4d6034097a Translated using Weblate (Turkish)
Currently translated at 68.5% (358 of 523 strings)
2019-06-28 15:01:05 +02:00
Evaristo Sintetas
bf6730d606 Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-06-27 08:01:19 +02:00
DamN
b8bd85a966 Translated using Weblate (Polish)
Currently translated at 78.5% (7087 of 9023 strings)
2019-06-27 08:01:15 +02:00
Gökhan Demirden
4a7b693471 Translated using Weblate (Turkish)
Currently translated at 14.2% (1283 of 9023 strings)
2019-06-27 08:01:12 +02:00
Gonk
f4aa70a3e7 Improved localization handling on screen turn (might fix issue #125)
- in some activities the code for setting the locale was missing and therefore a simple turn of the device switched to localized texts even if localized resources were disabled
- for all other activities there was the problem that the locale was set only in onCreate but in some special cases the config is reset but only onResume gets called (e.g. when turning the device, hitting the home button, turning the device back and then switching to AT again). Setting it only in onResume would be too late for the regular cases. The code is almost a noop if there is no change to be done so it seems ok to call it twice.
- created two baseclasses for activities to encapsulate the logic and increase the chance that a new activity will be based on that classes and the code will not be forgotten
- might fix issue #125 "Localized resources showing even when disabled"
- ways of working solutions for setting the locale differ from API level to API level (see https://proandroiddev.com/change-language-programmatically-at-runtime-on-android-5e6bc15c758)
- tested on android Pie and Marshmallow
2019-06-24 23:01:49 +02:00
Gökhan Demirden
b922a7d2d6 Translated using Weblate (Turkish)
Currently translated at 13.8% (1241 of 9023 strings)
2019-06-23 12:00:51 +02:00
THANOS SIOURDAKIS
03b60f979f Translated using Weblate (Greek)
Currently translated at 1.7% (9 of 523 strings)
2019-06-23 12:00:37 +02:00
Gökhan Demirden
cf90a6ed04 Translated using Weblate (Turkish)
Currently translated at 68.3% (357 of 523 strings)
2019-06-23 12:00:35 +02:00
Nut
18099e016b merge of 0_7_6_ATCS and omicronrg9 2019-06-20 19:12:47 +02:00
Nut
ebd5b538ca basic settings 2019-06-20 17:35:25 +02:00
Nut
74c901953f basic setting 2019-06-20 10:26:22 +02:00
Nut
538750bb0c Merge pull request #21 from Zukero/master
merge zukero
2019-06-20 10:10:50 +02:00
Alain GALDEMAS
d7cbab0fa6 Added translation using Weblate (French) 2019-06-19 14:27:15 +02:00
Charlotte D
c088d62b25 Translated using Weblate (French)
Currently translated at 61.1% (5509 of 9023 strings)
2019-06-18 21:03:19 +02:00
Ilya
8886faa9e4 Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-06-18 21:03:12 +02:00
hello123
85d2b70f19 Translated using Weblate (Chinese (Simplified))
Currently translated at 13.2% (69 of 523 strings)
2019-06-18 21:03:02 +02:00
Ilya
82e346c8ae Translated using Weblate (Russian)
Currently translated at 100.0% (523 of 523 strings)
2019-06-18 21:02:57 +02:00
THANOS SIOURDAKIS
b82cf4a6fc Added translation using Weblate (Greek) 2019-06-18 14:56:54 +02:00
THANOS SIOURDAKIS
68482f706f Added translation using Weblate (Greek) 2019-06-18 14:56:41 +02:00
Zukero
c4119fa48e Merge pull request #124 from Chriz76/teleportbrimhaven
debuginterface teleport to brimhaven4 south
2019-06-09 08:50:27 +02:00
Gonk
db36afa5e5 debuginterface teleport to brimhaven4 south 2019-06-08 23:10:36 +02:00
Nut
bfd833b24c Merge pull request #20 from NutAndor/master
sync with zukero
2019-06-05 20:50:29 +02:00
Nut
3d65e72f59 Merge pull request #18 from NutAndor/master
sync with zukero
2019-06-05 20:46:11 +02:00
Nut
131ac0ec79 Merge pull request #17 from Zukero/master
sync with zukero
2019-06-05 20:39:20 +02:00
Evaristo Sintetas
02446952ed Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-06-02 12:19:23 +02:00
Jindrich Prchal
20a0a006a8 Translated using Weblate (Czech)
Currently translated at 15.5% (1400 of 9023 strings)
2019-05-31 17:56:07 +02:00
Lunovox Heavenfinder
83c5f137e1 Translated using Weblate (Portuguese)
Currently translated at 86.7% (7819 of 9023 strings)
2019-05-29 22:59:19 +02:00
Ilya
896a838d4d Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-05-18 19:48:12 +02:00
Lunovox Heavenfinder
21a21f056e Translated using Weblate (Portuguese)
Currently translated at 86.5% (7805 of 9023 strings)
2019-05-18 19:48:07 +02:00
Evaristo Sintetas
d374377dae Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-05-16 09:48:12 +02:00
Mateusz Mendel
70306c8fec Translated using Weblate (Polish)
Currently translated at 78.5% (7084 of 9023 strings)
2019-05-16 09:48:03 +02:00
John Rey Basilio
6dd735ae1c Translated using Weblate (Filipino)
Currently translated at 0.4% (33 of 9022 strings)
2019-05-16 09:48:00 +02:00
John Rey Basilio
246bcbbe4a Added translation using Weblate (Filipino) 2019-05-14 20:12:49 +02:00
Evaristo Sintetas
f2456946be Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-05-14 16:21:07 +02:00
Zukero
97a81e3d8e Merge pull request #120 from Chriz76/randomrequirements
Randomrequirements
2019-05-12 12:04:44 +02:00
Gonk
176cf1dd76 Use chance member in Requirement for random requirements
- it is based on the text in requireID
- adjusted parsing
2019-05-11 21:27:11 +02:00
Evaristo Sintetas
8384f8969a Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-05-11 12:20:50 +02:00
Anaël Closson
71392a1276 Translated using Weblate (French)
Currently translated at 100.0% (523 of 523 strings)
2019-05-10 15:05:41 +02:00
Ilya
686cf829fb Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-05-10 12:47:55 +02:00
Evaristo Sintetas
c516f17a11 Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-05-08 09:48:09 +02:00
Lunovox Heavenfinder
401c73fbf0 Translated using Weblate (Portuguese)
Currently translated at 85.5% (7713 of 9023 strings)
2019-05-08 09:47:55 +02:00
Mateusz Mendel
40bf231162 Translated using Weblate (Polish)
Currently translated at 78.5% (7080 of 9023 strings)
2019-05-08 09:47:44 +02:00
ssantos
73e3e7b7e5 Translated using Weblate (Portuguese)
Currently translated at 84.9% (7664 of 9023 strings)
2019-05-06 13:59:09 +02:00
Evaristo Sintetas
1ed7ab9195 Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-05-04 10:48:07 +02:00
Ilya
9408602b49 Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-05-04 10:48:04 +02:00
Evaristo Sintetas
ed7304b161 Translated using Weblate (Spanish)
Currently translated at 100.0% (9023 of 9023 strings)
2019-05-02 08:49:09 +02:00
Evaristo Sintetas
d810c5a8c8 Translated using Weblate (Spanish)
Currently translated at 100.0% (523 of 523 strings)
2019-05-02 08:47:55 +02:00
Carlos Santana
0c7a5a7403 Translated using Weblate (Spanish)
Currently translated at 100.0% (523 of 523 strings)
2019-05-02 08:47:54 +02:00
mb
27b34860e7 Translated using Weblate (Polish)
Currently translated at 78.4% (7078 of 9023 strings)
2019-05-02 08:47:52 +02:00
Mateusz Mendel
7c69dae215 Translated using Weblate (Polish)
Currently translated at 78.4% (7078 of 9023 strings)
2019-05-02 08:47:51 +02:00
Gonk
9a0f183392 Added random requirement using the same format like the droplist chance encoded in the requireID. 2019-04-24 23:03:36 +02:00
Evaristo Sintetas
deb2e59c62 Translated using Weblate (Spanish)
Currently translated at 83.6% (7540 of 9023 strings)
2019-04-24 22:47:43 +02:00
Chacal Ex
e356e3ae9b Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.6% (7545 of 9023 strings)
2019-04-24 22:47:30 +02:00
Mateusz Mendel
f2307b5b27 Translated using Weblate (Polish)
Currently translated at 76.1% (6868 of 9023 strings)
2019-04-24 22:47:27 +02:00
zeroni.point
c049053edb Translated using Weblate (Japanese)
Currently translated at 68.8% (360 of 523 strings)
2019-04-24 22:47:23 +02:00
Zukero
fc569d841f Fixed issue in the debug droplist's chance format (number instead of
string)
2019-04-24 00:48:02 +02:00
Patryck Cardozo
6002c99ea2 Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.6% (7542 of 9023 strings)
2019-04-22 14:38:11 +02:00
Chacal Ex
e1e0540afd Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.6% (7542 of 9023 strings)
2019-04-22 14:38:10 +02:00
ssantos
dfc98438ac Translated using Weblate (Portuguese)
Currently translated at 84.8% (7652 of 9023 strings)
2019-04-22 05:27:46 +02:00
Evaristo Sintetas
69a5e3e6ed Translated using Weblate (Spanish)
Currently translated at 81.5% (7351 of 9023 strings)
2019-04-22 05:25:11 +02:00
Nut
7127cf8647 Update items_misc_3.png 2019-04-21 09:28:49 +02:00
Nut
4049f0d5dd target version for compile 2019-04-21 01:04:22 +02:00
Nut
42d0bef263 target version for compile+test 2019-04-21 00:25:54 +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
Evaristo Sintetas
5473ad927d Translated using Weblate (Spanish)
Currently translated at 79.5% (7173 of 9023 strings)
2019-04-18 12:05:00 +02:00
Mateusz Mendel
cce64acf23 Translated using Weblate (Polish)
Currently translated at 76.1% (6868 of 9023 strings)
2019-04-18 12:03:48 +02:00
Zukero
2623fe6517 Merge pull request #116 from Chriz76/replaceareamapcheck
Fixed replace area validation
2019-04-10 15:21:50 +02:00
Zukero
6deca064d4 Clean up debugging items. 2019-04-10 15:20:56 +02:00
Zukero
f856b03c37 Removed bogus tileset references in a pair of maps. 2019-04-10 15:17:59 +02:00
Rui Mendes
cf0d848a18 Translated using Weblate (Spanish)
Currently translated at 64.6% (5826 of 9023 strings)
2019-04-09 12:04:13 +02:00
Evaristo Sintetas
91df8a7cd6 Translated using Weblate (Spanish)
Currently translated at 64.6% (5826 of 9023 strings)
2019-04-09 12:04:11 +02:00
Rui Mendes
0b5766d8ce Translated using Weblate (Portuguese)
Currently translated at 76.1% (6863 of 9023 strings)
2019-04-09 12:03:52 +02:00
Mateusz Mendel
4293958504 Translated using Weblate (Polish)
Currently translated at 76.1% (6868 of 9023 strings)
2019-04-09 12:03:40 +02:00
Rui Mendes
728e6a76bd Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.2% (7506 of 9023 strings)
2019-04-07 00:01:17 +02:00
Rui Mendes
0e773e14f6 Translated using Weblate (Portuguese)
Currently translated at 76.1% (6863 of 9023 strings)
2019-04-04 14:05:52 +02:00
507GamerLab
1e8e875e74 Translated using Weblate (Turkish)
Currently translated at 13.0% (1172 of 9023 strings)
2019-04-02 04:04:54 +02:00
Rui Mendes
47760dea05 Translated using Weblate (Spanish)
Currently translated at 61.2% (5523 of 9023 strings)
2019-04-02 04:04:52 +02:00
Evaristo Sintetas
4693fda35f Translated using Weblate (Spanish)
Currently translated at 61.2% (5523 of 9023 strings)
2019-04-02 04:04:52 +02:00
Rui Mendes
fe7e2dea4a Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.2% (7506 of 9023 strings)
2019-04-02 04:04:44 +02:00
Rui Mendes
c16484a11c Translated using Weblate (Portuguese)
Currently translated at 75.5% (6811 of 9023 strings)
2019-04-02 04:04:41 +02:00
Mateusz Mendel
2e7b712dbc Translated using Weblate (Polish)
Currently translated at 76.1% (6868 of 9023 strings)
2019-04-02 04:03:40 +02:00
Rui Mendes
76414e9c3f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (523 of 523 strings)
2019-04-02 04:03:35 +02:00
Rui Mendes
19c9bfe67a Translated using Weblate (Portuguese)
Currently translated at 100.0% (523 of 523 strings)
2019-04-02 04:03:34 +02:00
Evaristo Sintetas
3955ff61c0 Translated using Weblate (Spanish)
Currently translated at 59.6% (5376 of 9023 strings)
2019-03-31 05:04:03 +02:00
Rui Mendes
04dc5c02b7 Translated using Weblate (Spanish)
Currently translated at 59.6% (5376 of 9023 strings)
2019-03-31 05:03:58 +02:00
Rui Mendes
0f503b06a8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.2% (7506 of 9023 strings)
2019-03-31 05:03:56 +02:00
Rui Mendes
1a588d52d5 Translated using Weblate (Portuguese)
Currently translated at 71.4% (6442 of 9023 strings)
2019-03-31 05:03:44 +02:00
Mateusz Mendel
d81c0161b3 Translated using Weblate (Polish)
Currently translated at 76.1% (6868 of 9023 strings)
2019-03-31 05:03:35 +02:00
Rui Mendes
9b463d3e2b Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (523 of 523 strings)
2019-03-31 05:03:30 +02:00
Rui Mendes
4461979b7d Translated using Weblate (Portuguese)
Currently translated at 100.0% (523 of 523 strings)
2019-03-31 05:03:30 +02:00
Rui Mendes
bb881fba48 Translated using Weblate (Portuguese)
Currently translated at 71.4% (6442 of 9023 strings)
2019-03-31 00:31:12 +01:00
Mateusz Mendel
d6a842f748 Translated using Weblate (Polish)
Currently translated at 76.1% (6868 of 9023 strings)
2019-03-29 18:23:11 +01:00
Gonk
43831ae7e0 Fixed replace area validation 2019-03-28 21:49:24 +01:00
Evaristo Sintetas
fa1c67a1f9 Translated using Weblate (Spanish)
Currently translated at 58.7% (5298 of 9023 strings)
2019-03-28 20:03:25 +01:00
Mateusz Mendel
f0070072d1 Translated using Weblate (Polish)
Currently translated at 76.1% (6868 of 9023 strings)
2019-03-28 20:03:22 +01:00
Evaristo Sintetas
eba6222259 Translated using Weblate (Spanish)
Currently translated at 58.6% (5286 of 9023 strings)
2019-03-27 11:03:34 +01:00
Mateusz Mendel
830c6ac6b8 Translated using Weblate (Polish)
Currently translated at 76.1% (6868 of 9023 strings)
2019-03-27 11:03:25 +01:00
Nut Andor
f097e0a80f Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-03-27 11:03:18 +01:00
Petr Kadlec
6d074f3204 Translated using Weblate (Czech)
Currently translated at 100.0% (523 of 523 strings)
2019-03-27 11:03:15 +01:00
Evaristo Sintetas
eae3f8f343 Translated using Weblate (Spanish)
Currently translated at 57.1% (5153 of 9023 strings)
2019-03-24 02:02:05 +01:00
Evaristo Sintetas
a493d4b49f Translated using Weblate (Spanish)
Currently translated at 55.1% (4973 of 9023 strings)
2019-03-19 19:02:59 +01:00
Evaristo Sintetas
000821b1f7 Translated using Weblate (Spanish)
Currently translated at 54.9% (4957 of 9023 strings)
2019-03-18 15:03:10 +01:00
吴绮
5e2b13b5ee Translated using Weblate (Chinese (Simplified))
Currently translated at 4.8% (25 of 523 strings)
2019-03-18 15:02:49 +01:00
Evaristo Sintetas
859e55363b Translated using Weblate (Spanish)
Currently translated at 53.3% (4810 of 9023 strings)
2019-03-17 14:03:01 +01:00
Mateusz Mendel
ee57abaa41 Translated using Weblate (Polish)
Currently translated at 76.1% (6868 of 9023 strings)
2019-03-17 14:02:51 +01:00
Zukero
a4b2dc8b4e Merge pull request #112 from BWPanda/patch-1
Removed 'guynmart_main_3' duplicate
2019-03-16 08:26:09 +01:00
Zukero
cdbfd5f9b2 Merge pull request #113 from BWPanda/patch-2
Fixed grammar.
2019-03-16 08:24:45 +01:00
Peter Anderson
03958eb3f1 Fixed grammar. 2019-03-15 23:15:01 +02:00
Peter Anderson
65d2a73efa Removed 'guynmart_main_3' duplicate 2019-03-15 22:15:05 +02:00
Evaristo Sintetas
9ebfc954cb Translated using Weblate (Spanish)
Currently translated at 52.6% (4750 of 9023 strings)
2019-03-15 21:02:48 +01:00
Lunovox Heavenfinder
1f1e0eedd1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.2% (7506 of 9023 strings)
2019-03-14 15:05:10 +01:00
Patryck Cardozo
92a97083ca Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.2% (7506 of 9023 strings)
2019-03-14 15:05:09 +01:00
Hector Braian de Sousa Soares
02c5920333 Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.2% (7506 of 9023 strings)
2019-03-14 15:05:08 +01:00
Mateusz Mendel
f33faec2e0 Translated using Weblate (Polish)
Currently translated at 76.1% (6868 of 9023 strings)
2019-03-14 15:05:06 +01:00
Reka Juhasz
7c7ea01fda Translated using Weblate (Hungarian)
Currently translated at 45.4% (4093 of 9023 strings)
2019-03-14 15:02:52 +01:00
Charlotte D
19ff67561c Translated using Weblate (French)
Currently translated at 60.7% (5481 of 9023 strings)
2019-03-14 15:02:50 +01:00
Petr Kadlec
dc1d862c56 Translated using Weblate (Czech)
Currently translated at 15.5% (1398 of 9023 strings)
2019-03-14 15:02:46 +01:00
Evaristo Sintetas
a3dd5bf2cd Translated using Weblate (Spanish)
Currently translated at 52.0% (4691 of 9023 strings)
2019-03-14 12:15:40 +01:00
Zukero
0492bfbde0 Merge pull request #111 from Rijackson/master
Add scythe to axe proficiency skill and whip to blunt proficiency ski…
2019-03-09 19:37:14 +01:00
Stefanie Beck
3e3192bb43 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-03-09 18:22:33 +01:00
Frank Senft
1abf585d49 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-03-09 18:22:33 +01:00
Rijackson
efe06255a3 Add scythe to axe proficiency skill and whip to blunt proficiency skill. Changes to Falothen's dialogue to reflect this are here: https://github.com/Rijackson/0_7_6_ATCS 2019-03-09 11:30:07 -05:00
Patryck Cardozo
9e7421a9fb Translated using Weblate (Portuguese (Brazil))
Currently translated at 82.8% (7471 of 9023 strings)
2019-03-07 22:11:39 +01:00
João Vitor Bojan Silva
a3c16180e7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 82.8% (7471 of 9023 strings)
2019-03-07 22:11:38 +01:00
Lunovox Heavenfinder
c0385a4026 Translated using Weblate (Portuguese (Brazil))
Currently translated at 82.8% (7471 of 9023 strings)
2019-03-07 22:11:36 +01:00
Evaristo Sintetas
827133e44c Translated using Weblate (Spanish)
Currently translated at 47.7% (4303 of 9023 strings)
2019-03-05 23:38:14 +01:00
soloply
fb9050fcde Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-03-01 22:42:15 +01:00
Vladimir
31a20036f7 Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-03-01 22:42:14 +01:00
soloply
b784c1f0cc Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-27 20:50:38 +01:00
Vladimir
6ec623ceea Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-27 20:50:37 +01:00
Evaristo Sintetas
4cd849190a Translated using Weblate (Spanish)
Currently translated at 43.4% (3912 of 9023 strings)
2019-02-24 12:24:06 +01:00
Zukero
1dbf4bf5cb Fixes for the most "popular" and puzzling crashes on GPlay,
supposedly caused by extreme race conditions.
2019-02-22 21:02:35 +01:00
Zukero
72a36a7c12 Fix crash when taunting with instant combat speed.
Thanks Little_John for your help tracking it down!
2019-02-22 19:37:30 +01:00
Evaristo Sintetas
237728027c Translated using Weblate (Spanish)
Currently translated at 42.8% (3861 of 9023 strings)
2019-02-20 08:17:24 +01:00
Vladimir
1abf98eb1f Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-20 08:17:14 +01:00
soloply
920e644065 Translated using Weblate (Russian)
Currently translated at 100.0% (523 of 523 strings)
2019-02-20 08:17:09 +01:00
Evaristo Sintetas
4bc67ed5cc Translated using Weblate (Spanish)
Currently translated at 41.0% (3701 of 9023 strings)
2019-02-18 17:18:33 +01:00
Vladimir
86cfe3ce60 Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-18 17:18:02 +01:00
Jakub Janeczko
4fcb4b75bb Translated using Weblate (Polish)
Currently translated at 76.1% (6866 of 9023 strings)
2019-02-18 17:17:54 +01:00
Piotr Ostrowski
3b656064d1 Translated using Weblate (Polish)
Currently translated at 76.1% (6866 of 9023 strings)
2019-02-18 17:17:53 +01:00
Charlotte D
c2ef78d232 Translated using Weblate (French)
Currently translated at 60.4% (5454 of 9023 strings)
2019-02-18 17:17:28 +01:00
Vladimir
1c31c736a3 Translated using Weblate (Russian)
Currently translated at 100.0% (523 of 523 strings)
2019-02-18 17:17:12 +01:00
Piotr Ostrowski
23c72f56bf Translated using Weblate (Polish)
Currently translated at 100.0% (523 of 523 strings)
2019-02-18 17:17:10 +01:00
soloply
847287390d Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-15 19:14:50 +01:00
Charlotte D
9917f1eafc Translated using Weblate (French)
Currently translated at 59.8% (5392 of 9023 strings)
2019-02-15 19:14:45 +01:00
Petr Kadlec
469ddebe80 Translated using Weblate (Czech)
Currently translated at 14.9% (1340 of 9023 strings)
2019-02-15 19:14:38 +01:00
soloply
2157705355 Translated using Weblate (Russian)
Currently translated at 100.0% (523 of 523 strings)
2019-02-15 19:14:28 +01:00
Evaristo Sintetas
027693e86a Translated using Weblate (Spanish)
Currently translated at 37.6% (3397 of 9023 strings)
2019-02-15 10:53:09 +01:00
Petr Kadlec
91629bf0dd Translated using Weblate (Czech)
Currently translated at 14.6% (1318 of 9023 strings)
2019-02-14 11:09:13 +01:00
Evaristo Sintetas
bb5766299b Translated using Weblate (Spanish)
Currently translated at 36.1% (3253 of 9023 strings)
2019-02-13 19:09:16 +01:00
Evaristo Sintetas
0a07c57796 Translated using Weblate (Spanish)
Currently translated at 34.9% (3151 of 9023 strings)
2019-02-13 18:09:21 +01:00
Petr Kadlec
51c275c5f2 Translated using Weblate (Czech)
Currently translated at 14.6% (1318 of 9023 strings)
2019-02-13 18:09:15 +01:00
Petr Kadlec
35880b3258 Translated using Weblate (Czech)
Currently translated at 14.6% (1318 of 9023 strings)
2019-02-13 17:09:11 +01:00
Nor Jaidi Tuah
ec4bc743b2 Translated using Weblate (Malay)
Currently translated at 0.9% (85 of 9023 strings)
2019-02-13 04:09:12 +01:00
Nor Jaidi Tuah
a7ed4846f1 Translated using Weblate (Malay)
Currently translated at 0.5% (41 of 9023 strings)
2019-02-13 03:09:11 +01:00
Evaristo Sintetas
b1d50b53f8 Translated using Weblate (Spanish)
Currently translated at 34.9% (3151 of 9023 strings)
2019-02-12 21:09:13 +01:00
Evaristo Sintetas
88b9d504bb Translated using Weblate (Spanish)
Currently translated at 34.7% (3129 of 9023 strings)
2019-02-12 20:09:13 +01:00
Evaristo Sintetas
291ee1b1f0 Translated using Weblate (Spanish)
Currently translated at 34.7% (3129 of 9023 strings)
2019-02-12 20:09:12 +01:00
Evaristo Sintetas
be6fb29c0a Translated using Weblate (Spanish)
Currently translated at 33.8% (3054 of 9023 strings)
2019-02-12 19:09:10 +01:00
Daniel Stasiak
4e0458b9fa Translated using Weblate (Polish)
Currently translated at 74.8% (6751 of 9023 strings)
2019-02-12 14:09:16 +01:00
Zukero
cac9237d9e Merge pull request #107 from Rijackson/master
Added Rafael Mendes (fifa1988) to authors.xml for PT/BR translation. …
2019-02-12 08:01:55 +01:00
Rijackson
586c632118 Added Rafael Mendes (fifa1988) to authors.xml for PT/BR translation. Long overdue! 2019-02-11 21:01:16 -05:00
Evaristo Sintetas
80b96ae74e Translated using Weblate (Spanish)
Currently translated at 33.8% (3054 of 9023 strings)
2019-02-11 19:32:10 +01:00
Petr Kadlec
b8dae413a8 Translated using Weblate (Czech)
Currently translated at 14.6% (1318 of 9023 strings)
2019-02-11 19:27:59 +01:00
Charlotte D
1daa8f1305 Translated using Weblate (French)
Currently translated at 59.0% (5321 of 9023 strings)
2019-02-11 19:18:14 +01:00
john doe
b8b84d5fdf Translated using Weblate (French)
Currently translated at 59.0% (5321 of 9023 strings)
2019-02-11 19:18:09 +01:00
Chacal Ex
16c4d4cf04 Translated using Weblate (Portuguese (Brazil))
Currently translated at 82.0% (7398 of 9023 strings)
2019-02-09 02:27:01 +01:00
finnomeno
3e8addc9b6 Translated using Weblate (German)
Currently translated at 99.9% (9022 of 9023 strings)
2019-02-09 02:25:13 +01:00
Frank Senft
cbbc5fef17 Translated using Weblate (German)
Currently translated at 99.9% (9022 of 9023 strings)
2019-02-09 02:25:12 +01:00
Petr Kadlec
16150008e9 Translated using Weblate (Czech)
Currently translated at 100.0% (523 of 523 strings)
2019-02-06 03:31:58 +01:00
Coles
fbbeeac313 Translated using Weblate (French)
Currently translated at 56.3% (5081 of 9023 strings)
2019-02-05 14:38:11 +01:00
john doe
a44ab6a254 Translated using Weblate (French)
Currently translated at 56.3% (5081 of 9023 strings)
2019-02-05 14:38:10 +01:00
Coles
5563e66d4b Translated using Weblate (French)
Currently translated at 55.8% (5038 of 9023 strings)
2019-02-05 13:13:14 +01:00
john doe
4c250a65fb Translated using Weblate (French)
Currently translated at 55.8% (5038 of 9023 strings)
2019-02-05 13:13:13 +01:00
Evaristo Sintetas
a40c291083 Translated using Weblate (Spanish)
Currently translated at 30.2% (2725 of 9023 strings)
2019-02-05 09:09:49 +01:00
soloply
52d4218cfa Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-05 09:09:41 +01:00
Chacal Ex
2eb7e67b03 Translated using Weblate (Portuguese (Brazil))
Currently translated at 81.7% (7373 of 9023 strings)
2019-02-05 09:09:39 +01:00
Luca Ballis
4b718c17e6 Translated using Weblate (Italian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-05 09:09:18 +01:00
finnomeno
15c6064236 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-05 09:09:12 +01:00
john doe
bc474d5f27 Translated using Weblate (French)
Currently translated at 55.0% (4966 of 9023 strings)
2019-02-05 09:09:10 +01:00
Luca Ballis
dae7b0a2fd Translated using Weblate (Italian)
Currently translated at 100.0% (523 of 523 strings)
2019-02-05 09:09:01 +01:00
Daniel Stasiak
747d6819dc Translated using Weblate (Polish)
Currently translated at 73.8% (6661 of 9023 strings)
2019-02-04 18:49:08 +01:00
Nut Andor
4e6ea772eb Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 16:08:43 +01:00
finnomeno
31e137a9b9 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 16:08:42 +01:00
Nut Andor
6a5c21b681 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 15:24:09 +01:00
finnomeno
79cbf54028 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 15:24:09 +01:00
Nut Andor
cd89104e69 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 15:18:31 +01:00
finnomeno
c10f6ca0de Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 15:18:30 +01:00
Nut Andor
a8d12b7525 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 15:15:04 +01:00
finnomeno
9af2191144 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 15:15:03 +01:00
Nut Andor
45378ccef5 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 15:14:26 +01:00
finnomeno
9133bf8995 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 15:14:25 +01:00
Stefanie Beck
79cbf2175d Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 15:03:34 +01:00
finnomeno
9a15f8cd6c Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 15:03:33 +01:00
Stefanie Beck
16cc1f4b72 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 14:47:42 +01:00
finnomeno
3fe04732a1 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 14:47:41 +01:00
Nut Andor
b28c9f82c1 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 14:40:41 +01:00
finnomeno
6853d3185b Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 14:40:41 +01:00
finnomeno
af3ed93511 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 14:36:39 +01:00
Nut Andor
3a11b160a3 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 14:36:38 +01:00
Frank Senft
2d32d3bef5 Translated using Weblate (German)
Currently translated at 100.0% (9023 of 9023 strings)
2019-02-03 14:36:38 +01:00
Evaristo Sintetas
afa7283226 Translated using Weblate (Spanish)
Currently translated at 28.8% (2603 of 9023 strings)
2019-02-03 09:42:26 +01:00
Chacal Ex
49b2f8e693 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (523 of 523 strings)
2019-02-03 07:43:26 +01:00
Evaristo Sintetas
39a2acdadd Translated using Weblate (Spanish)
Currently translated at 26.8% (2417 of 9023 strings)
2019-01-29 16:09:44 +01:00
soloply
febf6cd3c5 Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-01-29 16:09:13 +01:00
mmagian
189e3b0ae3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 77.2% (6965 of 9023 strings)
2019-01-29 16:09:11 +01:00
Chacal Ex
c3fc0ce8bc Translated using Weblate (Portuguese (Brazil))
Currently translated at 77.2% (6965 of 9023 strings)
2019-01-29 16:09:10 +01:00
Daniel Stasiak
a796aadd81 Translated using Weblate (Polish)
Currently translated at 73.3% (6616 of 9023 strings)
2019-01-29 16:09:03 +01:00
roberto
496aefa870 Translated using Weblate (Italian)
Currently translated at 99.9% (9022 of 9023 strings)
2019-01-29 16:09:00 +01:00
Nut Andor
c28fa657a6 Translated using Weblate (German)
Currently translated at 99.9% (9020 of 9023 strings)
2019-01-29 16:08:54 +01:00
Frank Senft
75085e57ce Translated using Weblate (German)
Currently translated at 99.9% (9020 of 9023 strings)
2019-01-29 16:08:52 +01:00
Evaristo Sintetas
9631cbee08 Translated using Weblate (Spanish)
Currently translated at 97.9% (512 of 523 strings)
2019-01-29 16:08:48 +01:00
Daniel Stasiak
96211a6a63 Translated using Weblate (Polish)
Currently translated at 73.3% (6616 of 9023 strings)
2019-01-28 09:38:51 +01:00
Halina Arendt
d810bdd29d Translated using Weblate (Polish)
Currently translated at 73.3% (6616 of 9023 strings)
2019-01-28 09:38:49 +01:00
Chacal Ex
0cb1d7a976 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (523 of 523 strings)
2019-01-28 07:13:42 +01:00
Carlos Santana
786a62c27e Translated using Weblate (Spanish)
Currently translated at 22.6% (2038 of 9023 strings)
2019-01-27 12:05:20 +01:00
Evaristo Sintetas
e353c7af7d Translated using Weblate (Spanish)
Currently translated at 22.6% (2038 of 9023 strings)
2019-01-27 12:05:20 +01:00
Chacal Ex
d6ca12781c Translated using Weblate (Portuguese (Brazil))
Currently translated at 76.2% (6873 of 9023 strings)
2019-01-27 12:04:46 +01:00
Daniel Stasiak
7b86f055db Translated using Weblate (Polish)
Currently translated at 73.3% (6615 of 9023 strings)
2019-01-27 12:04:39 +01:00
Kevin Pochat
a07dc677c2 Translated using Weblate (French)
Currently translated at 54.3% (4900 of 9023 strings)
2019-01-27 12:04:33 +01:00
Coles
da9dda9abd Translated using Weblate (French)
Currently translated at 54.3% (4900 of 9023 strings)
2019-01-27 12:04:33 +01:00
YONGLE
6815cb1b33 Translated using Weblate (Chinese (Simplified))
Currently translated at 3.6% (326 of 9023 strings)
2019-01-27 12:04:30 +01:00
Evaristo Sintetas
c5995dbf2d Translated using Weblate (Spanish)
Currently translated at 93.5% (489 of 523 strings)
2019-01-27 12:04:25 +01:00
Chacal Ex
fcdeab2fb4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (523 of 523 strings)
2019-01-27 12:04:21 +01:00
Zukero
0e8602ff87 Bump version code to 47 (0.7.6) 2019-01-26 23:03:32 +01:00
Zukero
83d88deba7 v0.7.5 2019-01-26 23:00:06 +01:00
Zukero
57ed67b87a Workaround for saving issue on first execution of app. 2019-01-26 16:52:13 +01:00
Zukero
9f77828e98 Merge pull request #101 from NutAndor/master
fix guynmart_wood2.tmx bug
2019-01-25 19:05:58 +01:00
Nut
94ad7706c3 fix guynmart_wood2.tmx bug
- ID guynmart_s_lake_11b was missing
- Unkorh could disappear before quest step
2019-01-25 18:26:32 +01:00
NutAndor
db0364e35d Merge pull request #16 from Zukero/master
sync with zukeros
2019-01-25 18:04:44 +01:00
Zukero
52ddeb406a Prevented weird NPE on Taunt for LG V20... 2019-01-24 22:00:54 +01:00
Zukero
a8955c7799 Merge branch 'master' of https://hosted.weblate.org/git/andors-trail/user-interface/ 2019-01-24 21:36:06 +01:00
Daniel Stasiak
1cfbb06835 Translated using Weblate (Polish)
Currently translated at 72.9% (6579 of 9023 strings)
2019-01-24 21:35:22 +01:00
Kevin Pochat
e91b059225 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.2% (519 of 523 strings)
2019-01-24 21:35:17 +01:00
Kevin Pochat
80e93e4e5f Translated using Weblate (Polish)
Currently translated at 99.6% (521 of 523 strings)
2019-01-24 21:35:17 +01:00
Kevin Pochat
595ec93738 Translated using Weblate (Arabic)
Currently translated at 7.1% (37 of 523 strings)
2019-01-24 21:35:16 +01:00
Zukero
574f8b964f Merge branch 'master' of https://hosted.weblate.org/git/andors-trail/user-interface/ 2019-01-24 21:32:48 +01:00
Zukero
a35020d9e3 Bumped version code to 46 (v0.7.5dev) 2019-01-23 23:39:42 +01:00
Zukero
8e8b695871 v0.7.4 2019-01-23 23:32:27 +01:00
Zukero
1996dde697 v0.7.4 released. 2019-01-23 23:18:55 +01:00
Daniel Stasiak
b154c65872 Translated using Weblate (Polish)
Currently translated at 72.5% (6542 of 9023 strings)
2019-01-23 22:04:12 +01:00
Lunovox Heavenfinder
c15ebdf6c9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 75.1% (6775 of 9023 strings)
2019-01-22 15:04:53 +01:00
Lunovox Heavenfinder
d97f64c2fa Translated using Weblate (Portuguese)
Currently translated at 71.3% (6434 of 9023 strings)
2019-01-22 15:04:36 +01:00
Daniel Stasiak
d4bda98b09 Translated using Weblate (Polish)
Currently translated at 72.3% (6521 of 9023 strings)
2019-01-22 15:04:32 +01:00
Lunovox Heavenfinder
d041d4bbc4 Translated using Weblate (Portuguese)
Currently translated at 100.0% (523 of 523 strings)
2019-01-22 15:04:24 +01:00
Daniel Stasiak
ea885c746f Translated using Weblate (Polish)
Currently translated at 99.4% (520 of 523 strings)
2019-01-22 15:04:23 +01:00
Nathan
37ba6a5fc8 Translated using Weblate (French)
Currently translated at 100.0% (523 of 523 strings)
2019-01-22 15:04:23 +01:00
Wouter Buckens
94619f7640 Translated using Weblate (Dutch)
Currently translated at 99.6% (521 of 523 strings)
2019-01-22 15:04:22 +01:00
soloply
b060b3797d Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-01-22 06:33:07 +01:00
soloply
ff7359e630 Translated using Weblate (Russian)
Currently translated at 100.0% (9023 of 9023 strings)
2019-01-21 09:02:23 +01:00
Zukero
3733bfb432 Updated translations. 2019-01-19 10:09:33 +01:00
Zukero
a4fb5fd664 Merge remote-tracking branch 'weblate/master' 2019-01-19 10:02:52 +01:00
Daniel Stasiak
25b1c9ae38 Translated using Weblate (Polish)
Currently translated at 71.5% (6449 of 9021 strings)
2019-01-19 10:01:55 +01:00
0685d64129
a7dda1a393 Translated using Weblate (Arabic)
Currently translated at 0.2% (18 of 9020 strings)
2019-01-19 10:01:48 +01:00
Daniel Stasiak
a2238d84d2 Translated using Weblate (Polish)
Currently translated at 99.0% (518 of 523 strings)
2019-01-19 10:01:46 +01:00
Zukero
bbe788af86 Merge remote-tracking branch 'weblate/master' 2019-01-19 09:58:13 +01:00
Roberto Palenga
330c375fb8 Translated using Weblate (Italian)
Currently translated at 99.5% (8978 of 9021 strings)
2019-01-17 22:19:48 +01:00
Stefanie Beck
cdefa3da24 Translated using Weblate (German)
Currently translated at 99.9% (9016 of 9021 strings)
2019-01-17 22:19:46 +01:00
Frank Senft
486e0ea25d Translated using Weblate (German)
Currently translated at 99.9% (9016 of 9021 strings)
2019-01-17 22:19:45 +01:00
Nut Andor
d3b461a5a0 Translated using Weblate (German)
Currently translated at 99.9% (9016 of 9021 strings)
2019-01-17 22:19:44 +01:00
Mo Ro
3c40c1738a Translated using Weblate (German)
Currently translated at 100.0% (523 of 523 strings)
2019-01-17 22:19:40 +01:00
Nut Andor
d1f6db4e74 Translated using Weblate (German)
Currently translated at 100.0% (523 of 523 strings)
2019-01-17 22:19:39 +01:00
Frank Senft
fa1ff06629 Translated using Weblate (German)
Currently translated at 100.0% (523 of 523 strings)
2019-01-17 22:19:39 +01:00
SmallDragon Chen
a869f7aaf3 Translated using Weblate (Chinese (Traditional))
Currently translated at 44.9% (235 of 523 strings)
2019-01-17 22:19:38 +01:00
Alain
5ec63ff1f2 Translated using Weblate (German)
Currently translated at 99.9% (9012 of 9021 strings)
2019-01-15 23:30:53 +01:00
Nut Andor
c04534f8a8 Translated using Weblate (German)
Currently translated at 99.9% (9012 of 9021 strings)
2019-01-15 23:30:47 +01:00
Frank Senft
dda4350775 Translated using Weblate (German)
Currently translated at 99.9% (9012 of 9021 strings)
2019-01-15 23:30:46 +01:00
Nut Andor
dbe3eba475 Translated using Weblate (German)
Currently translated at 99.9% (9008 of 9021 strings)
2019-01-15 20:42:37 +01:00
Stefanie Beck
03f295da41 Translated using Weblate (German)
Currently translated at 99.9% (9008 of 9021 strings)
2019-01-15 02:23:26 +01:00
Nut Andor
c95e6ec9b7 Translated using Weblate (German)
Currently translated at 99.9% (9008 of 9021 strings)
2019-01-15 02:23:25 +01:00
Frank Senft
eebd2808ea Translated using Weblate (German)
Currently translated at 99.9% (9008 of 9021 strings)
2019-01-15 02:23:24 +01:00
Nut Andor
763b613f53 Translated using Weblate (German)
Currently translated at 99.2% (519 of 523 strings)
2019-01-14 20:04:50 +01:00
Frank Senft
5764ae70ca Translated using Weblate (German)
Currently translated at 99.8% (9005 of 9021 strings)
2019-01-14 10:27:08 +01:00
Stefanie Beck
d146e5ddfc Translated using Weblate (German)
Currently translated at 99.8% (9005 of 9021 strings)
2019-01-14 10:27:07 +01:00
Stefanie Beck
552a2aea4c Translated using Weblate (German)
Currently translated at 99.9% (9009 of 9021 strings)
2019-01-14 00:46:20 +01:00
Alain
30e9e3677b Translated using Weblate (German)
Currently translated at 99.9% (9009 of 9021 strings)
2019-01-14 00:46:19 +01:00
Nut Andor
a0b20ca400 Translated using Weblate (German)
Currently translated at 99.9% (9009 of 9021 strings)
2019-01-14 00:46:18 +01:00
soloply
6eeae2bda7 Translated using Weblate (Russian)
Currently translated at 100.0% (9021 of 9021 strings)
2019-01-13 21:19:53 +01:00
Stefanie Beck
aff4ebc98c Translated using Weblate (German)
Currently translated at 99.8% (9006 of 9021 strings)
2019-01-13 21:19:48 +01:00
Louies
8b8ea1b4c0 Translated using Weblate (Chinese (Traditional))
Currently translated at 3.1% (283 of 9021 strings)
2019-01-13 21:19:45 +01:00
Viktar Vauchkevich
a80423872c Translated using Weblate (Belarusian)
Currently translated at 100.0% (523 of 523 strings)
2019-01-13 21:19:39 +01:00
Nut Andor
bb23acb7f8 Translated using Weblate (German)
Currently translated at 99.9% (9010 of 9021 strings)
2019-01-13 18:59:25 +01:00
Stefanie Beck
9227790c6e Translated using Weblate (German)
Currently translated at 99.9% (9010 of 9021 strings)
2019-01-13 14:33:22 +01:00
Nut Andor
21abb700a0 Translated using Weblate (German)
Currently translated at 99.9% (9010 of 9021 strings)
2019-01-13 14:33:20 +01:00
Zukero
2daa43574e Merge pull request #100 from NutAndor/master
laketower bed
2019-01-13 12:33:44 +01:00
Nut
07af87e484 lookout bed
+ change translators order in authors
2019-01-13 01:17:46 +01:00
Nut
275159a785 Revert "lookout bed"
This reverts commit 735dfa0ba4.
2019-01-13 00:58:07 +01:00
Nut
735dfa0ba4 lookout bed 2019-01-13 00:57:30 +01:00
Zukero
f4a796c49d Merge pull request #99 from NutAndor/master
2 new German translation credits
2019-01-11 23:20:22 +01:00
Stefanie Beck
7504811fa4 Translated using Weblate (German)
Currently translated at 99.9% (9009 of 9021 strings)
2019-01-11 21:04:23 +01:00
Nut Andor
0ee9017f1c Translated using Weblate (German)
Currently translated at 99.9% (9009 of 9021 strings)
2019-01-11 21:04:23 +01:00
Nut
2919b3ca4b Update authors.xml
2 new German translations credit
2019-01-11 20:45:44 +01:00
NutAndor
4bf668d658 Merge pull request #15 from Zukero/master
sync with zukeros version
2019-01-11 20:39:16 +01:00
Stefanie Beck
4550525399 Translated using Weblate (German)
Currently translated at 99.8% (9006 of 9021 strings)
2019-01-11 10:49:58 +01:00
Nut Andor
6e114cabb9 Translated using Weblate (German)
Currently translated at 99.8% (9006 of 9021 strings)
2019-01-11 10:49:57 +01:00
Alain
3d437000c4 Translated using Weblate (German)
Currently translated at 99.8% (9006 of 9021 strings)
2019-01-11 10:49:56 +01:00
Zukero
d25f05c7e7 Typo fix and translations update. 2019-01-10 07:53:31 +01:00
Zukero
32ebdef061 Merge branch 'master' of https://hosted.weblate.org/git/andors-trail/user-interface/ 2019-01-10 07:43:14 +01:00
Nut Andor
54005108ca Translated using Weblate (German)
Currently translated at 99.7% (8997 of 9021 strings)
2019-01-10 07:42:48 +01:00
Zukero
bbdd25b957 Ensure conditions consecutive to player attacks are reported after the
attack result in the combat log.
2019-01-10 07:41:27 +01:00
Zukero
9081bad8f9 Merge pull request #98 from jgemmaEIS/fix_tauntCombatLogBug
Fix taunt combat log bug
2019-01-10 07:33:21 +01:00
Stefanie Beck
35fa3d358f Translated using Weblate (German)
Currently translated at 99.7% (8997 of 9021 strings)
2019-01-10 00:25:40 +01:00
soloply
c045851415 Translated using Weblate (Russian)
Currently translated at 100.0% (9021 of 9021 strings)
2019-01-09 21:06:04 +01:00
Stefanie Beck
f037889c87 Translated using Weblate (German)
Currently translated at 99.7% (8996 of 9021 strings)
2019-01-09 21:05:59 +01:00
soloply
b4ce92d55b Translated using Weblate (Russian)
Currently translated at 100.0% (523 of 523 strings)
2019-01-09 21:05:55 +01:00
Alain
2b11cf3418 Translated using Weblate (German)
Currently translated at 99.7% (8996 of 9021 strings)
2019-01-09 19:33:03 +01:00
Frank Senft
035db07607 Translated using Weblate (German)
Currently translated at 99.7% (8996 of 9021 strings)
2019-01-09 19:33:03 +01:00
Stefanie Beck
af3a81f694 Translated using Weblate (German)
Currently translated at 99.7% (8996 of 9021 strings)
2019-01-09 19:33:02 +01:00
Nut Andor
1c51489d5e Translated using Weblate (German)
Currently translated at 99.7% (8996 of 9021 strings)
2019-01-09 19:32:59 +01:00
Frank Senft
2c40f27bb4 Translated using Weblate (German)
Currently translated at 99.3% (8961 of 9021 strings)
2019-01-09 18:36:15 +01:00
Nut Andor
0ea56843e2 Translated using Weblate (German)
Currently translated at 99.3% (8961 of 9021 strings)
2019-01-09 18:36:15 +01:00
Stefanie Beck
1d6de6918b Translated using Weblate (German)
Currently translated at 99.3% (8961 of 9021 strings)
2019-01-09 18:36:14 +01:00
Frank Senft
90f882ebe7 Translated using Weblate (German)
Currently translated at 99.3% (8954 of 9021 strings)
2019-01-09 18:16:39 +01:00
Stefanie Beck
65456e197f Translated using Weblate (German)
Currently translated at 99.3% (8954 of 9021 strings)
2019-01-09 18:16:38 +01:00
Frank Senft
f8f0938014 Translated using Weblate (German)
Currently translated at 99.1% (8939 of 9021 strings)
2019-01-09 18:04:45 +01:00
Nut Andor
dc2615f826 Translated using Weblate (German)
Currently translated at 99.1% (8939 of 9021 strings)
2019-01-09 18:04:44 +01:00
Stefanie Beck
a765536953 Translated using Weblate (German)
Currently translated at 99.1% (8939 of 9021 strings)
2019-01-09 18:04:43 +01:00
Nut Andor
424e6b2a47 Translated using Weblate (German)
Currently translated at 98.9% (8923 of 9021 strings)
2019-01-09 17:43:16 +01:00
Stefanie Beck
9323bcae85 Translated using Weblate (German)
Currently translated at 98.9% (8923 of 9021 strings)
2019-01-09 17:43:16 +01:00
Nut Andor
4441485dad Translated using Weblate (German)
Currently translated at 98.8% (8916 of 9021 strings)
2019-01-09 17:37:20 +01:00
Stefanie Beck
10c681d868 Translated using Weblate (German)
Currently translated at 98.8% (8916 of 9021 strings)
2019-01-09 17:37:20 +01:00
Nut Andor
6db77e67d3 Translated using Weblate (German)
Currently translated at 98.7% (8905 of 9021 strings)
2019-01-09 17:31:36 +01:00
Stefanie Beck
33dad47f97 Translated using Weblate (German)
Currently translated at 98.7% (8905 of 9021 strings)
2019-01-09 17:31:35 +01:00
Nut Andor
137d2dfd45 Translated using Weblate (German)
Currently translated at 98.6% (8893 of 9021 strings)
2019-01-09 17:28:33 +01:00
Stefanie Beck
7ecf9c9304 Translated using Weblate (German)
Currently translated at 98.6% (8893 of 9021 strings)
2019-01-09 17:28:31 +01:00
Frank Senft
f41546c740 Translated using Weblate (German)
Currently translated at 98.6% (8893 of 9021 strings)
2019-01-09 17:28:29 +01:00
Nut Andor
b07332f3de Translated using Weblate (German)
Currently translated at 98.2% (8860 of 9021 strings)
2019-01-08 23:09:43 +01:00
Stefanie Beck
b3d61b32d5 Translated using Weblate (German)
Currently translated at 98.2% (8860 of 9021 strings)
2019-01-08 23:09:43 +01:00
Vladislav
ef628f6467 Translated using Weblate (Russian)
Currently translated at 99.4% (520 of 523 strings)
2019-01-08 20:35:19 +01:00
Zukero
4b45e0109a Updated translations after merge of bugfix_0_7_4 ATCS project. 2019-01-08 15:43:28 +01:00
Zukero
82a55c8164 Merge branch 'master' of https://hosted.weblate.org/git/andors-trail/user-interface/ 2019-01-08 15:31:02 +01:00
Nut Andor
018c315c8c Translated using Weblate (German)
Currently translated at 98.5% (8838 of 8975 strings)
2019-01-08 15:30:26 +01:00
Alain
321d83f95b Translated using Weblate (German)
Currently translated at 98.5% (8838 of 8975 strings)
2019-01-08 15:30:25 +01:00
Stefanie Beck
8a740dba1c Translated using Weblate (German)
Currently translated at 98.5% (8838 of 8975 strings)
2019-01-08 15:30:24 +01:00
Zukero
97ae4d0878 Merge branch 'master' of https://hosted.weblate.org/git/andors-trail/user-interface/ 2019-01-08 15:28:02 +01:00
Zukero
1df0534dc8 Merged ATCS project bugfix_0_7_4 (from rijackson's github repo) 2019-01-08 15:25:47 +01:00
Alain
48147c9611 Translated using Weblate (German)
Currently translated at 98.3% (8826 of 8975 strings)
2019-01-08 15:19:26 +01:00
Nut Andor
6a3b4edf1d Translated using Weblate (German)
Currently translated at 98.3% (8826 of 8975 strings)
2019-01-08 15:19:25 +01:00
Stefanie Beck
11b3efe397 Translated using Weblate (German)
Currently translated at 98.3% (8826 of 8975 strings)
2019-01-08 15:19:23 +01:00
Nut Andor
e315df64ed Translated using Weblate (German)
Currently translated at 97.9% (8788 of 8975 strings)
2019-01-08 14:46:12 +01:00
Stefanie Beck
70d9e3efbd Translated using Weblate (German)
Currently translated at 97.9% (8788 of 8975 strings)
2019-01-08 14:46:12 +01:00
Nut Andor
f80166498e Translated using Weblate (German)
Currently translated at 97.8% (8778 of 8975 strings)
2019-01-08 14:33:31 +01:00
Stefanie Beck
1fac338767 Translated using Weblate (German)
Currently translated at 97.8% (8778 of 8975 strings)
2019-01-08 14:33:30 +01:00
Nut Andor
b5a6cb9c94 Translated using Weblate (German)
Currently translated at 97.7% (8769 of 8975 strings)
2019-01-08 14:26:43 +01:00
Stefanie Beck
0be0bc53e3 Translated using Weblate (German)
Currently translated at 97.7% (8769 of 8975 strings)
2019-01-08 14:26:42 +01:00
Nut Andor
9c0d396cb7 Translated using Weblate (German)
Currently translated at 97.5% (8752 of 8975 strings)
2019-01-08 14:17:21 +01:00
Stefanie Beck
8d8f4f7c95 Translated using Weblate (German)
Currently translated at 97.5% (8752 of 8975 strings)
2019-01-08 14:17:20 +01:00
Nut Andor
52570ebff7 Translated using Weblate (German)
Currently translated at 97.3% (8736 of 8975 strings)
2019-01-08 14:07:26 +01:00
Stefanie Beck
ae6f3112af Translated using Weblate (German)
Currently translated at 97.3% (8736 of 8975 strings)
2019-01-08 14:07:25 +01:00
Nut Andor
2860a6947e Translated using Weblate (German)
Currently translated at 97.3% (8734 of 8975 strings)
2019-01-08 14:02:43 +01:00
Stefanie Beck
2aef469ebe Translated using Weblate (German)
Currently translated at 97.3% (8734 of 8975 strings)
2019-01-08 14:02:43 +01:00
Alain
84b8750024 Translated using Weblate (German)
Currently translated at 97.3% (8730 of 8975 strings)
2019-01-08 13:59:57 +01:00
Nut Andor
f401d0cf1a Translated using Weblate (German)
Currently translated at 97.3% (8730 of 8975 strings)
2019-01-08 13:59:55 +01:00
Alain
250bfc6770 Translated using Weblate (German)
Currently translated at 97.0% (8703 of 8975 strings)
2019-01-08 12:57:17 +01:00
Stefanie Beck
9ed0144f9f Translated using Weblate (German)
Currently translated at 97.0% (8703 of 8975 strings)
2019-01-08 12:57:16 +01:00
Nut Andor
8e67707f65 Translated using Weblate (German)
Currently translated at 97.0% (8703 of 8975 strings)
2019-01-08 12:57:15 +01:00
Stefanie Beck
69fef10ca5 Translated using Weblate (German)
Currently translated at 96.9% (8699 of 8975 strings)
2019-01-08 12:53:21 +01:00
Stefanie Beck
0a875570e0 Translated using Weblate (German)
Currently translated at 96.8% (8690 of 8975 strings)
2019-01-08 07:04:38 +01:00
Nut Andor
fa27515aec Translated using Weblate (German)
Currently translated at 96.8% (8690 of 8975 strings)
2019-01-08 07:04:37 +01:00
Stefanie Beck
b2d09977b3 Translated using Weblate (German)
Currently translated at 96.8% (8686 of 8975 strings)
2019-01-08 00:17:15 +01:00
Nut Andor
3536c7d37c Translated using Weblate (German)
Currently translated at 96.8% (8686 of 8975 strings)
2019-01-08 00:17:15 +01:00
Stefanie Beck
dad7221917 Translated using Weblate (German)
Currently translated at 96.8% (8684 of 8975 strings)
2019-01-08 00:13:59 +01:00
Nut Andor
84381eb55b Translated using Weblate (German)
Currently translated at 96.8% (8684 of 8975 strings)
2019-01-08 00:13:59 +01:00
Stefanie Beck
a8b43778b3 Translated using Weblate (German)
Currently translated at 96.7% (8683 of 8975 strings)
2019-01-08 00:13:40 +01:00
Nut Andor
177ab58203 Translated using Weblate (German)
Currently translated at 96.7% (8683 of 8975 strings)
2019-01-08 00:13:40 +01:00
Stefanie Beck
27fc83b984 Translated using Weblate (German)
Currently translated at 96.7% (8682 of 8975 strings)
2019-01-08 00:13:22 +01:00
Nut Andor
0ec84d4bd4 Translated using Weblate (German)
Currently translated at 96.7% (8682 of 8975 strings)
2019-01-08 00:13:21 +01:00
Stefanie Beck
17c9035580 Translated using Weblate (German)
Currently translated at 96.7% (8681 of 8975 strings)
2019-01-08 00:10:39 +01:00
Nut Andor
abb0453308 Translated using Weblate (German)
Currently translated at 96.7% (8681 of 8975 strings)
2019-01-08 00:10:39 +01:00
Stefanie Beck
a89bda6d57 Translated using Weblate (German)
Currently translated at 96.7% (8680 of 8975 strings)
2019-01-08 00:08:45 +01:00
Nut Andor
eb5cd5fad8 Translated using Weblate (German)
Currently translated at 96.7% (8680 of 8975 strings)
2019-01-08 00:08:45 +01:00
Stefanie Beck
d0dea9fdbc Translated using Weblate (German)
Currently translated at 96.7% (8679 of 8975 strings)
2019-01-08 00:06:15 +01:00
Nut Andor
28691a673d Translated using Weblate (German)
Currently translated at 96.7% (8679 of 8975 strings)
2019-01-08 00:06:15 +01:00
Stefanie Beck
75b3dd3f3c Translated using Weblate (German)
Currently translated at 96.7% (8678 of 8975 strings)
2019-01-08 00:05:03 +01:00
Nut Andor
6a65e00189 Translated using Weblate (German)
Currently translated at 96.7% (8678 of 8975 strings)
2019-01-08 00:05:02 +01:00
Stefanie Beck
08d75a5d5f Translated using Weblate (German)
Currently translated at 96.7% (8677 of 8975 strings)
2019-01-08 00:04:33 +01:00
Nut Andor
db90c06bf6 Translated using Weblate (German)
Currently translated at 96.7% (8677 of 8975 strings)
2019-01-08 00:04:32 +01:00
Stefanie Beck
7d2706fc39 Translated using Weblate (German)
Currently translated at 96.7% (8676 of 8975 strings)
2019-01-08 00:02:43 +01:00
Nut Andor
a70ea2a280 Translated using Weblate (German)
Currently translated at 96.7% (8676 of 8975 strings)
2019-01-08 00:02:42 +01:00
Stefanie Beck
16a625ae28 Translated using Weblate (German)
Currently translated at 96.7% (8675 of 8975 strings)
2019-01-08 00:01:31 +01:00
Nut Andor
144a47d570 Translated using Weblate (German)
Currently translated at 96.7% (8675 of 8975 strings)
2019-01-08 00:01:30 +01:00
Stefanie Beck
74ffd7192e Translated using Weblate (German)
Currently translated at 96.6% (8670 of 8975 strings)
2019-01-07 23:50:07 +01:00
Nut Andor
aae253de06 Translated using Weblate (German)
Currently translated at 96.6% (8670 of 8975 strings)
2019-01-07 23:50:06 +01:00
Stefanie Beck
91b769f8ce Translated using Weblate (German)
Currently translated at 96.6% (8669 of 8975 strings)
2019-01-07 23:49:16 +01:00
Nut Andor
feb8d1f509 Translated using Weblate (German)
Currently translated at 96.6% (8669 of 8975 strings)
2019-01-07 23:49:15 +01:00
Stefanie Beck
cb222e1f6a Translated using Weblate (German)
Currently translated at 96.6% (8667 of 8975 strings)
2019-01-07 23:48:06 +01:00
Nut Andor
2827faff0f Translated using Weblate (German)
Currently translated at 96.6% (8667 of 8975 strings)
2019-01-07 23:48:05 +01:00
Stefanie Beck
a7f0dffff7 Translated using Weblate (German)
Currently translated at 96.5% (8662 of 8975 strings)
2019-01-07 23:42:36 +01:00
Nut Andor
d23f52f67a Translated using Weblate (German)
Currently translated at 96.5% (8662 of 8975 strings)
2019-01-07 23:42:35 +01:00
Stefanie Beck
f05bb8d3fa Translated using Weblate (German)
Currently translated at 96.5% (8660 of 8975 strings)
2019-01-07 23:41:10 +01:00
Nut Andor
59ae56fe43 Translated using Weblate (German)
Currently translated at 96.5% (8660 of 8975 strings)
2019-01-07 23:41:09 +01:00
Stefanie Beck
5118bd2f9f Translated using Weblate (German)
Currently translated at 96.5% (8658 of 8975 strings)
2019-01-07 23:40:33 +01:00
Nut Andor
56113089ab Translated using Weblate (German)
Currently translated at 96.5% (8658 of 8975 strings)
2019-01-07 23:40:32 +01:00
Stefanie Beck
f1e67024c5 Translated using Weblate (German)
Currently translated at 96.5% (8657 of 8975 strings)
2019-01-07 23:38:48 +01:00
Nut Andor
261b1f2559 Translated using Weblate (German)
Currently translated at 96.5% (8657 of 8975 strings)
2019-01-07 23:38:48 +01:00
Stefanie Beck
46f4fad15a Translated using Weblate (German)
Currently translated at 96.4% (8656 of 8975 strings)
2019-01-07 23:36:54 +01:00
Nut Andor
4448dc81c4 Translated using Weblate (German)
Currently translated at 96.4% (8656 of 8975 strings)
2019-01-07 23:36:54 +01:00
Stefanie Beck
33c0c1cc4f Translated using Weblate (German)
Currently translated at 96.4% (8655 of 8975 strings)
2019-01-07 23:36:25 +01:00
Nut Andor
edbe61edaf Translated using Weblate (German)
Currently translated at 96.4% (8655 of 8975 strings)
2019-01-07 23:36:24 +01:00
Stefanie Beck
8d2117c50d Translated using Weblate (German)
Currently translated at 96.4% (8650 of 8975 strings)
2019-01-07 23:30:37 +01:00
Alain
018566622a Translated using Weblate (German)
Currently translated at 96.4% (8650 of 8975 strings)
2019-01-07 23:30:37 +01:00
Nut Andor
89cae935b4 Translated using Weblate (German)
Currently translated at 96.4% (8650 of 8975 strings)
2019-01-07 23:30:36 +01:00
Alain
44e076388f Translated using Weblate (German)
Currently translated at 96.2% (8634 of 8975 strings)
2019-01-07 23:24:35 +01:00
Nut Andor
583c0b369f Translated using Weblate (German)
Currently translated at 96.2% (8634 of 8975 strings)
2019-01-07 23:24:35 +01:00
soloply
40af145912 Translated using Weblate (Russian)
Currently translated at 100.0% (8975 of 8975 strings)
2019-01-07 16:06:02 +01:00
Stefanie Beck
c8b30cb225 Translated using Weblate (German)
Currently translated at 96.2% (8631 of 8975 strings)
2019-01-07 16:05:58 +01:00
Balázs Úr
f24d5bb701 Translated using Weblate (Hungarian)
Currently translated at 100.0% (523 of 523 strings)
2019-01-07 16:05:54 +01:00
finnomeno
fc088c96bb Translated using Weblate (German)
Currently translated at 100.0% (523 of 523 strings)
2019-01-07 16:05:53 +01:00
Nut Andor
f31fae008d Translated using Weblate (German)
Currently translated at 96.2% (8630 of 8975 strings)
2019-01-07 15:00:07 +01:00
Stefanie Beck
eba9c68b92 Translated using Weblate (German)
Currently translated at 96.2% (8630 of 8975 strings)
2019-01-07 15:00:06 +01:00
Nut Andor
7f6b00e9e3 Translated using Weblate (German)
Currently translated at 96.1% (8625 of 8975 strings)
2019-01-07 14:57:09 +01:00
Stefanie Beck
45de12dc5b Translated using Weblate (German)
Currently translated at 96.1% (8625 of 8975 strings)
2019-01-07 14:57:08 +01:00
Nut Andor
7abf38d96f Translated using Weblate (German)
Currently translated at 96.1% (8624 of 8975 strings)
2019-01-07 14:56:14 +01:00
Stefanie Beck
5a9cc41b0a Translated using Weblate (German)
Currently translated at 96.1% (8624 of 8975 strings)
2019-01-07 14:56:13 +01:00
Stefanie Beck
db41b0d138 Translated using Weblate (German)
Currently translated at 96.0% (8615 of 8975 strings)
2019-01-07 14:51:50 +01:00
Nut Andor
76a4844bd1 Translated using Weblate (German)
Currently translated at 96.0% (8615 of 8975 strings)
2019-01-07 14:51:48 +01:00
Stefanie Beck
0825c42af3 Translated using Weblate (German)
Currently translated at 95.8% (8602 of 8975 strings)
2019-01-07 01:32:36 +01:00
Nut Andor
f48a83cb8e Translated using Weblate (German)
Currently translated at 95.8% (8602 of 8975 strings)
2019-01-07 01:32:35 +01:00
Stefanie Beck
925ce48c5d Translated using Weblate (German)
Currently translated at 95.8% (8601 of 8975 strings)
2019-01-07 01:31:46 +01:00
Nut Andor
92bfae56d8 Translated using Weblate (German)
Currently translated at 95.8% (8601 of 8975 strings)
2019-01-07 01:31:45 +01:00
Stefanie Beck
b50c743be9 Translated using Weblate (German)
Currently translated at 95.8% (8600 of 8975 strings)
2019-01-07 01:31:08 +01:00
Nut Andor
94a78b8360 Translated using Weblate (German)
Currently translated at 95.8% (8600 of 8975 strings)
2019-01-07 01:31:08 +01:00
Stefanie Beck
9ee12e90cb Translated using Weblate (German)
Currently translated at 95.8% (8599 of 8975 strings)
2019-01-07 01:30:23 +01:00
Nut Andor
20cc37f574 Translated using Weblate (German)
Currently translated at 95.8% (8599 of 8975 strings)
2019-01-07 01:30:22 +01:00
Stefanie Beck
8651cb19ef Translated using Weblate (German)
Currently translated at 95.8% (8598 of 8975 strings)
2019-01-07 01:28:52 +01:00
Nut Andor
489099b00e Translated using Weblate (German)
Currently translated at 95.8% (8598 of 8975 strings)
2019-01-07 01:28:51 +01:00
Stefanie Beck
2573ae49ca Translated using Weblate (German)
Currently translated at 95.7% (8593 of 8975 strings)
2019-01-07 01:24:04 +01:00
Nut Andor
ccb1c39620 Translated using Weblate (German)
Currently translated at 95.7% (8593 of 8975 strings)
2019-01-07 01:24:04 +01:00
Stefanie Beck
c75bd8220a Translated using Weblate (German)
Currently translated at 95.7% (8589 of 8975 strings)
2019-01-07 01:21:53 +01:00
Nut Andor
d47729899f Translated using Weblate (German)
Currently translated at 95.7% (8589 of 8975 strings)
2019-01-07 01:21:52 +01:00
Stefanie Beck
19e4f3fc60 Translated using Weblate (German)
Currently translated at 95.7% (8588 of 8975 strings)
2019-01-07 01:20:21 +01:00
Nut Andor
dd5b66e659 Translated using Weblate (German)
Currently translated at 95.7% (8588 of 8975 strings)
2019-01-07 01:20:21 +01:00
Stefanie Beck
a0107c9fc7 Translated using Weblate (German)
Currently translated at 95.7% (8587 of 8975 strings)
2019-01-07 01:19:37 +01:00
Nut Andor
12b91c79ec Translated using Weblate (German)
Currently translated at 95.7% (8587 of 8975 strings)
2019-01-07 01:19:37 +01:00
Stefanie Beck
735094869a Translated using Weblate (German)
Currently translated at 95.7% (8585 of 8975 strings)
2019-01-07 01:15:42 +01:00
Nut Andor
3d3d2bdc95 Translated using Weblate (German)
Currently translated at 95.7% (8585 of 8975 strings)
2019-01-07 01:15:42 +01:00
Stefanie Beck
3a61166fa3 Translated using Weblate (German)
Currently translated at 95.6% (8584 of 8975 strings)
2019-01-07 01:13:55 +01:00
Nut Andor
49c0bd40a9 Translated using Weblate (German)
Currently translated at 95.6% (8584 of 8975 strings)
2019-01-07 01:13:55 +01:00
Stefanie Beck
46d00ab269 Translated using Weblate (German)
Currently translated at 95.6% (8579 of 8975 strings)
2019-01-07 01:12:15 +01:00
Nut Andor
0dbef41533 Translated using Weblate (German)
Currently translated at 95.6% (8579 of 8975 strings)
2019-01-07 01:12:14 +01:00
Stefanie Beck
e3f1e41a42 Translated using Weblate (German)
Currently translated at 95.6% (8578 of 8975 strings)
2019-01-07 01:11:27 +01:00
Nut Andor
da63d70434 Translated using Weblate (German)
Currently translated at 95.6% (8578 of 8975 strings)
2019-01-07 01:11:26 +01:00
Stefanie Beck
ac14203053 Translated using Weblate (German)
Currently translated at 95.5% (8573 of 8975 strings)
2019-01-07 01:03:59 +01:00
Nut Andor
fc145945d3 Translated using Weblate (German)
Currently translated at 95.5% (8573 of 8975 strings)
2019-01-07 01:03:59 +01:00
Stefanie Beck
e5baba3fa9 Translated using Weblate (German)
Currently translated at 95.5% (8567 of 8975 strings)
2019-01-07 00:59:56 +01:00
Nut Andor
5a6d52a2d5 Translated using Weblate (German)
Currently translated at 95.5% (8567 of 8975 strings)
2019-01-07 00:59:56 +01:00
Stefanie Beck
a8abcd42f8 Translated using Weblate (German)
Currently translated at 95.4% (8566 of 8975 strings)
2019-01-07 00:58:59 +01:00
Nut Andor
205d28c4c7 Translated using Weblate (German)
Currently translated at 95.4% (8566 of 8975 strings)
2019-01-07 00:58:59 +01:00
Stefanie Beck
65a94a2328 Translated using Weblate (German)
Currently translated at 95.4% (8562 of 8975 strings)
2019-01-07 00:54:53 +01:00
Nut Andor
0b111acaca Translated using Weblate (German)
Currently translated at 95.4% (8562 of 8975 strings)
2019-01-07 00:54:52 +01:00
Stefanie Beck
fb3c783a16 Translated using Weblate (German)
Currently translated at 95.3% (8557 of 8975 strings)
2019-01-07 00:41:53 +01:00
Nut Andor
464f3b7b52 Translated using Weblate (German)
Currently translated at 95.3% (8557 of 8975 strings)
2019-01-07 00:41:52 +01:00
Stefanie Beck
f32d49c099 Translated using Weblate (German)
Currently translated at 95.3% (8556 of 8975 strings)
2019-01-07 00:38:07 +01:00
Nut Andor
3922ada983 Translated using Weblate (German)
Currently translated at 95.3% (8556 of 8975 strings)
2019-01-07 00:38:07 +01:00
Stefanie Beck
cc7dcef1d5 Translated using Weblate (German)
Currently translated at 95.3% (8551 of 8975 strings)
2019-01-07 00:35:36 +01:00
Nut Andor
d80ddb9c32 Translated using Weblate (German)
Currently translated at 95.3% (8551 of 8975 strings)
2019-01-07 00:35:35 +01:00
Stefanie Beck
1e77395ea8 Translated using Weblate (German)
Currently translated at 95.2% (8548 of 8975 strings)
2019-01-07 00:32:16 +01:00
Nut Andor
0ca641842b Translated using Weblate (German)
Currently translated at 95.2% (8548 of 8975 strings)
2019-01-07 00:32:14 +01:00
Stefanie Beck
16c37653d6 Translated using Weblate (German)
Currently translated at 95.2% (8540 of 8975 strings)
2019-01-07 00:22:29 +01:00
Nut Andor
8d6762c5d6 Translated using Weblate (German)
Currently translated at 95.2% (8540 of 8975 strings)
2019-01-07 00:22:28 +01:00
Stefanie Beck
dc99489e34 Translated using Weblate (German)
Currently translated at 95.1% (8533 of 8975 strings)
2019-01-07 00:18:05 +01:00
Nut Andor
9b51178a0a Translated using Weblate (German)
Currently translated at 95.1% (8533 of 8975 strings)
2019-01-07 00:18:05 +01:00
Stefanie Beck
1bc699b54d Translated using Weblate (German)
Currently translated at 95.1% (8531 of 8975 strings)
2019-01-06 23:49:18 +01:00
Nut Andor
e28c143682 Translated using Weblate (German)
Currently translated at 95.1% (8531 of 8975 strings)
2019-01-06 23:49:17 +01:00
Stefanie Beck
742af05990 Translated using Weblate (German)
Currently translated at 95.0% (8530 of 8975 strings)
2019-01-06 23:48:27 +01:00
Nut Andor
8cc2f85837 Translated using Weblate (German)
Currently translated at 95.0% (8530 of 8975 strings)
2019-01-06 23:48:27 +01:00
Stefanie Beck
e199322a03 Translated using Weblate (German)
Currently translated at 95.0% (8529 of 8975 strings)
2019-01-06 23:48:07 +01:00
Nut Andor
72c59d0361 Translated using Weblate (German)
Currently translated at 95.0% (8529 of 8975 strings)
2019-01-06 23:48:06 +01:00
Stefanie Beck
a9d7091a8b Translated using Weblate (German)
Currently translated at 95.0% (8524 of 8975 strings)
2019-01-06 23:47:01 +01:00
Nut Andor
0651e96920 Translated using Weblate (German)
Currently translated at 95.0% (8524 of 8975 strings)
2019-01-06 23:47:01 +01:00
Stefanie Beck
477f8a4434 Translated using Weblate (German)
Currently translated at 95.0% (8523 of 8975 strings)
2019-01-06 23:45:06 +01:00
Nut Andor
352147261f Translated using Weblate (German)
Currently translated at 95.0% (8523 of 8975 strings)
2019-01-06 23:45:06 +01:00
Stefanie Beck
7715733f3d Translated using Weblate (German)
Currently translated at 95.0% (8522 of 8975 strings)
2019-01-06 23:44:10 +01:00
Nut Andor
f8604613bf Translated using Weblate (German)
Currently translated at 95.0% (8522 of 8975 strings)
2019-01-06 23:44:09 +01:00
Stefanie Beck
409b525a2f Translated using Weblate (German)
Currently translated at 94.9% (8521 of 8975 strings)
2019-01-06 23:42:28 +01:00
Nut Andor
cfb25c636b Translated using Weblate (German)
Currently translated at 94.9% (8521 of 8975 strings)
2019-01-06 23:42:27 +01:00
Stefanie Beck
3fab230cbf Translated using Weblate (German)
Currently translated at 94.9% (8520 of 8975 strings)
2019-01-06 23:41:45 +01:00
Nut Andor
40637a2dd1 Translated using Weblate (German)
Currently translated at 94.9% (8520 of 8975 strings)
2019-01-06 23:41:45 +01:00
Stefanie Beck
43550b5360 Translated using Weblate (German)
Currently translated at 94.9% (8519 of 8975 strings)
2019-01-06 23:41:29 +01:00
Nut Andor
a731613159 Translated using Weblate (German)
Currently translated at 94.9% (8519 of 8975 strings)
2019-01-06 23:41:28 +01:00
Stefanie Beck
daeeef9fb9 Translated using Weblate (German)
Currently translated at 94.8% (8508 of 8975 strings)
2019-01-06 23:36:45 +01:00
Nut Andor
b67fd5e15a Translated using Weblate (German)
Currently translated at 94.8% (8508 of 8975 strings)
2019-01-06 23:36:44 +01:00
Stefanie Beck
5a482b65d0 Translated using Weblate (German)
Currently translated at 94.8% (8506 of 8975 strings)
2019-01-06 23:34:59 +01:00
Nut Andor
c08d950c27 Translated using Weblate (German)
Currently translated at 94.8% (8506 of 8975 strings)
2019-01-06 23:34:59 +01:00
Stefanie Beck
8ecad6b015 Translated using Weblate (German)
Currently translated at 94.8% (8504 of 8975 strings)
2019-01-06 23:32:40 +01:00
Nut Andor
c50f3231b7 Translated using Weblate (German)
Currently translated at 94.8% (8504 of 8975 strings)
2019-01-06 23:32:40 +01:00
Stefanie Beck
7bd4bc3c83 Translated using Weblate (German)
Currently translated at 94.8% (8504 of 8975 strings)
2019-01-06 23:31:38 +01:00
Nut Andor
2a9b42b074 Translated using Weblate (German)
Currently translated at 94.8% (8504 of 8975 strings)
2019-01-06 23:31:37 +01:00
Stefanie Beck
5c0bfb4fa3 Translated using Weblate (German)
Currently translated at 94.7% (8503 of 8975 strings)
2019-01-06 23:29:49 +01:00
Nut Andor
3e17092802 Translated using Weblate (German)
Currently translated at 94.7% (8503 of 8975 strings)
2019-01-06 23:29:48 +01:00
Stefanie Beck
4f211efa85 Translated using Weblate (German)
Currently translated at 94.7% (8502 of 8975 strings)
2019-01-06 23:24:18 +01:00
Alain
d7fb163c12 Translated using Weblate (German)
Currently translated at 94.7% (8502 of 8975 strings)
2019-01-06 23:24:18 +01:00
Nut Andor
675abbcdc9 Translated using Weblate (German)
Currently translated at 94.7% (8502 of 8975 strings)
2019-01-06 23:24:16 +01:00
Alain
e13e85179d Translated using Weblate (German)
Currently translated at 94.3% (8460 of 8975 strings)
2019-01-06 22:44:15 +01:00
Nut Andor
e37fa0a6d9 Translated using Weblate (German)
Currently translated at 94.3% (8460 of 8975 strings)
2019-01-06 22:44:15 +01:00
Alain
ec05a34afd Translated using Weblate (German)
Currently translated at 94.2% (8458 of 8975 strings)
2019-01-06 22:43:39 +01:00
Nut Andor
49212ee9d7 Translated using Weblate (German)
Currently translated at 94.2% (8458 of 8975 strings)
2019-01-06 22:43:39 +01:00
Alain
5966a4757d Translated using Weblate (German)
Currently translated at 94.2% (8457 of 8975 strings)
2019-01-06 22:43:19 +01:00
Stefanie Beck
4f5dc68e15 Translated using Weblate (German)
Currently translated at 94.2% (8457 of 8975 strings)
2019-01-06 22:43:19 +01:00
Nut Andor
29cf71c675 Translated using Weblate (German)
Currently translated at 94.2% (8457 of 8975 strings)
2019-01-06 22:43:18 +01:00
Stefanie Beck
96f02e8d85 Translated using Weblate (German)
Currently translated at 94.2% (8450 of 8975 strings)
2019-01-06 22:34:37 +01:00
Nut Andor
f3a50625f4 Translated using Weblate (German)
Currently translated at 94.2% (8450 of 8975 strings)
2019-01-06 22:34:36 +01:00
Stefanie Beck
0fd970694f Translated using Weblate (German)
Currently translated at 94.1% (8448 of 8975 strings)
2019-01-06 22:33:16 +01:00
Nut Andor
eeff817b9d Translated using Weblate (German)
Currently translated at 94.1% (8448 of 8975 strings)
2019-01-06 22:33:16 +01:00
Stefanie Beck
4ab03286f9 Translated using Weblate (German)
Currently translated at 94.1% (8445 of 8975 strings)
2019-01-06 22:31:19 +01:00
Nut Andor
52aea0daec Translated using Weblate (German)
Currently translated at 94.1% (8445 of 8975 strings)
2019-01-06 22:31:18 +01:00
Stefanie Beck
8b463d1e8b Translated using Weblate (German)
Currently translated at 94.0% (8434 of 8975 strings)
2019-01-06 18:28:03 +01:00
Nut Andor
c293b5379f Translated using Weblate (German)
Currently translated at 94.0% (8434 of 8975 strings)
2019-01-06 18:28:02 +01:00
Stefanie Beck
e9be9981d6 Translated using Weblate (German)
Currently translated at 93.9% (8425 of 8975 strings)
2019-01-06 17:37:54 +01:00
Nut Andor
7840a95040 Translated using Weblate (German)
Currently translated at 93.9% (8425 of 8975 strings)
2019-01-06 17:37:54 +01:00
Stefanie Beck
eb6c74bbac Translated using Weblate (German)
Currently translated at 93.9% (8424 of 8975 strings)
2019-01-06 17:37:14 +01:00
Nut Andor
79ad3bf37c Translated using Weblate (German)
Currently translated at 93.9% (8424 of 8975 strings)
2019-01-06 17:37:13 +01:00
Stefanie Beck
ffe65f389f Translated using Weblate (German)
Currently translated at 93.8% (8420 of 8975 strings)
2019-01-06 17:35:50 +01:00
Nut Andor
7893943f12 Translated using Weblate (German)
Currently translated at 93.8% (8420 of 8975 strings)
2019-01-06 17:35:49 +01:00
Stefanie Beck
fda6104b16 Translated using Weblate (German)
Currently translated at 93.8% (8419 of 8975 strings)
2019-01-06 17:35:28 +01:00
Nut Andor
468b23b52d Translated using Weblate (German)
Currently translated at 93.8% (8419 of 8975 strings)
2019-01-06 17:35:28 +01:00
Stefanie Beck
782fe027a5 Translated using Weblate (German)
Currently translated at 93.8% (8418 of 8975 strings)
2019-01-06 17:34:44 +01:00
Nut Andor
76bd61178d Translated using Weblate (German)
Currently translated at 93.8% (8418 of 8975 strings)
2019-01-06 17:34:44 +01:00
Stefanie Beck
ebcc6d07c6 Translated using Weblate (German)
Currently translated at 93.8% (8415 of 8975 strings)
2019-01-06 17:32:01 +01:00
Nut Andor
f8eddffc1e Translated using Weblate (German)
Currently translated at 93.8% (8415 of 8975 strings)
2019-01-06 17:32:01 +01:00
Stefanie Beck
1a4ca170e3 Translated using Weblate (German)
Currently translated at 93.7% (8414 of 8975 strings)
2019-01-06 17:31:08 +01:00
Nut Andor
9433870374 Translated using Weblate (German)
Currently translated at 93.7% (8414 of 8975 strings)
2019-01-06 17:31:08 +01:00
Stefanie Beck
176a60e1d5 Translated using Weblate (German)
Currently translated at 93.7% (8410 of 8975 strings)
2019-01-06 17:22:50 +01:00
Nut Andor
06861867df Translated using Weblate (German)
Currently translated at 93.7% (8410 of 8975 strings)
2019-01-06 17:22:50 +01:00
Stefanie Beck
de254e6b00 Translated using Weblate (German)
Currently translated at 93.7% (8406 of 8975 strings)
2019-01-06 17:17:30 +01:00
Nut Andor
a29aca541d Translated using Weblate (German)
Currently translated at 93.7% (8406 of 8975 strings)
2019-01-06 17:17:29 +01:00
Stefanie Beck
18b5866beb Translated using Weblate (German)
Currently translated at 93.6% (8403 of 8975 strings)
2019-01-06 17:16:41 +01:00
Nut Andor
7a9b845468 Translated using Weblate (German)
Currently translated at 93.6% (8403 of 8975 strings)
2019-01-06 17:16:40 +01:00
Stefanie Beck
b22490e9a8 Translated using Weblate (German)
Currently translated at 93.6% (8400 of 8975 strings)
2019-01-06 17:15:52 +01:00
Nut Andor
6b6c917dcc Translated using Weblate (German)
Currently translated at 93.6% (8400 of 8975 strings)
2019-01-06 17:15:51 +01:00
Stefanie Beck
36be89cd43 Translated using Weblate (German)
Currently translated at 93.5% (8395 of 8975 strings)
2019-01-06 17:13:56 +01:00
Nut Andor
2565c78d2f Translated using Weblate (German)
Currently translated at 93.5% (8395 of 8975 strings)
2019-01-06 17:13:56 +01:00
Stefanie Beck
a5bb7a4f9a Translated using Weblate (German)
Currently translated at 93.5% (8394 of 8975 strings)
2019-01-06 17:12:45 +01:00
Nut Andor
05f9b9d34c Translated using Weblate (German)
Currently translated at 93.5% (8394 of 8975 strings)
2019-01-06 17:12:44 +01:00
Stefanie Beck
7cd6f6c120 Translated using Weblate (German)
Currently translated at 93.5% (8393 of 8975 strings)
2019-01-06 17:11:25 +01:00
Nut Andor
41325629da Translated using Weblate (German)
Currently translated at 93.5% (8393 of 8975 strings)
2019-01-06 17:11:25 +01:00
Stefanie Beck
ac72f50214 Translated using Weblate (German)
Currently translated at 93.5% (8391 of 8975 strings)
2019-01-06 17:10:35 +01:00
Nut Andor
6f98acaa5c Translated using Weblate (German)
Currently translated at 93.5% (8391 of 8975 strings)
2019-01-06 17:10:34 +01:00
Stefanie Beck
a052cfd81a Translated using Weblate (German)
Currently translated at 93.4% (8385 of 8975 strings)
2019-01-06 17:08:53 +01:00
Nut Andor
ad2343b684 Translated using Weblate (German)
Currently translated at 93.4% (8385 of 8975 strings)
2019-01-06 17:08:52 +01:00
Stefanie Beck
a2be12f830 Translated using Weblate (German)
Currently translated at 93.4% (8384 of 8975 strings)
2019-01-06 17:06:58 +01:00
Nut Andor
ad38a3388e Translated using Weblate (German)
Currently translated at 93.4% (8384 of 8975 strings)
2019-01-06 17:06:57 +01:00
Stefanie Beck
6a00653faf Translated using Weblate (German)
Currently translated at 93.4% (8383 of 8975 strings)
2019-01-06 17:06:17 +01:00
Nut Andor
7321ecacaf Translated using Weblate (German)
Currently translated at 93.4% (8383 of 8975 strings)
2019-01-06 17:06:16 +01:00
Stefanie Beck
6249e6e213 Translated using Weblate (German)
Currently translated at 93.2% (8369 of 8975 strings)
2019-01-06 17:03:20 +01:00
Nut Andor
db7caafe50 Translated using Weblate (German)
Currently translated at 93.2% (8369 of 8975 strings)
2019-01-06 17:03:20 +01:00
Stefanie Beck
1dbace6a99 Translated using Weblate (German)
Currently translated at 93.2% (8363 of 8975 strings)
2019-01-06 17:01:19 +01:00
Nut Andor
5814a7ef16 Translated using Weblate (German)
Currently translated at 93.2% (8363 of 8975 strings)
2019-01-06 17:01:19 +01:00
Stefanie Beck
de3248be32 Translated using Weblate (German)
Currently translated at 93.1% (8360 of 8975 strings)
2019-01-06 16:56:44 +01:00
Nut Andor
fc3bc450fd Translated using Weblate (German)
Currently translated at 93.1% (8360 of 8975 strings)
2019-01-06 16:56:44 +01:00
Stefanie Beck
137f8e6cea Translated using Weblate (German)
Currently translated at 93.1% (8358 of 8975 strings)
2019-01-06 16:55:21 +01:00
Nut Andor
2805e051f7 Translated using Weblate (German)
Currently translated at 93.1% (8358 of 8975 strings)
2019-01-06 16:55:20 +01:00
Stefanie Beck
7b692f699a Translated using Weblate (German)
Currently translated at 93.1% (8353 of 8975 strings)
2019-01-06 16:50:27 +01:00
Nut Andor
618dc2c10f Translated using Weblate (German)
Currently translated at 93.1% (8353 of 8975 strings)
2019-01-06 16:50:26 +01:00
Stefanie Beck
dfc6eb78f0 Translated using Weblate (German)
Currently translated at 93.1% (8352 of 8975 strings)
2019-01-06 16:49:49 +01:00
Nut Andor
64f2ac4549 Translated using Weblate (German)
Currently translated at 93.1% (8352 of 8975 strings)
2019-01-06 16:49:49 +01:00
Stefanie Beck
2725824f53 Translated using Weblate (German)
Currently translated at 93.0% (8351 of 8975 strings)
2019-01-06 16:49:13 +01:00
Nut Andor
8d66a5a5da Translated using Weblate (German)
Currently translated at 93.0% (8351 of 8975 strings)
2019-01-06 16:49:12 +01:00
Stefanie Beck
19c092c377 Translated using Weblate (German)
Currently translated at 92.9% (8341 of 8975 strings)
2019-01-06 16:45:31 +01:00
Nut Andor
c90ce373dc Translated using Weblate (German)
Currently translated at 92.9% (8341 of 8975 strings)
2019-01-06 16:45:30 +01:00
Stefanie Beck
af3bf14b2f Translated using Weblate (German)
Currently translated at 92.9% (8339 of 8975 strings)
2019-01-06 16:45:06 +01:00
Nut Andor
67ae6c5274 Translated using Weblate (German)
Currently translated at 92.9% (8339 of 8975 strings)
2019-01-06 16:45:05 +01:00
Stefanie Beck
3a7b02c1de Translated using Weblate (German)
Currently translated at 92.9% (8337 of 8975 strings)
2019-01-06 16:43:46 +01:00
Nut Andor
0887294062 Translated using Weblate (German)
Currently translated at 92.9% (8337 of 8975 strings)
2019-01-06 16:43:46 +01:00
Stefanie Beck
cab459b67f Translated using Weblate (German)
Currently translated at 92.9% (8336 of 8975 strings)
2019-01-06 16:43:12 +01:00
Nut Andor
7af6b08b7d Translated using Weblate (German)
Currently translated at 92.9% (8336 of 8975 strings)
2019-01-06 16:43:11 +01:00
Stefanie Beck
a92ad21ed9 Translated using Weblate (German)
Currently translated at 92.9% (8335 of 8975 strings)
2019-01-06 16:42:46 +01:00
Nut Andor
9962db69d7 Translated using Weblate (German)
Currently translated at 92.9% (8335 of 8975 strings)
2019-01-06 16:42:45 +01:00
Stefanie Beck
4d4afe6258 Translated using Weblate (German)
Currently translated at 92.8% (8332 of 8975 strings)
2019-01-06 16:41:54 +01:00
Nut Andor
3d32883d6b Translated using Weblate (German)
Currently translated at 92.8% (8332 of 8975 strings)
2019-01-06 16:41:53 +01:00
Stefanie Beck
aaddb05830 Translated using Weblate (German)
Currently translated at 92.8% (8329 of 8975 strings)
2019-01-06 16:39:58 +01:00
Nut Andor
75dde642bc Translated using Weblate (German)
Currently translated at 92.8% (8329 of 8975 strings)
2019-01-06 16:39:57 +01:00
Stefanie Beck
9505e16892 Translated using Weblate (German)
Currently translated at 92.8% (8326 of 8975 strings)
2019-01-06 16:39:17 +01:00
Nut Andor
eb448883fc Translated using Weblate (German)
Currently translated at 92.8% (8326 of 8975 strings)
2019-01-06 16:39:16 +01:00
Stefanie Beck
79f68c1a0a Translated using Weblate (German)
Currently translated at 92.6% (8312 of 8975 strings)
2019-01-06 16:31:48 +01:00
Nut Andor
a7b0c3fe77 Translated using Weblate (German)
Currently translated at 92.6% (8312 of 8975 strings)
2019-01-06 16:31:47 +01:00
Stefanie Beck
057164e54f Translated using Weblate (German)
Currently translated at 92.6% (8311 of 8975 strings)
2019-01-06 16:31:06 +01:00
Nut Andor
dc1854553c Translated using Weblate (German)
Currently translated at 92.6% (8311 of 8975 strings)
2019-01-06 16:31:05 +01:00
Stefanie Beck
89c53ed112 Translated using Weblate (German)
Currently translated at 92.5% (8306 of 8975 strings)
2019-01-06 16:25:33 +01:00
Nut Andor
ef9deb8903 Translated using Weblate (German)
Currently translated at 92.5% (8306 of 8975 strings)
2019-01-06 16:25:33 +01:00
Stefanie Beck
825f326f5d Translated using Weblate (German)
Currently translated at 92.5% (8301 of 8975 strings)
2019-01-06 15:56:27 +01:00
Nut Andor
73c6b2263f Translated using Weblate (German)
Currently translated at 92.5% (8301 of 8975 strings)
2019-01-06 15:56:26 +01:00
Stefanie Beck
af114e50b6 Translated using Weblate (German)
Currently translated at 92.5% (8298 of 8975 strings)
2019-01-06 15:54:39 +01:00
Nut Andor
f020da1a44 Translated using Weblate (German)
Currently translated at 92.5% (8298 of 8975 strings)
2019-01-06 15:54:38 +01:00
Stefanie Beck
4ee5c91ad9 Translated using Weblate (German)
Currently translated at 92.3% (8284 of 8975 strings)
2019-01-06 15:47:56 +01:00
Nut Andor
39179d257c Translated using Weblate (German)
Currently translated at 92.3% (8284 of 8975 strings)
2019-01-06 15:47:56 +01:00
Stefanie Beck
a7f566ce6e Translated using Weblate (German)
Currently translated at 92.2% (8273 of 8975 strings)
2019-01-06 15:42:56 +01:00
Nut Andor
c7c0d66be1 Translated using Weblate (German)
Currently translated at 92.2% (8273 of 8975 strings)
2019-01-06 15:42:56 +01:00
Stefanie Beck
a1f765a3ee Translated using Weblate (German)
Currently translated at 92.2% (8272 of 8975 strings)
2019-01-06 15:41:48 +01:00
Nut Andor
c9b741e96f Translated using Weblate (German)
Currently translated at 92.2% (8272 of 8975 strings)
2019-01-06 15:41:47 +01:00
Stefanie Beck
a21c49771a Translated using Weblate (German)
Currently translated at 92.1% (8269 of 8975 strings)
2019-01-06 15:40:31 +01:00
Nut Andor
162fd57aaf Translated using Weblate (German)
Currently translated at 92.1% (8269 of 8975 strings)
2019-01-06 15:40:31 +01:00
Stefanie Beck
de65c8d936 Translated using Weblate (German)
Currently translated at 92.1% (8265 of 8975 strings)
2019-01-06 15:39:36 +01:00
Nut Andor
68cc233a01 Translated using Weblate (German)
Currently translated at 92.1% (8265 of 8975 strings)
2019-01-06 15:39:35 +01:00
Stefanie Beck
830c06ad1c Translated using Weblate (German)
Currently translated at 92.1% (8263 of 8975 strings)
2019-01-06 15:38:46 +01:00
Nut Andor
d025420b8a Translated using Weblate (German)
Currently translated at 92.1% (8263 of 8975 strings)
2019-01-06 15:38:46 +01:00
Stefanie Beck
1551e006ef Translated using Weblate (German)
Currently translated at 92.0% (8255 of 8975 strings)
2019-01-06 15:34:38 +01:00
Nut Andor
77bbdd4b02 Translated using Weblate (German)
Currently translated at 92.0% (8255 of 8975 strings)
2019-01-06 15:34:38 +01:00
Stefanie Beck
f6b63f62f0 Translated using Weblate (German)
Currently translated at 92.0% (8254 of 8975 strings)
2019-01-06 15:28:49 +01:00
Stefanie Beck
5aee6491ed Translated using Weblate (German)
Currently translated at 92.0% (8253 of 8975 strings)
2019-01-06 15:25:53 +01:00
Nut Andor
1b3b6e1d59 Translated using Weblate (German)
Currently translated at 92.0% (8253 of 8975 strings)
2019-01-06 15:25:53 +01:00
Stefanie Beck
7e6c3aee12 Translated using Weblate (German)
Currently translated at 91.9% (8252 of 8975 strings)
2019-01-06 15:24:20 +01:00
Nut Andor
09957070fb Translated using Weblate (German)
Currently translated at 91.9% (8252 of 8975 strings)
2019-01-06 15:24:19 +01:00
Stefanie Beck
28bc34a635 Translated using Weblate (German)
Currently translated at 91.9% (8245 of 8975 strings)
2019-01-06 15:12:33 +01:00
Nut Andor
9e424830fa Translated using Weblate (German)
Currently translated at 91.9% (8245 of 8975 strings)
2019-01-06 15:12:33 +01:00
Stefanie Beck
51408765d2 Translated using Weblate (German)
Currently translated at 91.8% (8243 of 8975 strings)
2019-01-06 15:12:00 +01:00
Nut Andor
028994d1ad Translated using Weblate (German)
Currently translated at 91.8% (8243 of 8975 strings)
2019-01-06 15:12:00 +01:00
Stefanie Beck
d973f8867d Translated using Weblate (German)
Currently translated at 91.7% (8233 of 8975 strings)
2019-01-06 15:06:36 +01:00
Nut Andor
5d9ea466a9 Translated using Weblate (German)
Currently translated at 91.7% (8233 of 8975 strings)
2019-01-06 15:06:36 +01:00
Stefanie Beck
52e3e3a6b7 Translated using Weblate (German)
Currently translated at 91.7% (8232 of 8975 strings)
2019-01-06 15:06:00 +01:00
Nut Andor
24fc7e5bd1 Translated using Weblate (German)
Currently translated at 91.7% (8232 of 8975 strings)
2019-01-06 15:05:59 +01:00
Stefanie Beck
80a0340856 Translated using Weblate (German)
Currently translated at 91.6% (8224 of 8975 strings)
2019-01-06 15:03:54 +01:00
Nut Andor
7d9e3ad792 Translated using Weblate (German)
Currently translated at 91.6% (8224 of 8975 strings)
2019-01-06 15:03:53 +01:00
Stefanie Beck
c4d0798ba0 Translated using Weblate (German)
Currently translated at 91.6% (8221 of 8975 strings)
2019-01-06 15:02:16 +01:00
Nut Andor
52375231a6 Translated using Weblate (German)
Currently translated at 91.6% (8221 of 8975 strings)
2019-01-06 15:02:15 +01:00
Stefanie Beck
2962633abb Translated using Weblate (German)
Currently translated at 91.6% (8220 of 8975 strings)
2019-01-06 15:01:27 +01:00
Nut Andor
36a991658a Translated using Weblate (German)
Currently translated at 91.6% (8220 of 8975 strings)
2019-01-06 15:01:26 +01:00
Stefanie Beck
5f8a11ca02 Translated using Weblate (German)
Currently translated at 91.6% (8218 of 8975 strings)
2019-01-06 15:00:09 +01:00
Nut Andor
6eb05a39a2 Translated using Weblate (German)
Currently translated at 91.6% (8218 of 8975 strings)
2019-01-06 15:00:08 +01:00
Stefanie Beck
138d390636 Translated using Weblate (German)
Currently translated at 91.5% (8215 of 8975 strings)
2019-01-06 14:58:22 +01:00
Nut Andor
9205a0f903 Translated using Weblate (German)
Currently translated at 91.5% (8215 of 8975 strings)
2019-01-06 14:58:22 +01:00
Stefanie Beck
03a5316386 Translated using Weblate (German)
Currently translated at 91.5% (8214 of 8975 strings)
2019-01-06 14:57:44 +01:00
Nut Andor
10f050e31c Translated using Weblate (German)
Currently translated at 91.5% (8214 of 8975 strings)
2019-01-06 14:57:44 +01:00
Stefanie Beck
97a4ec605c Translated using Weblate (German)
Currently translated at 91.5% (8212 of 8975 strings)
2019-01-06 14:56:34 +01:00
Nut Andor
963dd09ec0 Translated using Weblate (German)
Currently translated at 91.5% (8212 of 8975 strings)
2019-01-06 14:56:34 +01:00
Stefanie Beck
b42585af96 Translated using Weblate (German)
Currently translated at 91.5% (8208 of 8975 strings)
2019-01-06 14:55:44 +01:00
Nut Andor
baf69bc3b8 Translated using Weblate (German)
Currently translated at 91.5% (8208 of 8975 strings)
2019-01-06 14:55:44 +01:00
Stefanie Beck
cd49aa6fa4 Translated using Weblate (German)
Currently translated at 91.4% (8207 of 8975 strings)
2019-01-06 14:52:46 +01:00
Nut Andor
c49fceb42b Translated using Weblate (German)
Currently translated at 91.4% (8207 of 8975 strings)
2019-01-06 14:52:45 +01:00
Stefanie Beck
e72d8e85f4 Translated using Weblate (German)
Currently translated at 91.4% (8203 of 8975 strings)
2019-01-06 14:50:44 +01:00
Nut Andor
4e8cb27a06 Translated using Weblate (German)
Currently translated at 91.4% (8203 of 8975 strings)
2019-01-06 14:50:43 +01:00
Stefanie Beck
b1e2aa2ee8 Translated using Weblate (German)
Currently translated at 91.4% (8202 of 8975 strings)
2019-01-06 14:50:18 +01:00
Nut Andor
bf573db8e3 Translated using Weblate (German)
Currently translated at 91.4% (8202 of 8975 strings)
2019-01-06 14:50:17 +01:00
Stefanie Beck
6ac7e0b754 Translated using Weblate (German)
Currently translated at 91.4% (8199 of 8975 strings)
2019-01-06 14:47:44 +01:00
Nut Andor
6dc6dec0ae Translated using Weblate (German)
Currently translated at 91.4% (8199 of 8975 strings)
2019-01-06 14:47:44 +01:00
Stefanie Beck
9dab270c17 Translated using Weblate (German)
Currently translated at 91.3% (8196 of 8975 strings)
2019-01-06 14:45:37 +01:00
Nut Andor
2d5eb75b30 Translated using Weblate (German)
Currently translated at 91.3% (8196 of 8975 strings)
2019-01-06 14:45:37 +01:00
Stefanie Beck
eb6b3f0ae2 Translated using Weblate (German)
Currently translated at 91.3% (8195 of 8975 strings)
2019-01-06 14:44:14 +01:00
Nut Andor
97c82bd5f9 Translated using Weblate (German)
Currently translated at 91.3% (8195 of 8975 strings)
2019-01-06 14:44:14 +01:00
Stefanie Beck
e7a42a4298 Translated using Weblate (German)
Currently translated at 91.3% (8194 of 8975 strings)
2019-01-06 14:41:52 +01:00
Nut Andor
2f4b9a7020 Translated using Weblate (German)
Currently translated at 91.3% (8194 of 8975 strings)
2019-01-06 14:41:52 +01:00
Stefanie Beck
9fa5c42407 Translated using Weblate (German)
Currently translated at 91.3% (8192 of 8975 strings)
2019-01-06 14:40:34 +01:00
Nut Andor
b3b89ec704 Translated using Weblate (German)
Currently translated at 91.3% (8192 of 8975 strings)
2019-01-06 14:40:34 +01:00
Stefanie Beck
ada8c4943c Translated using Weblate (German)
Currently translated at 91.3% (8191 of 8975 strings)
2019-01-06 14:39:10 +01:00
Nut Andor
bca3338cb3 Translated using Weblate (German)
Currently translated at 91.3% (8191 of 8975 strings)
2019-01-06 14:39:09 +01:00
Stefanie Beck
da883c1d56 Translated using Weblate (German)
Currently translated at 91.3% (8190 of 8975 strings)
2019-01-06 14:38:39 +01:00
Nut Andor
be3fc864fc Translated using Weblate (German)
Currently translated at 91.3% (8190 of 8975 strings)
2019-01-06 14:38:38 +01:00
Stefanie Beck
9369ed934f Translated using Weblate (German)
Currently translated at 91.2% (8189 of 8975 strings)
2019-01-06 14:36:31 +01:00
Nut Andor
e2844dd7fd Translated using Weblate (German)
Currently translated at 91.2% (8189 of 8975 strings)
2019-01-06 14:36:30 +01:00
Stefanie Beck
a16df109eb Translated using Weblate (German)
Currently translated at 91.2% (8187 of 8975 strings)
2019-01-06 14:35:29 +01:00
Nut Andor
1d3792ee2a Translated using Weblate (German)
Currently translated at 91.2% (8187 of 8975 strings)
2019-01-06 14:35:29 +01:00
Stefanie Beck
9c6fdb6a91 Translated using Weblate (German)
Currently translated at 91.2% (8186 of 8975 strings)
2019-01-06 14:34:41 +01:00
Nut Andor
878fd059f6 Translated using Weblate (German)
Currently translated at 91.2% (8186 of 8975 strings)
2019-01-06 14:34:40 +01:00
Stefanie Beck
4af20697c8 Translated using Weblate (German)
Currently translated at 91.2% (8183 of 8975 strings)
2019-01-06 14:21:01 +01:00
Nut Andor
1cff497e20 Translated using Weblate (German)
Currently translated at 91.2% (8183 of 8975 strings)
2019-01-06 14:21:00 +01:00
Stefanie Beck
448826095a Translated using Weblate (German)
Currently translated at 91.2% (8181 of 8975 strings)
2019-01-06 14:20:14 +01:00
Nut Andor
b30ca1924d Translated using Weblate (German)
Currently translated at 91.2% (8181 of 8975 strings)
2019-01-06 14:20:13 +01:00
Stefanie Beck
fa3dad4dbf Translated using Weblate (German)
Currently translated at 91.1% (8175 of 8975 strings)
2019-01-06 14:19:13 +01:00
Nut Andor
e3db2598cb Translated using Weblate (German)
Currently translated at 91.1% (8175 of 8975 strings)
2019-01-06 14:19:13 +01:00
Stefanie Beck
4fb49606b0 Translated using Weblate (German)
Currently translated at 91.1% (8173 of 8975 strings)
2019-01-06 14:18:34 +01:00
Nut Andor
9a36b0dfea Translated using Weblate (German)
Currently translated at 91.1% (8173 of 8975 strings)
2019-01-06 14:18:33 +01:00
Stefanie Beck
f6fca6b20d Translated using Weblate (German)
Currently translated at 91.0% (8170 of 8975 strings)
2019-01-06 14:17:16 +01:00
Nut Andor
5ee457195f Translated using Weblate (German)
Currently translated at 91.0% (8170 of 8975 strings)
2019-01-06 14:17:16 +01:00
Stefanie Beck
c419701ce5 Translated using Weblate (German)
Currently translated at 91.0% (8169 of 8975 strings)
2019-01-06 14:15:15 +01:00
Nut Andor
6621fa0526 Translated using Weblate (German)
Currently translated at 91.0% (8169 of 8975 strings)
2019-01-06 14:15:14 +01:00
Stefanie Beck
aa9ae2c037 Translated using Weblate (German)
Currently translated at 91.0% (8168 of 8975 strings)
2019-01-06 14:12:32 +01:00
Nut Andor
5b0e4e3e91 Translated using Weblate (German)
Currently translated at 91.0% (8168 of 8975 strings)
2019-01-06 14:12:32 +01:00
Stefanie Beck
9df0ae4472 Translated using Weblate (German)
Currently translated at 91.0% (8166 of 8975 strings)
2019-01-06 14:09:45 +01:00
Stefanie Beck
8d0bacb112 Translated using Weblate (German)
Currently translated at 90.9% (8161 of 8975 strings)
2019-01-06 14:05:06 +01:00
Nut Andor
aaf6eea654 Translated using Weblate (German)
Currently translated at 90.9% (8161 of 8975 strings)
2019-01-06 14:05:06 +01:00
Stefanie Beck
dcc258a7f3 Translated using Weblate (German)
Currently translated at 90.9% (8159 of 8975 strings)
2019-01-06 14:03:37 +01:00
Nut Andor
d00cfa5c40 Translated using Weblate (German)
Currently translated at 90.9% (8159 of 8975 strings)
2019-01-06 14:03:36 +01:00
Stefanie Beck
e54d5a5613 Translated using Weblate (German)
Currently translated at 90.8% (8153 of 8975 strings)
2019-01-06 13:59:20 +01:00
Nut Andor
22700df598 Translated using Weblate (German)
Currently translated at 90.8% (8153 of 8975 strings)
2019-01-06 13:59:19 +01:00
Stefanie Beck
7dd2b55cc0 Translated using Weblate (German)
Currently translated at 90.8% (8150 of 8975 strings)
2019-01-06 13:58:04 +01:00
Nut Andor
b104e865c0 Translated using Weblate (German)
Currently translated at 90.8% (8150 of 8975 strings)
2019-01-06 13:58:04 +01:00
Stefanie Beck
c5d79987dc Translated using Weblate (German)
Currently translated at 90.8% (8148 of 8975 strings)
2019-01-06 13:57:27 +01:00
Nut Andor
712848ac8a Translated using Weblate (German)
Currently translated at 90.8% (8148 of 8975 strings)
2019-01-06 13:57:26 +01:00
Stefanie Beck
6a5456aa4c Translated using Weblate (German)
Currently translated at 90.8% (8146 of 8975 strings)
2019-01-06 13:56:40 +01:00
Nut Andor
80d824e7b7 Translated using Weblate (German)
Currently translated at 90.8% (8146 of 8975 strings)
2019-01-06 13:56:39 +01:00
Stefanie Beck
e21ea0e0dd Translated using Weblate (German)
Currently translated at 90.7% (8143 of 8975 strings)
2019-01-06 13:53:17 +01:00
Nut Andor
4a087ba817 Translated using Weblate (German)
Currently translated at 90.7% (8143 of 8975 strings)
2019-01-06 13:53:16 +01:00
Stefanie Beck
70453fc137 Translated using Weblate (German)
Currently translated at 90.7% (8140 of 8975 strings)
2019-01-06 13:45:53 +01:00
Nut Andor
23c20afc6d Translated using Weblate (German)
Currently translated at 90.7% (8140 of 8975 strings)
2019-01-06 13:45:52 +01:00
Stefanie Beck
a436855ff7 Translated using Weblate (German)
Currently translated at 90.7% (8140 of 8975 strings)
2019-01-06 13:44:45 +01:00
Nut Andor
80768fa2b7 Translated using Weblate (German)
Currently translated at 90.7% (8140 of 8975 strings)
2019-01-06 13:44:44 +01:00
Stefanie Beck
d9b137b6e7 Translated using Weblate (German)
Currently translated at 90.7% (8137 of 8975 strings)
2019-01-06 13:43:50 +01:00
Nut Andor
2dba27f9be Translated using Weblate (German)
Currently translated at 90.7% (8137 of 8975 strings)
2019-01-06 13:43:50 +01:00
Stefanie Beck
fb538e6031 Translated using Weblate (German)
Currently translated at 90.6% (8135 of 8975 strings)
2019-01-06 13:42:12 +01:00
Nut Andor
52b3437f80 Translated using Weblate (German)
Currently translated at 90.6% (8135 of 8975 strings)
2019-01-06 13:42:12 +01:00
Stefanie Beck
791800dd96 Translated using Weblate (German)
Currently translated at 90.6% (8132 of 8975 strings)
2019-01-06 11:42:55 +01:00
Nut Andor
dee1b8def3 Translated using Weblate (German)
Currently translated at 90.6% (8132 of 8975 strings)
2019-01-06 11:42:55 +01:00
Stefanie Beck
c13c888b3e Translated using Weblate (German)
Currently translated at 90.6% (8130 of 8975 strings)
2019-01-06 11:37:22 +01:00
Nut Andor
f8cd20f734 Translated using Weblate (German)
Currently translated at 90.6% (8130 of 8975 strings)
2019-01-06 11:37:22 +01:00
Stefanie Beck
7710849950 Translated using Weblate (German)
Currently translated at 90.6% (8128 of 8975 strings)
2019-01-06 11:35:48 +01:00
Nut Andor
d5e1b9662e Translated using Weblate (German)
Currently translated at 90.6% (8128 of 8975 strings)
2019-01-06 11:35:46 +01:00
Stefanie Beck
0e8b3b6ac1 Translated using Weblate (German)
Currently translated at 90.5% (8126 of 8975 strings)
2019-01-06 11:34:47 +01:00
Nut Andor
1b32b6c40f Translated using Weblate (German)
Currently translated at 90.5% (8126 of 8975 strings)
2019-01-06 11:34:47 +01:00
Stefanie Beck
ce5f286efb Translated using Weblate (German)
Currently translated at 90.5% (8124 of 8975 strings)
2019-01-06 11:32:28 +01:00
Nut Andor
b8bb1581aa Translated using Weblate (German)
Currently translated at 90.5% (8124 of 8975 strings)
2019-01-06 11:32:27 +01:00
Stefanie Beck
28596579e7 Translated using Weblate (German)
Currently translated at 90.5% (8123 of 8975 strings)
2019-01-06 11:32:01 +01:00
Nut Andor
77883c66c8 Translated using Weblate (German)
Currently translated at 90.5% (8123 of 8975 strings)
2019-01-06 11:32:01 +01:00
Stefanie Beck
a8f1b48718 Translated using Weblate (German)
Currently translated at 90.4% (8110 of 8975 strings)
2019-01-06 11:25:19 +01:00
Nut Andor
b5407780c6 Translated using Weblate (German)
Currently translated at 90.4% (8110 of 8975 strings)
2019-01-06 11:25:19 +01:00
Stefanie Beck
77bc43ceda Translated using Weblate (German)
Currently translated at 90.4% (8109 of 8975 strings)
2019-01-06 11:23:43 +01:00
Nut Andor
b62d92adbe Translated using Weblate (German)
Currently translated at 90.4% (8109 of 8975 strings)
2019-01-06 11:23:43 +01:00
Stefanie Beck
7537ef2967 Translated using Weblate (German)
Currently translated at 90.3% (8108 of 8975 strings)
2019-01-06 11:22:39 +01:00
Nut Andor
227759ae55 Translated using Weblate (German)
Currently translated at 90.3% (8108 of 8975 strings)
2019-01-06 11:22:38 +01:00
Stefanie Beck
6fb95d0897 Translated using Weblate (German)
Currently translated at 90.3% (8103 of 8975 strings)
2019-01-06 11:21:37 +01:00
Nut Andor
37add11c9a Translated using Weblate (German)
Currently translated at 90.3% (8103 of 8975 strings)
2019-01-06 11:21:37 +01:00
Stefanie Beck
95a51f8d7b Translated using Weblate (German)
Currently translated at 90.3% (8102 of 8975 strings)
2019-01-06 11:19:13 +01:00
Nut Andor
4d2c3a6862 Translated using Weblate (German)
Currently translated at 90.3% (8102 of 8975 strings)
2019-01-06 11:19:12 +01:00
Stefanie Beck
221631bc26 Translated using Weblate (German)
Currently translated at 90.3% (8101 of 8975 strings)
2019-01-06 11:18:36 +01:00
Nut Andor
ce9000f97d Translated using Weblate (German)
Currently translated at 90.3% (8101 of 8975 strings)
2019-01-06 11:18:36 +01:00
Stefanie Beck
f2c37c5cd2 Translated using Weblate (German)
Currently translated at 90.2% (8099 of 8975 strings)
2019-01-06 11:17:45 +01:00
Nut Andor
bd5b92fbcb Translated using Weblate (German)
Currently translated at 90.2% (8099 of 8975 strings)
2019-01-06 11:17:45 +01:00
Stefanie Beck
6edeb9a7cc Translated using Weblate (German)
Currently translated at 90.2% (8098 of 8975 strings)
2019-01-06 11:17:14 +01:00
Nut Andor
d7ff9eb181 Translated using Weblate (German)
Currently translated at 90.2% (8098 of 8975 strings)
2019-01-06 11:17:14 +01:00
Stefanie Beck
b6e52d95f9 Translated using Weblate (German)
Currently translated at 90.2% (8097 of 8975 strings)
2019-01-06 11:16:31 +01:00
Nut Andor
87b58d9b0b Translated using Weblate (German)
Currently translated at 90.2% (8097 of 8975 strings)
2019-01-06 11:16:31 +01:00
Stefanie Beck
8691ae0f4f Translated using Weblate (German)
Currently translated at 90.2% (8095 of 8975 strings)
2019-01-06 11:13:59 +01:00
Nut Andor
33181b9a1b Translated using Weblate (German)
Currently translated at 90.2% (8095 of 8975 strings)
2019-01-06 11:13:58 +01:00
Stefanie Beck
d416139e63 Translated using Weblate (German)
Currently translated at 90.2% (8092 of 8975 strings)
2019-01-06 11:12:30 +01:00
Nut Andor
6e0d2d58b7 Translated using Weblate (German)
Currently translated at 90.2% (8092 of 8975 strings)
2019-01-06 11:12:29 +01:00
Stefanie Beck
d6d6329e70 Translated using Weblate (German)
Currently translated at 90.1% (8085 of 8975 strings)
2019-01-06 10:57:13 +01:00
Nut Andor
76accb3f8c Translated using Weblate (German)
Currently translated at 90.1% (8085 of 8975 strings)
2019-01-06 10:57:12 +01:00
Stefanie Beck
1501243c2c Translated using Weblate (German)
Currently translated at 90.0% (8079 of 8975 strings)
2019-01-06 10:50:53 +01:00
Nut Andor
b2a45e3ee9 Translated using Weblate (German)
Currently translated at 90.0% (8079 of 8975 strings)
2019-01-06 10:50:52 +01:00
Stefanie Beck
083f7c114b Translated using Weblate (German)
Currently translated at 89.6% (8044 of 8975 strings)
2019-01-06 09:50:51 +01:00
Nut Andor
424a6cc0c0 Translated using Weblate (German)
Currently translated at 89.6% (8044 of 8975 strings)
2019-01-06 09:50:50 +01:00
Stefanie Beck
5594349252 Translated using Weblate (German)
Currently translated at 89.4% (8027 of 8975 strings)
2019-01-06 03:46:04 +01:00
Nut Andor
7ab0a882dc Translated using Weblate (German)
Currently translated at 89.4% (8027 of 8975 strings)
2019-01-06 03:46:03 +01:00
Stefanie Beck
add5bb81b6 Translated using Weblate (German)
Currently translated at 89.4% (8026 of 8975 strings)
2019-01-06 03:44:09 +01:00
Nut Andor
21c7bd2696 Translated using Weblate (German)
Currently translated at 89.4% (8026 of 8975 strings)
2019-01-06 03:44:08 +01:00
Stefanie Beck
cc8a633a89 Translated using Weblate (German)
Currently translated at 89.4% (8022 of 8975 strings)
2019-01-06 03:40:51 +01:00
Nut Andor
ab72e1a8ba Translated using Weblate (German)
Currently translated at 89.4% (8022 of 8975 strings)
2019-01-06 03:40:51 +01:00
Stefanie Beck
d0d3083092 Translated using Weblate (German)
Currently translated at 89.3% (8019 of 8975 strings)
2019-01-06 03:35:04 +01:00
Nut Andor
6e67e868f3 Translated using Weblate (German)
Currently translated at 89.3% (8019 of 8975 strings)
2019-01-06 03:35:04 +01:00
Wuerfelbruder
0867ee505d Translated using Weblate (German)
Currently translated at 89.3% (8017 of 8975 strings)
2019-01-06 03:32:12 +01:00
Stefanie Beck
f373b2c0c1 Translated using Weblate (German)
Currently translated at 89.3% (8017 of 8975 strings)
2019-01-06 03:32:11 +01:00
Nut Andor
1949406d8d Translated using Weblate (German)
Currently translated at 89.3% (8017 of 8975 strings)
2019-01-06 03:32:11 +01:00
Wuerfelbruder
410a60a247 Translated using Weblate (German)
Currently translated at 89.3% (8013 of 8975 strings)
2019-01-06 03:26:07 +01:00
Stefanie Beck
fe5db2a7b5 Translated using Weblate (German)
Currently translated at 89.3% (8013 of 8975 strings)
2019-01-06 03:26:06 +01:00
Stefanie Beck
64910df46a Translated using Weblate (German)
Currently translated at 89.2% (8003 of 8975 strings)
2019-01-06 03:20:58 +01:00
Nut Andor
c38ce9a98e Translated using Weblate (German)
Currently translated at 89.2% (8003 of 8975 strings)
2019-01-06 03:20:57 +01:00
Stefanie Beck
0f6f22cf3b Translated using Weblate (German)
Currently translated at 89.1% (7999 of 8975 strings)
2019-01-06 03:18:23 +01:00
Nut Andor
ce4cb3bcdf Translated using Weblate (German)
Currently translated at 89.1% (7999 of 8975 strings)
2019-01-06 03:18:23 +01:00
Stefanie Beck
7d5a736b32 Translated using Weblate (German)
Currently translated at 89.1% (7997 of 8975 strings)
2019-01-06 03:17:15 +01:00
Nut Andor
a4ac8e67f5 Translated using Weblate (German)
Currently translated at 89.1% (7997 of 8975 strings)
2019-01-06 03:17:15 +01:00
Stefanie Beck
c9bc376572 Translated using Weblate (German)
Currently translated at 89.1% (7996 of 8975 strings)
2019-01-06 03:16:29 +01:00
Nut Andor
265a92081a Translated using Weblate (German)
Currently translated at 89.1% (7996 of 8975 strings)
2019-01-06 03:16:28 +01:00
Stefanie Beck
0933da5715 Translated using Weblate (German)
Currently translated at 89.1% (7993 of 8975 strings)
2019-01-06 03:11:14 +01:00
Nut Andor
134d677f68 Translated using Weblate (German)
Currently translated at 89.1% (7993 of 8975 strings)
2019-01-06 03:11:13 +01:00
Stefanie Beck
2f8478ef29 Translated using Weblate (German)
Currently translated at 89.0% (7988 of 8975 strings)
2019-01-06 02:57:48 +01:00
Nut Andor
5d1eae2002 Translated using Weblate (German)
Currently translated at 89.0% (7988 of 8975 strings)
2019-01-06 02:57:47 +01:00
Stefanie Beck
135b094ed5 Translated using Weblate (German)
Currently translated at 89.0% (7985 of 8975 strings)
2019-01-06 02:42:11 +01:00
Nut Andor
5bffbdddf0 Translated using Weblate (German)
Currently translated at 89.0% (7985 of 8975 strings)
2019-01-06 02:42:10 +01:00
Stefanie Beck
0e7266ed19 Translated using Weblate (German)
Currently translated at 88.9% (7982 of 8975 strings)
2019-01-06 02:41:23 +01:00
Nut Andor
e40ec37ed5 Translated using Weblate (German)
Currently translated at 88.9% (7982 of 8975 strings)
2019-01-06 02:41:22 +01:00
Stefanie Beck
a4847ef8e9 Translated using Weblate (German)
Currently translated at 88.9% (7977 of 8975 strings)
2019-01-06 02:39:15 +01:00
Nut Andor
806b2bc683 Translated using Weblate (German)
Currently translated at 88.9% (7977 of 8975 strings)
2019-01-06 02:39:14 +01:00
Stefanie Beck
83045d5d7f Translated using Weblate (German)
Currently translated at 88.8% (7973 of 8975 strings)
2019-01-06 02:37:32 +01:00
Nut Andor
0dc7a182b6 Translated using Weblate (German)
Currently translated at 88.8% (7973 of 8975 strings)
2019-01-06 02:37:32 +01:00
Stefanie Beck
ff1d72ad1d Translated using Weblate (German)
Currently translated at 88.8% (7971 of 8975 strings)
2019-01-06 02:36:50 +01:00
Nut Andor
f55c67f23a Translated using Weblate (German)
Currently translated at 88.8% (7971 of 8975 strings)
2019-01-06 02:36:49 +01:00
Stefanie Beck
5d51fb325a Translated using Weblate (German)
Currently translated at 88.8% (7970 of 8975 strings)
2019-01-06 02:36:21 +01:00
Nut Andor
28ee26e3c0 Translated using Weblate (German)
Currently translated at 88.8% (7970 of 8975 strings)
2019-01-06 02:36:20 +01:00
Stefanie Beck
8d77cdb0fd Translated using Weblate (German)
Currently translated at 88.7% (7963 of 8975 strings)
2019-01-06 02:34:00 +01:00
Nut Andor
fe279024b0 Translated using Weblate (German)
Currently translated at 88.7% (7963 of 8975 strings)
2019-01-06 02:33:59 +01:00
Stefanie Beck
a3f5af59c5 Translated using Weblate (German)
Currently translated at 88.7% (7962 of 8975 strings)
2019-01-06 02:33:16 +01:00
Nut Andor
1f5d1916fc Translated using Weblate (German)
Currently translated at 88.7% (7962 of 8975 strings)
2019-01-06 02:33:16 +01:00
Stefanie Beck
c65d08c1b5 Translated using Weblate (German)
Currently translated at 88.7% (7958 of 8975 strings)
2019-01-06 02:32:10 +01:00
Nut Andor
2dce1f1e70 Translated using Weblate (German)
Currently translated at 88.7% (7958 of 8975 strings)
2019-01-06 02:32:10 +01:00
Stefanie Beck
e59b0cb49a Translated using Weblate (German)
Currently translated at 88.6% (7953 of 8975 strings)
2019-01-06 02:30:37 +01:00
Nut Andor
510b43f01d Translated using Weblate (German)
Currently translated at 88.6% (7953 of 8975 strings)
2019-01-06 02:30:37 +01:00
Stefanie Beck
9c04bc75dd Translated using Weblate (German)
Currently translated at 88.6% (7950 of 8975 strings)
2019-01-06 02:29:38 +01:00
Nut Andor
4fe066fac9 Translated using Weblate (German)
Currently translated at 88.6% (7950 of 8975 strings)
2019-01-06 02:29:37 +01:00
Stefanie Beck
54ef3c03b2 Translated using Weblate (German)
Currently translated at 88.6% (7948 of 8975 strings)
2019-01-06 02:28:20 +01:00
Nut Andor
0424bb2c84 Translated using Weblate (German)
Currently translated at 88.6% (7948 of 8975 strings)
2019-01-06 02:28:19 +01:00
Stefanie Beck
47e062b03b Translated using Weblate (German)
Currently translated at 88.4% (7933 of 8975 strings)
2019-01-06 02:24:50 +01:00
Nut Andor
aef6be006e Translated using Weblate (German)
Currently translated at 88.4% (7933 of 8975 strings)
2019-01-06 02:24:50 +01:00
Stefanie Beck
faf21e17d7 Translated using Weblate (German)
Currently translated at 88.4% (7931 of 8975 strings)
2019-01-06 02:24:01 +01:00
Nut Andor
82ecea3ab6 Translated using Weblate (German)
Currently translated at 88.4% (7931 of 8975 strings)
2019-01-06 02:24:00 +01:00
Stefanie Beck
7a864b4b5e Translated using Weblate (German)
Currently translated at 88.4% (7930 of 8975 strings)
2019-01-06 02:23:26 +01:00
Nut Andor
3b96144ba3 Translated using Weblate (German)
Currently translated at 88.4% (7930 of 8975 strings)
2019-01-06 02:23:26 +01:00
Stefanie Beck
4723fb65ed Translated using Weblate (German)
Currently translated at 88.3% (7929 of 8975 strings)
2019-01-06 02:20:50 +01:00
Nut Andor
c4b776554d Translated using Weblate (German)
Currently translated at 88.3% (7929 of 8975 strings)
2019-01-06 02:20:47 +01:00
Stefanie Beck
b24f47f392 Translated using Weblate (German)
Currently translated at 88.3% (7927 of 8975 strings)
2019-01-06 02:20:11 +01:00
Nut Andor
5aa197b911 Translated using Weblate (German)
Currently translated at 88.3% (7927 of 8975 strings)
2019-01-06 02:20:11 +01:00
Stefanie Beck
9a7b3e4701 Translated using Weblate (German)
Currently translated at 88.2% (7917 of 8975 strings)
2019-01-06 02:15:12 +01:00
Nut Andor
5d02175b07 Translated using Weblate (German)
Currently translated at 88.2% (7917 of 8975 strings)
2019-01-06 02:15:08 +01:00
Stefanie Beck
b09e4d2f5e Translated using Weblate (German)
Currently translated at 88.1% (7906 of 8975 strings)
2019-01-06 02:05:10 +01:00
Nut Andor
4f8563f28e Translated using Weblate (German)
Currently translated at 88.1% (7906 of 8975 strings)
2019-01-06 02:05:09 +01:00
Stefanie Beck
8861346bd4 Translated using Weblate (German)
Currently translated at 88.0% (7900 of 8975 strings)
2019-01-06 02:03:54 +01:00
Nut Andor
f360e1ca56 Translated using Weblate (German)
Currently translated at 88.0% (7900 of 8975 strings)
2019-01-06 02:03:53 +01:00
Stefanie Beck
0c2baa2320 Translated using Weblate (German)
Currently translated at 87.9% (7889 of 8975 strings)
2019-01-06 01:48:38 +01:00
Nut Andor
a0fcae4b63 Translated using Weblate (German)
Currently translated at 87.9% (7889 of 8975 strings)
2019-01-06 01:48:37 +01:00
Stefanie Beck
cb19f4aa52 Translated using Weblate (German)
Currently translated at 87.8% (7884 of 8975 strings)
2019-01-06 01:44:15 +01:00
Nut Andor
572989fe51 Translated using Weblate (German)
Currently translated at 87.8% (7884 of 8975 strings)
2019-01-06 01:44:15 +01:00
Stefanie Beck
c365d19eb7 Translated using Weblate (German)
Currently translated at 87.8% (7881 of 8975 strings)
2019-01-06 01:38:03 +01:00
Nut Andor
60a52eb76a Translated using Weblate (German)
Currently translated at 87.8% (7881 of 8975 strings)
2019-01-06 01:38:03 +01:00
Stefanie Beck
a9a446006e Translated using Weblate (German)
Currently translated at 87.8% (7880 of 8975 strings)
2019-01-06 01:36:44 +01:00
Nut Andor
a2ffb6a74e Translated using Weblate (German)
Currently translated at 87.8% (7880 of 8975 strings)
2019-01-06 01:36:44 +01:00
Stefanie Beck
1882beb180 Translated using Weblate (German)
Currently translated at 87.8% (7879 of 8975 strings)
2019-01-06 01:35:45 +01:00
Nut Andor
2aad740a70 Translated using Weblate (German)
Currently translated at 87.8% (7879 of 8975 strings)
2019-01-06 01:35:44 +01:00
Stefanie Beck
e18168b5b4 Translated using Weblate (German)
Currently translated at 87.7% (7872 of 8975 strings)
2019-01-06 01:28:07 +01:00
Nut Andor
b5c5129adf Translated using Weblate (German)
Currently translated at 87.7% (7872 of 8975 strings)
2019-01-06 01:28:06 +01:00
Stefanie Beck
3c4f9e3ada Translated using Weblate (German)
Currently translated at 87.6% (7864 of 8975 strings)
2019-01-06 01:26:07 +01:00
Nut Andor
003f31aeeb Translated using Weblate (German)
Currently translated at 87.6% (7864 of 8975 strings)
2019-01-06 01:26:06 +01:00
Stefanie Beck
dd8b37ae72 Translated using Weblate (German)
Currently translated at 87.6% (7863 of 8975 strings)
2019-01-06 01:25:29 +01:00
Nut Andor
895c8eab4e Translated using Weblate (German)
Currently translated at 87.6% (7863 of 8975 strings)
2019-01-06 01:25:28 +01:00
Stefanie Beck
8cfa76d64c Translated using Weblate (German)
Currently translated at 87.5% (7857 of 8975 strings)
2019-01-06 01:18:43 +01:00
Nut Andor
bc47dbc153 Translated using Weblate (German)
Currently translated at 87.5% (7857 of 8975 strings)
2019-01-06 01:18:43 +01:00
Stefanie Beck
0604e1dd67 Translated using Weblate (German)
Currently translated at 87.5% (7856 of 8975 strings)
2019-01-06 01:17:50 +01:00
Nut Andor
4f4cebb0a3 Translated using Weblate (German)
Currently translated at 87.5% (7856 of 8975 strings)
2019-01-06 01:17:50 +01:00
Stefanie Beck
34107514ba Translated using Weblate (German)
Currently translated at 87.5% (7854 of 8975 strings)
2019-01-06 01:15:33 +01:00
Nut Andor
06cbceb537 Translated using Weblate (German)
Currently translated at 87.5% (7854 of 8975 strings)
2019-01-06 01:15:32 +01:00
Stefanie Beck
98eba96aa5 Translated using Weblate (German)
Currently translated at 87.5% (7852 of 8975 strings)
2019-01-06 01:14:24 +01:00
Nut Andor
e7e8491287 Translated using Weblate (German)
Currently translated at 87.5% (7852 of 8975 strings)
2019-01-06 01:14:23 +01:00
Stefanie Beck
4f4aa6bffa Translated using Weblate (German)
Currently translated at 87.4% (7848 of 8975 strings)
2019-01-06 01:13:04 +01:00
Nut Andor
c3312397c2 Translated using Weblate (German)
Currently translated at 87.4% (7848 of 8975 strings)
2019-01-06 01:13:03 +01:00
Stefanie Beck
cf70b49808 Translated using Weblate (German)
Currently translated at 87.4% (7846 of 8975 strings)
2019-01-06 01:11:52 +01:00
Nut Andor
914a65f796 Translated using Weblate (German)
Currently translated at 87.4% (7846 of 8975 strings)
2019-01-06 01:11:51 +01:00
Stefanie Beck
09f54e5bce Translated using Weblate (German)
Currently translated at 87.4% (7841 of 8975 strings)
2019-01-06 01:06:24 +01:00
Nut Andor
544ef58ed5 Translated using Weblate (German)
Currently translated at 87.4% (7841 of 8975 strings)
2019-01-06 01:06:23 +01:00
Stefanie Beck
fb7e68e028 Translated using Weblate (German)
Currently translated at 87.3% (7839 of 8975 strings)
2019-01-06 01:04:28 +01:00
Nut Andor
0a45ccd7e2 Translated using Weblate (German)
Currently translated at 87.3% (7839 of 8975 strings)
2019-01-06 01:04:27 +01:00
Stefanie Beck
74c217ba19 Translated using Weblate (German)
Currently translated at 87.2% (7830 of 8975 strings)
2019-01-06 00:59:32 +01:00
Nut Andor
b54b903483 Translated using Weblate (German)
Currently translated at 87.2% (7830 of 8975 strings)
2019-01-06 00:59:31 +01:00
Stefanie Beck
5982f2cd1b Translated using Weblate (German)
Currently translated at 87.2% (7823 of 8975 strings)
2019-01-06 00:57:31 +01:00
Nut Andor
257ab1f478 Translated using Weblate (German)
Currently translated at 87.2% (7823 of 8975 strings)
2019-01-06 00:57:30 +01:00
Stefanie Beck
deff761136 Translated using Weblate (German)
Currently translated at 87.1% (7819 of 8975 strings)
2019-01-06 00:55:35 +01:00
finnomeno
c63f8bb5c7 Translated using Weblate (German)
Currently translated at 87.1% (7819 of 8975 strings)
2019-01-06 00:55:34 +01:00
Stefanie Beck
f635b92baa Translated using Weblate (German)
Currently translated at 87.1% (7818 of 8975 strings)
2019-01-06 00:11:51 +01:00
finnomeno
bf48a3592d Translated using Weblate (German)
Currently translated at 87.1% (7818 of 8975 strings)
2019-01-06 00:11:50 +01:00
Nut Andor
a203ef5926 Translated using Weblate (German)
Currently translated at 87.1% (7817 of 8975 strings)
2019-01-06 00:07:10 +01:00
Stefanie Beck
3ca9ba9690 Translated using Weblate (German)
Currently translated at 87.1% (7817 of 8975 strings)
2019-01-06 00:07:10 +01:00
finnomeno
dec8797249 Translated using Weblate (German)
Currently translated at 87.1% (7817 of 8975 strings)
2019-01-06 00:07:09 +01:00
Mo Ro
537fd78171 Translated using Weblate (German)
Currently translated at 100.0% (523 of 523 strings)
2019-01-05 23:35:34 +01:00
Wuerfelbruder
6dc54e0a1a Translated using Weblate (German)
Currently translated at 100.0% (523 of 523 strings)
2019-01-05 23:35:34 +01:00
finnomeno
bf749bbff1 Translated using Weblate (German)
Currently translated at 100.0% (523 of 523 strings)
2019-01-05 23:35:33 +01:00
Zukero
2786421ce1 Fixed issue with animation tracking.
This issue prevented the smooth movement rendering from being properly
done when the map is not scrolling and the previous map was left during
a monster's movement animation.
2019-01-05 23:00:14 +01:00
Zukero
53c9a6f9ed Fixed issue where red X on worldmap would disappear on segments with
negative offset.
2019-01-05 22:09:10 +01:00
Zukero
fe7108eb09 Updated translations after english string change. Only two typos. 2019-01-05 21:31:07 +01:00
Zukero
a9f2c0f4e1 Merge branch 'master' of https://hosted.weblate.org/git/andors-trail/user-interface/ 2019-01-05 21:27:52 +01:00
finnomeno
5c803c2fba Translated using Weblate (German)
Currently translated at 87.0% (7812 of 8975 strings)
2019-01-05 21:27:02 +01:00
finnomeno
6079ca77a7 Translated using Weblate (German)
Currently translated at 100.0% (523 of 523 strings)
2019-01-05 21:26:57 +01:00
Stefanie Beck
8b1447ebf7 Translated using Weblate (German)
Currently translated at 87.0% (7806 of 8975 strings)
2019-01-05 19:02:41 +01:00
Nut Andor
25798df7fd Translated using Weblate (German)
Currently translated at 87.0% (7806 of 8975 strings)
2019-01-05 19:02:39 +01:00
Allan Nordhøy
d2c9e79d7d Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (523 of 523 strings)
2019-01-05 19:02:37 +01:00
Zukero
13ac7a86bd Merge pull request #89 from urbalazs/ui-string-suggestion
Improved wording
2019-01-05 18:55:17 +01:00
jgemma
57b1963900 Didn't mean to check this in either. 2019-01-05 12:39:47 -05:00
jgemma
59bc334ee2 I didn't mean to modify the playerAttacks method. rolledback 2019-01-05 12:36:24 -05:00
Zukero
802c00f1bb Forced regeneration of all worldmaps' HTML upon loading a legacy save to
ensure UTF-8 encoding is used.
2019-01-05 18:02:27 +01:00
Stefanie Beck
5a0d5541bb Translated using Weblate (German)
Currently translated at 86.9% (7797 of 8975 strings)
2019-01-05 17:53:28 +01:00
Nut Andor
6cda283bbd Translated using Weblate (German)
Currently translated at 86.9% (7797 of 8975 strings)
2019-01-05 17:53:27 +01:00
Stefanie Beck
507c825b7e Translated using Weblate (German)
Currently translated at 86.9% (7796 of 8975 strings)
2019-01-05 17:52:41 +01:00
Nut Andor
247c933840 Translated using Weblate (German)
Currently translated at 86.9% (7796 of 8975 strings)
2019-01-05 17:52:41 +01:00
Stefanie Beck
0ed1b16750 Translated using Weblate (German)
Currently translated at 86.8% (7786 of 8975 strings)
2019-01-05 17:47:29 +01:00
Nut Andor
afe6d3c1a6 Translated using Weblate (German)
Currently translated at 86.8% (7786 of 8975 strings)
2019-01-05 17:47:28 +01:00
Stefanie Beck
1d9bbab735 Translated using Weblate (German)
Currently translated at 86.7% (7783 of 8975 strings)
2019-01-05 17:44:14 +01:00
Nut Andor
66864d6edd Translated using Weblate (German)
Currently translated at 86.7% (7783 of 8975 strings)
2019-01-05 17:44:13 +01:00
Stefanie Beck
de94db870c Translated using Weblate (German)
Currently translated at 86.7% (7782 of 8975 strings)
2019-01-05 17:42:40 +01:00
Nut Andor
88dc1c7491 Translated using Weblate (German)
Currently translated at 86.7% (7782 of 8975 strings)
2019-01-05 17:42:40 +01:00
Stefanie Beck
793cac9d0d Translated using Weblate (German)
Currently translated at 86.7% (7779 of 8975 strings)
2019-01-05 17:41:35 +01:00
Nut Andor
cfe21a171a Translated using Weblate (German)
Currently translated at 86.7% (7779 of 8975 strings)
2019-01-05 17:41:34 +01:00
Stefanie Beck
618d075bc2 Translated using Weblate (German)
Currently translated at 86.6% (7772 of 8975 strings)
2019-01-05 17:38:42 +01:00
Nut Andor
a5637f846c Translated using Weblate (German)
Currently translated at 86.6% (7772 of 8975 strings)
2019-01-05 17:38:41 +01:00
Stefanie Beck
69e9b8cc88 Translated using Weblate (German)
Currently translated at 86.5% (7764 of 8975 strings)
2019-01-05 17:27:37 +01:00
Nut Andor
a19213a864 Translated using Weblate (German)
Currently translated at 86.5% (7764 of 8975 strings)
2019-01-05 17:27:36 +01:00
Stefanie Beck
9f0f285e14 Translated using Weblate (German)
Currently translated at 86.4% (7753 of 8975 strings)
2019-01-05 17:22:31 +01:00
Nut Andor
139834bded Translated using Weblate (German)
Currently translated at 86.4% (7753 of 8975 strings)
2019-01-05 17:22:31 +01:00
jgemma
575e531927 Removed the call to apply taunt skill effect from the playerAttacks method and moved it to the attackWithCurrentMonster() method after the engine has determined that the monster has missed
which is after the missed event is logged.
2019-01-05 11:19:54 -05:00
Stefanie Beck
6132d7f766 Translated using Weblate (German)
Currently translated at 86.3% (7748 of 8975 strings)
2019-01-05 17:19:49 +01:00
Nut Andor
7b08f01997 Translated using Weblate (German)
Currently translated at 86.3% (7748 of 8975 strings)
2019-01-05 17:19:48 +01:00
Stefanie Beck
79c5896e79 Translated using Weblate (German)
Currently translated at 86.3% (7746 of 8975 strings)
2019-01-05 17:19:01 +01:00
Nut Andor
0fda75f4d4 Translated using Weblate (German)
Currently translated at 86.3% (7746 of 8975 strings)
2019-01-05 17:19:00 +01:00
jgemma
d447948a48 Removed the call to apply taunt skill effect from the playerAttacks method and moved it to the attackWithCurrentMonster() method after the engine has determined that the monster has missed
which is after the missed event is logged.
2019-01-05 11:17:58 -05:00
Stefanie Beck
e623acb1b9 Translated using Weblate (German)
Currently translated at 86.3% (7745 of 8975 strings)
2019-01-05 17:17:04 +01:00
Nut Andor
be260377d4 Translated using Weblate (German)
Currently translated at 86.3% (7745 of 8975 strings)
2019-01-05 17:17:03 +01:00
Stefanie Beck
f065670fcf Translated using Weblate (German)
Currently translated at 86.3% (7744 of 8975 strings)
2019-01-05 17:16:05 +01:00
Nut Andor
c262d23761 Translated using Weblate (German)
Currently translated at 86.3% (7744 of 8975 strings)
2019-01-05 17:16:05 +01:00
Stefanie Beck
babf9772e1 Translated using Weblate (German)
Currently translated at 86.3% (7743 of 8975 strings)
2019-01-05 17:15:13 +01:00
Nut Andor
bebb72679b Translated using Weblate (German)
Currently translated at 86.3% (7743 of 8975 strings)
2019-01-05 17:15:13 +01:00
Stefanie Beck
4a553dea4d Translated using Weblate (German)
Currently translated at 86.2% (7734 of 8975 strings)
2019-01-05 17:11:25 +01:00
Nut Andor
80dda063ff Translated using Weblate (German)
Currently translated at 86.2% (7734 of 8975 strings)
2019-01-05 17:11:25 +01:00
Stefanie Beck
5c5fdee949 Translated using Weblate (German)
Currently translated at 86.1% (7724 of 8975 strings)
2019-01-05 17:07:41 +01:00
Nut Andor
e878a5ac62 Translated using Weblate (German)
Currently translated at 86.1% (7724 of 8975 strings)
2019-01-05 17:07:40 +01:00
Stefanie Beck
d104d7a72c Translated using Weblate (German)
Currently translated at 86.0% (7721 of 8975 strings)
2019-01-05 17:05:31 +01:00
Nut Andor
fff36b7068 Translated using Weblate (German)
Currently translated at 86.0% (7721 of 8975 strings)
2019-01-05 17:05:30 +01:00
Stefanie Beck
52c46614b1 Translated using Weblate (German)
Currently translated at 86.0% (7719 of 8975 strings)
2019-01-05 17:04:53 +01:00
Nut Andor
224d123c31 Translated using Weblate (German)
Currently translated at 86.0% (7719 of 8975 strings)
2019-01-05 17:04:53 +01:00
Stefanie Beck
2d29dab07d Translated using Weblate (German)
Currently translated at 86.0% (7718 of 8975 strings)
2019-01-05 17:02:38 +01:00
Nut Andor
9ac7d4673d Translated using Weblate (German)
Currently translated at 86.0% (7718 of 8975 strings)
2019-01-05 17:02:38 +01:00
Stefanie Beck
f20b59efd3 Translated using Weblate (German)
Currently translated at 85.9% (7710 of 8975 strings)
2019-01-05 16:57:38 +01:00
Nut Andor
6a5aec997e Translated using Weblate (German)
Currently translated at 85.9% (7710 of 8975 strings)
2019-01-05 16:57:38 +01:00
Stefanie Beck
fefc73be64 Translated using Weblate (German)
Currently translated at 85.8% (7705 of 8975 strings)
2019-01-05 16:53:18 +01:00
Hosted Weblate
a83f8c96da Merge branch 'origin/master' into Weblate. 2019-01-05 16:52:14 +01:00
Stefanie Beck
4089c5cfad Translated using Weblate (German)
Currently translated at 85.8% (7704 of 8975 strings)
2019-01-05 16:52:13 +01:00
Nut Andor
98be3b2e09 Translated using Weblate (German)
Currently translated at 85.8% (7704 of 8975 strings)
2019-01-05 16:52:13 +01:00
Zukero
70cdc53150 Fixed some malformed '%%' in NL translation. 2019-01-05 16:50:21 +01:00
Zukero
a95eed7bf8 Merge branch 'master' of https://hosted.weblate.org/git/andors-trail/user-interface/ 2019-01-05 16:48:17 +01:00
Stefanie Beck
acd17ee183 Translated using Weblate (German)
Currently translated at 85.8% (7703 of 8975 strings)
2019-01-05 16:46:37 +01:00
Nut Andor
fd31e7c1ec Translated using Weblate (German)
Currently translated at 85.8% (7703 of 8975 strings)
2019-01-05 16:46:37 +01:00
Stefanie Beck
c9114faac4 Translated using Weblate (German)
Currently translated at 85.8% (7700 of 8975 strings)
2019-01-05 16:45:32 +01:00
Nut Andor
821482d73c Translated using Weblate (German)
Currently translated at 85.8% (7700 of 8975 strings)
2019-01-05 16:45:31 +01:00
Stefanie Beck
6bdbe5ad81 Translated using Weblate (German)
Currently translated at 85.8% (7697 of 8975 strings)
2019-01-05 16:44:06 +01:00
Nut Andor
221a886d51 Translated using Weblate (German)
Currently translated at 85.8% (7697 of 8975 strings)
2019-01-05 16:44:06 +01:00
Zukero
36bba14876 Fixed help encoding & formatting in French translation. 2019-01-05 16:43:54 +01:00
Stefanie Beck
c9113f2e73 Translated using Weblate (German)
Currently translated at 85.7% (7695 of 8975 strings)
2019-01-05 16:43:17 +01:00
Nut Andor
08cab146c0 Translated using Weblate (German)
Currently translated at 85.7% (7695 of 8975 strings)
2019-01-05 16:43:16 +01:00
Stefanie Beck
2e280e26bc Translated using Weblate (German)
Currently translated at 85.7% (7688 of 8975 strings)
2019-01-05 16:42:03 +01:00
Nut Andor
3720f2c4a2 Translated using Weblate (German)
Currently translated at 85.7% (7688 of 8975 strings)
2019-01-05 16:42:02 +01:00
Stefanie Beck
ff84734968 Translated using Weblate (German)
Currently translated at 85.6% (7686 of 8975 strings)
2019-01-05 16:41:22 +01:00
Nut Andor
c7901171dd Translated using Weblate (German)
Currently translated at 85.6% (7686 of 8975 strings)
2019-01-05 16:41:21 +01:00
Stefanie Beck
7cdb2f33ec Translated using Weblate (German)
Currently translated at 85.5% (7677 of 8975 strings)
2019-01-05 16:34:34 +01:00
Nut Andor
53ddf899c1 Translated using Weblate (German)
Currently translated at 85.5% (7677 of 8975 strings)
2019-01-05 16:34:34 +01:00
Hosted Weblate
b81b33279b Merge branch 'origin/master' into Weblate. 2019-01-05 16:30:10 +01:00
Asiel Diaz Benitez
40718a61d2 Translated using Weblate (Spanish)
Currently translated at 18.0% (1617 of 8975 strings)
2019-01-05 16:30:08 +01:00
Anderson Nogueira
0d810e7724 Translated using Weblate (Portuguese (Brazil))
Currently translated at 73.0% (6555 of 8975 strings)
2019-01-05 16:30:05 +01:00
Stefanie Beck
6a54b46b5b Translated using Weblate (German)
Currently translated at 85.4% (7668 of 8975 strings)
2019-01-05 16:29:58 +01:00
Nut Andor
0871301657 Translated using Weblate (German)
Currently translated at 85.4% (7668 of 8975 strings)
2019-01-05 16:29:57 +01:00
Gilles Peeters
d7da828da2 Translated using Weblate (Dutch)
Currently translated at 9.5% (855 of 8975 strings)
2019-01-05 16:29:48 +01:00
Matteo Zannini
ec4696d1de Translated using Weblate (Italian)
Currently translated at 99.6% (520 of 522 strings)
2019-01-05 16:29:35 +01:00
Gilles Peeters
a0eab35d64 Translated using Weblate (Dutch)
Currently translated at 100.0% (522 of 522 strings)
2019-01-05 16:29:34 +01:00
Zukero
b48e9141ef Fixed parameters issues in translated strings. 2019-01-05 16:28:02 +01:00
Zukero
a179499b1b Merge branch 'master' of https://hosted.weblate.org/git/andors-trail/user-interface/ 2019-01-05 15:53:25 +01:00
Stefanie Beck
ec3eda47bd Translated using Weblate (German)
Currently translated at 85.4% (7662 of 8975 strings)
2019-01-05 10:46:20 +01:00
Nut Andor
4d0000e4e9 Translated using Weblate (German)
Currently translated at 85.4% (7662 of 8975 strings)
2019-01-05 10:46:20 +01:00
Stefanie Beck
ea9189be08 Translated using Weblate (German)
Currently translated at 85.4% (7661 of 8975 strings)
2019-01-05 10:44:55 +01:00
Nut Andor
5a5efd9068 Translated using Weblate (German)
Currently translated at 85.4% (7661 of 8975 strings)
2019-01-05 10:44:54 +01:00
Stefanie Beck
1f4b98602e Translated using Weblate (German)
Currently translated at 85.3% (7656 of 8975 strings)
2019-01-05 10:40:24 +01:00
Nut Andor
5b0bbc6491 Translated using Weblate (German)
Currently translated at 85.3% (7656 of 8975 strings)
2019-01-05 10:40:24 +01:00
Stefanie Beck
88e47701f1 Translated using Weblate (German)
Currently translated at 85.3% (7655 of 8975 strings)
2019-01-05 10:39:22 +01:00
Nut Andor
85aade0db3 Translated using Weblate (German)
Currently translated at 85.3% (7655 of 8975 strings)
2019-01-05 10:39:21 +01:00
Stefanie Beck
67b1618d80 Translated using Weblate (German)
Currently translated at 85.0% (7633 of 8975 strings)
2019-01-05 10:22:25 +01:00
Nut Andor
fc04f124d3 Translated using Weblate (German)
Currently translated at 85.0% (7633 of 8975 strings)
2019-01-05 10:22:24 +01:00
Stefanie Beck
17b4bddac1 Translated using Weblate (German)
Currently translated at 85.0% (7631 of 8975 strings)
2019-01-05 10:21:45 +01:00
Nut Andor
7561b89d5d Translated using Weblate (German)
Currently translated at 85.0% (7631 of 8975 strings)
2019-01-05 10:21:45 +01:00
Stefanie Beck
2059b2c9e8 Translated using Weblate (German)
Currently translated at 85.0% (7629 of 8975 strings)
2019-01-05 10:17:02 +01:00
Nut Andor
9d7d2e1503 Translated using Weblate (German)
Currently translated at 85.0% (7629 of 8975 strings)
2019-01-05 10:17:02 +01:00
Stefanie Beck
93a8af0c82 Translated using Weblate (German)
Currently translated at 85.0% (7628 of 8975 strings)
2019-01-05 10:16:35 +01:00
Nut Andor
581190bcd1 Translated using Weblate (German)
Currently translated at 85.0% (7628 of 8975 strings)
2019-01-05 10:16:34 +01:00
Stefanie Beck
a9cac251c0 Translated using Weblate (German)
Currently translated at 85.0% (7626 of 8975 strings)
2019-01-05 10:09:10 +01:00
Nut Andor
04b0ef5e3d Translated using Weblate (German)
Currently translated at 85.0% (7626 of 8975 strings)
2019-01-05 10:09:10 +01:00
Stefanie Beck
3a607187ad Translated using Weblate (German)
Currently translated at 84.9% (7617 of 8975 strings)
2019-01-05 09:56:17 +01:00
Nut Andor
be1130293a Translated using Weblate (German)
Currently translated at 84.9% (7617 of 8975 strings)
2019-01-05 09:56:16 +01:00
Stefanie Beck
737dd397ad Translated using Weblate (German)
Currently translated at 84.8% (7614 of 8975 strings)
2019-01-05 09:53:56 +01:00
Nut Andor
57aba5f10a Translated using Weblate (German)
Currently translated at 84.8% (7614 of 8975 strings)
2019-01-05 09:53:55 +01:00
Stefanie Beck
010bd81d21 Translated using Weblate (German)
Currently translated at 84.8% (7611 of 8975 strings)
2019-01-05 09:51:18 +01:00
Nut Andor
cddc58a4cd Translated using Weblate (German)
Currently translated at 84.8% (7611 of 8975 strings)
2019-01-05 09:51:18 +01:00
Stefanie Beck
b3d1428344 Translated using Weblate (German)
Currently translated at 84.7% (7602 of 8975 strings)
2019-01-05 09:43:33 +01:00
Nut Andor
65974eca18 Translated using Weblate (German)
Currently translated at 84.7% (7602 of 8975 strings)
2019-01-05 09:43:33 +01:00
Stefanie Beck
4258ed3e8f Translated using Weblate (German)
Currently translated at 84.7% (7601 of 8975 strings)
2019-01-05 09:43:05 +01:00
Nut Andor
6adac0480c Translated using Weblate (German)
Currently translated at 84.7% (7601 of 8975 strings)
2019-01-05 09:43:04 +01:00
Stefanie Beck
af91b79017 Translated using Weblate (German)
Currently translated at 84.6% (7597 of 8975 strings)
2019-01-05 09:39:24 +01:00
Nut Andor
f95fea7e86 Translated using Weblate (German)
Currently translated at 84.6% (7597 of 8975 strings)
2019-01-05 09:39:23 +01:00
Stefanie Beck
6c52e39dd9 Translated using Weblate (German)
Currently translated at 84.6% (7590 of 8975 strings)
2019-01-05 09:37:52 +01:00
Nut Andor
4dc28b40d7 Translated using Weblate (German)
Currently translated at 84.6% (7590 of 8975 strings)
2019-01-05 09:37:52 +01:00
Stefanie Beck
9cb388d987 Translated using Weblate (German)
Currently translated at 84.5% (7587 of 8975 strings)
2019-01-05 09:34:43 +01:00
Nut Andor
b4166634e9 Translated using Weblate (German)
Currently translated at 84.5% (7587 of 8975 strings)
2019-01-05 09:34:43 +01:00
Stefanie Beck
5a32397b2a Translated using Weblate (German)
Currently translated at 84.5% (7586 of 8975 strings)
2019-01-05 09:32:21 +01:00
Nut Andor
422cc26b8b Translated using Weblate (German)
Currently translated at 84.5% (7586 of 8975 strings)
2019-01-05 09:32:20 +01:00
Stefanie Beck
1f201854b1 Translated using Weblate (German)
Currently translated at 84.5% (7584 of 8975 strings)
2019-01-05 09:30:39 +01:00
Nut Andor
a6c1934c9e Translated using Weblate (German)
Currently translated at 84.5% (7584 of 8975 strings)
2019-01-05 09:30:39 +01:00
Stefanie Beck
4680507991 Translated using Weblate (German)
Currently translated at 84.5% (7583 of 8975 strings)
2019-01-05 09:29:59 +01:00
Nut Andor
f988d6394d Translated using Weblate (German)
Currently translated at 84.5% (7583 of 8975 strings)
2019-01-05 09:29:58 +01:00
Stefanie Beck
c3d71c8883 Translated using Weblate (German)
Currently translated at 84.4% (7577 of 8975 strings)
2019-01-05 09:28:07 +01:00
Nut Andor
7294f037ad Translated using Weblate (German)
Currently translated at 84.4% (7577 of 8975 strings)
2019-01-05 09:28:07 +01:00
Stefanie Beck
1cf5e96891 Translated using Weblate (German)
Currently translated at 84.4% (7574 of 8975 strings)
2019-01-05 09:22:28 +01:00
Nut Andor
6f18bd5780 Translated using Weblate (German)
Currently translated at 84.4% (7574 of 8975 strings)
2019-01-05 09:22:28 +01:00
Stefanie Beck
9ecfc30c4b Translated using Weblate (German)
Currently translated at 84.4% (7573 of 8975 strings)
2019-01-05 09:20:50 +01:00
Nut Andor
e7fdc579bc Translated using Weblate (German)
Currently translated at 84.4% (7573 of 8975 strings)
2019-01-05 09:20:50 +01:00
Stefanie Beck
7eda63a028 Translated using Weblate (German)
Currently translated at 84.4% (7572 of 8975 strings)
2019-01-05 09:20:23 +01:00
Nut Andor
adce0e0b84 Translated using Weblate (German)
Currently translated at 84.4% (7572 of 8975 strings)
2019-01-05 09:20:23 +01:00
Stefanie Beck
08f19f35bf Translated using Weblate (German)
Currently translated at 84.4% (7571 of 8975 strings)
2019-01-05 09:20:05 +01:00
Nut Andor
d3c99049b3 Translated using Weblate (German)
Currently translated at 84.4% (7571 of 8975 strings)
2019-01-05 09:20:04 +01:00
Stefanie Beck
dcb1bbcbe1 Translated using Weblate (German)
Currently translated at 84.3% (7570 of 8975 strings)
2019-01-05 09:19:43 +01:00
Nut Andor
4cca198ea7 Translated using Weblate (German)
Currently translated at 84.3% (7570 of 8975 strings)
2019-01-05 09:19:42 +01:00
Stefanie Beck
edeab2eab9 Translated using Weblate (German)
Currently translated at 84.2% (7555 of 8975 strings)
2019-01-05 01:11:22 +01:00
Nut Andor
e6663a6ec6 Translated using Weblate (German)
Currently translated at 84.2% (7555 of 8975 strings)
2019-01-05 01:11:22 +01:00
Stefanie Beck
86c2dd926c Translated using Weblate (German)
Currently translated at 84.2% (7553 of 8975 strings)
2019-01-05 01:10:46 +01:00
Nut Andor
fa8f763db4 Translated using Weblate (German)
Currently translated at 84.2% (7553 of 8975 strings)
2019-01-05 01:10:46 +01:00
Stefanie Beck
dba3c62fde Translated using Weblate (German)
Currently translated at 84.1% (7551 of 8975 strings)
2019-01-05 01:09:21 +01:00
Nut Andor
374aee5df3 Translated using Weblate (German)
Currently translated at 84.1% (7551 of 8975 strings)
2019-01-05 01:09:20 +01:00
Stefanie Beck
4712564007 Translated using Weblate (German)
Currently translated at 84.1% (7548 of 8975 strings)
2019-01-05 01:07:54 +01:00
Nut Andor
e53de04027 Translated using Weblate (German)
Currently translated at 84.1% (7548 of 8975 strings)
2019-01-05 01:07:53 +01:00
Stefanie Beck
63b8fdfe0a Translated using Weblate (German)
Currently translated at 84.0% (7540 of 8975 strings)
2019-01-05 00:51:32 +01:00
Nut Andor
ff508fb20c Translated using Weblate (German)
Currently translated at 84.0% (7540 of 8975 strings)
2019-01-05 00:51:31 +01:00
Stefanie Beck
30b78715a2 Translated using Weblate (German)
Currently translated at 84.0% (7539 of 8975 strings)
2019-01-05 00:35:54 +01:00
Nut Andor
4b6a05bb0a Translated using Weblate (German)
Currently translated at 84.0% (7539 of 8975 strings)
2019-01-05 00:35:53 +01:00
Stefanie Beck
e598be0db2 Translated using Weblate (German)
Currently translated at 84.0% (7537 of 8975 strings)
2019-01-05 00:31:59 +01:00
Nut Andor
4e15889265 Translated using Weblate (German)
Currently translated at 84.0% (7537 of 8975 strings)
2019-01-05 00:31:59 +01:00
Stefanie Beck
a7c0a9a83d Translated using Weblate (German)
Currently translated at 83.9% (7533 of 8975 strings)
2019-01-05 00:17:16 +01:00
Nut Andor
f1039814bb Translated using Weblate (German)
Currently translated at 83.9% (7533 of 8975 strings)
2019-01-05 00:17:16 +01:00
Stefanie Beck
129134f4d8 Translated using Weblate (German)
Currently translated at 83.9% (7530 of 8975 strings)
2019-01-05 00:14:11 +01:00
Nut Andor
e812b83bd7 Translated using Weblate (German)
Currently translated at 83.9% (7530 of 8975 strings)
2019-01-05 00:14:11 +01:00
Stefanie Beck
a80e4b2557 Translated using Weblate (German)
Currently translated at 83.8% (7523 of 8975 strings)
2019-01-05 00:08:31 +01:00
Nut Andor
2d0d2cd3da Translated using Weblate (German)
Currently translated at 83.8% (7523 of 8975 strings)
2019-01-05 00:08:31 +01:00
Stefanie Beck
09ed78e51f Translated using Weblate (German)
Currently translated at 83.8% (7517 of 8975 strings)
2019-01-04 23:59:01 +01:00
Nut Andor
2e1963f76b Translated using Weblate (German)
Currently translated at 83.8% (7517 of 8975 strings)
2019-01-04 23:59:01 +01:00
Stefanie Beck
661f7536d7 Translated using Weblate (German)
Currently translated at 83.7% (7516 of 8975 strings)
2019-01-04 23:55:57 +01:00
Nut Andor
17aee85321 Translated using Weblate (German)
Currently translated at 83.7% (7516 of 8975 strings)
2019-01-04 23:55:56 +01:00
Stefanie Beck
647199131e Translated using Weblate (German)
Currently translated at 83.7% (7508 of 8975 strings)
2019-01-04 23:46:35 +01:00
Anderson Nogueira
900d55dcc0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (522 of 522 strings)
2019-01-04 17:40:29 +01:00
Bervianto Leo Pratama
bce19afcbd Translated using Weblate (Dutch)
Currently translated at 8.4% (758 of 8975 strings)
2019-01-04 14:23:38 +01:00
Gilles Peeters
b55917f087 Translated using Weblate (Dutch)
Currently translated at 8.4% (758 of 8975 strings)
2019-01-04 14:23:38 +01:00
Bervianto Leo Pratama
d080d0fd37 Translated using Weblate (Dutch)
Currently translated at 8.4% (758 of 8975 strings)
2019-01-04 14:23:09 +01:00
Gilles Peeters
6216df0e24 Translated using Weblate (Dutch)
Currently translated at 8.4% (758 of 8975 strings)
2019-01-04 14:23:09 +01:00
soloply
e1e73955a4 Translated using Weblate (Russian)
Currently translated at 100.0% (8975 of 8975 strings)
2019-01-04 02:06:20 +01:00
Lunovox Heavenfinder
7017432b9f Translated using Weblate (Portuguese)
Currently translated at 65.1% (5839 of 8975 strings)
2019-01-04 02:06:19 +01:00
roberto
7cc4341bdc Translated using Weblate (Italian)
Currently translated at 99.9% (8969 of 8975 strings)
2019-01-04 02:06:15 +01:00
Stefanie Beck
3f9ad36a2e Translated using Weblate (German)
Currently translated at 83.6% (7507 of 8975 strings)
2019-01-04 02:06:09 +01:00
Nut Andor
187e44a289 Translated using Weblate (German)
Currently translated at 83.6% (7507 of 8975 strings)
2019-01-04 02:06:05 +01:00
Michael de Bruin
b1922122f7 Translated using Weblate (Dutch)
Currently translated at 8.0% (716 of 8975 strings)
2019-01-04 02:05:57 +01:00
Ghosten 360
7a9f78558e Translated using Weblate (Spanish)
Currently translated at 84.5% (441 of 522 strings)
2019-01-04 02:05:53 +01:00
syl
01948289a6 Translated using Weblate (French)
Currently translated at 100.0% (522 of 522 strings)
2019-01-04 02:05:52 +01:00
Michael de Bruin
0a7aff98ad Translated using Weblate (Dutch)
Currently translated at 87.7% (458 of 522 strings)
2019-01-04 02:05:51 +01:00
Ghosten 360
84d8ea365f Translated using Weblate (Catalan)
Currently translated at 69.9% (365 of 522 strings)
2019-01-04 02:05:50 +01:00
Nut Andor
a0cc1d19a1 Translated using Weblate (German)
Currently translated at 83.5% (7495 of 8975 strings)
2019-01-04 00:05:51 +01:00
Stefanie Beck
1c16f09772 Translated using Weblate (German)
Currently translated at 83.5% (7495 of 8975 strings)
2019-01-04 00:05:50 +01:00
Zukero
b423b3cf69 Added code to patch legacy saves to adapt to conflicts with new content. 2019-01-03 14:27:03 +01:00
Zukero
665d140f04 Merge branch 'master' of https://github.com/Zukero/andors-trail.git 2019-01-03 13:06:20 +01:00
Zukero
cf3a40072f Fixed rare NPE on loading game. Fixed encoding on worldmap. 2019-01-03 13:05:54 +01:00
roberto
7d0d637546 Translated using Weblate (Italian)
Currently translated at 99.9% (8968 of 8975 strings)
2019-01-01 01:08:33 +01:00
Nut Andor
cbb919d395 Translated using Weblate (German)
Currently translated at 82.2% (7375 of 8975 strings)
2019-01-01 01:08:27 +01:00
Stefanie Beck
555dfd97f1 Translated using Weblate (German)
Currently translated at 82.2% (7375 of 8975 strings)
2019-01-01 01:08:26 +01:00
Nut Andor
59ad00b5a9 Translated using Weblate (German)
Currently translated at 82.1% (7369 of 8975 strings)
2018-12-29 22:11:39 +01:00
Stefanie Beck
aa1312dbf2 Translated using Weblate (German)
Currently translated at 82.1% (7369 of 8975 strings)
2018-12-29 22:11:38 +01:00
Nut Andor
8db986141e Translated using Weblate (German)
Currently translated at 81.9% (7352 of 8975 strings)
2018-12-29 22:03:21 +01:00
Stefanie Beck
287c38b2b6 Translated using Weblate (German)
Currently translated at 81.9% (7352 of 8975 strings)
2018-12-29 22:03:20 +01:00
Nut Andor
df14527ef5 Translated using Weblate (German)
Currently translated at 81.9% (7347 of 8975 strings)
2018-12-29 22:01:42 +01:00
Stefanie Beck
c55b74a551 Translated using Weblate (German)
Currently translated at 81.9% (7347 of 8975 strings)
2018-12-29 22:01:41 +01:00
Nut Andor
32cd7ec2db Translated using Weblate (German)
Currently translated at 81.8% (7339 of 8975 strings)
2018-12-29 21:58:06 +01:00
Stefanie Beck
89bf42d561 Translated using Weblate (German)
Currently translated at 81.8% (7339 of 8975 strings)
2018-12-29 21:58:06 +01:00
Nut Andor
a0afe99d89 Translated using Weblate (German)
Currently translated at 81.6% (7323 of 8975 strings)
2018-12-29 21:47:59 +01:00
Stefanie Beck
860e4f1bf4 Translated using Weblate (German)
Currently translated at 81.6% (7323 of 8975 strings)
2018-12-29 21:47:59 +01:00
Nut Andor
716176cd97 Translated using Weblate (German)
Currently translated at 81.6% (7322 of 8975 strings)
2018-12-29 21:47:23 +01:00
Stefanie Beck
4c44fc78f6 Translated using Weblate (German)
Currently translated at 81.6% (7322 of 8975 strings)
2018-12-29 21:47:23 +01:00
Nut Andor
ed7ed31df9 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 21:07:05 +01:00
Alain
9bc4a324d9 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 21:07:04 +01:00
Stefanie Beck
ea919c8c7d Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 21:07:04 +01:00
Nut Andor
1cb64e240c Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 21:02:45 +01:00
Stefanie Beck
d00e22b6d8 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 21:02:44 +01:00
Alain
590601621b Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 21:01:30 +01:00
Stefanie Beck
8599a6ba6f Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 21:01:30 +01:00
Alain
01d1fc2cba Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:59:53 +01:00
Stefanie Beck
09d6c7efa9 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:59:52 +01:00
Alain
06ce9c8463 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:55:03 +01:00
Stefanie Beck
55e0456b2b Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:55:02 +01:00
Alain
b99ee81579 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:35:20 +01:00
Stefanie Beck
deecb226ef Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:35:20 +01:00
Alain
b28029a8de Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:33:43 +01:00
Nut Andor
9c3d508398 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:33:43 +01:00
Stefanie Beck
55496d7cf6 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:33:42 +01:00
Alain
9929a226ed Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:24:16 +01:00
Stefanie Beck
ec9fbb56f1 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:24:16 +01:00
Stefanie Beck
7dfbff2855 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:22:45 +01:00
Nut Andor
a88db43c34 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-29 20:22:44 +01:00
Zukero
d01f2d533c Merge pull request #97 from fedde-s/patch-1
Fix a typo in the Stoutford gate guard's stories
2018-12-29 01:07:10 +01:00
Fedde Schaeffer
6eeaf0a3a7 Fix a typo in the Stoutford gate guard's stories
I noticed this while playing the game; a search of the rest of the source 
code confirms that it's a typo.
2018-12-29 00:12:10 +01:00
mb
944dc770fb Translated using Weblate (Polish)
Currently translated at 71.4% (6412 of 8975 strings)
2018-12-28 22:08:28 +01:00
soloply
b9a12763b9 Translated using Weblate (Russian)
Currently translated at 100.0% (522 of 522 strings)
2018-12-26 22:08:18 +01:00
Viktar Vauchkevich
6c2a42edbe Translated using Weblate (Belarusian)
Currently translated at 100.0% (522 of 522 strings)
2018-12-26 22:08:16 +01:00
soloply
5f7023a88b Translated using Weblate (Russian)
Currently translated at 100.0% (8975 of 8975 strings)
2018-12-24 21:08:18 +01:00
Anderson Nogueira
7b25c3b297 Translated using Weblate (Portuguese (Brazil))
Currently translated at 72.3% (6493 of 8975 strings)
2018-12-24 21:08:14 +01:00
Stefanie Beck
a559347488 Translated using Weblate (German)
Currently translated at 80.7% (7243 of 8975 strings)
2018-12-24 12:32:31 +01:00
Stefanie Beck
dab7be303d Translated using Weblate (German)
Currently translated at 80.2% (7195 of 8975 strings)
2018-12-22 10:16:18 +01:00
Alain
2296c8b1a5 Translated using Weblate (German)
Currently translated at 80.2% (7195 of 8975 strings)
2018-12-22 10:16:15 +01:00
roberto
327b23d3d8 Translated using Weblate (Italian)
Currently translated at 99.9% (8968 of 8975 strings)
2018-12-20 09:08:16 +01:00
Nut Andor
b73087223c Translated using Weblate (German)
Currently translated at 79.9% (7170 of 8975 strings)
2018-12-20 09:08:13 +01:00
Stefanie Beck
ba0c94d131 Translated using Weblate (German)
Currently translated at 79.9% (7170 of 8975 strings)
2018-12-20 09:08:13 +01:00
soloply
097d0ba4da Translated using Weblate (Russian)
Currently translated at 100.0% (522 of 522 strings)
2018-12-20 09:08:05 +01:00
Nut Andor
0ffc49033e Translated using Weblate (German)
Currently translated at 79.4% (7122 of 8975 strings)
2018-12-19 17:30:34 +01:00
Stefanie Beck
633841f4f7 Translated using Weblate (German)
Currently translated at 79.4% (7122 of 8975 strings)
2018-12-19 17:30:33 +01:00
Nut Andor
4b393e3277 Translated using Weblate (German)
Currently translated at 79.3% (7119 of 8975 strings)
2018-12-19 17:28:43 +01:00
Michaem
a68e2248dc Translated using Weblate (German)
Currently translated at 79.3% (7119 of 8975 strings)
2018-12-19 17:28:42 +01:00
Alain
f26386dcaf Translated using Weblate (German)
Currently translated at 79.3% (7119 of 8975 strings)
2018-12-19 17:28:41 +01:00
Stefanie Beck
ebad56f638 Translated using Weblate (German)
Currently translated at 79.3% (7119 of 8975 strings)
2018-12-19 17:28:40 +01:00
Alain
1481cb3e8f Translated using Weblate (German)
Currently translated at 78.8% (7072 of 8975 strings)
2018-12-17 22:23:09 +01:00
Stefanie Beck
f205de869d Translated using Weblate (German)
Currently translated at 78.8% (7072 of 8975 strings)
2018-12-17 22:23:09 +01:00
Alain
1185b37ce8 Translated using Weblate (German)
Currently translated at 78.8% (7070 of 8975 strings)
2018-12-17 22:22:19 +01:00
Stefanie Beck
e1e3f49c25 Translated using Weblate (German)
Currently translated at 78.8% (7070 of 8975 strings)
2018-12-17 22:22:19 +01:00
Nut Andor
00582d55c3 Translated using Weblate (German)
Currently translated at 78.7% (7066 of 8975 strings)
2018-12-17 16:08:09 +01:00
Stefanie Beck
5af80a5943 Translated using Weblate (German)
Currently translated at 78.7% (7066 of 8975 strings)
2018-12-17 16:08:08 +01:00
Osoitz
198e7ec4ad Translated using Weblate (Basque)
Currently translated at 65.5% (342 of 522 strings)
2018-12-17 16:08:00 +01:00
Nut Andor
b37c73902d Translated using Weblate (German)
Currently translated at 78.1% (7012 of 8975 strings)
2018-12-17 13:16:23 +01:00
Stefanie Beck
df483081f5 Translated using Weblate (German)
Currently translated at 78.1% (7012 of 8975 strings)
2018-12-17 13:16:23 +01:00
Nut Andor
937b2c9341 Translated using Weblate (German)
Currently translated at 78.0% (7000 of 8975 strings)
2018-12-17 13:10:13 +01:00
Stefanie Beck
531c90273c Translated using Weblate (German)
Currently translated at 78.0% (7000 of 8975 strings)
2018-12-17 13:10:09 +01:00
Nut Andor
8e1b7d1749 Translated using Weblate (German)
Currently translated at 78.0% (6999 of 8975 strings)
2018-12-17 13:09:53 +01:00
Stefanie Beck
67717db967 Translated using Weblate (German)
Currently translated at 78.0% (6999 of 8975 strings)
2018-12-17 13:09:52 +01:00
Nut Andor
feb9e3fe07 Translated using Weblate (German)
Currently translated at 77.9% (6996 of 8975 strings)
2018-12-17 13:08:08 +01:00
Stefanie Beck
76d5af542f Translated using Weblate (German)
Currently translated at 77.9% (6996 of 8975 strings)
2018-12-17 13:08:07 +01:00
Nut Andor
92fe572328 Translated using Weblate (German)
Currently translated at 77.8% (6986 of 8975 strings)
2018-12-17 13:01:31 +01:00
Nut Andor
20a3d327e9 Translated using Weblate (German)
Currently translated at 77.7% (6977 of 8975 strings)
2018-12-17 12:56:51 +01:00
Stefanie Beck
962f9b1b42 Translated using Weblate (German)
Currently translated at 77.7% (6977 of 8975 strings)
2018-12-17 12:56:50 +01:00
soloply
a1e0ae05ab Translated using Weblate (Russian)
Currently translated at 100.0% (8975 of 8975 strings)
2018-12-16 07:08:14 +01:00
roberto
f4b0a2d1de Translated using Weblate (Italian)
Currently translated at 99.9% (8968 of 8975 strings)
2018-12-16 07:08:11 +01:00
soloply
4ecce49bb4 Translated using Weblate (Italian)
Currently translated at 99.9% (8968 of 8975 strings)
2018-12-16 07:08:08 +01:00
Stefanie Beck
6074135705 Translated using Weblate (German)
Currently translated at 76.3% (6847 of 8975 strings)
2018-12-16 07:08:06 +01:00
Nut Andor
fa8ade752e Translated using Weblate (German)
Currently translated at 76.3% (6847 of 8975 strings)
2018-12-16 07:08:04 +01:00
Patten Kuo
a9d53fc8f7 Translated using Weblate (Chinese (Simplified))
Currently translated at 3.6% (19 of 522 strings)
2018-12-16 07:07:57 +01:00
Alain
6db8eb014e Translated using Weblate (German)
Currently translated at 75.9% (6810 of 8975 strings)
2018-12-16 03:37:10 +01:00
Stefanie Beck
8db207038b Translated using Weblate (German)
Currently translated at 75.9% (6810 of 8975 strings)
2018-12-16 03:37:09 +01:00
Alain
201ef811b3 Translated using Weblate (German)
Currently translated at 75.6% (6785 of 8975 strings)
2018-12-14 15:00:59 +01:00
Stefanie Beck
f3ecd9ce86 Translated using Weblate (German)
Currently translated at 75.6% (6785 of 8975 strings)
2018-12-14 15:00:59 +01:00
Alain
9b91ded26e Translated using Weblate (German)
Currently translated at 75.6% (6783 of 8975 strings)
2018-12-14 15:00:25 +01:00
Stefanie Beck
dbc93a21f9 Translated using Weblate (German)
Currently translated at 75.6% (6783 of 8975 strings)
2018-12-14 15:00:25 +01:00
Alain
1d9c27275f Translated using Weblate (German)
Currently translated at 75.5% (6780 of 8975 strings)
2018-12-14 14:59:20 +01:00
Stefanie Beck
ea51f388be Translated using Weblate (German)
Currently translated at 75.5% (6780 of 8975 strings)
2018-12-14 14:59:20 +01:00
Alain
435db747ca Translated using Weblate (German)
Currently translated at 75.5% (6776 of 8975 strings)
2018-12-14 14:58:27 +01:00
Stefanie Beck
34b84b9483 Translated using Weblate (German)
Currently translated at 75.5% (6776 of 8975 strings)
2018-12-14 14:58:27 +01:00
Alain
7edabecbad Translated using Weblate (German)
Currently translated at 75.5% (6773 of 8975 strings)
2018-12-14 14:56:57 +01:00
Stefanie Beck
8d6aeca9d6 Translated using Weblate (German)
Currently translated at 75.5% (6773 of 8975 strings)
2018-12-14 14:56:57 +01:00
Alain
1842c865c6 Translated using Weblate (German)
Currently translated at 75.5% (6772 of 8975 strings)
2018-12-14 14:56:23 +01:00
Stefanie Beck
86567aee83 Translated using Weblate (German)
Currently translated at 75.5% (6772 of 8975 strings)
2018-12-14 14:56:22 +01:00
Alain
98dfa7afca Translated using Weblate (German)
Currently translated at 75.4% (6767 of 8975 strings)
2018-12-14 14:55:17 +01:00
Stefanie Beck
663db0f2d3 Translated using Weblate (German)
Currently translated at 75.4% (6767 of 8975 strings)
2018-12-14 14:55:17 +01:00
Alain
6c214351cb Translated using Weblate (German)
Currently translated at 75.4% (6766 of 8975 strings)
2018-12-14 14:54:44 +01:00
Stefanie Beck
88a1eac76e Translated using Weblate (German)
Currently translated at 75.4% (6766 of 8975 strings)
2018-12-14 14:54:44 +01:00
Alain
32eaac0f13 Translated using Weblate (German)
Currently translated at 75.3% (6762 of 8975 strings)
2018-12-14 14:51:57 +01:00
Stefanie Beck
e43fbdfd00 Translated using Weblate (German)
Currently translated at 75.3% (6762 of 8975 strings)
2018-12-14 14:51:57 +01:00
Alain
32d040bedc Translated using Weblate (German)
Currently translated at 75.3% (6761 of 8975 strings)
2018-12-14 14:51:20 +01:00
Stefanie Beck
753ca989db Translated using Weblate (German)
Currently translated at 75.3% (6761 of 8975 strings)
2018-12-14 14:51:19 +01:00
Alain
3d6301f2d9 Translated using Weblate (German)
Currently translated at 75.3% (6755 of 8975 strings)
2018-12-14 12:02:44 +01:00
Stefanie Beck
4b18cbaaa7 Translated using Weblate (German)
Currently translated at 75.3% (6755 of 8975 strings)
2018-12-14 12:02:44 +01:00
Alain
d5eea1e73c Translated using Weblate (German)
Currently translated at 75.2% (6751 of 8975 strings)
2018-12-14 12:01:26 +01:00
Stefanie Beck
b6575393ed Translated using Weblate (German)
Currently translated at 75.2% (6751 of 8975 strings)
2018-12-14 12:01:25 +01:00
Alain
b90de2fdf4 Translated using Weblate (German)
Currently translated at 75.2% (6750 of 8975 strings)
2018-12-14 11:59:25 +01:00
Stefanie Beck
068d7b9c0a Translated using Weblate (German)
Currently translated at 75.2% (6750 of 8975 strings)
2018-12-14 11:59:24 +01:00
Alain
8aa186acab Translated using Weblate (German)
Currently translated at 75.2% (6749 of 8975 strings)
2018-12-14 11:57:43 +01:00
Stefanie Beck
69a4e08c2b Translated using Weblate (German)
Currently translated at 75.2% (6749 of 8975 strings)
2018-12-14 11:57:43 +01:00
Stefanie Beck
c942181eef Translated using Weblate (German)
Currently translated at 75.2% (6747 of 8975 strings)
2018-12-14 11:55:55 +01:00
Alain
7c864ac17f Translated using Weblate (German)
Currently translated at 75.2% (6747 of 8975 strings)
2018-12-14 11:55:51 +01:00
Alain
ac6fc022e4 Translated using Weblate (German)
Currently translated at 74.4% (6680 of 8975 strings)
2018-12-14 09:06:25 +01:00
Stefanie Beck
acf1c77f07 Translated using Weblate (German)
Currently translated at 74.4% (6680 of 8975 strings)
2018-12-14 09:06:24 +01:00
Alain
071d555e19 Translated using Weblate (German)
Currently translated at 73.2% (6571 of 8975 strings)
2018-12-13 19:15:45 +01:00
Stefanie Beck
7ba33d451a Translated using Weblate (German)
Currently translated at 73.2% (6571 of 8975 strings)
2018-12-13 19:15:42 +01:00
Alain
62b4a37792 Translated using Weblate (German)
Currently translated at 73.2% (6569 of 8975 strings)
2018-12-13 19:15:13 +01:00
Stefanie Beck
f5ff1a512a Translated using Weblate (German)
Currently translated at 73.2% (6569 of 8975 strings)
2018-12-13 19:15:13 +01:00
Alain
0bd61c6877 Translated using Weblate (German)
Currently translated at 73.2% (6566 of 8975 strings)
2018-12-13 19:13:06 +01:00
Stefanie Beck
95529b0aba Translated using Weblate (German)
Currently translated at 73.2% (6566 of 8975 strings)
2018-12-13 19:13:06 +01:00
Alain
daa47e89fc Translated using Weblate (German)
Currently translated at 73.1% (6565 of 8975 strings)
2018-12-13 19:11:40 +01:00
Stefanie Beck
8c67a63252 Translated using Weblate (German)
Currently translated at 73.1% (6565 of 8975 strings)
2018-12-13 19:11:40 +01:00
Stefanie Beck
503dd1dc5e Translated using Weblate (German)
Currently translated at 72.1% (6474 of 8975 strings)
2018-12-13 18:37:19 +01:00
Alain
120fdd49cd Translated using Weblate (German)
Currently translated at 72.1% (6474 of 8975 strings)
2018-12-13 18:37:19 +01:00
Stefanie Beck
d3e079260d Translated using Weblate (German)
Currently translated at 72.1% (6473 of 8975 strings)
2018-12-13 18:37:00 +01:00
Alain
e4d1df1753 Translated using Weblate (German)
Currently translated at 72.1% (6473 of 8975 strings)
2018-12-13 18:36:59 +01:00
Stefanie Beck
d12a044e8c Translated using Weblate (German)
Currently translated at 72.1% (6472 of 8975 strings)
2018-12-13 18:36:02 +01:00
Alain
d24ca240c6 Translated using Weblate (German)
Currently translated at 72.1% (6472 of 8975 strings)
2018-12-13 18:36:01 +01:00
Alain
756b183bff Translated using Weblate (German)
Currently translated at 72.1% (6469 of 8975 strings)
2018-12-13 18:33:58 +01:00
Stefanie Beck
84c0a226a4 Translated using Weblate (German)
Currently translated at 72.1% (6469 of 8975 strings)
2018-12-13 18:33:57 +01:00
soloply
4f083dcef4 Translated using Weblate (Russian)
Currently translated at 100.0% (8975 of 8975 strings)
2018-12-13 17:56:00 +01:00
Alain
dea46a718b Translated using Weblate (German)
Currently translated at 72.0% (6458 of 8975 strings)
2018-12-13 17:52:16 +01:00
Stefanie Beck
6e783b023c Translated using Weblate (German)
Currently translated at 72.0% (6458 of 8975 strings)
2018-12-13 17:52:15 +01:00
Alain
cb9808d554 Translated using Weblate (German)
Currently translated at 71.9% (6456 of 8975 strings)
2018-12-13 17:51:28 +01:00
Stefanie Beck
424a31d906 Translated using Weblate (German)
Currently translated at 71.9% (6456 of 8975 strings)
2018-12-13 17:51:27 +01:00
Alain
458b469a82 Translated using Weblate (German)
Currently translated at 71.9% (6454 of 8975 strings)
2018-12-13 17:49:51 +01:00
Stefanie Beck
8a9661f0d0 Translated using Weblate (German)
Currently translated at 71.9% (6454 of 8975 strings)
2018-12-13 17:49:51 +01:00
Alain
e2bd2f0530 Translated using Weblate (German)
Currently translated at 71.9% (6452 of 8975 strings)
2018-12-13 17:49:26 +01:00
Stefanie Beck
20234655e6 Translated using Weblate (German)
Currently translated at 71.9% (6452 of 8975 strings)
2018-12-13 17:49:25 +01:00
Alain
9676e075cf Translated using Weblate (German)
Currently translated at 71.9% (6449 of 8975 strings)
2018-12-13 17:48:42 +01:00
Stefanie Beck
17dcbcb791 Translated using Weblate (German)
Currently translated at 71.9% (6449 of 8975 strings)
2018-12-13 17:48:42 +01:00
Alain
027e64481d Translated using Weblate (German)
Currently translated at 71.8% (6446 of 8975 strings)
2018-12-13 17:47:22 +01:00
Stefanie Beck
4c4df687ce Translated using Weblate (German)
Currently translated at 71.8% (6446 of 8975 strings)
2018-12-13 17:47:21 +01:00
soloply
103e7468d0 Translated using Weblate (Russian)
Currently translated at 100.0% (8975 of 8975 strings)
2018-12-13 06:09:17 +01:00
Lunovox Heavenfinder
011cc3a109 Translated using Weblate (Portuguese)
Currently translated at 64.9% (5829 of 8975 strings)
2018-12-13 06:08:42 +01:00
김현수
3a7a39e149 Translated using Weblate (Korean)
Currently translated at 2.1% (186 of 8975 strings)
2018-12-13 06:08:19 +01:00
roberto
6afdbe5154 Translated using Weblate (Italian)
Currently translated at 99.9% (8968 of 8975 strings)
2018-12-13 06:08:15 +01:00
Alain
1285499380 Translated using Weblate (German)
Currently translated at 71.7% (6436 of 8975 strings)
2018-12-13 06:08:11 +01:00
Mo Ro
fc7255576e Translated using Weblate (German)
Currently translated at 71.7% (6436 of 8975 strings)
2018-12-13 06:08:10 +01:00
Michaem
0457f54de5 Translated using Weblate (German)
Currently translated at 71.7% (6436 of 8975 strings)
2018-12-13 06:08:07 +01:00
Sahachai Pudthong
8fd6785db3 Translated using Weblate (Thai)
Currently translated at 9.0% (47 of 522 strings)
2018-12-13 06:07:58 +01:00
김현수
e975f8f1f1 Translated using Weblate (Korean)
Currently translated at 4.4% (23 of 522 strings)
2018-12-13 06:07:54 +01:00
김현수
fc557b7ba5 Translated using Weblate (Korean)
Currently translated at 1.6% (143 of 8975 strings)
2018-12-11 23:50:21 +01:00
soloply
b9f79d6e6b Translated using Weblate (Russian)
Currently translated at 100.0% (8975 of 8975 strings)
2018-12-10 08:08:06 +01:00
Lunovox Heavenfinder
25b871c211 Translated using Weblate (Portuguese)
Currently translated at 60.4% (5424 of 8975 strings)
2018-12-10 08:08:03 +01:00
roberto
a8b48fcdc1 Translated using Weblate (Italian)
Currently translated at 99.9% (8968 of 8975 strings)
2018-12-10 08:07:54 +01:00
Lunovox Heavenfinder
67dc1b8cd4 Translated using Weblate (Portuguese)
Currently translated at 100.0% (522 of 522 strings)
2018-12-10 08:07:47 +01:00
soloply
c6ad2ee16b Translated using Weblate (Russian)
Currently translated at 100.0% (8975 of 8975 strings)
2018-12-08 22:08:34 +01:00
Lunovox Heavenfinder
60cdc118ae Translated using Weblate (Portuguese)
Currently translated at 59.5% (5337 of 8975 strings)
2018-12-08 22:08:19 +01:00
roberto
8d014b8bb4 Translated using Weblate (Italian)
Currently translated at 99.9% (8968 of 8975 strings)
2018-12-08 22:08:12 +01:00
soloply
c3a46d0610 Translated using Weblate (Russian)
Currently translated at 100.0% (522 of 522 strings)
2018-12-08 22:07:49 +01:00
roberto
e7c063ff5e Translated using Weblate (Italian)
Currently translated at 100.0% (522 of 522 strings)
2018-12-08 22:07:47 +01:00
Zukero
a002497ce1 Bumped version to 0.7.4dev and version code to 45 2018-12-08 09:53:30 +01:00
Zukero
0611b1a0d5 v0.7.3 released. 2018-12-08 09:50:54 +01:00
Zukero
358f84b1ee Added permission request code. 2018-12-08 09:39:03 +01:00
Zukero
60c842b7d3 Bump version to 0.7.3dev and version code to 44. 2018-12-07 00:17:33 +01:00
Zukero
20bf067e3d v0.7.2 released. 2018-12-07 00:12:37 +01:00
Zukero
f1d6dd63b8 v0.7.2 targeting API 28 2018-12-07 00:09:10 +01:00
Fynn Godau
0ad1f29228 Translated using Weblate (German)
Currently translated at 71.3% (6395 of 8975 strings)
2018-12-03 17:13:16 +01:00
Mo Ro
e1bbc19806 Translated using Weblate (German)
Currently translated at 100.0% (522 of 522 strings)
2018-12-03 17:13:09 +01:00
Fynn Godau
f21f5aea95 Translated using Weblate (German)
Currently translated at 100.0% (522 of 522 strings)
2018-12-03 17:13:09 +01:00
Wuerfelbruder
60943350c1 Translated using Weblate (German)
Currently translated at 100.0% (522 of 522 strings)
2018-12-03 17:13:08 +01:00
Lunovox Heavenfinder
8aeddfcd67 Translated using Weblate (Portuguese)
Currently translated at 57.7% (5183 of 8975 strings)
2018-12-01 20:09:51 +01:00
ssantos
31e82da318 Translated using Weblate (Portuguese)
Currently translated at 57.7% (5183 of 8975 strings)
2018-12-01 20:08:46 +01:00
ssantos
8c67f79abd Translated using Weblate (Portuguese)
Currently translated at 99.6% (520 of 522 strings)
2018-12-01 20:08:33 +01:00
Mesut Akcan
48e5bb871f Translated using Weblate (Turkish)
Currently translated at 65.7% (343 of 522 strings)
2018-11-29 13:07:33 +01:00
Lunovox Heavenfinder
df244c5c15 Translated using Weblate (Portuguese)
Currently translated at 42.3% (3800 of 8975 strings)
2018-11-28 16:51:43 +01:00
Lunovox Heavenfinder
7f4a68ea1d Translated using Weblate (Portuguese)
Currently translated at 36.8% (3307 of 8975 strings)
2018-11-28 04:08:34 +01:00
Colanns
28095dab98 Translated using Weblate (Chinese (Simplified))
Currently translated at 3.4% (18 of 522 strings)
2018-11-28 04:07:32 +01:00
Dobrovolec
383f64810b Translated using Weblate (Russian)
Currently translated at 100.0% (8975 of 8975 strings)
2018-11-26 23:11:24 +01:00
Lunovox Heavenfinder
99fcfee213 Translated using Weblate (Portuguese)
Currently translated at 20.9% (1872 of 8975 strings)
2018-11-26 23:10:27 +01:00
Daniel Stasiak
a0bd3e74e6 Translated using Weblate (Polish)
Currently translated at 70.8% (6357 of 8975 strings)
2018-11-26 23:07:31 +01:00
Lunovox Heavenfinder
01a326a0d5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (522 of 522 strings)
2018-11-26 23:07:16 +01:00
Daniel Stasiak
8e2085cf27 Translated using Weblate (Polish)
Currently translated at 99.8% (521 of 522 strings)
2018-11-26 23:07:09 +01:00
Zukero
621fbf592d Fixed issue with missing reequip & itemUse costs modifiers not applied. 2018-11-26 18:22:46 +01:00
Lunovox Heavenfinder
85b59a8f6b Translated using Weblate (Portuguese (Brazil))
Currently translated at 72.3% (6489 of 8975 strings)
2018-11-25 22:46:26 +01:00
Zukero
239851b03d Real fix for the white rectangle on the startup screen. 2018-11-24 22:18:24 +01:00
Zukero
9a3085ee7d changed VFX for some conditions. Fixed white rectangle on title screen. 2018-11-24 22:06:21 +01:00
Zukero
bfe243f670 Cleanup of data.
Removed unused, obsolete entries.
2018-11-24 18:47:25 +01:00
ssantos
e28a3dc41a Translated using Weblate (German)
Currently translated at 71.2% (6394 of 8975 strings)
2018-11-21 23:07:09 +01:00
Mo Ro
9b12abdc7d Translated using Weblate (German)
Currently translated at 100.0% (522 of 522 strings)
2018-11-21 23:07:02 +01:00
ssantos
37cbb5b2fe Translated using Weblate (German)
Currently translated at 100.0% (522 of 522 strings)
2018-11-21 23:07:02 +01:00
Mo Ro
6bf096355b Translated using Weblate (German)
Currently translated at 71.2% (6393 of 8975 strings)
2018-11-20 22:47:18 +01:00
ssantos
ba9bf508cf Translated using Weblate (German)
Currently translated at 71.2% (6393 of 8975 strings)
2018-11-20 22:47:17 +01:00
Mo Ro
e96f15e380 Translated using Weblate (German)
Currently translated at 71.1% (6385 of 8975 strings)
2018-11-20 22:44:06 +01:00
ssantos
2ff9dfb0f4 Translated using Weblate (Portuguese)
Currently translated at 71.1% (6377 of 8975 strings)
2018-11-19 22:10:14 +01:00
ssantos
b10cda47e5 Translated using Weblate (Portuguese)
Currently translated at 99.0% (517 of 522 strings)
2018-11-19 22:07:06 +01:00
Israa Zamzami
c99b7f2745 Translated using Weblate (Arabic)
Currently translated at 0.2% (17 of 8974 strings)
2018-11-18 16:07:03 +01:00
Israa Zamzami
b1ac3be369 Translated using Weblate (Arabic)
Currently translated at 6.9% (36 of 522 strings)
2018-11-18 16:06:59 +01:00
Israa Zamzami
d3a426b6ba Added translation using Weblate (Arabic) 2018-11-17 15:28:29 +01:00
Israa Zamzami
560ee0c4d1 Added translation using Weblate (Arabic) 2018-11-17 15:16:08 +01:00
test
732775e649 Translated using Weblate (Russian)
Currently translated at 84.7% (7603 of 8975 strings)
2018-11-12 17:07:59 +01:00
Filipe Pereira
49a408bcc6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 71.1% (6381 of 8975 strings)
2018-11-12 17:07:35 +01:00
István Koren
849f9f7732 Translated using Weblate (German)
Currently translated at 71.1% (6381 of 8975 strings)
2018-11-12 17:07:29 +01:00
Olivier Dragon
1cec5e6601 Translated using Weblate (French)
Currently translated at 54.6% (4897 of 8975 strings)
2018-11-12 17:07:26 +01:00
Olivier Dragon
ff6a7b3942 Translated using Weblate (French)
Currently translated at 100.0% (522 of 522 strings)
2018-11-12 17:07:05 +01:00
Balázs Úr
ccd1f31127 Improved wording 2018-11-11 13:02:41 +01:00
test
533215b6bc Translated using Weblate (Russian)
Currently translated at 82.4% (7391 of 8975 strings)
2018-11-09 02:07:30 +01:00
test
a14723fb15 Translated using Weblate (Russian)
Currently translated at 100.0% (522 of 522 strings)
2018-11-09 02:06:43 +01:00
Zukero
73426fe1c9 Merge pull request #91 from NutAndor/master
Aryfora fix
2018-11-06 13:42:32 +01:00
NutAndor
f7620a7da5 Merge pull request #14 from NutAndor/bugfix_2018_10
Aryfora fix
2018-11-05 23:33:03 +01:00
NutAndor
3e0cd463d8 Merge pull request #13 from NutAndor/master
sync with zukero:master
2018-11-05 23:30:14 +01:00
NutAndor
e6aa091800 Merge pull request #12 from Zukero/master
sync with zukero:master
2018-11-05 23:27:56 +01:00
Nut
a2cb1f2aeb Update AndorsTrail/res/raw/conversationlist_stoutford_combined.json
Aryfora fix
2018-11-05 23:24:51 +01:00
Hosted Weblate
629a680b2b Merge branch 'origin/master' into Weblate 2018-11-05 23:05:02 +01:00
Jiri Zizkin Zizka
ad3f034997 Translated using Weblate (Czech)
Currently translated at 14.6% (1318 of 8975 strings)
2018-11-05 23:05:01 +01:00
Zukero
126eaa517e Fixed another variant of the multiple tagging of translations... 2018-11-05 23:04:32 +01:00
Zukero
8772e17be4 Merge remote-tracking branch 'weblate-ui/master'
# Conflicts:
#	AndorsTrail/assets/translation/ru.po
2018-11-05 22:46:34 +01:00
___
347dedf9bf Translated using Weblate (Ukrainian)
Currently translated at 7.7% (699 of 8975 strings)
2018-11-05 22:43:02 +01:00
test
60752578b8 Translated using Weblate (Russian)
Currently translated at 81.3% (7305 of 8975 strings)
2018-11-05 22:42:59 +01:00
Philippe Alfaiate
df3743ed03 Translated using Weblate (French)
Currently translated at 54.5% (4892 of 8975 strings)
2018-11-05 22:42:53 +01:00
Jiri Zizkin Zizka
ce67238fd9 Translated using Weblate (Czech)
Currently translated at 14.5% (1310 of 8975 strings)
2018-11-05 22:42:50 +01:00
test
98d1ab6790 Translated using Weblate (Russian)
Currently translated at 100.0% (522 of 522 strings)
2018-11-05 22:42:36 +01:00
Jiri Zizkin Zizka
170e43de24 Translated using Weblate (Czech)
Currently translated at 100.0% (522 of 522 strings)
2018-11-05 22:42:34 +01:00
Viktar Vauchkevich
6a857dd290 Translated using Weblate (Belarusian)
Currently translated at 100.0% (522 of 522 strings)
2018-11-05 22:42:31 +01:00
Zukero
6b1e03f362 Fixed [REVIEW] tag multiplication. Fixed translated image names in
french help...
2018-11-05 22:41:25 +01:00
Zukero
e792d8d663 Merge remote-tracking branch 'weblate-ui/master' 2018-11-05 22:33:19 +01:00
NutAndor
621a45653e Merge pull request #11 from NutAndor/master
sync from zukero:master
2018-11-05 00:25:37 +01:00
NutAndor
9ead1d8a13 Merge pull request #10 from Zukero/master
sync nutAndor:master from zukero:master
2018-11-05 00:23:36 +01:00
___
97fbf8c6e5 Translated using Weblate (Ukrainian)
Currently translated at 7.7% (695 of 8975 strings)
2018-11-02 11:52:44 +01:00
test
7ae2d45fc6 Translated using Weblate (Russian)
Currently translated at 81.3% (7305 of 8975 strings)
2018-11-02 09:25:58 +01:00
Balázs Úr
11902f6bd6 Translated using Weblate (Hungarian)
Currently translated at 45.5% (4090 of 8975 strings)
2018-11-02 09:24:04 +01:00
Jiri Zizkin Zizka
65e2b02a84 Translated using Weblate (Czech)
Currently translated at 13.2% (1193 of 8975 strings)
2018-11-02 09:23:02 +01:00
Allan Nordhøy
6c6fdf9ed4 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (522 of 522 strings)
2018-11-02 09:22:55 +01:00
Balázs Úr
296bf02466 Translated using Weblate (Hungarian)
Currently translated at 100.0% (522 of 522 strings)
2018-11-02 09:22:54 +01:00
Zukero
3ef4e501f9 Fixed minor issue with secret room pop-up in waterwayacavex 2018-10-31 12:50:40 +01:00
Zukero
6466f7f936 Reverted and made again the translations update.
Previous update contained mistakes. The sad part is that I have no
choice but to overwrite all translations made since on weblate. Sorry
everyone.
2018-10-31 12:24:22 +01:00
Zukero
245cf4ccf2 Merge pull request #90 from NutAndor/bugfix_2018_10
changes to Erwyn/Yolgen/Gyra  from nutAndor:bugfix_2018_10
2018-10-30 08:03:41 +01:00
Nut
c9ea6c286d add nut changes with Erwyn+Gyra 2018-10-29 23:28:04 +01:00
Nut
17e33fecc3 Merge branch 'master' into bugfix_2018_10
# Conflicts:
#	AndorsTrail/res/raw/conversationlist_stoutford_combined.json
2018-10-29 00:12:14 +01:00
Balázs Úr
54286bb0d2 Improved wording 2018-10-29 00:11:53 +01:00
NutAndor
00ac1b2b36 Merge pull request #8 from Zukero/master
merge fromzukero master
2018-10-28 19:22:05 +01:00
Zukero
9e0960ebf2 Merge pull request #87 from Rijackson/master
Some fixes for bugs that came up on the forums.
2018-10-28 14:56:51 +01:00
Zukero
f027d9a9cd Merge pull request #88 from urbalazs/authors
Added myself to contributor list
2018-10-28 10:52:16 +01:00
Balázs Úr
03b2de6c61 Added myself to contributor list 2018-10-28 10:00:35 +01:00
Nut
c611ef8c01 small fix with Odirath 2018-10-28 09:29:42 +01:00
Nut
0db5bf24ac Gyra's quest ending
- you can end the quest now at Berbane or at Odirath. Quest stages will be in correct order
2018-10-28 09:00:18 +01:00
Rijackson
7576648105 Removed changes to conversationlist_stoutford_combined 2018-10-27 18:18:10 -04:00
Rijackson
62a7ed79d5 Revert "Some fixes for bugs that came up on the forums."
This reverts commit b4e57e5481.
2018-10-27 18:16:05 -04:00
Rijackson
b4e57e5481 Some fixes for bugs that came up on the forums. 2018-10-27 17:41:52 -04:00
Zukero
1c7f081f18 Merge pull request #86 from urbalazs/monster-names-lowercase
Fixed wording of monster names in sentences
2018-10-27 18:01:45 +02:00
Nut
f97a8bc5ce fixes around Yolgen/Erwyn, Gyra needs some action still 2018-10-25 07:03:36 +02:00
NutAndor
e9e75acf52 Merge pull request #7 from NutAndor/master
merge zukero's changes
2018-10-24 23:36:07 +02:00
NutAndor
4b1bcabafa Merge pull request #6 from Zukero/master
merge zukero's changes
2018-10-24 23:34:03 +02:00
Zukero
d301076f2b Small fix to Halvor's dialogues, to improve consistency. 2018-10-24 11:16:00 +02:00
Zukero
0c1afc0370 Changed item rarity sort order to legendary, extraordinary, rare, quest,
ordinary.
2018-10-24 10:51:45 +02:00
Zukero
0af042f94d Fixed stupid issue with the new low-quality filters... 2018-10-24 10:37:56 +02:00
Zukero
2997109258 Merge pull request #84 from urbalazs/nonverbal
Fixed non verbal communications
2018-10-24 10:16:59 +02:00
NutAndor
4c4369da50 Merge pull request #5 from Zukero/master
merge from zukeros master
2018-10-21 17:37:34 +02:00
Balázs Úr
46177d0962 Fixed wording of monster names in sentences 2018-10-17 21:41:41 +02:00
Zukero
5846e37769 Merge pull request #85 from urbalazs/monster-names
Fixed wording of monster names
2018-10-14 21:58:02 +02:00
Balázs Úr
28ad027fa1 Fixed wording of monster names 2018-10-14 21:45:55 +02:00
Balázs Úr
a6775a1e95 Fixed non verbal communications 2018-10-10 00:02:05 +02:00
Zukero
47e47f9804 Merge pull request #83 from urbalazs/blackwater
Fixed spelling of Blackwater mountain settlement
2018-10-09 18:48:42 +02:00
Balázs Úr
ed699333a4 Fixed spelling of Blackwater mountain 2018-10-09 18:21:57 +02:00
Zukero
90abe8d769 Update translations following merged pull-requests by Balazs Ur 2018-10-09 11:00:01 +02:00
Zukero
66344e4ced Merge branch 'master' of https://hosted.weblate.org/git/andors-trail/game-content 2018-10-09 10:31:42 +02:00
Jiri Zizkin Zizka
d2f238c825 Translated using Weblate (Czech)
Currently translated at 13.1% (1184 of 8979 strings)
2018-10-07 17:24:47 +02:00
Balázs Úr
c5059dce19 Translated using Weblate (Hungarian)
Currently translated at 40.6% (3646 of 8979 strings)
2018-10-07 00:29:37 +02:00
Lucas Rossi
5375f5115a Translated using Weblate (Italian)
Currently translated at 99.2% (8913 of 8979 strings)
2018-10-06 21:29:37 +02:00
huzhanrong
be2c5e70b2 Translated using Weblate (Chinese (Simplified))
Currently translated at 3.6% (324 of 8979 strings)
2018-10-06 05:23:43 +02:00
Mo Ro
bf5af914f3 Translated using Weblate (German)
Currently translated at 71.3% (6403 of 8979 strings)
2018-10-06 02:29:07 +02:00
Zukero
18d7a5c212 Merge pull request #78 from urbalazs/ellipsis
Fixed ellipsis
2018-10-05 19:01:46 +02:00
Mo Ro
9126677e69 Translated using Weblate (German)
Currently translated at 95.5% (497 of 520 strings)
2018-10-05 11:28:20 +02:00
Balázs Úr
e2ab2d484b Improved usage of ellipsis 2018-10-04 17:11:32 +02:00
Balázs Úr
896b0a1647 Translated using Weblate (Hungarian)
Currently translated at 39.0% (3509 of 8979 strings)
2018-10-04 00:29:15 +02:00
Balázs Úr
e537ed3d7e Fixed ellipsis 2018-10-03 22:02:31 +02:00
Zukero
39013ceef4 Merge pull request #75 from urbalazs/okay
Fixed spelling for OK
2018-10-03 17:48:30 +02:00
Zukero
981d90eb66 Merge pull request #77 from urbalazs/hmm
Fixed spelling of Hmm
2018-10-03 17:40:03 +02:00
Balázs Úr
efc24cfb05 Fixed spelling of Hmm 2018-10-03 16:32:08 +02:00
Balázs Úr
e0c967b367 Fixed spelling for OK 2018-10-02 21:49:29 +02:00
Zukero
6164028b2e Merge pull request #74 from urbalazs/apostrophe
Removed Unicode characters
2018-10-02 19:23:37 +02:00
Balázs Úr
44bbd1d24f Removed Unicode characters 2018-10-02 18:36:10 +02:00
Zukero
517c187ca4 Merge pull request #73 from urbalazs/punctuation
Fixed punctuation, trimmed strings, fixed typos
2018-10-02 15:57:31 +02:00
Balázs Úr
d205fbc73b Translated using Weblate (Hungarian)
Currently translated at 38.4% (3449 of 8979 strings)
2018-10-02 02:28:09 +02:00
Balázs Úr
0e3a17ef21 Fixed punctuation, trimed strings, fixed typos 2018-10-02 00:14:49 +02:00
Balázs Úr
49b59dabbe Translated using Weblate (Hungarian)
Currently translated at 38.4% (3449 of 8979 strings)
2018-10-01 01:27:56 +02:00
Zukero
2d9463dcee Merge pull request #72 from Rijackson/master
Some English fixes
2018-09-30 21:54:32 +02:00
Rijackson
759e1c69e2 Some English fixes 2018-09-30 15:06:08 -04:00
Piotr Bojczewski
978d69a58a Translated using Weblate (Polish)
Currently translated at 70.9% (6375 of 8979 strings)
2018-09-30 18:32:33 +02:00
Zukero
716d6cb8ec Merge pull request #71 from urbalazs/typo
Fixed typos
2018-09-30 16:39:56 +02:00
Balázs Úr
7ae175ec5e Fixed typos 2018-09-30 16:16:29 +02:00
Balázs Úr
4f56cf6170 Translated using Weblate (Hungarian)
Currently translated at 36.9% (3322 of 8979 strings)
2018-09-30 01:30:06 +02:00
Federico Rosig
0cdc1c5c2f Added translation using Weblate (Spanish (Argentina)) 2018-09-30 01:08:27 +02:00
Zukero
24ba5b3eed Fix bug introduced in previous commit.
When in low quality mode, changing from a forced high quality filter to
a low-quality one (or none) didn't reset the high-quality filter...
2018-09-29 18:55:39 +02:00
Zukero
cdd59b5615 Always use "High Quality Filters" when filter is B&W or Inverted.... 2018-09-29 10:11:06 +02:00
Zukero
8dcf2df43b Merge pull request #69 from Rijackson/master
Fixes for recent text issues reported for 0.7.2. beta
2018-09-29 10:03:20 +02:00
Zukero
1e11a008ee Merge pull request #67 from NutAndor/master
fixes in lakecave, stoutford, guynmart
2018-09-29 10:02:50 +02:00
Rijackson
e45c38ca78 Fixes for recent text issues reported for 0.7.2. beta 2018-09-28 08:28:31 -04:00
Zukero
3ad385e02f Attempt to fix perf issue with filters
that plagues some devices only.
2018-09-28 13:33:30 +02:00
Balázs Úr
15fe6c871e Translated using Weblate (Hungarian)
Currently translated at 35.8% (3223 of 8979 strings)
2018-09-28 01:28:25 +02:00
test
b51b1393b7 Translated using Weblate (Russian)
Currently translated at 81.7% (7337 of 8979 strings)
2018-09-27 15:39:37 +02:00
Nut
2f612e8897 Erwyns death redesigned 2018-09-27 00:54:07 +02:00
huzhanrong
bcbddb60cf Translated using Weblate (Chinese (Simplified))
Currently translated at 3.4% (310 of 8979 strings)
2018-09-24 14:22:45 +02:00
NutAndor
87f00e1531 Merge pull request #4 from Zukero/master
merge from zukero
2018-09-23 17:09:37 +02:00
Samuel LETTAT
48a66c0966 Translated using Weblate (French)
Currently translated at 54.6% (4909 of 8979 strings)
2018-09-22 10:26:10 +02:00
Allan Nordhøy
36e4fff813 Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.0% (274 of 8979 strings)
2018-09-22 07:33:34 +02:00
Zukero
ce115014cb Merge branch 'master' of https://github.com/Zukero/andors-trail.git 2018-09-21 19:38:53 +02:00
Zukero
b26fada91d Fixed "restart for locale" bugs.
Fixed missing parsing of the colorfilter map properties.
2018-09-21 19:38:24 +02:00
Zukero
867125e52f Merge pull request #68 from Rijackson/master
Removed Marrowtaint from the graveyard corpse drop list, and added a …
2018-09-21 08:11:22 +02:00
Rijackson
cc113fad27 Removed Marrowtaint from the graveyard corpse drop list, and added a few other items instead. It should not have been there, but I missed it until now. 2018-09-20 20:48:51 -04:00
mesnevi
2e7d3fa9d0 Translated using Weblate (Russian)
Currently translated at 81.5% (7320 of 8979 strings)
2018-09-20 07:33:37 +02:00
Rubén Moreno
8facfd4b95 Translated using Weblate (Spanish)
Currently translated at 84.0% (437 of 520 strings)
2018-09-19 12:32:46 +02:00
zelos-h
f07c2f5ce1 Translated using Weblate (Chinese (Traditional))
Currently translated at 3.1% (284 of 8979 strings)
2018-09-18 04:21:37 +02:00
Zukero
52f74066d0 Merge pull request #66 from Rijackson/master
Fix for the "graveyard loophole" and adjustment of Guynmart shield st…
2018-09-17 07:07:41 +02:00
Rijackson
b9ce62a559 Merge remote-tracking branch 'upstream/master' 2018-09-16 20:12:47 -04:00
Rijackson
5d38ccbb68 Fix for the "graveyard loophole" and adjustment of Guynmart shield stats. 2018-09-16 19:47:49 -04:00
Nut
717f5c39e5 fixes in lakecave, stoutford, guynmart
Caedas dialogue, trolls in lakecave
Gyras hint to find the helmet,
Map issues in guynmart
2018-09-17 00:13:07 +02:00
Jiri Zizkin Zizka
36da8ac0b9 Translated using Weblate (Czech)
Currently translated at 5.6% (507 of 8979 strings)
2018-09-16 12:17:51 +02:00
Zukero
d11efef9b6 Added missing top layer to worldmap thumbnails rendering. 2018-09-15 14:35:07 +02:00
Jiri Zizkin Zizka
329fd116f9 Translated using Weblate (Czech)
Currently translated at 4.2% (383 of 8979 strings)
2018-09-14 07:15:30 +02:00
Balázs Úr
ff990691b5 Translated using Weblate (Hungarian)
Currently translated at 29.0% (2609 of 8979 strings)
2018-09-14 01:19:33 +02:00
Balázs Úr
cb71dc6e50 Translated using Weblate (Hungarian)
Currently translated at 99.8% (519 of 520 strings)
2018-09-13 00:19:33 +02:00
NutAndor
66dc9c4254 Merge pull request #3 from Zukero/master
merge from zukero
2018-09-12 23:18:35 +02:00
Jiri Zizkin Zizka
19a54623eb Translated using Weblate (Czech)
Currently translated at 100.0% (520 of 520 strings)
2018-09-12 18:15:10 +02:00
Agnes Zilinszki
676383b3ad Translated using Weblate (Hungarian)
Currently translated at 25.3% (2274 of 8979 strings)
2018-09-12 07:52:34 +02:00
Agnes Zilinszki
c5c5fb1392 Translated using Weblate (Hungarian)
Currently translated at 25.3% (2274 of 8979 strings)
2018-09-12 07:52:15 +02:00
Valentin Gergely
91a529497e Translated using Weblate (Hungarian)
Currently translated at 25.3% (2274 of 8979 strings)
2018-09-12 07:52:07 +02:00
Balázs Úr
8dfe47d0ca Translated using Weblate (Hungarian)
Currently translated at 25.3% (2274 of 8979 strings)
2018-09-12 07:52:06 +02:00
Valentin Gergely
e7aaf68531 Translated using Weblate (Hungarian)
Currently translated at 25.3% (2274 of 8979 strings)
2018-09-12 07:51:28 +02:00
Balázs Úr
1b75000ceb Translated using Weblate (Hungarian)
Currently translated at 25.3% (2274 of 8979 strings)
2018-09-12 07:51:27 +02:00
Valentin Gergely
e198cdfbbb Translated using Weblate (Hungarian)
Currently translated at 25.3% (2274 of 8979 strings)
2018-09-12 07:50:06 +02:00
Valentin Gergely
16d07316bb Translated using Weblate (Hungarian)
Currently translated at 25.3% (2274 of 8979 strings)
2018-09-12 07:48:52 +02:00
Zukero
275c39e8ff Merge pull request #64 from Rijackson/master
Removed duplicate ring definitions, fixed a couple of typos.
2018-09-12 07:47:31 +02:00
Rijackson
ba75477e0d Changed the droplists, but forgot to remove the duplicate ring definitions. Al fixed now, and ready for PR. 2018-09-11 20:32:26 -04:00
Balázs Úr
8c2464019c Translated using Weblate (Hungarian)
Currently translated at 25.3% (2274 of 8979 strings)
2018-09-12 01:19:37 +02:00
NutAndor
00f819d2f8 Merge pull request #2 from Zukero/master
merge from zukero
2018-09-11 23:13:14 +02:00
Allan Nordhøy
051ee25e3a Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.0% (272 of 8979 strings)
2018-09-11 18:23:01 +02:00
Rijackson
a50a3aab9c Removed duplicate ring definitions, fixed a couple of typos. 2018-09-10 18:44:52 -04:00
Hosted Weblate
b7e26f66b0 Merge branch 'origin/master' into Weblate 2018-09-10 13:05:47 +02:00
Allan Nordhøy
e29a0317f1 Translated using Weblate (Norwegian Bokmål)
Currently translated at 2.9% (268 of 9149 strings)
2018-09-10 13:05:46 +02:00
Zukero
82f5606151 Updated translations to reflect latest typo fixes 2018-09-10 12:20:47 +02:00
Zukero
2fb996e021 Fixed some typos 2018-09-10 12:07:54 +02:00
Zukero
03307d50ce Merge remote-tracking branch 'weblate/master' 2018-09-10 11:26:52 +02:00
Zukero
986815b169 Merge pull request #63 from Rijackson/master
Fixed the missing treetops in waterwaya3, a typo, and some capitaliza…
2018-09-09 09:32:42 +02:00
Rijackson
166698a592 Fixed the missing treetops in waterwaya3, a typo, and some capitalization issues. 2018-09-08 16:01:23 -04:00
test
dcb8837fff Translated using Weblate (Russian)
Currently translated at 82.3% (7533 of 9149 strings)
2018-09-08 13:25:40 +02:00
Jiri Zizkin Zizka
92ebd89bb0 Translated using Weblate (Czech)
Currently translated at 100.0% (520 of 520 strings)
2018-09-08 00:16:04 +02:00
Zukero
897a2e0939 Hopefully fixed the issue with the loss of old worldmap tiles. 2018-09-07 18:01:20 +02:00
Jiri Zizkin Zizka
9dac47e8e5 Translated using Weblate (Czech)
Currently translated at 2.6% (242 of 9149 strings)
2018-09-06 15:15:20 +02:00
mohamad farid
1d460f514b Translated using Weblate (Malay)
Currently translated at 0.4% (41 of 9149 strings)
2018-09-06 08:20:31 +02:00
Zukero
84ef943864 Added local logfile containing locat with Warning+ levels.
Maybe fixed bug crashing the game when starting a new game.
2018-09-05 23:00:13 +02:00
Zukero
a43d59f60b Merge pull request #62 from NutAndor/master
map errors
2018-09-05 21:59:54 +02:00
Zukero
cb900594cb Merge pull request #61 from Rijackson/master
Fix for going to Duleian end of Lodar shortcut first.
2018-09-05 21:59:39 +02:00
test
32d91760ed Translated using Weblate (Russian)
Currently translated at 77.4% (7082 of 9149 strings)
2018-09-05 06:22:50 +02:00
Zukero
d66bd0e55e Fix extra \n at the end of a string in fr.po 2018-09-03 22:07:11 +02:00
Hosted Weblate
1cacdc9ccf Merge branch 'origin/master' into Weblate 2018-09-03 22:02:57 +02:00
test
a8a70eff92 Translated using Weblate (Russian)
Currently translated at 75.9% (6946 of 9149 strings)
2018-09-03 22:02:56 +02:00
Daniel Stasiak
278e1f0f33 Translated using Weblate (Polish)
Currently translated at 99.8% (519 of 520 strings)
2018-09-03 22:02:25 +02:00
S. Rygula
43c9a55283 Translated using Weblate (Polish)
Currently translated at 99.8% (519 of 520 strings)
2018-09-03 22:02:25 +02:00
Jiri Zizkin Zizka
b92d0f8e45 Translated using Weblate (Czech)
Currently translated at 98.6% (513 of 520 strings)
2018-09-03 22:02:22 +02:00
Zukero
42f7b29f54 Fixed unsecaped quotes in english gettext strings. Fixed some
game-crashing typo in french XML strings.
2018-09-03 22:00:38 +02:00
Zukero
3abd004a02 Merge remote-tracking branch 'weblate/master' 2018-09-03 21:55:36 +02:00
dwep
1ee6c142e9 Translated using Weblate (Basque)
Currently translated at 63.4% (330 of 520 strings)
2018-09-03 13:13:04 +02:00
G. Allen Morris III
15323932c1 Translated using Weblate (Dutch)
Currently translated at 86.9% (452 of 520 strings)
2018-09-01 20:14:27 +02:00
WaldiS
c5e0e3a924 Translated using Weblate (Polish)
Currently translated at 90.1% (469 of 520 strings)
2018-09-01 19:20:15 +02:00
Jiri Zizkin Zizka
120b4af46d Translated using Weblate (Czech)
Currently translated at 74.8% (389 of 520 strings)
2018-08-31 23:47:02 +02:00
Jiri Zizkin Zizka
072627ffd2 Translated using Weblate (Czech)
Currently translated at 2.5% (232 of 9149 strings)
2018-08-31 23:46:48 +02:00
Jiri Zizkin Zizka
ed152dc849 Translated using Weblate (Czech)
Currently translated at 29.8% (155 of 520 strings)
2018-08-29 13:36:15 +02:00
roberto
40f74bb1bd Translated using Weblate (Italian)
Currently translated at 97.6% (8935 of 9149 strings)
2018-08-28 21:39:45 +02:00
Jiri Zizkin Zizka
08897342ba Translated using Weblate (Czech)
Currently translated at 2.5% (231 of 9149 strings)
2018-08-28 16:36:14 +02:00
test
93b0288c51 Translated using Weblate (Russian)
Currently translated at 72.9% (6675 of 9149 strings)
2018-08-28 08:43:17 +02:00
Nut
a05621feeb some map fixes
In waytogalmore0.tmx I found an issue with Lutarcs poser 'Mikhail': he doesn't spawn as he should, so there is no icon in dialogue.
And I found a more cumbersome issue in the following 12 tmx maps:
There was taken 1 or more duplicate png file, with the path  ../../altered/drawable/...  instead of  ../drawable/...   and some sprites were taken from there also.
2018-08-27 22:35:36 +02:00
NutAndor
698195400e Merge pull request #1 from Zukero/master
merge
2018-08-27 21:59:43 +02:00
roberto
25867e6e6a Translated using Weblate (Italian)
Currently translated at 96.2% (8810 of 9149 strings)
2018-08-27 18:42:22 +02:00
test
9cf0c10ff0 Translated using Weblate (Russian)
Currently translated at 100.0% (520 of 520 strings)
2018-08-27 17:43:01 +02:00
Nut Andor
8050ce4ed6 Translated using Weblate (German)
Currently translated at 88.2% (459 of 520 strings)
2018-08-26 23:38:46 +02:00
Gran Kardo
e75afa0494 Translated using Weblate (Turkish)
Currently translated at 12.8% (1175 of 9149 strings)
2018-08-26 15:45:56 +02:00
Rijackson
97c0e4fc9f I think this will work for the Shortcut fix. 2018-08-25 21:30:59 -04:00
Rijackson
ac9c8d9121 Fix for going to Duleian end of Lodar shortcut first. 2018-08-25 18:56:31 -04:00
Zukero
df89a1001a Updated guynmart_wood_9 to use dynamic tiles placeholder for the hero
statue.
2018-08-24 16:11:15 +02:00
Zukero
ba094b4b95 First implementation of dynamic placeholder tiles for maps. 2018-08-24 09:56:18 +02:00
Viktar Vauchkevich
f780f37d3d Translated using Weblate (Belarusian)
Currently translated at 100.0% (520 of 520 strings)
2018-08-23 22:51:52 +02:00
Gianluca Luparini
451093d156 Translated using Weblate (Italian)
Currently translated at 81.1% (7424 of 9149 strings)
2018-08-23 17:40:12 +02:00
roberto
26877aeda8 Translated using Weblate (Italian)
Currently translated at 81.1% (7424 of 9149 strings)
2018-08-23 17:40:11 +02:00
Zukero
c7523ac420 Hunting the last undesired percent signs 2018-08-22 16:27:06 +02:00
Hosted Weblate
1fe9973398 Merge branch 'origin/master' into Weblate 2018-08-22 16:07:12 +02:00
roberto
aa6f02aa9f Translated using Weblate (Italian)
Currently translated at 78.4% (7176 of 9149 strings)
2018-08-22 16:07:11 +02:00
Zukero
775b34822c Added Android resources matching existing content translations that had
no android translation files, so that translated content will be shown
in-game.
2018-08-22 16:06:29 +02:00
Hosted Weblate
ead9b6e6e2 Merge branch 'origin/master' into Weblate 2018-08-22 12:33:10 +02:00
roberto
1a5e7ea630 Translated using Weblate (Italian)
Currently translated at 77.6% (7101 of 9149 strings)
2018-08-22 12:33:08 +02:00
Zukero
8dd8644540 Deleted empty or bogus translation files. 2018-08-22 12:15:48 +02:00
Zukero
94f72eac9d Added reference to content translation in existing android translation files. 2018-08-22 12:05:46 +02:00
roberto
e1b3512240 Translated using Weblate (Italian)
Currently translated at 77.0% (7053 of 9149 strings)
2018-08-22 11:52:30 +02:00
Harivansh
b86802c03d Translated using Weblate (French)
Currently translated at 53.2% (4876 of 9149 strings)
2018-08-22 11:52:14 +02:00
roberto
5abe94f6bd Translated using Weblate (Italian)
Currently translated at 75.7% (6930 of 9149 strings)
2018-08-21 17:31:20 +02:00
Hosted Weblate
817d61c732 Merge branch 'origin/master' into Weblate 2018-08-21 17:25:14 +02:00
Rafael Henrique Mendes de Oliv
d8f73c57f2 Translated using Weblate (Portuguese (Brazil))
Currently translated at 69.6% (6370 of 9149 strings)
2018-08-21 17:25:13 +02:00
roberto
cf6dbbf6c4 Translated using Weblate (Italian)
Currently translated at 75.6% (6920 of 9149 strings)
2018-08-21 17:25:09 +02:00
roberto
0b79deeaf8 Translated using Weblate (Italian)
Currently translated at 75.6% (6920 of 9149 strings)
2018-08-21 17:25:08 +02:00
Zukero
5164f31fba Enhanced translation integration. Not finished yet. 2018-08-21 17:21:53 +02:00
Zukero
d104cfc66a Merge remote-tracking branch 'weblate-ui/master' 2018-08-21 17:08:12 +02:00
roberto
b9febdc396 Translated using Weblate (Italian)
Currently translated at 99.6% (518 of 520 strings)
2018-08-21 14:38:52 +02:00
Zukero
796883c8c2 Merge pull request #60 from Rijackson/master
Removed fields11a from worldmap.xml, because the map was removed in a…
2018-08-20 08:03:27 +02:00
Rijackson
8f3151368a Removed fields11a from worldmap.xml, because the map was removed in an earlier bug fix. 2018-08-19 18:45:24 -04:00
Nut Andor
ef2c7d4107 Translated using Weblate (German)
Currently translated at 87.6% (456 of 520 strings)
2018-08-20 00:38:05 +02:00
Nut Andor
90623e0711 Translated using Weblate (German)
Currently translated at 69.4% (6356 of 9149 strings)
2018-08-19 22:37:43 +02:00
Zukero
3e8a2a47fd Merge pull request #59 from Rijackson/master
Fixed waytolake7b
2018-08-18 12:52:23 +02:00
Hosted Weblate
81eb55a58d Merge branch 'origin/master' into Weblate 2018-08-18 12:30:56 +02:00
Zukero
f43a9d5ce2 Fixed issue leading to incorrect adaptation to updated english text. 2018-08-18 12:30:06 +02:00
Hosted Weblate
2affab346f Merge branch 'origin/master' into Weblate 2018-08-18 12:20:39 +02:00
Allan Nordhøy
9028367707 Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.1% (500 of 520 strings)
2018-08-18 12:20:38 +02:00
Zukero
10fd46bbc2 Fixed issues with previous content translations updates related to bad
encoding and loss of headers.
2018-08-18 12:19:34 +02:00
test
fd03b91a18 Translated using Weblate (Russian)
Currently translated at 99.6% (518 of 520 strings)
2018-08-18 11:42:05 +02:00
roger
02ec3cc003 Translated using Weblate (Catalan)
Currently translated at 66.1% (344 of 520 strings)
2018-08-17 17:35:02 +02:00
Rijackson
8254db89a5 Fixed waytolake7b 2018-08-17 08:05:04 -04:00
John
fafbf5e412 Translated using Weblate (Russian)
Currently translated at 96.7% (503 of 520 strings)
2018-08-17 11:17:44 +02:00
test
55e7abb282 Translated using Weblate (Russian)
Currently translated at 96.7% (503 of 520 strings)
2018-08-17 11:17:44 +02:00
John
1b941be8b7 Translated using Weblate (Russian)
Currently translated at 96.5% (502 of 520 strings)
2018-08-17 11:16:46 +02:00
test
441d305504 Translated using Weblate (Russian)
Currently translated at 96.5% (502 of 520 strings)
2018-08-17 11:16:45 +02:00
Zukero
2b0164a398 Updated content translations' template, and attempted to update the
translations themselves while preserving the existing translations.
I added a [REVIEW] tag to the translated strings where the english text
changed, but not too significantly. Such translations will be presented
to the player even if not updated.
I added a [OUTDATED] tag to the translated strings where the english
text changed significantly. Such translations will remain visible to
translators, for reference, but will not be displayed to the players.
Translators are expected to remove these tags after fixing the
translated strings.
2018-08-15 18:12:21 +02:00
Zukero
27dee8b368 Merged ATCS project "bugfix_v0.7.2" 2018-08-15 14:25:23 +02:00
Zukero
da396d86d5 Removed unnecessary, and potentially poisoning, english localizations. 2018-08-10 22:58:32 +02:00
Zukero
0f9b7c11aa Merge remote-tracking branch 'weblate-content/master'
Conflicts:
	AndorsTrail/res/values/strings.xml
2018-08-10 22:48:52 +02:00
Carmen
cfaea1e184 Translated using Weblate (Spanish)
Currently translated at 25.2% (1613 of 6378 strings)
2018-08-10 09:43:08 +02:00
aka
1c7ebe478d Translated using Weblate (Chinese (Simplified))
Currently translated at 3.1% (203 of 6378 strings)
2018-08-09 11:36:13 +02:00
Carmen
8c4e6f441e Translated using Weblate (Spanish)
Currently translated at 25.2% (1611 of 6378 strings)
2018-08-07 18:42:39 +02:00
Tiago A. Reul
2e3f0f0558 Translated using Weblate (Portuguese)
Currently translated at 67.6% (310 of 458 strings)
2018-08-07 16:43:08 +02:00
Tiago A. Reul
8555475e6e Translated using Weblate (Portuguese)
Currently translated at 5.6% (359 of 6378 strings)
2018-08-07 16:43:07 +02:00
Zukero
a516f83aff Merge pull request #57 from Rijackson/master
Removed map fields11a.tmx, which was causing conflicts with existing …
2018-08-05 01:00:06 +02:00
Rijackson
7b6ff3e22f Removed map fields11a.tmx, which was causing conflicts with existing map fields11.tmx. fields11.tmx has been replaced with fields11a.tmx in bugfix project. 2018-08-04 18:09:50 -04:00
Zukero
a32fdbd6f3 Fixed small bug with tp debug UI 2018-08-04 21:00:36 +02:00
Zukero
6c5513cdac First attempt at fixing the graphical glitches. The easy way.
I also added teleporting debug buttons for most of the POIs.
2018-08-04 20:57:27 +02:00
Agnes Zilinszki
7eb59689f8 Translated using Weblate (Hungarian)
Currently translated at 32,8% (2096 of 6388 strings)
2018-07-26 18:59:33 +02:00
John
f6db9cb01c Translated using Weblate (Russian)
Currently translated at 99.1% (454 of 458 strings)
2018-07-25 21:42:37 +02:00
Nut
1e3f3310c2 new graphic monsters_maksiu1, and an author list entry 2018-07-20 16:52:16 +02:00
WaldiS
4d672fae45 Translated using Weblate (Polish)
Currently translated at 99.5% (456 of 458 strings)
2018-07-13 20:41:19 +02:00
SmallDragon Chen
0e0914e302 Translated using Weblate (Chinese (Traditional))
Currently translated at 27.2% (125 of 458 strings)
2018-07-13 16:35:52 +02:00
WaldiS
ff1e7a4dd3 Translated using Weblate (Polish)
Currently translated at 100,0% (6378 of 6378 strings)
2018-07-12 20:29:31 +02:00
SmallDragon Chen
afbd46eed0 Added translation using Weblate (Chinese (Traditional)) 2018-07-12 15:13:10 +02:00
roberto
822a628269 Translated using Weblate (Italian)
Currently translated at 97.1% (6197 of 6378 strings)
2018-07-08 23:39:49 +02:00
Zukero
8c12109d97 Version pre0.7.2_alpha1 for limited distribution to testers. 2018-07-08 17:44:27 +02:00
Zukero
4ab509aead ATCS Project stoutford_combined finally integrated! 2018-07-08 15:54:47 +02:00
Zukero
ce0e1871ab Merge branch 'master' into stoutford_tests
# Conflicts:
#	AndorsTrail/res/raw/conversationlist_fallhaven_south.json
#	AndorsTrail/res/raw/conversationlist_pathway_fallhaven.json
#	AndorsTrail/res/raw/questlist_pathway_fallhaven.json
2018-07-08 15:41:51 +02:00
benjamin thilliez
35abe99c02 Translated using Weblate (French)
Currently translated at 100,0% (458 of 458 strings)
2018-07-07 10:44:35 +02:00
roberto
43ec6da9a2 Translated using Weblate (Italian)
Currently translated at 93.4% (5963 of 6378 strings)
2018-07-05 23:55:40 +02:00
batista10
adc6a704fc Translated using Weblate (Portuguese)
Currently translated at 5.1% (330 of 6378 strings)
2018-07-04 19:41:18 +02:00
Zukero
7bb4aac88a Merge pull request #55 from Rijackson/Bug_fixes_pre_0_7_2
Fix for the problem with pathway_fallhaven where the axe was still in…
2018-07-01 10:58:07 +02:00
Rijackson
9452b65660 Fix for the problem with pathway_fallhaven where the axe was still in inventory after returning it. Also a fix for the Talion dialogue problem identified by zizkin (i.e. eight items should be nine items). 2018-06-29 07:49:45 -04:00
Zukero
c1ad14518d Merge pull request #54 from Rijackson/Bug_fixes_pre_0_7_2
Bug fixes pre 0 7 2
2018-06-29 07:35:25 +02:00
Rijackson
c75136d252 Fix the broken negation on a requirement. 2018-06-28 17:43:09 -04:00
Rijackson
896c16ab0f Minor dialogue fix 2018-06-25 21:37:03 -04:00
Rijackson
0f22db1191 Minor dialogue change for Guynmart when you choose the scroll. 2018-06-25 21:15:24 -04:00
Rijackson
451852f6a7 English fixes to pathway_fallhaven etc. 2018-06-25 21:06:02 -04:00
Zukero
7bc9b9e9e5 Merge pull request #53 from Rijackson/teksin
Teksin
2018-06-24 09:14:01 +02:00
Rijackson
8e972d579d Final tweaks 2018-06-23 15:01:58 -04:00
Boris Li
47d0f01a57 Translated using Weblate (Russian)
Currently translated at 99.1% (454 of 458 strings)
2018-06-23 11:44:42 +02:00
Zukero
b53f117232 Merge pull request #52 from NutAndor/stoutford_tests
missing ring in lakecave map
2018-06-22 07:46:16 +02:00
Nut
32b3c6b3e5 missing ring in lakecave map 2018-06-22 00:04:25 +02:00
Lejo
666bf3887e Translated using Weblate (German)
Currently translated at 99.7% (457 of 458 strings)
2018-06-21 16:38:36 +02:00
Vee F
f9e57cf0a3 Translated using Weblate (Spanish)
Currently translated at 24.8% (1582 of 6378 strings)
2018-06-18 09:44:01 +02:00
Hassani Lahsinui
bcfd599ca7 Translated using Weblate (Arabic)
Currently translated at 4.5% (21 of 458 strings)
2018-06-17 21:34:27 +02:00
Balázs Úr
0a4480820c Translated using Weblate (Hungarian)
Currently translated at 32.7% (2095 of 6388 strings)
2018-06-16 21:39:55 +02:00
Sótanyi Bálint
dbd917d0ff Translated using Weblate (Hungarian)
Currently translated at 32.7% (2095 of 6388 strings)
2018-06-16 21:39:54 +02:00
Rijackson
b5c053bca8 Some minor dialog improvements 2018-06-13 18:44:53 -04:00
Rijackson
60e9fa7073 Initial Teksin commit 2018-06-13 18:20:49 -04:00
Zukero
c045ddc56e Merge pull request #51 from NutAndor/stoutford_tests
merge Graveyard and Guynmart into Stoutford tests
2018-06-10 12:04:55 +02:00
Fahdxx
09544b61b4 Translated using Weblate (Arabic)
Currently translated at 0.1% (7 of 6388 strings)
2018-06-10 11:34:25 +02:00
Allan Nordhøy
d0c73a5fe2 Translated using Weblate (Norwegian Bokmål)
Currently translated at 95.6% (438 of 458 strings)
2018-06-08 15:40:32 +02:00
NutAndor
e00ec840a1 Merge pull request #5 from Zukero/master
merge zukeros master into nuts stoutford_tests
2018-06-07 23:04:45 +02:00
NutAndor
a3b2cfa5b3 Merge pull request #4 from Zukero/stoutford_tests
Stoutford tests (zukeros version)
2018-06-07 23:00:01 +02:00
Allan Nordhøy
1770240d45 Translated using Weblate (Norwegian Bokmål)
Currently translated at 94.7% (434 of 458 strings)
2018-06-07 08:40:51 +02:00
Zukero
47f9ef52eb Merge pull request #50 from NutAndor/guynmart_merge
Guynmart merge
2018-06-05 17:21:04 +02:00
Allan Nordhøy
8fec093497 Translated using Weblate (Norwegian Bokmål)
Currently translated at 89.3% (409 of 458 strings)
2018-06-04 06:39:57 +02:00
Nut
28ddc13217 adds to guynmart_merge
I forgot loadresources.xml :(
and added me to authors.xml
2018-06-04 01:22:59 +02:00
Nut
9992948740 Guynmart merge
next try
2018-06-03 15:39:33 +02:00
NutAndor
341ed04dc8 Merge pull request #2 from Zukero/master
upToDate
2018-06-03 03:25:21 +02:00
Zukero
6e45d36214 Merge pull request #49 from Rijackson/master
Added URL for Mike Gulisano
2018-05-27 08:54:01 +02:00
Rijackson
c1a8619f40 Added URL for Mike Gulisano 2018-05-26 18:14:32 -04:00
lanet
41cccd2d1b Translated using Weblate (Turkish)
Currently translated at 18.3% (1173 of 6378 strings)
2018-05-25 15:43:12 +02:00
Rasmus Sæderup
efdbadcb8e Translated using Weblate (Danish)
Currently translated at 13.9% (64 of 458 strings)
2018-05-23 11:36:16 +02:00
Nicola Lombardi
39f6f08319 Translated using Weblate (Italian)
Currently translated at 99.5% (456 of 458 strings)
2018-05-19 00:38:21 +02:00
Heimen Stoffels
2ed9b72c81 Translated using Weblate (Dutch)
Currently translated at 97.3% (446 of 458 strings)
2018-05-18 14:36:13 +02:00
Zukero
520074bd12 Merge branch 'master' into stoutford_tests
Conflicts:
	AndorsTrail/res/drawable/map_fence_4.png
	AndorsTrail/res/values/loadresources.xml
2018-05-15 10:55:11 +02:00
Zukero
e041e499f3 Merge pull request #48 from Rijackson/master
The graveyard and waterwaycave material from Gulisano and Richard.
2018-05-15 10:24:18 +02:00
Heimen Stoffels
2b656f51ff Translated using Weblate (Dutch)
Currently translated at 70.9% (325 of 458 strings)
2018-05-13 12:36:18 +02:00
Heimen Stoffels
3bfb4ff735 Translated using Weblate (Dutch)
Currently translated at 63.9% (293 of 458 strings)
2018-05-10 14:37:04 +02:00
Heimen Stoffels
945f4ead36 Added translation using Weblate (Dutch) 2018-05-09 11:54:35 +02:00
Rijackson
b42b26bb42 Added guynmart spritesheets and modified map_fence_4 2018-05-02 17:29:12 -04:00
Rijackson
8c876225b4 Merge remote-tracking branch 'upstream/master' 2018-05-02 17:01:19 -04:00
test
a5b5b80466 Translated using Weblate (Russian)
Currently translated at 98.0% (449 of 458 strings)
2018-05-02 15:41:20 +02:00
Rijackson
622a3e5d48 Very minor dialog fixes 2018-04-29 18:00:14 -04:00
antuketot76
5f812bbac1 Translated using Weblate (Malay)
Currently translated at 0.3% (20 of 6378 strings)
2018-04-29 01:39:54 +02:00
Allan Nordhøy
c17b096c08 Translated using Weblate (Norwegian Bokmål)
Currently translated at 84.9% (389 of 458 strings)
2018-04-25 01:39:24 +02:00
Rijackson
e29bc07150 The graveyard and waterwaycave material from Gulisano and me. 2018-04-23 18:18:57 -04:00
librada
684c22e9e9 Translated using Weblate (Japanese)
Currently translated at 3.5% (229 of 6378 strings)
2018-04-19 10:38:14 +02:00
Allan Nordhøy
b0befdc750 Translated using Weblate (Norwegian Bokmål)
Currently translated at 84.4% (387 of 458 strings)
2018-04-16 15:39:25 +02:00
Zukero
e8e850e65e Merge pull request #47 from Rijackson/master
Fix bwentry worldmap and English on one sign
2018-04-09 18:03:30 +02:00
Rijackson
4d771057e6 Fix bwentry worldmap and English on one sign 2018-03-30 16:36:11 -04:00
Zukero
bf9081df00 Merge branch 'master' into stoutford_tests
Conflicts:
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileManager.java
2018-03-27 13:24:08 +02:00
Zukero
93d759e060 Merge branch 'title_screen' 2018-03-27 13:16:01 +02:00
Zukero
3b28c2f378 Desaturated the clouds' colors. Even less saturation for faraway ones.
Clouds speed should be even more consistent across different devices.
Also made the title screen's UI backgrounds "clickable" so a misclick
doesn't hide the UI too easily.
2018-03-26 16:26:52 +02:00
Zukero
055a2eaf32 Finally fixed clouds' lowest position.
Slower logo animation.
Larger logo.
2018-03-26 14:02:28 +02:00
Zukero
db788703e0 Faction-related agressivenes of each monster is now dynamic, not a
one-way flag.
2018-03-26 11:00:25 +02:00
Zukero
8b2dbb4ead Cleanup and consistency. 2018-03-23 17:04:53 +01:00
Zukero
a905d8b08a Better handling of clouds position 2018-03-23 16:56:47 +01:00
Zukero
e594713a9b Attempts to fix clouds position's screen ratio independence & threading
issues on loading dialog.
2018-03-23 16:48:28 +01:00
Zukero
a98df96474 New animation for title logo. Better clouds scaling (now same
pixel-width as mountains etc.). Better loading animation. Clouds
animation now also showing behind loading dialog. Still need to enhance
support for low-end devices.
2018-03-22 17:34:04 +01:00
frottle
2b1cec8e09 Translated using Weblate (Indonesian)
Currently translated at 100.0% (458 of 458 strings)
2018-03-17 05:37:22 +01:00
frottle
50fd314f6a Translated using Weblate (Indonesian)
Currently translated at 100.0% (458 of 458 strings)
2018-03-15 17:17:32 +01:00
frottle
c0805aa081 Translated using Weblate (Indonesian)
Currently translated at 98.0% (449 of 458 strings)
2018-03-15 16:59:49 +01:00
Zukero
470bc423ef Added custom loading animation. Saved some PNGs in indexed color mode,
saving space.
2018-03-14 18:45:15 +01:00
Zukero
03d67209cd Attempts to reduce memory usage of title screen and to improve
consistency over varied screen sizes and DPI (from spica to Full HD PC
through high-end 5" phone). Far from complete...
2018-03-13 18:55:12 +01:00
Daniel Moreno-Arrones Delgado
a7f36b4537 Translated using Weblate (Spanish)
Currently translated at 24.7% (1581 of 6378 strings)
2018-03-13 14:40:42 +01:00
Alberto Moral Ropero
dc2ecda57e Translated using Weblate (Spanish)
Currently translated at 93.0% (426 of 458 strings)
2018-03-13 00:41:35 +01:00
Zukero
1bb52b1f0e More changes to the clouds. 2018-03-12 18:57:37 +01:00
Zukero
e6dda3651d Enhanced title screen's clouds animation. 2018-03-12 15:46:08 +01:00
Alberto Moral Ropero
aed13e9839 Translated using Weblate (Spanish)
Currently translated at 24.7% (1579 of 6378 strings)
2018-03-12 14:03:09 +01:00
Itzíar Gómez Domínguez
2a1a002956 Translated using Weblate (Spanish)
Currently translated at 24.7% (1578 of 6378 strings)
2018-03-12 00:33:43 +01:00
transcelb
d946b4e55f Translated using Weblate (Spanish)
Currently translated at 24.7% (1576 of 6378 strings)
2018-03-11 21:08:20 +01:00
Pablo Lanzas
da2858c126 Translated using Weblate (Spanish)
Currently translated at 24.6% (1574 of 6378 strings)
2018-03-11 19:43:12 +01:00
Maider Gonzalez
19ab49c582 Translated using Weblate (Spanish)
Currently translated at 24.6% (1573 of 6378 strings)
2018-03-11 14:25:15 +01:00
Asier Pagola
f792ad3c62 Translated using Weblate (Spanish)
Currently translated at 24.6% (1571 of 6378 strings)
2018-03-11 14:07:31 +01:00
Mónica Meléndez
7daeacd211 Translated using Weblate (Spanish)
Currently translated at 24.6% (1569 of 6378 strings)
2018-03-11 13:07:23 +01:00
Jesús Espinilla
301f3ca22c Translated using Weblate (Spanish)
Currently translated at 24.5% (1567 of 6378 strings)
2018-03-11 12:12:00 +01:00
anonymous
e7663095a2 Translated using Weblate (Spanish)
Currently translated at 24.5% (1566 of 6378 strings)
2018-03-11 12:08:52 +01:00
Jesús Espinilla
e9344dae9d Translated using Weblate (Spanish)
Currently translated at 24.5% (1565 of 6378 strings)
2018-03-11 12:08:24 +01:00
Marta Costa Mengíbar
544ec3f2ff Translated using Weblate (Spanish)
Currently translated at 24.5% (1564 of 6378 strings)
2018-03-11 12:07:55 +01:00
Elis Bresciani
3fcd4c3168 Translated using Weblate (Portuguese)
Currently translated at 67.6% (310 of 458 strings)
2018-03-10 21:39:22 +01:00
Christian Romero-Caballero
6af9a6f067 Translated using Weblate (Spanish)
Currently translated at 24.4% (1562 of 6378 strings)
2018-03-09 19:40:10 +01:00
Zukero
bf154e058b Progress towards target title screen. 2018-03-09 18:03:19 +01:00
Álvaro “12Compases” PM
ed338e0a9c Translated using Weblate (Spanish)
Currently translated at 24.4% (1561 of 6378 strings)
2018-03-08 19:29:35 +01:00
Zukero
d6d473a3d7 Started integrating new title screen drawables. Crashes on my phone
though :/
2018-03-08 18:28:54 +01:00
María Lax López
283050ba06 Translated using Weblate (Spanish)
Currently translated at 24.4% (1559 of 6378 strings)
2018-03-08 15:27:20 +01:00
Zukero
67f2c41ac9 Preparatory works for new title screen 2018-03-07 17:51:58 +01:00
Balázs Úr
fcd0d75014 Translated using Weblate (Hungarian)
Currently translated at 30.8% (1970 of 6388 strings)
2018-03-04 13:49:59 +01:00
Balázs Úr
5f1affcb9e Translated using Weblate (Hungarian)
Currently translated at 58.2% (267 of 458 strings)
2018-03-04 13:40:56 +01:00
Zukero
d285871321 Merge branch 'master' into title_screen
Conflicts:
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileManager.java
2018-02-28 17:09:23 +01:00
Zukero
97bffa86c7 Fixed rendering when animations are disabled. Backported automatic
sizing of TileCollection from stoutford_tests.
2018-02-28 12:09:03 +01:00
Zukero
68b60a0286 Merge branch 'master' into title_screen
Conflicts:
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/PathFinder.java
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/view/MainView.java
2018-02-27 18:43:53 +01:00
Zukero
cc6d578c0e Merge branch 'master' into stoutford_tests 2018-02-27 18:38:27 +01:00
Zukero
ec733e5b97 Moving sprites do not each trigger a redraw in concurrent threads.
There is now a unique timer that triggers unified timely redraws when
there are sprites moving around. The downside is the moving NPC always
trigger full-screen redraws. On the upside, it should prevent stuttering
when there is a large number of NPCs moving at the same time, as they
were each asynchronously triggering redraws.
2018-02-27 18:37:55 +01:00
Zukero
7d2134205c SpawnArea's spawn group can refer to a specific monster type, even if
the spawn group doesn't exist and that this monster type belongs to a
specific spawngroup (like in ATCS).
2018-02-27 14:29:39 +01:00
suki liao
3e58e1d451 Translated using Weblate (Chinese (Simplified))
Currently translated at 3.1% (202 of 6378 strings)
2018-02-25 09:35:40 +01:00
David Arranz
6f95aae5b0 Translated using Weblate (Spanish)
Currently translated at 24.4% (1557 of 6378 strings)
2018-02-24 00:41:54 +01:00
Zukero
d30cf7fb91 Merge branch 'master' into stoutford_tests 2018-02-23 00:05:04 +01:00
Zukero
f4c762026d Merge branch 'master' of https://github.com/Zukero/andors-trail.git 2018-02-22 23:29:37 +01:00
Zukero
3708c4886e Added new graphics layer "top" above the "above" layer. 2018-02-22 16:43:38 +01:00
Zukero
da59c7143d Spawn areas now allow a boolean property "ignoreAreas", false by
default, that allows monsters from this area to be spawned and moved
over other game objects, like key areas, mapchange areas and rest areas.
2018-02-22 16:19:26 +01:00
Zukero
2ade99eed0 Backported new debug buttons from title_screen branch into master. 2018-02-22 16:00:33 +01:00
Zukero
752a3b64f0 Fixed worldmap recenter that failed on some devices. Now handled in Java
instead of Javascript.
2018-02-22 15:49:36 +01:00
Zukero
4fb476a94e Merge pull request #33 from carceris-magister/mikhail
Mikhail
2018-02-22 13:52:22 +01:00
Zukero
091ed4e773 Merge pull request #46 from Rijackson/stoutford_tests
New map_fence_4.png
2018-02-22 13:51:28 +01:00
Rijackson
30f8755ef5 New map_fence_4.png 2018-02-21 19:20:06 -05:00
Rafael Henrique Mendes de Oliv
91e237137f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (6378 of 6378 strings)
2018-02-14 00:38:55 +01:00
Максим Якимчук
ee714c4d75 Translated using Weblate (Ukrainian)
Currently translated at 10.8% (690 of 6378 strings)
2018-02-13 20:39:42 +01:00
Rafael Henrique Mendes de Oliv
2ec4b49d3a Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (6378 of 6378 strings)
2018-02-12 23:19:58 +01:00
Zukero
153ea0a660 Fixed narrator messages being greyed out as rewards. 2018-02-12 22:06:16 +01:00
Zukero
27a2a87949 Merge separate changes. 2018-02-12 21:52:15 +01:00
Zukero
b77c1b3f94 Fixed bug preventing modified maps from being updated on the worldmap
upon visiting them.
2018-02-12 13:46:22 +01:00
Rafael Henrique Mendes de Oliv
407adbc782 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (458 of 458 strings)
2018-02-11 11:04:52 +01:00
Zukero
5b8e3a7ae4 Merge pull request #45 from Rijackson/master
Fix for cliff heights in Crossglen
2018-02-10 16:58:01 +01:00
Rijackson
8a0af4038a Fixed fix for cliff heights in Crossglen. 2018-02-10 10:08:16 -05:00
Rijackson
98bf2d0381 Fix for cliff heights in Crossglen 2018-02-10 10:03:38 -05:00
Zukero
d8fd9e3799 Merge branch 'master' into stoutford_tests
Conflicts:
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileManager.java
2018-02-10 14:37:04 +01:00
Zukero
e300c1383e Merge branch 'master' of https://github.com/Zukero/andors-trail.git 2018-02-10 14:32:53 +01:00
Zukero
193048cb8f Added "alignmentSet" reward type for dialogues. 2018-02-10 14:32:36 +01:00
NutAndor
0583622427 Merge pull request #1 from Zukero/stoutford_tests
Stoutford tests
2018-02-10 09:13:12 +01:00
Rafael Henrique Mendes de Oliv
55d45e7dc1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.4% (5322 of 6378 strings)
2018-02-08 13:39:02 +01:00
Rafael Henrique Mendes de Oliv
e75a4c59cb Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.7% (457 of 458 strings)
2018-02-07 17:38:38 +01:00
Viktar Vauchkevich
066658625b Translated using Weblate (Belarusian)
Currently translated at 100.0% (458 of 458 strings)
2018-02-03 22:08:45 +01:00
Марс Ямбар
ae8630e6e3 Translated using Weblate (Ukrainian)
Currently translated at 10.5% (675 of 6378 strings)
2018-01-31 23:41:20 +01:00
Viktar Vauchkevich
ede0aaf615 Added translation using Weblate (Belarusian) 2018-01-30 22:10:54 +01:00
Марс Ямбар
22a05e6ea9 Translated using Weblate (Ukrainian)
Currently translated at 18.7% (86 of 458 strings)
2018-01-29 19:42:56 +01:00
Mutaz Tayyeb AbuSaad
2379d54e10 Translated using Weblate (Arabic)
Currently translated at 0.1% (6 of 6388 strings)
2018-01-28 09:34:18 +01:00
Mutaz Tayyeb AbuSaad
4aac49aac9 Translated using Weblate (Arabic)
Currently translated at 0.1% (3 of 6388 strings)
2018-01-27 09:24:52 +01:00
Марс Ямбар
5235961871 Translated using Weblate (Ukrainian)
Currently translated at 10.5% (674 of 6378 strings)
2018-01-24 13:34:21 +01:00
Марс Ямбар
9feb321a1f Translated using Weblate (Ukrainian)
Currently translated at 18.5% (85 of 458 strings)
2018-01-24 13:34:20 +01:00
Sıtkı Bağdat
d329d24094 Translated using Weblate (Turkish)
Currently translated at 18.3% (1173 of 6378 strings)
2018-01-24 13:32:21 +01:00
Daniel-Ømicrón Rodríguez Garcí
c091ef3cdc Translated using Weblate (Spanish)
Currently translated at 92.5% (424 of 458 strings)
2018-01-24 13:29:18 +01:00
Allan Nordhøy
39a7dfdd24 Translated using Weblate (Norwegian Bokmål)
Currently translated at 82.3% (377 of 458 strings)
2018-01-24 13:21:40 +01:00
rixty
277821fc91 Translated using Weblate (Italian)
Currently translated at 45.0% (2874 of 6378 strings)
2018-01-24 13:18:27 +01:00
ghsuvr
d188b08c32 Translated using Weblate (Hebrew)
Currently translated at 27.0% (124 of 458 strings)
2018-01-24 13:16:14 +01:00
Olivier Dragon
311fc5e07a Translated using Weblate (French)
Currently translated at 76.7% (4897 of 6378 strings)
2018-01-24 13:12:32 +01:00
Erin Heart
61cf342db2 Translated using Weblate (English (United States))
Currently translated at 0.1% (3 of 6388 strings)
2018-01-24 13:09:30 +01:00
Erin Heart
403eaa8a9a Translated using Weblate (English)
Currently translated at 100.0% (458 of 458 strings)
2018-01-24 13:08:34 +01:00
Yura
63dacda4c6 Translated using Weblate (Ukrainian)
Currently translated at 10.5% (672 of 6378 strings)
2018-01-22 22:56:50 +01:00
Yura
96a9c17a2a Translated using Weblate (Ukrainian)
Currently translated at 16.5% (76 of 458 strings)
2018-01-22 20:59:27 +01:00
thomas
eab06e1768 Translated using Weblate (French)
Currently translated at 76.4% (4878 of 6378 strings)
2018-01-22 03:37:25 +01:00
Olivier Dragon
aa492fb424 Translated using Weblate (French)
Currently translated at 76.4% (4877 of 6378 strings)
2018-01-22 03:37:04 +01:00
thomas
3567f67daa Translated using Weblate (French)
Currently translated at 76.4% (4877 of 6378 strings)
2018-01-22 03:36:45 +01:00
Olivier Dragon
53f03bab95 Translated using Weblate (French)
Currently translated at 76.4% (4876 of 6378 strings)
2018-01-22 03:33:52 +01:00
anonymous
896ed2b4fd Translated using Weblate (French)
Currently translated at 76.4% (4875 of 6378 strings)
2018-01-22 03:33:13 +01:00
Olivier Dragon
037363c20a Translated using Weblate (French)
Currently translated at 76.4% (4874 of 6378 strings)
2018-01-22 03:32:58 +01:00
thomas
f99ca4518d Translated using Weblate (French)
Currently translated at 76.4% (4874 of 6378 strings)
2018-01-22 03:32:47 +01:00
Olivier Dragon
0e082a44c8 Translated using Weblate (French)
Currently translated at 76.4% (4873 of 6378 strings)
2018-01-22 03:30:15 +01:00
thomas
bb12a5f235 Translated using Weblate (French)
Currently translated at 76.4% (4873 of 6378 strings)
2018-01-22 03:29:58 +01:00
Olivier Dragon
0df601e6fb Translated using Weblate (French)
Currently translated at 76.3% (4872 of 6378 strings)
2018-01-22 03:27:54 +01:00
thomas
50fff520ab Translated using Weblate (French)
Currently translated at 76.3% (4872 of 6378 strings)
2018-01-22 03:27:30 +01:00
anonymous
7063f2a764 Translated using Weblate (French)
Currently translated at 76.3% (4870 of 6378 strings)
2018-01-22 03:24:55 +01:00
Olivier Dragon
5f39ee5c62 Translated using Weblate (French)
Currently translated at 76.3% (4870 of 6378 strings)
2018-01-22 03:24:32 +01:00
thomas
51cf939bf7 Translated using Weblate (French)
Currently translated at 76.3% (4870 of 6378 strings)
2018-01-22 03:22:03 +01:00
Olivier Dragon
8e75fd56d2 Translated using Weblate (French)
Currently translated at 76.3% (4870 of 6378 strings)
2018-01-22 03:18:48 +01:00
Zukero
23faa6d19c Fix mis-clicks around the "flee" buttons (and all of the Combat UI)
triggering an attack.
You are now allowed to use fat fingers.
2018-01-15 11:55:40 +01:00
Zukero
332eee0736 Merge remote-tracking branch 'origin/master' into title_screen 2018-01-15 11:35:11 +01:00
Zukero
421a03980a Bug fix for factionScore requirements 2018-01-15 11:34:25 +01:00
Saarthak Chaturvedi
c099460c69 Translated using Weblate (Turkish)
Currently translated at 18.3% (1172 of 6378 strings)
2018-01-12 22:55:38 +01:00
Yura
f4ba07e626 Added translation using Weblate (Ukrainian) 2017-12-28 22:23:26 +01:00
Zukero
0a04b516dd Fixed another (hopefully the last one) issue introduced during the Great
Reordering of content (loss of requirements negation in Dialogues'
replies).
2017-12-12 23:35:27 +01:00
Zukero
b87617e7eb Renamed themes. 2017-12-09 15:36:01 +01:00
Allan Nordhøy
88b1462787 Translated using Weblate (Norwegian Bokmål)
Currently translated at 4.0% (256 of 6388 strings)
2017-11-30 01:49:10 +01:00
Allan Nordhøy
54bfc20b36 Translated using Weblate (Norwegian Bokmål)
Currently translated at 3.9% (255 of 6388 strings)
2017-11-27 07:49:01 +01:00
Myself
2c6d543e6b Translated using Weblate (Italian)
Currently translated at 45.0% (2874 of 6378 strings)
2017-11-25 23:47:43 +01:00
Allan Nordhøy
4904bd8c1c Translated using Weblate (Norwegian Bokmål)
Currently translated at 83.1% (381 of 458 strings)
2017-11-24 15:49:06 +01:00
Allan Nordhøy
a678de68b8 Added translation using Weblate (Norwegian Bokmål) 2017-11-23 15:15:59 +01:00
Zukero
1be47b2e0e Fixed the green theme colors. Added dark gray theme. Renamed the themes
after metals.
2017-11-22 23:29:33 +01:00
Zukero
5b6301998e Forgot to update a color ref for green. 2017-11-22 18:24:55 +01:00
Zukero
14f83283fb No more "gold", green instead. All made from blue using scripts. 2017-11-22 18:22:47 +01:00
Zukero
bca34db508 Cleanup of all UI bitmaps, to have a cleaner, more consistent color
palette, easing the scriptability of derivatives creation.
2017-11-22 16:17:34 +01:00
Zukero
7e2494196c Fixed ListSeparator bugs introduced with recent change.
New and enhanced debug buttons!
2017-11-21 15:07:35 +01:00
Zukero
a54798443a Fixed compatibility with Donut (1.6). Better list separator. Shops tabs
were mysteriously forgotten, until now, so I added icons too.
2017-11-20 23:52:38 +01:00
Zukero
413bf66c68 Removed Red, replaced by Gold. Not really pretty either... but it now
works... except on Android 1.6...
2017-11-20 18:50:10 +01:00
Zukero
827260c90f First phase in attempt to provide several UI themes. 2017-11-19 22:37:03 +01:00
Allan Nordhøy
3b31a877d0 Translated using Weblate (Norwegian Bokmål)
Currently translated at 57.8% (265 of 458 strings)
2017-11-19 08:48:02 +01:00
Zukero
b24e348c51 Another one. 2017-11-18 00:10:48 +01:00
Zukero
cbdb53c813 "Really" fixed minor coloring issue. 2017-11-18 00:09:26 +01:00
Zukero
92793c73cf Fixed minor coloring issue. 2017-11-18 00:07:44 +01:00
Zukero
d81ed7a6b5 Fixed styles. Now correctly themeable. 2017-11-18 00:06:24 +01:00
Austin Huang
f8ecb81116 Translated using Weblate (Chinese (Simplified))
Currently translated at 1.0% (68 of 6378 strings)
2017-11-17 20:45:00 +01:00
Zukero
df81e96a08 WARNING: Does not run!
Huge clean-up. Separation between themes and style. Preparatory work for
theme inheritance and alternative themes made by derivation.
Problem: due to a pre-lollipop bug, I still have to remove some color
indirections through attributes, as they are not preperly resolved.
2017-11-17 19:20:35 +01:00
Zukero
8c28166c11 Fixed issue in Vilegard where you could talk about the Xulviir and the
Feygard swords to all merchants instead of only the smith while Vilegard
people distrusts you.
2017-11-17 12:01:38 +01:00
Zukero
f1867667aa More layout fixes 2017-11-17 11:55:49 +01:00
Abood Ay
56908d34dc Translated using Weblate (Arabic)
Currently translated at 2.4% (11 of 458 strings)
2017-11-16 00:44:14 +01:00
Bruno Crocquevieille
1c4b2ab5d3 Translated using Weblate (French)
Currently translated at 74.9% (4783 of 6378 strings)
2017-11-15 11:46:22 +01:00
Zukero
af052408b1 More layout fixes on the rangebar. 2017-11-14 22:45:11 +01:00
Zukero
a4d1e8b463 Clean up stylesheets. 2017-11-14 22:35:34 +01:00
Zukero
e93810876c "More" action button presence in ItemInfoActivity corrected. 2017-11-14 22:17:51 +01:00
Zukero
aea3571ca5 Fixed title screen animation for Lollipop+
Larger buttons overall and better spacing between replies.
2017-11-14 19:03:58 +01:00
Zukero
81c0c1a7ff Animated logo on title screen 2017-11-13 16:43:08 +01:00
Zukero
5b2b787f90 Fixed Dialog button text color on old android versions. 2017-11-13 14:16:50 +01:00
Zukero
1d0bdf1e4e Added recenter button on worldmap. 2017-11-13 13:55:04 +01:00
Zukero
4cdc08b360 Layout tweaks and bug fixes. 2017-11-13 12:35:01 +01:00
Zukero
0f90281e0f Fixed worldmap scrolling. Removed useless "More" button on item info
when opened from shops.
2017-11-13 10:33:57 +01:00
Zukero
f06e0d714a Added missing credit. 2017-11-11 09:08:22 +01:00
Zukero
bccab0421a Credited authors 2017-11-11 08:57:27 +01:00
Zukero
cef4000391 Preferences OK. Finally, the whole UI is under control. 2017-11-10 23:34:20 +01:00
Zukero
13a8e351bd ListPreferences popup issue almost fixed. 2017-11-10 20:01:30 +01:00
Zukero
e3ca04cde7 'More' button in item info view to go back and forth between simple
click and long click menus in the inventory.
2017-11-09 16:52:57 +01:00
Zukero
6394353fa0 Custom context menu on inventory now works. 2017-11-09 16:39:30 +01:00
Zukero
3598624a8e Reimplementation of the inventory context menu. Not complete yet.
Android doesn't help...
2017-11-09 00:35:22 +01:00
Zukero
b57f847b09 Nice combo boxes, erm, spinners, emulated through a button and a dialog.
Dual-sized heroes.
Did "Organize imports" in eclipse on the whole project, so almost all
java files are changed, but not by much.
2017-11-08 18:36:17 +01:00
Zukero
f161926a75 Spinner emulation for inventory filters. Allows greater control over
dropdown menu L&F.
2017-11-08 00:16:55 +01:00
Zukero
763c964b17 Better readability of magnitude & duration in actor condition bars.
Better list item borders bitmaps.
2017-11-07 18:50:06 +01:00
Zukero
7122907cc0 Nice actor conditions indicator bars. 2017-11-07 17:30:32 +01:00
Zukero
f9c3bc6bf6 Color palette in resources. Conversation activity uses it now.
Preferences category headers fixed.
2017-11-06 23:53:40 +01:00
Zukero
f78862e778 Better tabs, bettertext color consistency, UI skinning not yet
completed...
2017-11-06 19:08:31 +01:00
Zukero
effc7b6446 More tiny tweaks. 2017-11-06 00:23:44 +01:00
Zukero
5b28c58523 More tiny tweaks. 2017-11-06 00:22:54 +01:00
Zukero
164990ec6b Tabs in hero view are now themed. Also, preparatory works for Dual-size
hero icons, and more UI tweaks.
2017-11-06 00:20:10 +01:00
Zukero
a017fbcf67 More progress on the UI skinning effort. Combat view now shows an AP
bar.
2017-11-05 17:37:50 +01:00
Zukero
e4be5d35a8 New Dialog system for better UI control. ALmost there... 2017-11-05 01:47:27 +01:00
Zukero
e87ea318ec More UI tweaks... getting there... 2017-11-04 00:17:11 +01:00
Zukero
3a8ad1395f More UI tweaks... not there yet. 2017-11-03 18:06:50 +01:00
Zukero
335c853acd Theme refining 2017-11-03 11:03:46 +01:00
Zukero
6787a0ac4b More UI tweaks. 2017-11-02 19:10:23 +01:00
Zukero
a4694be347 UI Styling like crazy. 2017-11-02 19:05:15 +01:00
Zukero
a8b24abb39 Select your hero !
Support for three different hero sprites.
Externalized New Game Creation in a separate fragment.
Enhanced title screen UI.
Continuable game preview.
2017-10-31 18:26:11 +01:00
MALAM GUSTA
d2d33625c0 Translated using Weblate (Malay)
Currently translated at 0.1% (12 of 6378 strings)
2017-10-31 07:47:51 +01:00
Zukero
6cfe381b84 First test at enhancing the start screen UI. 2017-10-30 18:12:30 +01:00
Zukero
29379be41c UI to show actor conditions active on the targeted NPC during battle. 2017-10-24 18:23:45 +02:00
Zukero
8667e925f3 Simple bug fix where full round triggers incorrectly decreased
conditions duration for monsters, while it doesn't for players.
2017-10-22 17:59:18 +02:00
Daria Szatan
aa65d79715 Translated using Weblate (Polish)
Currently translated at 99.9% (6377 of 6378 strings)
2017-10-13 19:47:36 +02:00
Zukero
5d82232453 Merge remote-tracking branch 'choose_remote_name/master' 2017-10-03 22:47:14 +02:00
Zukero
716b96b624 Even a NPC with a 1x1 spawn area can track a player down. 2017-10-02 19:04:27 +02:00
Zukero
afadac0f2f NPCs don't need to be aggressive to "pathfind" the player anymore. 2017-10-02 18:24:05 +02:00
Zukero
38985b0ef3 Merge branch 'master' into stoutford_tests 2017-10-02 16:33:11 +02:00
Zukero
60edd73fc2 Removed unnecessary warnings about replace area requirement-related
properties.
Added code to clear the "isApplied" flag on a replace area when another
replace area is applied later and intersects with the first one.
2017-10-02 16:32:31 +02:00
Zukero
4b4a10ec62 Merge pull request #38 from sdevaney/master
Readme and contributors list
2017-09-29 09:17:44 +02:00
Anders Jonsson
0d384fd495 Translated using Weblate (Swedish)
Currently translated at 53.0% (243 of 458 strings)
2017-09-29 00:49:09 +02:00
Anders Jonsson
1290d178c2 Translated using Weblate (Swedish)
Currently translated at 6.3% (405 of 6378 strings)
2017-09-29 00:48:58 +02:00
Scott Devaney
597f90da21 fix last of relative links 2017-09-28 17:02:17 -04:00
Scott Devaney
b7fe6864d3 fix relative links 2017-09-28 16:59:07 -04:00
Scott Devaney
3841e00c3a Updated readme v0.2
Broke out gfx and additional contribs to their own file.
Added additional Authors
2017-09-28 16:53:30 -04:00
Scott Devaney
6052788322 Contributors lists
added contributors lists and broke out graphics to another file since it is so long
2017-09-28 16:41:25 -04:00
Scott Devaney
d4e82b4e68 First readme for AT
Readme v0.1
2017-09-28 14:14:40 -04:00
Eilon
4fcf77f855 Translated using Weblate (Hebrew)
Currently translated at 17.2% (79 of 458 strings)
2017-09-20 21:46:59 +02:00
Allan Nordhøy
4256059cab Translated using Weblate (Norwegian Bokmål)
Currently translated at 34.9% (160 of 458 strings)
2017-09-13 03:53:24 +02:00
lanet
c9e4352962 Translated using Weblate (Turkish)
Currently translated at 18.3% (1170 of 6378 strings)
2017-09-08 12:48:49 +02:00
lanet
22933d24a6 Translated using Weblate (Turkish)
Currently translated at 18.3% (1168 of 6378 strings)
2017-08-31 12:58:34 +02:00
Zukero
e0c7dd35b8 Items' onHitReceived effects now applied. 2017-08-29 18:47:35 +02:00
Zukero
ea03360145 Bug fixes and first tests with debug content for the revenge strike and
enhanced combat log features.
2017-08-28 18:32:43 +02:00
Zukero
a17eaadf4e Added UI to show the stats for the "revenge strike" feature. 2017-08-28 17:52:34 +02:00
Zukero
da76ea4542 Revenge effects & Enhanced combat log.
Apply effect when you or a NPC received a hit (effect defined on
defender).
Apply effect when a NPC dies (effect defined on NPC).
Messages in the combat log for taunt skill and actor conditions effects.
2017-08-28 16:55:53 +02:00
Zukero
819edf7048 Merge branch 'master' into stoutford_tests
Conflicts:
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/tiles/TileManager.java
2017-08-28 13:18:42 +02:00
Zukero
93bdb8e18f New icon for immunity overlay. 2017-08-28 13:15:39 +02:00
Zukero
ab61c774bf Added immunity as a dialogue reward type.
Debug content can trigger all event types.
2017-08-27 12:58:14 +02:00
Zukero
9b42b246bb Reapply item-borne condition prevented by a now worn out temporary
immunity.
2017-08-27 10:21:04 +02:00
Zukero
aeaa5ffd42 Fixed issues in immunity management:
- Can detect the case where you unequip an item that grants an immunity
while having another, temporary, immunity to the same actor condtion
- Reapplies an AC coming from an equipped item when you unequip another
item that granted immunity.
- Added immunities to the saves.
2017-08-27 09:45:51 +02:00
Zukero
84059a575f Actor condition immunity! It works!
For a few rounds with a positive duration, or forever with 999 duration,
or as part of the equip_effect on an item. Examples in the debug items.
2017-08-27 00:47:29 +02:00
Zukero
6b5513acb2 Merge branch 'master' into stoutford_tests
Conflicts:
	AndorsTrail/res/drawable/items_rijackson_1.png
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/ResourceLoader.java
2017-08-25 23:52:10 +02:00
Zukero
cd508e70f1 Included new tilesets in the resource loader.
Also added comment flags to prepare for generation of these lines by
ATCS.
2017-08-25 23:45:26 +02:00
Zukero
edecf946b2 Merge pull request #35 from Rijackson/master
Added japozero spritesheets to master branch. Also a new item sprite …
2017-08-25 23:32:55 +02:00
lanet
9a4a1610c4 Translated using Weblate (Turkish)
Currently translated at 18.2% (1167 of 6378 strings)
2017-08-23 18:48:29 +02:00
Zukero
75238bbcdf Merge branch 'master' into stoutford_tests 2017-08-21 14:41:10 +02:00
Zukero
d15e15a897 Fixed bug in feature ending a round at the end of a combat that caused
an infinite recursion (Stack overflow) when the combat ended due to
player death while afflicted by an actor condition.
2017-08-21 14:40:46 +02:00
Rijackson
6a4c949ad5 Added japozero spritesheets to master branch. Also a new item sprite (recolored flowers for the damerialias), and some new map sprites (a new window, some new fences/pillars, and some crossings for the rail tracks). The map sprites are only in experimental maps, but I thought I should make them available to anyone doing map making. 2017-08-20 19:10:20 -04:00
Zukero
f23b5ee738 Merge branch 'master' into stoutford_tests 2017-08-20 11:14:36 +02:00
Zukero
acf15e5b6d Added the new "factionScore" requirement type. 2017-08-20 11:13:57 +02:00
lanet
a3398a1754 Translated using Weblate (Turkish)
Currently translated at 18.2% (1167 of 6378 strings)
2017-08-19 15:48:21 +02:00
Carceris Magister
8f8bcf8a6c Use proper JSON boolean for negate statements 2017-08-18 22:47:49 -04:00
Carceris Magister
a5e10aaf0b Merge branch 'mikhail' of github.com:carceris-magister/andors-trail into mikhail 2017-08-18 22:42:48 -04:00
Carceris Magister
ff61d64c83 Merge branch 'master' of github.com:Zukero/andors-trail into mikhail 2017-08-18 19:41:47 -04:00
Zukero
7c231336a6 Merge branch 'master' into stoutford_tests
Conflicts:
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/map/TMXMapTranslator.java
2017-08-18 16:22:05 +02:00
Zukero
7086684eb0 Replace areas can now use complete requirements, like Key areas, not
only "questProgress" ones. Untested. Beware.
2017-08-18 16:08:35 +02:00
Zukero
98ac4ba6ef Merge branch 'master' into stoutford_tests 2017-08-18 11:54:41 +02:00
Zukero
8acaef419d Fixed lost "negate" line in conversationlist_stoutford.json
It was breaking the rumblings quest.
2017-08-18 11:54:25 +02:00
Zukero
2e631c74da Merge pull request #34 from carceris-magister/mikhail-poison
Fixed dangling reference in Mikhail's conversation list.
2017-08-17 17:49:48 +02:00
Carceris Magister
101d722ae6 Fixed dangling reference in Mikhail's conversation list. 2017-08-17 09:16:36 -04:00
monolifed
54115a7d07 Translated using Weblate (Turkish)
Currently translated at 17.1% (1093 of 6378 strings)
2017-08-17 08:53:04 +02:00
Carceris Magister
195b8eb5f9 Improved Mikhail's initial dialog with more context and to avoid repeating opening monologue (info still available when character asks.) 2017-08-16 21:13:08 -04:00
Zukero
f9ea913bba Cleaner formula for previous dual-wield fix. 2017-08-16 21:09:09 -04:00
lanet
b5be8aee96 Translated using Weblate (Turkish)
Currently translated at 17.1% (1092 of 6378 strings)
2017-08-15 12:48:12 +02:00
lanet
a8d601600e Translated using Weblate (Turkish)
Currently translated at 16.1% (1033 of 6378 strings)
2017-08-12 18:48:39 +02:00
Zukero
ed4fd97e1c Cleaner formula for previous dual-wield fix. 2017-08-11 13:10:01 +02:00
Zukero
23170721cb Cleaner formula for previous dual-wield fix. 2017-08-11 13:09:28 +02:00
Zukero
24b6b5b062 Merge branch 'master' into stoutford_tests 2017-08-11 13:05:43 +02:00
Zukero
7c6aea4d7c Fixed Dual-Wield level 1, so that the resulting attack cost is the
slowest weapon + half the fastest weapon, instead of the main hand +
half the off-hand.
Implies changes to the skill description in the string ID
skill_longdescription_fightstyle_dualwield.
2017-08-11 13:05:22 +02:00
Zukero
0c05167db6 Merge branch 'master' into stoutford_tests
Conflicts:
	AndorsTrail/res/raw/conversationlist_pathway_fallhaven.json
2017-08-11 10:45:05 +02:00
Zukero
1751b9d765 Fixed and robustified the pathway_fallhaven quest. 2017-08-11 10:41:44 +02:00
lanet
014fcc02fe Translated using Weblate (Turkish)
Currently translated at 14.9% (955 of 6378 strings)
2017-08-10 15:47:17 +02:00
Zukero
f8fd6888d7 No more hard-coded fixed size TileCollection. No more crashes because
you used a new tile.
2017-08-09 18:07:01 +02:00
Stanisław Krukowski
2527b95924 Translated using Weblate (Polish)
Currently translated at 99.9% (6377 of 6378 strings)
2017-08-09 09:46:04 +02:00
lanet
0cba627a37 Translated using Weblate (Turkish)
Currently translated at 14.8% (944 of 6378 strings)
2017-08-08 09:46:55 +02:00
lanet
1561d3e8db Translated using Weblate (Turkish)
Currently translated at 14.6% (932 of 6378 strings)
2017-08-07 00:46:53 +02:00
İsim Yok
d162e3dedd Translated using Weblate (Turkish)
Currently translated at 10.0% (644 of 6378 strings)
2017-08-02 00:47:12 +02:00
İsim Yok
37ba066a3b Translated using Weblate (Turkish)
Currently translated at 6.4% (412 of 6378 strings)
2017-07-30 00:47:13 +02:00
Zukero
45d3ab9fb5 Merge branch 'master' into stoutford_tests
Conflicts:
	AndorsTrail/res/values/loadresources.xml
2017-07-25 21:33:55 +02:00
Zukero
ee838d67c8 Merge pull request #30 from dacmot/end_round_at_end_of_combat
End round at end of combat
2017-07-25 21:07:01 +02:00
dacmot
a3a043b993 Add myself to authors 2017-07-25 14:55:25 -04:00
thomas
ce462c57a8 Translated using Weblate (French)
Currently translated at 74.6% (4763 of 6378 strings)
2017-07-24 12:45:16 +02:00
thomas
ced979131a Translated using Weblate (French)
Currently translated at 74.6% (4763 of 6378 strings)
2017-07-19 21:44:59 +02:00
Petter Reinholdtsen
479aac3fd7 Translated using Weblate (Norwegian Bokmål)
Currently translated at 9.3% (43 of 458 strings)
2017-07-10 09:46:05 +02:00
Petter Reinholdtsen
40529f645d Added translation using Weblate (Norwegian Bokmål) 2017-07-08 06:49:59 +02:00
Roman Leo
3bd12be85d Translated using Weblate (Polish)
Currently translated at 99.9% (6377 of 6378 strings)
2017-07-05 18:46:41 +02:00
Roman Leo
010c17b6d5 Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2017-06-29 15:54:00 +02:00
Roman Leo
1b90e1c892 Translated using Weblate (German)
Currently translated at 100.0% (458 of 458 strings)
2017-06-29 15:54:00 +02:00
Roman Leo
0bc8ceb06c Translated using Weblate (German)
Currently translated at 100.0% (458 of 458 strings)
2017-06-26 12:45:34 +02:00
Sebastian Hainke
d23bf6fdba Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2017-06-26 12:25:20 +02:00
Roman Leo
bf935ac921 Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2017-06-26 12:21:07 +02:00
Roman Leo
2634beb2f4 Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2017-06-26 12:04:14 +02:00
anonymous
b38aeeb04f Translated using Weblate (German)
Currently translated at 99.9% (6377 of 6378 strings)
2017-06-26 12:01:17 +02:00
Roman Leo
1e5bec8636 Translated using Weblate (German)
Currently translated at 99.9% (6376 of 6378 strings)
2017-06-26 12:00:00 +02:00
Stefanie Beck
06ab5d5dd9 Translated using Weblate (German)
Currently translated at 99.9% (6375 of 6378 strings)
2017-06-26 11:56:10 +02:00
Roman Leo
e0fa887adb Translated using Weblate (German)
Currently translated at 99.9% (6375 of 6378 strings)
2017-06-26 11:55:11 +02:00
Olivier Dragon
487c18618f Translated using Weblate (French)
Currently translated at 74.6% (4759 of 6378 strings)
2017-06-09 06:45:00 +02:00
paco nie
ec9be04f79 Added translation using Weblate (Acholi) 2017-06-03 05:20:24 +02:00
emuking
b8bb814765 Translated using Weblate (Arabic)
Currently translated at 0.1% (1 of 6388 strings)
2017-05-25 12:44:08 +02:00
Balázs Úr
7b02fbfeb8 Translated using Weblate (Hungarian)
Currently translated at 48.6% (223 of 458 strings)
2017-05-23 15:45:21 +02:00
Dacmot
2c95d0b88d Add back round counters reset and move a function call to put it with similar functions 2017-05-22 22:37:14 -04:00
Dacmot
a8a1b13d49 Perform end-of-round in combatExit() and remove resetRoundTimers() 2017-05-22 13:20:27 -04:00
Dacmot
fedff3eca1 Revert change in newPlayerTurn() which did not work 2017-05-21 16:38:14 -04:00
imran hadid
f06c478a6d Added translation using Weblate (Bengali (Bangladesh)) 2017-05-19 07:37:19 +02:00
Voom
c345f379b2 Translated using Weblate (Bulgarian)
Currently translated at 0.8% (4 of 458 strings)
2017-05-18 13:19:06 +02:00
Dacmot
45d90689f8 Ensure turn ends at the end of combat 2017-05-16 22:57:32 -04:00
Zukero
bda232cbc1 Merge pull request #29 from Rijackson/master
Minor changes to Mikhail's dialog
2017-05-11 23:38:02 +02:00
Rijackson
477f1d9326 Minor changes to Mikhail's dialog from Tom, that give a little information about raw meat and food poisoning. 2017-05-11 17:10:01 -04:00
test
c7cf064842 Translated using Weblate (Russian)
Currently translated at 100.0% (458 of 458 strings)
2017-05-10 15:46:35 +02:00
呂學維
18eb0774e8 Translated using Weblate (Chinese (Traditional))
Currently translated at 4.3% (277 of 6378 strings)
2017-05-07 12:44:31 +02:00
scriptalert(1233)/script
a3f179531b Translated using Weblate (Arabic)
Currently translated at 0.0% (0 of 6388 strings)

<script>alert(23444)</script>
2017-05-07 12:44:08 +02:00
張正威
ca0ce0ef7c Translated using Weblate (Chinese (Traditional))
Currently translated at 4.3% (275 of 6378 strings)
2017-05-05 10:39:03 +02:00
張庭維
a2bd8494ab Translated using Weblate (Chinese (Traditional))
Currently translated at 4.2% (272 of 6378 strings)
2017-05-05 10:23:04 +02:00
Pratik Panchal
6c314abc1a Added translation using Weblate (Arabic) 2017-05-02 14:39:26 +02:00
test
3c2de5b976 Translated using Weblate (Russian)
Currently translated at 100.0% (458 of 458 strings)
2017-04-29 21:46:28 +02:00
ninjacrewakx
ce6548211d Translated using Weblate (Azerbaijani)
Currently translated at 0.1% (1 of 6388 strings)

{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("ls")}}
2017-04-26 12:44:11 +02:00
test
01d2b5acc6 Translated using Weblate (Russian)
Currently translated at 100.0% (458 of 458 strings)
2017-04-26 00:46:47 +02:00
test
f50d6e9c0c Translated using Weblate (Russian)
Currently translated at 100.0% (6378 of 6378 strings)
2017-04-25 18:46:32 +02:00
test
e7726ac218 Translated using Weblate (Russian)
Currently translated at 100.0% (458 of 458 strings)
2017-04-23 17:01:24 +02:00
anonymous
071370a282 Translated using Weblate (Russian)
Currently translated at 99.5% (456 of 458 strings)
2017-04-23 16:57:28 +02:00
test
7aebf5d8ab Translated using Weblate (Russian)
Currently translated at 99.3% (455 of 458 strings)
2017-04-23 16:56:47 +02:00
anonymous
23adec8978 Translated using Weblate (Russian)
Currently translated at 98.9% (453 of 458 strings)
2017-04-23 16:55:43 +02:00
test
c1321ee330 Translated using Weblate (Russian)
Currently translated at 96.9% (444 of 458 strings)
2017-04-23 16:54:01 +02:00
anonymous
1cfc567b03 Translated using Weblate (Russian)
Currently translated at 96.9% (444 of 458 strings)
2017-04-23 16:53:53 +02:00
test
5349605541 Translated using Weblate (Russian)
Currently translated at 96.7% (443 of 458 strings)
2017-04-23 16:53:24 +02:00
anonymous
4596690358 Translated using Weblate (Russian)
Currently translated at 96.7% (443 of 458 strings)
2017-04-23 16:53:18 +02:00
test
09f9ef723f Translated using Weblate (Russian)
Currently translated at 96.2% (441 of 458 strings)
2017-04-23 16:53:08 +02:00
anonymous
bc0d2ce2a7 Translated using Weblate (Russian)
Currently translated at 94.3% (432 of 458 strings)
2017-04-23 16:48:29 +02:00
test
93ca7dc46f Translated using Weblate (Russian)
Currently translated at 94.1% (431 of 458 strings)
2017-04-23 16:44:56 +02:00
anonymous
9b3884d44c Translated using Weblate (Russian)
Currently translated at 90.3% (414 of 458 strings)
2017-04-23 16:35:11 +02:00
test
0b36691872 Translated using Weblate (Russian)
Currently translated at 89.7% (411 of 458 strings)
2017-04-23 16:34:43 +02:00
anonymous
c15e22a17b Translated using Weblate (Russian)
Currently translated at 89.5% (410 of 458 strings)
2017-04-23 16:30:53 +02:00
test
237c155a8d Translated using Weblate (Russian)
Currently translated at 87.9% (403 of 458 strings)
2017-04-23 16:29:01 +02:00
anonymous
ae4e4141de Translated using Weblate (Russian)
Currently translated at 87.7% (402 of 458 strings)
2017-04-23 16:28:41 +02:00
test
9a3f982fc2 Translated using Weblate (Russian)
Currently translated at 86.8% (398 of 458 strings)
2017-04-23 16:28:08 +02:00
anonymous
6576746f80 Translated using Weblate (Russian)
Currently translated at 85.1% (390 of 458 strings)
2017-04-23 16:27:27 +02:00
test
89ecede9d9 Translated using Weblate (Russian)
Currently translated at 84.7% (388 of 458 strings)
2017-04-23 16:26:59 +02:00
anonymous
3b95c93bd3 Translated using Weblate (Russian)
Currently translated at 72.2% (331 of 458 strings)
2017-04-23 11:30:53 +02:00
test
28e30a13c0 Translated using Weblate (Russian)
Currently translated at 71.3% (327 of 458 strings)
2017-04-23 11:30:17 +02:00
anonymous
ab905fb8dc Translated using Weblate (Russian)
Currently translated at 71.3% (327 of 458 strings)
2017-04-23 11:29:32 +02:00
test
0692e7d337 Translated using Weblate (Russian)
Currently translated at 70.0% (321 of 458 strings)
2017-04-23 11:28:01 +02:00
anonymous
b2579e935f Translated using Weblate (Russian)
Currently translated at 70.0% (321 of 458 strings)
2017-04-23 11:27:46 +02:00
test
0903c53b92 Translated using Weblate (Russian)
Currently translated at 69.6% (319 of 458 strings)
2017-04-23 11:27:12 +02:00
anonymous
7b8a92068d Translated using Weblate (Russian)
Currently translated at 69.6% (319 of 458 strings)
2017-04-23 11:27:02 +02:00
test
d5ca4f58c8 Translated using Weblate (Russian)
Currently translated at 68.1% (312 of 458 strings)
2017-04-23 11:24:12 +02:00
anonymous
15f5b40bce Translated using Weblate (Russian)
Currently translated at 68.1% (312 of 458 strings)
2017-04-23 11:24:03 +02:00
test
a954f95c22 Translated using Weblate (Russian)
Currently translated at 67.6% (310 of 458 strings)
2017-04-23 11:23:35 +02:00
anonymous
61cd183aee Translated using Weblate (Russian)
Currently translated at 67.6% (310 of 458 strings)
2017-04-23 11:23:26 +02:00
test
7320a1bf20 Translated using Weblate (Russian)
Currently translated at 65.7% (301 of 458 strings)
2017-04-23 11:21:07 +02:00
anonymous
9e484d252e Translated using Weblate (Russian)
Currently translated at 65.7% (301 of 458 strings)
2017-04-23 11:20:56 +02:00
test
9503c9f97f Translated using Weblate (Russian)
Currently translated at 64.8% (297 of 458 strings)
2017-04-23 11:20:04 +02:00
anonymous
3c89637be2 Translated using Weblate (Russian)
Currently translated at 64.8% (297 of 458 strings)
2017-04-23 11:19:51 +02:00
test
00979552b7 Translated using Weblate (Russian)
Currently translated at 62.6% (287 of 458 strings)
2017-04-23 11:16:03 +02:00
anonymous
59a77b163d Translated using Weblate (Russian)
Currently translated at 62.6% (287 of 458 strings)
2017-04-23 11:15:50 +02:00
test
7b69ae210e Translated using Weblate (Russian)
Currently translated at 62.4% (286 of 458 strings)
2017-04-23 11:15:36 +02:00
KOLANICH
4900035692 Translated using Weblate (Russian)
Currently translated at 56.5% (259 of 458 strings)
2017-04-22 18:48:28 +02:00
test
b38b550da7 Translated using Weblate (Russian)
Currently translated at 56.1% (257 of 458 strings)
2017-04-22 18:47:06 +02:00
David García Garzón
f45f05e330 Translated using Weblate (Catalan)
Currently translated at 8.4% (540 of 6388 strings)
2017-04-19 12:44:18 +02:00
Christa Sorenson
2dba00f966 Translated using Weblate (Swedish)
Currently translated at 53.0% (243 of 458 strings)
2017-04-13 03:46:36 +02:00
Zukero
ef856c7891 Merge pull request #28 from HummusSamurai/master
Fixed incorrect selection of inventory item when long-pressed.
2017-04-06 17:26:24 +02:00
HummusSamurai
1677c30292 Fixed incorrect selection on item's long-press. 2017-04-06 16:16:34 +03:00
Zukero
da0663bea6 Preparatory commit for the stoutford_roots_love ATCS project 2017-03-31 09:26:07 +02:00
Zukero
aa49668008 Merge pull request #27 from Rijackson/master
Added myself to authors.
2017-03-26 18:08:34 +02:00
Rijackson
6b599977e7 Added myself to authors. 2017-03-26 11:57:29 -04:00
Zukero
8b06f6c65a Merge pull request #25 from Rijackson/master
Fix for problem where if you kill Toszylae and walk away without the …
2017-03-26 16:21:22 +02:00
Zukero
52f091d206 Update conversationlist_blackwater_harlenn.json
Removed a leading space.
2017-03-26 16:05:26 +02:00
Zukero
40da3e5dec Merge branch 'master' into master 2017-03-26 16:02:59 +02:00
Rijackson
808bb090fc Fix for IsStacking and IsPositive problems 2017-03-19 16:02:31 -04:00
Mayte Climent Mompó
535873a970 Translated using Weblate (Spanish)
Currently translated at 24.1% (1542 of 6378 strings)
2017-03-15 18:46:40 +01:00
Michał Korczak
f4525038b3 Translated using Weblate (Polish)
Currently translated at 99.7% (457 of 458 strings)
2017-03-14 09:46:22 +01:00
Christa Sorenson
ccd6026731 Translated using Weblate (Swedish)
Currently translated at 39.9% (183 of 458 strings)
2017-03-14 00:46:47 +01:00
maria trapero
a5b3dac370 Translated using Weblate (Spanish)
Currently translated at 24.1% (1542 of 6378 strings)
2017-03-13 17:17:37 +01:00
Mario Jiménez Morales
ac812adc87 Translated using Weblate (Spanish)
Currently translated at 24.1% (1540 of 6378 strings)
2017-03-13 12:49:38 +01:00
Sara Ol
6ead76fb8c Translated using Weblate (Spanish)
Currently translated at 24.1% (1538 of 6378 strings)
2017-03-13 01:54:53 +01:00
sargantana
b068242d5e Translated using Weblate (Spanish)
Currently translated at 24.0% (1535 of 6378 strings)
2017-03-12 20:49:05 +01:00
anonymous
a3649588d4 Translated using Weblate (Spanish)
Currently translated at 24.0% (1534 of 6378 strings)
2017-03-11 18:08:25 +01:00
sargantana
043a4c500b Translated using Weblate (Spanish)
Currently translated at 24.0% (1532 of 6378 strings)
2017-03-11 18:05:54 +01:00
José Luis Fernández Espinar
0f559f629f Translated using Weblate (Spanish)
Currently translated at 24.0% (1531 of 6378 strings)
2017-03-10 19:13:31 +01:00
Francisco José Muñoz Cardeñas
97e5a6c457 Translated using Weblate (Spanish)
Currently translated at 23.9% (1529 of 6378 strings)
2017-03-10 19:11:39 +01:00
Olivier Dragon
40fcb970bf Translated using Weblate (French)
Currently translated at 73.7% (4702 of 6378 strings)
2017-03-09 18:44:53 +01:00
Olivier Dragon
c2b3072c46 Translated using Weblate (French)
Currently translated at 73.6% (4696 of 6378 strings)
2017-03-05 06:44:59 +01:00
Olivier Dragon
235ce500dd Translated using Weblate (French)
Currently translated at 99.7% (457 of 458 strings)
2017-03-05 06:44:58 +01:00
Sergio Oton
4e6fd4b89f Translated using Weblate (Spanish)
Currently translated at 23.9% (1527 of 6378 strings)
2017-03-03 21:46:29 +01:00
Zukero
f9e472291b Merge pull request #26 from HummusSamurai/bugfix-skills-sort
Fixed bug where game crashed if some skills had no requirements when sorted.
2017-03-01 17:06:44 +01:00
HummusSamurai
6fec8de9be Fixed bug where game crashed if some skills had no requirements when sorted. 2017-03-01 16:47:18 +02:00
Carlos Duque Guasch
56a1800fb9 Translated using Weblate (Spanish)
Currently translated at 23.8% (1518 of 6378 strings)
2017-02-27 15:46:36 +01:00
Olivier Dragon
2c46fad3b0 Translated using Weblate (French)
Currently translated at 73.0% (4659 of 6378 strings)
2017-02-26 03:44:57 +01:00
Zukero
74ac7127b4 Merge branch 'master' into stoutford_tests 2017-02-23 18:10:42 +01:00
Zukero
1ac48619ca Flag changed. 2017-02-23 18:10:26 +01:00
Zukero
c667305f25 Merge branch 'master' of https://github.com/Zukero/andors-trail 2017-02-22 22:42:01 +01:00
Zukero
088b2061f3 Merge branch 'master' into stoutford_tests 2017-02-22 15:32:10 +01:00
Zukero
8c0dd7cb6c More bugfix for actorConditions (used iStacking instead of isStacking in
last fix batch o.O)
2017-02-22 15:31:03 +01:00
Zukero
efcf683adf Merge pull request #22 from HummusSamurai/feature/SortingAndCategories
Feature/sorting and categories
Inventory, skills and shoplists can now be filtered and sorted !
Thank you M.H. Alkotob.
2017-02-22 14:13:24 +01:00
M.H. Alkotob
4eff7a97c9 Changed layout_height(s) to "wrap_content" 2017-02-22 14:40:13 +02:00
Zukero
dde191b6da Restored isPositive and isStacking values in actor conditions, destroyed
due to a bug in ATCS.
2017-02-21 19:20:23 +01:00
Olivier Dragon
d43eaa4bf9 Translated using Weblate (French)
Currently translated at 73.0% (4657 of 6378 strings)
2017-02-13 06:44:57 +01:00
Sebastian Hainke
423299ab46 Translated using Weblate (German)
Currently translated at 100.0% (458 of 458 strings)
2017-02-07 00:45:01 +01:00
Daniel Stasiak
e8ae841347 Translated using Weblate (Polish)
Currently translated at 100.0% (6378 of 6378 strings)
2017-02-03 15:46:03 +01:00
Daniel Stasiak
bb1c1adc88 Translated using Weblate (Polish)
Currently translated at 99.3% (455 of 458 strings)
2017-02-03 15:46:02 +01:00
M.H. Alkotob
afaf284a59 request changes 2017-01-31 10:21:41 +02:00
Rijackson
fc7e47b109 Also left some debug stuff in one file. This fixes it. 2017-01-29 20:41:52 -05:00
Rijackson
0838d20128 It was not my intention to make the Corrosive slime condition non-stacking, only to fix the capitilization. This fixes the error. 2017-01-29 20:34:06 -05:00
Rijackson
cf4a381f06 Fix for problem where if you kill Toszylae and walk away without the helmet, you are doomed. There is nothing in any subsequent dialogue to give you a hint to go and look for something where you killed the lich, and in fact Talion's dialogue tree is simply wrong. The only way to get past talion_demon_1 is to have darkprotector:10. If you don't have that, the only available reply is "No, I have not killed it yet", even though you have. The only thing you can do with Urlifendor is go through a long dialogue sequence that arrives at the selector ulifendor_infected_18_s. That has two replies, but one requires toszylae:70, which you can't get until you have darkprotector:10, so of course you don't have it. So the only available reply is "OK. I will defeat the lich first. Goobye", even though you have already defeated it.
The helmet is now on the shrine behind the lich. When you pick it up, it disappears (mapchange). If you try to leave without it, you get a very big hint.

This is still not perfect. I could not figure out any way to change Talion's or Ulifendor's dialogue without a huge amount of work (the logic in the dialogues and the three interleaved quests is very bad, and in some cases only works because one mistake cancels another. I do not want to mess with it). This means that if the player kills the lich and still leaves without the helmet, despite the hint, the dialogues still make no sense. That is much less likely to happen now though.

I have tested this, and everything seems to work as desired.

There are also a number of other typo fixes, as reported on the forums, and I made the GoW extraordinary (as also reported on the forums).
2017-01-29 20:18:34 -05:00
Igor
b0fb6d8561 Translated using Weblate (Russian)
Currently translated at 100.0% (6378 of 6378 strings)
2017-01-26 15:47:14 +01:00
Igor
27bd1d3f5f Translated using Weblate (Russian)
Currently translated at 26.2% (120 of 458 strings)
2017-01-26 15:47:13 +01:00
Zukero
5aeca2a1eb New Script reward type: "changeMapFilter", needs a mapName and effectID.
Works on currentmap too.
2017-01-25 18:50:16 +01:00
Olivier Dragon
aed6d774a8 Translated using Weblate (French)
Currently translated at 72.8% (4644 of 6378 strings)
2017-01-24 21:44:52 +01:00
Zukero
751972451f Merge branch 'master' into stoutford_tests 2017-01-24 13:14:30 +01:00
Zukero
8f7352db33 Fixed an issue that prevented quickslots quantities from being updated
when you loot an item that goes there. (Reapplied changes in commit
missed during quickslots_custom_ui merge)
2017-01-24 12:59:38 +01:00
Zukero
ac850f953e Merge branch 'master' into stoutford_tests 2017-01-23 17:55:33 +01:00
Zukero
f10d3f70af Fixed large monsters movement (not used yet, but it bothered me). They
couldn't move because there always was a monster in the way: themselves.
And redrawing area wasn't computed correctly.
2017-01-23 17:55:00 +01:00
Zukero
79ab254f9b Merge branch 'master' into stoutford_tests 2017-01-23 17:04:38 +01:00
Zukero
e8ace3666d EOL restoration 2017-01-23 16:44:26 +01:00
Zukero
17e10ae369 Added items_rijackson_1 to the loaded tilesets. 2017-01-22 22:42:54 +01:00
Zukero
0f187e08d9 Merge pull request #24 from Rijackson/stoutford_tests
Changes to dialogues and questlogs in new material in stoutford_tests
2017-01-22 22:36:16 +01:00
Rijackson
6eeff75134 Clean up the strange unicode stuff. 2017-01-22 12:02:02 -05:00
Rijackson
653648e65c Clean up a few mistakes and the strange negated requirments 2017-01-22 11:24:52 -05:00
Rijackson
725d0ed632 More sprites added in items_rijackson_1.png. Clean up punctuation, typos etc. in dialogues, Change dialogue so that it is Andor's companion, not Andor himself, that persuades Glasforn to imprison the hero with the lich. 2017-01-21 17:24:11 -05:00
Zukero
ef2af81e87 Quickslots assignment UI - now it's looking better. 2017-01-21 00:34:50 +01:00
Zukero
941b8332e5 Redesign of quickbuttons assignment UI. 2017-01-20 18:36:19 +01:00
Zukero
fd21fd62ec Merge branch 'master' into stoutford_tests
Conflicts:
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/ResourceLoader.java
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/resource/parsers/json/JsonFieldNames.java
2017-01-20 16:56:27 +01:00
Zukero
6d77d8806b Fixed large monster issuem introduced with content reordering, but
solved by adding more flexibility and removing the "size" field in
monsters.
2017-01-20 15:07:05 +01:00
Zukero
322e176be9 Fixed large monster issuem introduced with content reordering, but
solved by adding more flexibility and removing the "size" field in
monsters.
2017-01-20 15:04:17 +01:00
Nut Andor
d0baee2b90 Translated using Weblate (German)
Currently translated at 99.9% (6377 of 6378 strings)
2017-01-16 12:45:19 +01:00
Olivier Dragon
16265689d5 Translated using Weblate (French)
Currently translated at 72.5% (4625 of 6378 strings)
2017-01-15 03:44:53 +01:00
Mohamad Alkotob
7c61ad5f81 extra newlines 2017-01-13 16:52:17 +02:00
Mohamad Alkotob
7afe881ead extra newlines 2017-01-13 16:51:39 +02:00
HummusSamurai
0a8259d5a8 Merge remote-tracking branch 'origin/feature/SortingAndCategories' into feature/SortingAndCategories 2017-01-13 16:50:14 +02:00
HummusSamurai
a60e2ab4c5 The sorting/category buttons in the inventory are now above the inventory list directly. 2017-01-13 16:49:43 +02:00
Christa Sorenson
d2204367a2 Translated using Weblate (Swedish)
Currently translated at 6.3% (405 of 6378 strings)
2017-01-12 15:46:35 +01:00
Christa Sorenson
c485690c45 Translated using Weblate (Swedish)
Currently translated at 13.7% (63 of 458 strings)
2017-01-09 18:46:33 +01:00
Christa Sorenson
950cbe6794 Added translation using Weblate (Swedish) 2017-01-07 17:44:12 +01:00
Mohamad Alkotob
ffd37a709b Added name under "Additional programming"
Initials before surname due to ethnic saltiness
2017-01-06 16:04:44 +02:00
Mohamad Alkotob
410f796c31 Update HeroinfoActivity_Inventory.java 2017-01-05 09:26:37 +02:00
Mohamad Alkotob
4b58722b05 end already 2017-01-05 09:23:57 +02:00
Mohamad Alkotob
2b6ce058b6 guess what more tabs 2017-01-05 09:23:09 +02:00
Mohamad Alkotob
6c9fcd5b46 tabs 2017-01-05 09:20:48 +02:00
Mohamad Alkotob
998c56d8ab excess tabs 2017-01-05 09:17:34 +02:00
Vinicius Veroneze
d0c7dc7843 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.2% (450 of 458 strings)
2017-01-04 21:45:52 +01:00
HummusSamurai
a119fde366 un-used import 2017-01-04 19:59:59 +02:00
HummusSamurai
544ecd1c49 Merge remote-tracking branch 'origin/feature/SortingAndCategories' into feature/SortingAndCategories
# Conflicts:
#	AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Inventory.java
2017-01-04 19:51:25 +02:00
Mohamad Alkotob
a186715eab almost 2017-01-04 19:38:17 +02:00
Mohamad Alkotob
7ea485f8ca please 2017-01-04 19:36:47 +02:00
Mohamad Alkotob
988e94f62f yup that happened 2017-01-04 19:24:20 +02:00
Mohamad Alkotob
7936a223f5 lord 2017-01-04 19:23:14 +02:00
Mohamad Alkotob
f61ba8bd06 damn 2017-01-04 19:19:28 +02:00
HummusSamurai
c42e5b80bd Merge remote-tracking branch 'origin/feature/SortingAndCategories' into feature/SortingAndCategories
# Conflicts:
#	AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/item/Inventory.java
2017-01-04 19:17:41 +02:00
HummusSamurai
5283b04615 git integration in Android Studio is ugly 2017-01-04 19:16:44 +02:00
Mohamad Alkotob
e2b8ac73e8 a space 2017-01-04 19:13:03 +02:00
Mohamad Alkotob
1905e39e43 style 2017-01-04 19:12:42 +02:00
Mohamad Alkotob
8fdd8a3cbf reverting style 2 2017-01-04 19:10:49 +02:00
Mohamad Alkotob
5be73b8b00 reverting style 2017-01-04 19:10:04 +02:00
Mohamad Alkotob
5ac4b9ed5f reverting style 2017-01-04 19:09:21 +02:00
Mohamad Alkotob
c27567c479 reverting style 2017-01-04 19:08:35 +02:00
Mohamad Alkotob
66898885fa reverting style 2017-01-04 19:06:21 +02:00
HummusSamurai
1b69561667 git integration in Android Studio is ugly 2017-01-04 19:02:58 +02:00
HummusSamurai
8627d3f870 reverted style changes in Inventory.java 2017-01-04 19:00:50 +02:00
HummusSamurai
f5caea903a Merge remote-tracking branch 'origin/feature/SortingAndCategories' into feature/SortingAndCategories 2017-01-04 18:45:40 +02:00
HummusSamurai
ee24226c8e git ignore 2017-01-04 18:32:39 +02:00
Mohamad Alkotob
b66a4b3360 + new line 2017-01-04 18:26:18 +02:00
Mohamad Alkotob
fd9bad2ca5 lazy undo 2017-01-04 18:25:54 +02:00
Zukero
f2461eed70 Merge branch 'master' into stoutford_tests 2017-01-04 16:35:35 +01:00
Zukero
ac2c4d7313 Solved button text no showing in shops issue.
All button instances in XML layouts now use layout_height="wrap_parent"
and minHeight="0dp" instead of a fixed 35sp size. It should be safer.
2017-01-04 15:38:42 +01:00
HummusSamurai
3e6921d101 Inventory sort/category is implemented (only buttons were there before) and favorites no longer show in UI 2017-01-04 11:27:31 +02:00
life
0907b0978d Skills, Inventory, and Shops now have the Sort & Category options in the UI. 2017-01-04 01:29:46 +02:00
Mohamad Alkotob
2f0c9a7e97 Translated using Weblate (Arabic)
Currently translated at 2.1% (10 of 458 strings)
2017-01-01 21:44:07 +01:00
Olivier Dragon
ebbf3b4a5a Translated using Weblate (French)
Currently translated at 72.4% (4624 of 6378 strings)
2017-01-01 18:44:53 +01:00
Mohamad Alkotob
33feeee396 Added translation using Weblate (Arabic) 2016-12-30 18:27:55 +01:00
Weblate
35b39ff15c Merge remote-tracking branch 'origin/master' 2016-12-29 00:41:08 +01:00
Stefanie Beck
f9c009116d Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2016-12-29 00:40:11 +01:00
Kevin Pochat
43be5f994c Translated using Weblate (French)
Currently translated at 72.2% (4611 of 6378 strings)
2016-12-29 00:40:10 +01:00
Voom
347eb64b40 Translated using Weblate (Bulgarian)
Currently translated at 1.3% (86 of 6388 strings)
2016-12-29 00:40:10 +01:00
Nut Andor
ed286d8f5b Translated using Weblate (German)
Currently translated at 100.0% (458 of 458 strings)
2016-12-29 00:40:09 +01:00
Olivier Dragon
9d1bff8c80 Translated using Weblate (French)
Currently translated at 72.2% (4611 of 6378 strings)
2016-12-29 00:38:27 +01:00
Nut Andor
99a820325e Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2016-12-28 22:35:01 +01:00
Voom
3a811023fe Added translation using Weblate (Bulgarian) 2016-12-28 19:29:18 +01:00
Hristo Alexandrov
c2dfbb3f0a Added translation using Weblate (Bulgarian) 2016-12-27 21:40:29 +01:00
Olivier Dragon
d6aaad9447 Translated using Weblate (French)
Currently translated at 71.4% (4556 of 6378 strings)
2016-12-23 06:44:49 +01:00
Zukero
91ac4cc449 Replaced all JSON files by ones re-exported by ATCS, to prepare for
cleaner diffs.
2016-12-21 17:18:34 +01:00
Zukero
1a0df571b1 Reordered JSON files with ATCS. Should create a good basis for cleaner
diffs.
2016-12-21 16:51:00 +01:00
Olivier Dragon
ab7195fca5 Translated using Weblate (French)
Currently translated at 70.9% (4528 of 6378 strings)
2016-12-20 15:44:48 +01:00
Vladimir
654f6d603a Translated using Weblate (Russian)
Currently translated at 100.0% (6378 of 6378 strings)
2016-12-13 21:45:51 +01:00
ivo
0645a28e21 Translated using Weblate (Ukrainian)
Currently translated at 9.8% (629 of 6378 strings)
2016-12-11 21:46:38 +01:00
Olivier Dragon
b12713ab34 Translated using Weblate (French)
Currently translated at 70.6% (4508 of 6378 strings)
2016-12-08 18:44:47 +01:00
Stefanie Beck
7a008ef1c5 Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2016-12-08 12:44:58 +01:00
Olivier Dragon
5a5e35f54f Translated using Weblate (French)
Currently translated at 70.6% (4504 of 6378 strings)
2016-12-05 09:44:45 +01:00
Olivier Dragon
88fa699c77 Translated using Weblate (French)
Currently translated at 70.5% (4498 of 6378 strings)
2016-11-30 06:44:47 +01:00
Olivier Dragon
06b519e0b5 Translated using Weblate (French)
Currently translated at 69.8% (4454 of 6378 strings)
2016-11-25 03:44:44 +01:00
Olivier Dragon
ce67397087 Translated using Weblate (French)
Currently translated at 69.3% (4422 of 6378 strings)
2016-11-20 21:44:46 +01:00
Olivier Dragon
cd48fb3ab2 Translated using Weblate (French)
Currently translated at 68.9% (4396 of 6378 strings)
2016-11-14 00:44:45 +01:00
Michel Pocrave
60eb7203fe Translated using Weblate (French)
Currently translated at 67.3% (4298 of 6378 strings)
2016-11-01 16:38:49 +01:00
Olivier Dragon
4ba42ec044 Translated using Weblate (French)
Currently translated at 67.3% (4297 of 6378 strings)
2016-11-01 16:36:36 +01:00
Вадим Власюк
786743f918 Translated using Weblate (Russian)
Currently translated at 18.9% (87 of 458 strings)
2016-11-01 00:45:56 +01:00
Ostap Bender
ae419d6f87 Translated using Weblate (French)
Currently translated at 67.1% (4286 of 6378 strings)
2016-10-31 12:01:46 +01:00
Olivier Dragon
4d75c71870 Translated using Weblate (French)
Currently translated at 67.1% (4285 of 6378 strings)
2016-10-31 04:52:51 +01:00
Bervianto Leo Pratama
de372ee79b Translated using Weblate (Dutch)
Currently translated at 11.1% (710 of 6378 strings)
2016-10-28 15:44:32 +02:00
Bervianto Leo Pratama
c8ddc89614 Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2016-10-22 18:44:56 +02:00
Joe Hansen
4a25e16016 Translated using Weblate (Danish)
Currently translated at 13.5% (62 of 458 strings)
2016-10-22 18:44:29 +02:00
Muhammad Taufiq Sumadi
857da0b154 Translated using Weblate (Indonesian)
Currently translated at 1.3% (89 of 6378 strings)
2016-10-22 06:45:02 +02:00
Prasetyo S
f6346d1678 Translated using Weblate (Indonesian)
Currently translated at 10.6% (49 of 458 strings)
2016-10-22 00:45:01 +02:00
Joe Hansen
91899c5f19 Added translation using Weblate (Danish) 2016-10-20 16:04:00 +02:00
Prasetyo S
502d9066c1 Added translation using Weblate (Indonesian) 2016-10-19 21:21:05 +02:00
Anderson Nogueira
11057f41d3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 83.3% (5318 of 6378 strings)
2016-10-18 00:45:48 +02:00
Anderson Nogueira
c38dc7b628 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.8% (448 of 458 strings)
2016-10-17 00:45:45 +02:00
Sebastian Hainke
6ba8769e35 Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2016-10-05 21:44:50 +02:00
David García Garzón
bf012cc01a Translated using Weblate (Catalan)
Currently translated at 77.0% (353 of 458 strings)
2016-10-05 12:44:14 +02:00
Rasti K5
3b7be0c3b4 Translated using Weblate (Kurdish Sorani)
Currently translated at 10.2% (47 of 458 strings)
2016-10-03 18:45:13 +02:00
David García Garzón
d282acf17d Translated using Weblate (Catalan)
Currently translated at 8.2% (529 of 6388 strings)
2016-10-01 12:44:16 +02:00
David García Garzón
18e4b9019a Added translation using Weblate (Catalan) 2016-09-30 02:18:07 +02:00
David García Garzón
ab7a1a7229 Translated using Weblate (Catalan)
Currently translated at 3.6% (232 of 6388 strings)
2016-09-25 03:44:15 +02:00
Niemand Jedermann
925b4a6010 Translated using Weblate (German)
Currently translated at 100.0% (458 of 458 strings)
2016-09-23 00:44:50 +02:00
David García Garzón
b754cb650b Added translation using Weblate (Catalan) 2016-09-22 15:26:53 +02:00
Rasti K5
0b8526b5df Translated using Weblate (Kurdish Sorani)
Currently translated at 9.1% (42 of 458 strings)
2016-09-22 00:45:13 +02:00
Evaristo Sintetas
066592623e Translated using Weblate (Spanish)
Currently translated at 22.9% (1461 of 6378 strings)
2016-09-21 18:46:07 +02:00
Evaristo Sintetas
46cfe8d789 Translated using Weblate (Spanish)
Currently translated at 73.1% (335 of 458 strings)
2016-09-21 18:46:07 +02:00
Rasti K5
f81e212431 Added translation using Weblate (Kurdish Sorani) 2016-09-19 21:37:19 +02:00
Evaristo Sintetas
e802bcc8fc Translated using Weblate (Spanish)
Currently translated at 22.4% (1431 of 6378 strings)
2016-09-18 15:45:53 +02:00
Osoitz
8bc27c1eb4 Translated using Weblate (Basque)
Currently translated at 71.6% (328 of 458 strings)
2016-09-17 00:44:10 +02:00
Stéphane Daviet
8615b5a57b Translated using Weblate (French)
Currently translated at 67.1% (4281 of 6378 strings)

Rimes !
2016-09-14 15:44:41 +02:00
Stefanie Beck
95e6e409fc Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2016-09-13 21:44:48 +02:00
Stéphane Daviet
d3eb408502 Translated using Weblate (French)
Currently translated at 67.1% (4281 of 6378 strings)
2016-09-12 14:06:40 +02:00
Osoitz
4c670d230c Translated using Weblate (Basque)
Currently translated at 70.7% (324 of 458 strings)
2016-09-12 12:44:09 +02:00
Ostap Bender
5cd992bf16 Translated using Weblate (French)
Currently translated at 67.1% (4281 of 6378 strings)
2016-09-11 20:58:17 +02:00
Stéphane Daviet
64a6b64698 Translated using Weblate (French)
Currently translated at 67.0% (4276 of 6378 strings)
2016-09-11 17:13:26 +02:00
Ostap Bender
1cd4910fa5 Translated using Weblate (French)
Currently translated at 67.0% (4276 of 6378 strings)
2016-09-11 08:23:23 +02:00
Stéphane Daviet
feceab1016 Translated using Weblate (French)
Currently translated at 66.9% (4267 of 6378 strings)
2016-09-10 23:57:44 +02:00
Ostap Bender
544bb975b2 Translated using Weblate (French)
Currently translated at 66.9% (4267 of 6378 strings)
2016-09-10 13:59:10 +02:00
Osoitz
5045b9d945 Added translation using Weblate (Basque) 2016-09-09 22:42:07 +02:00
Stéphane Daviet
a9a8d81b8a Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-09 15:08:44 +02:00
Stéphane Daviet
bf053e8f19 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-08 12:39:35 +02:00
Stéphane Daviet
614e154e62 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-08 12:37:25 +02:00
Hakuchi
98f515a836 Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2016-09-08 00:44:49 +02:00
Stéphane Daviet
dd70b31dd3 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-06 12:17:16 +02:00
Stéphane Daviet
44b5411d5f Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-06 12:16:32 +02:00
Stéphane Daviet
cae9b66e5a Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Accentuation
2016-09-06 10:33:15 +02:00
Stéphane Daviet
01e6720d96 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-06 10:15:51 +02:00
Stéphane Daviet
16a05ec9be Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-05 14:51:38 +02:00
Stéphane Daviet
8b75805f06 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-05 14:51:05 +02:00
Stéphane Daviet
0820244331 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-09-05 13:56:13 +02:00
Stéphane Daviet
13ab26b29d Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-05 13:44:37 +02:00
Stéphane Daviet
cdb194d0e7 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-05 13:40:38 +02:00
Stéphane Daviet
7c00de886c Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-05 13:39:57 +02:00
Stéphane Daviet
75a0b02de6 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-05 09:44:44 +02:00
Stéphane Daviet
39ae81fd3c Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-05 09:44:23 +02:00
Stéphane Daviet
a9dc96b6a1 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-04 20:33:10 +02:00
Stéphane Daviet
73e023ccb8 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-04 14:02:43 +02:00
Stéphane Daviet
9ba854af7b Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-04 14:00:02 +02:00
Stéphane Daviet
afd925108a Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-04 13:58:13 +02:00
Stéphane Daviet
5522c70f26 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-04 13:36:06 +02:00
Stéphane Daviet
5ccc500eca Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-04 13:35:15 +02:00
Stéphane Daviet
726830f897 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Accord
2016-09-03 20:43:03 +02:00
Stéphane Daviet
de2214bbce Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-03 20:42:26 +02:00
Stéphane Daviet
ff4abcae9a Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-03 20:39:29 +02:00
Stéphane Daviet
ea4c50a16f Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-03 19:14:19 +02:00
Stéphane Daviet
8c8c1f4267 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-03 19:10:31 +02:00
Stéphane Daviet
e20775f1d9 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-03 19:07:50 +02:00
Stéphane Daviet
0f4ac5ca69 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-03 19:05:37 +02:00
Valentin Gergely
bd5050a59a Translated using Weblate (Hungarian)
Currently translated at 1.6% (103 of 6388 strings)
2016-09-03 15:44:58 +02:00
Valentin Gergely
5ea5091597 Translated using Weblate (Hungarian)
Currently translated at 17.9% (82 of 458 strings)
2016-09-03 15:44:57 +02:00
Stéphane Daviet
55c58af7ad Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-02 21:21:15 +02:00
Stéphane Daviet
a895a0aa09 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-02 14:05:38 +02:00
Stéphane Daviet
2a41d175fd Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-02 13:15:58 +02:00
Valentin Gergely
fa5a4be7ea Added translation using Weblate (Hungarian) 2016-09-01 13:43:02 +02:00
Stéphane Daviet
02e5453e41 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-01 11:48:21 +02:00
Stéphane Daviet
aeb094d51b Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-01 11:39:31 +02:00
Stéphane Daviet
465b92acc5 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-09-01 10:08:25 +02:00
Stéphane Daviet
8becd081c8 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-01 10:00:22 +02:00
Stéphane Daviet
b80bfbc1dc Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Accord
2016-09-01 09:55:02 +02:00
Stéphane Daviet
89fadd1967 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-09-01 09:53:30 +02:00
Stéphane Daviet
b7d36efc64 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-31 22:18:15 +02:00
Stéphane Daviet
417ef77459 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-31 22:16:27 +02:00
Stéphane Daviet
f5684edf71 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-31 22:06:52 +02:00
Stéphane Daviet
469e7ec41a Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-31 22:06:24 +02:00
Stéphane Daviet
e1988f72ab Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Conjugaison
2016-08-31 16:51:51 +02:00
Stéphane Daviet
74e13310be Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-31 16:40:23 +02:00
Stéphane Daviet
8ad7314910 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-31 15:59:34 +02:00
Stéphane Daviet
dbf7427608 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-31 15:55:56 +02:00
Stéphane Daviet
97c2e6e4bf Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-08-31 15:30:31 +02:00
Stéphane Daviet
68ab47a5ef Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-31 15:26:06 +02:00
Stéphane Daviet
087cf49058 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-08-30 12:25:50 +02:00
Stéphane Daviet
f23025cae6 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-30 12:19:35 +02:00
Stéphane Daviet
08fab207fc Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Ponctuation
2016-08-30 11:39:19 +02:00
Stéphane Daviet
c1bd7a1def Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-30 11:36:24 +02:00
Stéphane Daviet
eb40ce0bea Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-30 11:31:59 +02:00
Stéphane Daviet
60f250621a Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-30 11:29:38 +02:00
Stéphane Daviet
df417bc9bf Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 21:02:03 +02:00
Stéphane Daviet
e7cb8e3da7 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 20:58:49 +02:00
Stéphane Daviet
d60b777d1f Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 20:53:52 +02:00
Stéphane Daviet
f0ed3d7753 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 20:52:26 +02:00
Stéphane Daviet
0da4a88d79 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Nom
2016-08-29 20:45:27 +02:00
Stéphane Daviet
1b97d99a7e Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 20:43:08 +02:00
Stéphane Daviet
784642e3a5 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 17:54:33 +02:00
Stéphane Daviet
6f77632e17 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Conjugaison
2016-08-29 17:52:35 +02:00
Stéphane Daviet
ac9b109e9f Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 17:48:03 +02:00
Stéphane Daviet
c57552f731 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 17:12:29 +02:00
Stéphane Daviet
fcce7facf2 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 14:00:42 +02:00
Stéphane Daviet
47ef3891da Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 14:00:19 +02:00
Stéphane Daviet
2a49b9e2d4 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 13:52:51 +02:00
Stéphane Daviet
7c6476596f Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 13:48:28 +02:00
Stéphane Daviet
661a395eb5 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 13:37:44 +02:00
Stéphane Daviet
686e861d08 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 13:27:14 +02:00
Stéphane Daviet
a2ab0ba4e4 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 13:19:36 +02:00
Stéphane Daviet
8aac4975c8 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Conjugaison
2016-08-29 13:12:17 +02:00
Stéphane Daviet
1b1991a743 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 13:11:38 +02:00
Stéphane Daviet
a6b59da3cc Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 13:05:54 +02:00
Stéphane Daviet
c19c78991f Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 12:55:27 +02:00
Stéphane Daviet
3e8eea1755 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 12:36:37 +02:00
Stéphane Daviet
d2b00d5eda Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 12:33:46 +02:00
Stéphane Daviet
7ea38a50f4 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 12:10:03 +02:00
Stéphane Daviet
4626cee6fb Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 12:06:43 +02:00
Stéphane Daviet
719e8e1c55 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 11:59:49 +02:00
Stéphane Daviet
0662e854cd Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 11:58:54 +02:00
Stéphane Daviet
fca16b356e Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 11:58:33 +02:00
Stéphane Daviet
7f7cdbaadc Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 11:55:30 +02:00
Stéphane Daviet
11cfb2dc0f Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 11:41:03 +02:00
Stéphane Daviet
04c72ca541 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 11:37:05 +02:00
Stéphane Daviet
0e7cc17c15 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-29 11:36:24 +02:00
Stéphane Daviet
6fc6609c7b Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Conjugaison
2016-08-29 11:21:43 +02:00
Stéphane Daviet
e61c4195ea Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-29 11:18:13 +02:00
Stéphane Daviet
c580c54e70 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-28 13:53:20 +02:00
Stéphane Daviet
8d6aa5d301 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-28 13:49:24 +02:00
Stéphane Daviet
799af7ebe5 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Conjugaison
2016-08-28 13:49:00 +02:00
Stéphane Daviet
ca0b9db25f Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-28 13:47:43 +02:00
Stéphane Daviet
9e84a0fabf Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-28 13:44:02 +02:00
Stéphane Daviet
cb1977f690 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-28 13:43:27 +02:00
Stéphane Daviet
f8a02acfc1 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-28 13:41:31 +02:00
Stéphane Daviet
6c73e3b6ff Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-28 13:40:37 +02:00
Stéphane Daviet
0f92254533 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-28 13:40:13 +02:00
Stéphane Daviet
1cd8fa7e36 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Conjugaison
2016-08-28 13:39:16 +02:00
Stéphane Daviet
9702f11125 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-28 13:28:18 +02:00
Stéphane Daviet
0eb81af705 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-28 08:33:19 +02:00
Stéphane Daviet
3fbf8cca93 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-27 21:58:40 +02:00
Stéphane Daviet
5c68a0ee39 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-27 21:56:26 +02:00
Stéphane Daviet
21de495ae4 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-27 21:55:15 +02:00
Stéphane Daviet
e482af9ba7 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-27 21:52:07 +02:00
Stéphane Daviet
579756f084 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-27 21:49:02 +02:00
Stéphane Daviet
73e56def0a Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Conjugaison
2016-08-27 21:45:23 +02:00
Stéphane Daviet
67114eb468 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-27 21:45:04 +02:00
Stéphane Daviet
fcfaf89bbc Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Formulation
2016-08-27 21:44:23 +02:00
Stéphane Daviet
105afcc58e Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Changement formulation
2016-08-26 12:09:20 +02:00
Stéphane Daviet
1d697c73b4 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Casse de l'Ombre
2016-08-25 17:36:15 +02:00
Stéphane Daviet
655c2032ff Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Conjugaison
2016-08-25 17:29:49 +02:00
Stéphane Daviet
0f1c4b3d2d Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-25 16:51:45 +02:00
Stéphane Daviet
d9552338af Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Typo
2016-08-25 16:48:05 +02:00
Stéphane Daviet
03b10712c3 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Casse de l'Ombre
2016-08-25 16:46:54 +02:00
Stéphane Daviet
bbceda2bc2 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Changement formulation
2016-08-25 16:45:58 +02:00
Stéphane Daviet
a954340626 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)

Correction typo et registre de langage
2016-08-25 16:45:23 +02:00
Arkatoo
89c05ff140 Translated using Weblate (French)
Currently translated at 66.8% (4265 of 6378 strings)
2016-08-25 12:44:44 +02:00
Javid
635e253661 Translated using Weblate (Turkish)
Currently translated at 2.2% (146 of 6378 strings)
2016-08-21 12:46:16 +02:00
Dmitry
727c89ea9d Translated using Weblate (Russian)
Currently translated at 100.0% (6378 of 6378 strings)
2016-08-19 18:45:48 +02:00
Dmitry
591b36ef11 Translated using Weblate (Russian)
Currently translated at 13.9% (64 of 458 strings)
2016-08-19 18:45:48 +02:00
Sevil Jafarova
c564c850d7 Added translation using Weblate (Azerbaijani) 2016-08-19 14:33:33 +02:00
jailson lima
e4eeada959 Translated using Weblate (English)
Currently translated at 100.0% (458 of 458 strings)
2016-08-17 21:44:31 +02:00
Zukero
4d0b23062e Fixed tloading of the new tilesets. 2016-08-12 15:49:49 +02:00
Zukero
7c97448d12 New spritesheets by JapoZero and Enterbrain
(http://xxjapozeroxx.deviantart.com). Was originally 24x24, upscaled to
32x32, doesn't look too blurred to me. 
New content for Stoutford, especially Kayla's shop and dialogues.
2016-08-12 15:30:41 +02:00
Zukero
af85f0edf6 New colorfilter values : redtint, greentint, and bluetint. 2016-08-10 18:00:15 +02:00
Zukero
cff0ef7df5 New colorfilter values : redtint, greentint, and bluetint. 2016-08-10 17:57:51 +02:00
Zukero
404385151b Merge branch 'master' into stoutford_tests
Conflicts:
	AndorsTrail/res/xml/home.tmx
	AndorsTrail/res/xml/stoutford_cellar.tmx
	AndorsTrail/res/xml/stoutford_cellar2.tmx
	AndorsTrail/res/xml/stoutford_church.tmx
	AndorsTrail/res/xml/stoutford_cottage2.tmx
	AndorsTrail/res/xml/stoutford_farmhouse1.tmx
	AndorsTrail/res/xml/stoutford_ne.tmx
	AndorsTrail/res/xml/stoutford_tavern.tmx
2016-08-08 16:45:34 +02:00
Zukero
e631e849e3 Patched all maps to include latest set of tilesets. 2016-08-08 16:34:30 +02:00
Zukero
d47704200c New Black & White color filter. Set the "colorfilter" property of a map
to "bw".
2016-08-08 16:27:15 +02:00
Zukero
9840078ef3 Replaced android.util.FloatMath by java.lang.Math 2016-08-08 12:26:55 +02:00
Zukero
49e5c9d930 New map-level property : "colorfilter".
Possible values are "black20", "black40", "black60", "black80", and
"invert". 
The blackXX ones add a black shade on the map (making them look darker,
like unlit caves), that has a 20% to 80% opacity. The invert one make
the screen use inverted colors. Others could be added, but only static
ones, like a B&W mode for example.
Animated ones ( like continuous gamma rotation ) aren't viable
performance-wise.
2016-08-08 12:22:12 +02:00
Zukero
96fb165929 Patched all maps to include latest set of tilesets. 2016-08-08 11:30:30 +02:00
Zukero
03642d9dec Bug fix in Surprise preventing quest from being completed. 2016-08-05 17:58:39 +02:00
Zukero
425e697d9f Small bugfixes for stoutford. 2016-07-22 13:57:08 +02:00
Zukero
4433e0de07 Removed ugly log. 2016-07-21 16:35:32 +02:00
Zukero
c277ff4266 Stoutford's main quest done, but needs testing.
Some crash points exists (don't trade with the thief)
2016-07-21 16:23:32 +02:00
Zukero
63449f7e3c Merge branch 'master' into stoutford_tests
Conflicts:
	AndorsTrail/res/xml/stoutford_church.tmx
2016-07-19 17:45:06 +02:00
Zukero
d126d1ebfd ATTENTION: changes to map format.
Object Group can be set property "active" to "false" to disable all
objects within at new game (except Spawn Areas, those are treated
individually).
(de)activateMapChangeArea script rewards become
(de)activateMapObjectGroup
Persistence of active object groups in saves is implemented.
Debug map showcases the new feature, with beer !
2016-07-19 17:00:19 +02:00
Zukero
6f757c66f4 Updated to version code 43.
Maps now save the spawn area ID, to have better control over which are
activated or not.
All maps refactored to have unique spawn area id. Spawn group now
defined in "spawngroup" property instead of name (id).
2016-07-18 18:51:38 +02:00
Satnam S Virdi
bb302f62d5 Translated using Weblate (Punjabi)
Currently translated at 25.9% (119 of 458 strings)
2016-06-24 21:45:24 +02:00
Satnam S Virdi
9a85d5ca66 Translated using Weblate (Punjabi)
Currently translated at 0.0% (5 of 6388 strings)
2016-06-09 15:45:48 +02:00
Satnam S Virdi
5409b8daa1 Translated using Weblate (Punjabi)
Currently translated at 19.6% (90 of 458 strings)
2016-06-09 15:45:48 +02:00
Weblate
63e83f83b9 Merge remote-tracking branch 'origin/master' 2016-06-02 14:15:36 +02:00
Kristoffer Grundström
003236da18 Translated using Weblate (Swedish)
Currently translated at 0.3% (20 of 6378 strings)
2016-05-31 03:45:38 +02:00
Chris Leonard
f4b5ec7aa0 Translated using Weblate (English (United Kingdom))
Currently translated at 0.5% (34 of 6378 strings)
2016-05-25 21:44:27 +02:00
Chris Leonard
fc73536416 Added translation using Weblate (English (United States)) 2016-05-23 18:25:54 +02:00
Anja Mozina
c2b57ad752 Translated using Weblate (Slovenian)
Currently translated at 1.6% (105 of 6378 strings)
2016-05-14 12:45:54 +02:00
Zukero
fa80291ddd Merge branch 'master' into stoutford_tests 2016-04-26 13:32:12 +02:00
Zukero
b32ee1dad8 Revert "Fixed Health and XP bars bug for Marshmallow devices. Tested down to Donut on x86 VM."
This reverts commit 269c6567ae.
2016-04-26 13:31:37 +02:00
Zukero
549d7f30a7 Fixed Health and XP bars bug for Marshmallow devices. Tested down to
Donut on x86 VM.
2016-04-26 13:30:03 +02:00
Zukero
269c6567ae Fixed Health and XP bars bug for Marshmallow devices. Tested down to
Donut on x86 VM.
2016-04-26 13:25:57 +02:00
Ivan Chiurcci
605cfc618a Translated using Weblate (Russian)
Currently translated at 100% (0 of 0 strings)

Created new translation.
2016-04-20 15:51:55 +02:00
Darkwolf 276
7d8de725a9 Translated using Weblate (French)
Currently translated at 66.7% (4256 of 6378 strings)
2016-04-13 18:44:34 +02:00
Laura Arjona Reina
aec7744fb1 Translated using Weblate (Spanish)
Currently translated at 21.9% (1401 of 6378 strings)
2016-04-10 21:45:28 +02:00
Laura Arjona Reina
7401ba6ef5 Translated using Weblate (Spanish)
Currently translated at 69.2% (317 of 458 strings)
2016-04-10 21:45:28 +02:00
Satnam S Virdi
ec56382174 Translated using Weblate (Punjabi)
Currently translated at 1.0% (5 of 458 strings)
2016-03-21 18:45:24 +01:00
Satnam S Virdi
e6c0e1efe0 Translated using Weblate (Punjabi)
Currently translated at 100% (0 of 0 strings)

Created new translation.
2016-03-19 17:19:53 +01:00
Satnam S Virdi
668dc948b4 Translated using Weblate (Punjabi)
Currently translated at 100% (0 of 0 strings)

Created new translation.
2016-03-19 11:44:45 +01:00
rubjurgens
d7bc5e4a88 Translated using Weblate (Spanish)
Currently translated at 21.4% (1371 of 6378 strings)

 It's a name
2016-02-26 10:10:01 +01:00
Daniel Stasiak
57edf47785 Translated using Weblate (Polish)
Currently translated at 100.0% (6378 of 6378 strings)
2016-02-22 12:44:51 +01:00
José Antonio Muriano Criado
32c57ebcd4 Translated using Weblate (Spanish)
Currently translated at 21.4% (1369 of 6378 strings)
2016-02-18 11:57:06 +01:00
José Antonio Muriano Criado
4f89c94d4e Translated using Weblate (Spanish)
Currently translated at 21.1% (1351 of 6378 strings)

Are Nor City translate as Ciudad Nor??
2016-02-18 10:21:21 +01:00
José Antonio Muriano Criado
3906e92051 Translated using Weblate (Spanish)
Currently translated at 21.1% (1348 of 6378 strings)
2016-02-18 10:07:32 +01:00
therealmarco
5ed57bdcef Translated using Weblate (French)
Currently translated at 100.0% (458 of 458 strings)
2016-02-16 18:44:26 +01:00
KOLANICH
581d706361 Translated using Weblate (Russian)
Currently translated at 84.7% (388 of 458 strings)
2016-02-03 00:45:09 +01:00
Éfrit
bc8d763777 Translated using Weblate (French)
Currently translated at 66.7% (4255 of 6378 strings)
2016-02-02 03:44:26 +01:00
Éfrit
6aefedbf42 Translated using Weblate (French)
Currently translated at 100.0% (458 of 458 strings)
2016-02-02 03:44:26 +01:00
Éfrit
27506b2547 Translated using Weblate (French)
Currently translated at 100.0% (458 of 458 strings)
2016-01-28 21:55:55 +01:00
Máté Lajkó
99168d96a9 Translated using Weblate (Hungarian)
Currently translated at 100% (0 of 0 strings)

Created new translation.
2016-01-24 01:03:03 +01:00
Bilal Onur Eskili
354e82eaed Translated using Weblate (Turkish)
Currently translated at 2.2% (145 of 6378 strings)
2016-01-22 18:45:15 +01:00
Bilal Onur Eskili
208a51fafb Translated using Weblate (Turkish)
Currently translated at 72.7% (333 of 458 strings)
2016-01-22 18:45:14 +01:00
kenan akgün
4276923e3a Translated using Weblate (Turkish)
Currently translated at 60.0% (275 of 458 strings)
2016-01-18 15:57:47 +01:00
Ersan Doru
d848186c74 Translated using Weblate (Turkish)
Currently translated at 1.9% (126 of 6378 strings)
2016-01-16 15:45:19 +01:00
Ersan Doru
814647850a Translated using Weblate (Turkish)
Currently translated at 58.2% (267 of 458 strings)
2016-01-15 01:16:16 +01:00
Weblate
42b80239df Merge remote-tracking branch 'origin/master' 2016-01-11 22:25:38 +01:00
Malo Jaffré
b77bb16d50 Translated using Weblate (French)
Currently translated at 97.5% (447 of 458 strings)
2016-01-11 22:25:37 +01:00
Zukero
6ca4786e6a First content for Stoutford. Minimalistic, should-not-crash-the-game
kind of content.
2016-01-07 18:24:58 +01:00
Zukero
b0061ee736 City of Stoutford added, and integrated. Now it needs people... 2016-01-06 23:18:52 +01:00
Zukero
5202b16ac7 Small fix for unescaped apostrophe in Spanish text 2016-01-06 22:34:25 +01:00
Zukero
0dfc18480e Merge branch 'halvor' 2016-01-06 22:30:58 +01:00
Daniel Stasiak
e06f8e9706 Translated using Weblate (Polish)
Currently translated at 100.0% (6378 of 6378 strings)
2015-12-24 18:44:52 +01:00
suhe gul
daf7a027e1 Translated using Weblate (Turkish)
Currently translated at 51.3% (235 of 458 strings)
2015-12-23 21:45:15 +01:00
Gianluca Luparini
2977a54005 Translated using Weblate (Italian)
Currently translated at 100.0% (458 of 458 strings)
2015-12-21 21:44:41 +01:00
Gianluca Luparini
c276207691 Translated using Weblate (Italian)
Currently translated at 44.7% (2851 of 6378 strings)
2015-12-19 15:44:40 +01:00
Gianluca Luparini
1b6f34c398 Translated using Weblate (Italian)
Currently translated at 100.0% (458 of 458 strings)
2015-12-17 21:36:32 +01:00
suhe gul
6783551d96 Translated using Weblate (Turkish)
Currently translated at 49.7% (228 of 458 strings)
2015-12-13 21:45:20 +01:00
suhe gul
0be80ed7be Translated using Weblate (Turkish)
Currently translated at 47.3% (217 of 458 strings)
2015-12-09 06:45:14 +01:00
Zukero
268d8f3023 First merge of Halvor's "Surprise !" quest. 2015-12-08 15:08:56 +01:00
Philippe Baret
410d6003e2 Translated using Weblate (French)
Currently translated at 66.7% (4255 of 6378 strings)
2015-12-04 18:44:26 +01:00
suhe gul
bd7bc31f6f Translated using Weblate (Turkish)
Currently translated at 46.5% (213 of 458 strings)
2015-11-26 19:37:41 +01:00
xaver-entropia
8eb9b03a68 Translated using Weblate (Spanish)
Currently translated at 62.0% (284 of 458 strings)
2015-11-26 19:37:41 +01:00
No need for a name
0634e535e2 Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)

Zeichensetzung
2015-11-25 18:44:26 +01:00
xaver-entropia
7fbac52aa6 Translated using Weblate (Spanish)
Currently translated at 21.1% (1346 of 6378 strings)
2015-11-25 15:45:06 +01:00
suhe gul
fc6f4f427a Translated using Weblate (Turkish)
Currently translated at 37.1% (170 of 458 strings)
2015-11-25 09:44:54 +01:00
Daniel Stasiak
f7b237b8ce Translated using Weblate (Polish)
Currently translated at 100.0% (458 of 458 strings)
2015-11-25 06:44:48 +01:00
xaver-entropia
2d11372423 Translated using Weblate (Spanish)
Currently translated at 58.9% (270 of 458 strings)

Translation + human redability
2015-11-21 14:32:20 +01:00
xaver-entropia
c68efc879d Translated using Weblate (Spanish)
Currently translated at 58.2% (267 of 458 strings)

The author is getting rid of the % in the stats
2015-11-21 14:22:39 +01:00
xaver-entropia
8802607c62 Translated using Weblate (Spanish)
Currently translated at 58.0% (266 of 458 strings)

Teniendo en cuenta el contexto y efecto de la habilidad
2015-11-21 13:43:24 +01:00
xaver-entropia
e57c2e8606 Translated using Weblate (Spanish)
Currently translated at 52.8% (242 of 458 strings)
2015-11-21 13:32:36 +01:00
Weblate
7a1e639720 Merge remote-tracking branch 'origin/master' 2015-11-20 21:29:22 +01:00
suhe gul
c8735a6aed Translated using Weblate (Turkish)
Currently translated at 32.3% (148 of 458 strings)
2015-11-20 21:29:22 +01:00
Zukero
d5c358879b Merge pull request #15 from Xaver-Entropia/Spanish-Translation
res/values-es/strings.xml - Better spanish translation (Part 1)
2015-11-20 21:28:42 +01:00
Xaver-Entropia
6a910e9683 res/values-es/strings.xml - Better spanish translation (Part 1)
The spanish translation made my eyes bleed so I decided I could stop bitching and help.
In this first part, i have updated strings.xml only, wich I see is not complete. I will update the rest later, once i have time.
Its not only a translation, but an adaptation, since some concepts sound ridiculous/out of place in spanish.
By the way, I have read the forums, and I can assure you this commit contains no foul languaje nor purposely incorrect things.
2015-11-20 20:16:50 +01:00
Weblate
53be0a0747 Merge remote-tracking branch 'origin/master' 2015-11-18 23:47:24 +01:00
suhe gul
71994826d6 Translated using Weblate (Turkish)
Currently translated at 31.2% (143 of 457 strings)

What is quest in Turkish?
2015-11-18 23:47:24 +01:00
suhe gul
67cb67cbb8 Translated using Weblate (Turkish)
Currently translated at 1.9% (125 of 6378 strings)
2015-11-18 21:17:54 +01:00
Nut Andor
9fab560c4b Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2015-11-18 21:17:54 +01:00
suhe gul
9467d915ad Translated using Weblate (Turkish)
Currently translated at 16.6% (76 of 457 strings)

What is quest in Turkish?
2015-11-18 21:17:53 +01:00
Daniel Stasiak
0f71c72e0a Translated using Weblate (Polish)
Currently translated at 100.0% (6378 of 6378 strings)
2015-11-18 12:44:55 +01:00
suhe gul
08224f87d7 Translated using Weblate (Turkish)
Currently translated at 0.8% (4 of 457 strings)
2015-11-18 01:48:49 +01:00
suhe gul
6778958999 Translated using Weblate (Turkish)
Currently translated at 100% (0 of 0 strings)

Created new translation.
2015-11-18 01:27:13 +01:00
Zukero
4cbfb0bb48 Merged weblate changes with conflicting manual adaptations of
localization files.
2015-11-16 11:20:33 +01:00
Jirka Daněk
2fb4c7487a Translated using Weblate (Czech)
Currently translated at 2.7% (175 of 6378 strings)
2015-11-14 11:35:09 +01:00
Nut Andor
d6c563b09f Translated using Weblate (German)
Currently translated at 99.9% (6377 of 6378 strings)
2015-11-13 21:44:45 +01:00
Daniel Stasiak
bdc0e5b234 Translated using Weblate (Polish)
Currently translated at 100.0% (6378 of 6378 strings)
2015-11-13 15:44:53 +01:00
Zukero
3d870e85be Moved string resource "about_interface" from strings_about.xml to
strings.xml, for easier localization on Weblate.
2015-11-13 15:08:26 +01:00
Daniel Stasiak
82f3cb7ff1 Translated using Weblate (Polish)
Currently translated at 100.0% (457 of 457 strings)
2015-11-13 06:44:54 +01:00
Michal Čihař
20dfd45148 Translated using Weblate (Czech)
Currently translated at 2.7% (174 of 6378 strings)
2015-11-12 10:49:11 +01:00
Jirka Daněk
9d40c8c41d Translated using Weblate (Czech)
Currently translated at 2.7% (174 of 6378 strings)
2015-11-12 10:48:57 +01:00
Michal Čihař
946b09c654 Translated using Weblate (Czech)
Currently translated at 2.6% (172 of 6378 strings)
2015-11-12 10:48:33 +01:00
Jirka Daněk
c629e402ab Translated using Weblate (Czech)
Currently translated at 2.6% (172 of 6378 strings)
2015-11-12 10:48:22 +01:00
Michael R. Lawrence
4d752c33ff Translated using Weblate (Spanish)
Currently translated at 20.9% (1337 of 6378 strings)
2015-11-12 09:45:16 +01:00
Michael R. Lawrence
75b54e72e6 Translated using Weblate (Spanish)
Currently translated at 51.2% (234 of 457 strings)
2015-11-12 09:45:15 +01:00
Michael R. Lawrence
8ad423dc70 Translated using Weblate (Japanese)
Currently translated at 3.5% (229 of 6378 strings)
2015-11-12 06:44:46 +01:00
Michael R. Lawrence
4bf40d341f Translated using Weblate (Japanese)
Currently translated at 78.9% (361 of 457 strings)
2015-11-12 06:44:46 +01:00
Jirka Daněk
16faa2a823 Translated using Weblate (Czech)
Currently translated at 2.6% (170 of 6378 strings)
2015-11-11 21:44:15 +01:00
Frank Senft
87748bbf10 Translated using Weblate (German)
Currently translated at 100.0% (457 of 457 strings)
2015-11-10 00:44:34 +01:00
Frank Senft
3aa874fa44 Translated using Weblate (German)
Currently translated at 99.9% (6377 of 6378 strings)
2015-11-09 21:26:04 +01:00
Nut Andor
6f1d163204 Translated using Weblate (German)
Currently translated at 99.9% (6377 of 6378 strings)
2015-11-09 21:25:12 +01:00
Kevin Pochat
e0a6ae0833 Translated using Weblate (French)
Currently translated at 97.1% (444 of 457 strings)
2015-11-09 15:44:29 +01:00
Michael R. Lawrence
cbf253ae3e Translated using Weblate (Spanish)
Currently translated at 100% (0 of 0 strings)

Created new translation.
2015-11-08 06:06:29 +01:00
Daniel Stasiak
6234bcf2e9 Translated using Weblate (Polish)
Currently translated at 100.0% (457 of 457 strings)
2015-11-07 11:48:25 +01:00
Frank Senft
6d874819f9 Translated using Weblate (German)
Currently translated at 100.0% (6378 of 6378 strings)
2015-11-05 23:07:02 +01:00
Kevin Pochat
17095d1838 Translated using Weblate (French)
Currently translated at 96.0% (439 of 457 strings)
2015-11-05 00:01:46 +01:00
Zukero
6e716f9658 Included launchpad translations as of 2015-11-02 11:28 AM UTC 2015-11-04 18:49:17 +01:00
Zukero
910aa384e0 Changed IDs used by some debug resources to avoid overlapping with game
content IDs.
2015-10-30 12:51:48 +01:00
Zukero
f4db713e63 Continued %-symbol deletion. 2015-10-29 16:04:10 +01:00
Zukero
ebbbf0ccfc Removed the useless (and misguiding) % symbol after AC, BC and CC stats.
Removed soon-to-be-closed GCode repository link, replaced by github one.
2015-10-28 17:43:11 +01:00
Zukero
477b839fcd Fixed a few graphical glitches remaining in Lodar's Shortcut 2015-10-28 16:43:01 +01:00
ianh0
3ee48667ab Fixed up several maps
Fixed up Lodar shortcut maps and items
Fixed up Blackwater Mountain fix
Changed worldmap.xml
2015-08-26 20:03:27 +02:00
Zukero
b98ff6f601 Included new quest: pathway_fallhaven (Duleian road shortcut) 2015-08-13 16:33:51 +02:00
Zukero
1457d54733 Fixed bugs, and rephrased many things, in the Lodar Shortcut quest ( now
called The way out is through")
2015-08-12 15:16:27 +02:00
Zukero
22f8a4827a Typos, broken links, and one NPE fixed. 2015-08-11 17:36:25 +02:00
Zukero
903564a037 Fixed blocking & crashing bugs in shortcut_lodar.
Boosted debug values to cope with swarm of Hirathils.
2015-08-10 17:25:04 +02:00
Zukero
84f152683e Some dialogue fixes 2015-08-10 16:54:54 +02:00
Zukero
9dd1183161 Debugged Lodar Shortcut. 2015-08-10 15:15:45 +02:00
Zukero
4d1609d3c4 Fixed UI icons resolution on HDPI devices introduced with sprite upscaling prevention for densities >1
Fixed variable text size in debug buttons
Fixed game crahing & walkalbe issues in new versions of BWM maps.
2015-07-10 15:53:10 +02:00
Zukero
297858f3f0 (Hopefully) fixed OutOfMemoryErrors for low heap-size devices.
Fixed bug in quest "A night visit"
Fixed typo in map blackwater_mountain5a ("quantity " instead of
"quantity")
2015-06-19 16:30:28 +02:00
Zukero
984a6af749 Bitmap loaded with density limited to 1; then scaled with HW scaler.
Preferences can now disable all animations (move, effect, recenter).
Darker colors for past conversation items now less dark.
2015-05-05 16:45:28 +02:00
Zukero
46ae78b8d9 Added missing BWM map (39a) to resource list.
Added limit to 32x32 bitmap loading (<32x32px for density <1, ==32x32px
for density >=1).
2015-04-29 18:18:08 +02:00
Zukero
12b3054b82 Smooth map scrolling.
Use of Hardware Scaler to implement Scaling Factor preference.
Opportunistic pre-rendering of maps in bitmaps.
More consistent frame-rate for all animations.
Many bug fixes in animations and map rendering.
2015-04-29 14:45:12 +02:00
Zukero
e2594d92e8 Changed map rendering from tile by tile to precomputed layer bitmap. 2015-04-27 12:58:48 +02:00
Zukero
defbd007b2 Merged movement animation with "missed" attack animation.
New string in strings.xml, for the "MISS" animated message.
Adapted in-combat movement to have animations there too.
No "sleep" anymore in monster actions. Now relying only on animation
callbacks.
2015-04-14 14:04:05 +02:00
Zukero
f418aa3e3e Merge remote-tracking branch 'origin/animated_moves' into tbrawl_attack_missed_animation 2015-04-14 10:32:30 +02:00
Zukero
6858b462f5 Restored correct "libs/" directory 2015-04-13 17:43:30 +02:00
Zukero
348c9d215d Fixed bugs introduced by new BWM maps. 2015-04-13 17:23:37 +02:00
Zukero
c5cddf96ba Animated movements !
Enhancements in debug map graphics, and more monster to better test
animations.
Player slides from tile to tile in MIN_INPUT_DEPLAY / 2 ms.
Mobs slide at a speed proportional to their Move cost / Max AP ratio.
Animation refresh rate is 25ms.
2015-04-10 11:40:17 +02:00
Zukero
e4575f59cb Merge pull request #9 from MickaelAlvarez/removeQuestProgressEditor
Added removeQuestProgress reward
2015-03-18 23:17:17 +01:00
Zukero
afe54ce33f Merge branch 'remotes/contrib/repeatableQuest' 2015-03-18 23:15:40 +01:00
Zukero
ba58195f49 Code cleanup:
- Removed unused imports.
- Removed useless variable
2015-03-18 23:14:56 +01:00
arnaudcoj
8945d49b59 Delete android-support-v4.jar
That's an error from me
2015-03-16 23:46:44 +01:00
arnaudcoj
88b4dba796 Added an animation when an attack misses 2015-03-16 23:39:49 +01:00
FlorianDoublet
6124e074ec repeatableQuest improvement
repeatableQuest improvement

add our name into authors file

add our name into authors file
2015-03-06 18:53:29 +01:00
LucasDelvallet
804d0feaa0 Method optimisation 2015-03-06 17:54:39 +01:00
LucasDelvallet
00caf44ef1 Added removeQuestProgress Reward 2015-03-06 14:28:33 +01:00
FlorianDoublet
4b406eb4f7 Added repeatable quest 2015-03-06 13:57:43 +01:00
LucasDelvallet
f9e7455f14 Modified the quest editor, in order to allow the creation of a removeQuestProgress reward in any stage of a quest. If the field is emmpty, the stage won't have a this reward. In order to work, the progress must exit in the quest. 2015-03-02 15:01:07 +01:00
LucasDelvallet
f8143c8957 Added missing line
Added the missing line who put numberOfNewMessage to 0
2015-02-26 13:51:53 +01:00
LucasDelvallet
31dc4f7ba8 Improved greyAllConvervationStatement
I've improved this method, now reward text have they own color when greyed and it only iterate text that not have been greyed yet.
2015-02-26 13:19:26 +01:00
LucasDelvallet
96440f27b0 Old conversation are now grayed out
Old conversation are now grayed out for a better lisibility.
2015-02-09 20:20:48 +01:00
Zukero
0acd31f090 Merge remote-tracking branch 'googlecode/master' 2014-12-21 12:18:03 +01:00
Zukero
3c6da6a1d7 Merge remote-tracking branch 'origin/master'
Conflicts:
	AndorsTrail/AndroidManifest.xml
	AndorsTrail/project.properties
2014-12-02 00:21:05 +01:00
Zukero
d360a55336 Zoom out enabled on in-game world map.
Update to Android 5.0 (API 21)
2014-12-02 00:17:26 +01:00
Ian Haase
917cd5eb77 Small edit of remgard_villagers1 dialogue 2014-10-29 10:29:22 +01:00
Ian Haase
46ef47e0f7 Fixed up some small issues related to the pitch-black mine and the shortcut to the Blackwater Mountain Settlement. 2014-10-29 10:27:22 +01:00
Ian Haase
98a8f396f8 Small update to the Blackwater Mountain fix. A shortcut from the BWM cabin to the Blackwater Mountain settlement can be opened now. And the Prim mine (pitch-black mine) can be opened up as well. 2014-10-28 19:49:45 +01:00
Ian Haase
417b8a9e1c edit of the tileset "map_broken_1". 2014-10-20 18:09:06 +02:00
Zukero
df07c91af4 Attack cost button now updated when equipment changed mid-fight. Thanks
ace for reporting this.
2014-07-24 22:44:31 +02:00
Zukero
37aa751ce7 Merge pull request #2 from noamik/master
Fixed translations for skill "Hard Hit". Merged from github/noamik/andors-trail/master
2014-07-24 21:48:44 +02:00
Ian Haase
6bd1dcf77d Blackwater mountain fix released.
Now this area can be browsed in the world map!
Most of the maps have been edited and four new maps have been created for aligning purposes.
2014-07-24 15:34:45 +02:00
Michael Noack
bf5439d59e Fixes translations of skill description for "Hard Hit" to reflect changes in 0.7.1.
TODO: pt and pt-rBR are wrong as well and need fixing.
TODO: ru, ja and pl need to be checked by translators and be removed in case of doubt to give future translators a chance to fix the translation.
2014-07-01 19:10:49 +02:00
Michael Noack
0e4ad9e201 Revert "Fixes min damage not getting increased as advertised by skill point of skill "Hard Hit"."
This reverts commit 3615fed2e7.
2014-07-01 11:15:28 +02:00
Michael Noack
3615fed2e7 Fixes min damage not getting increased as advertised by skill point of skill "Hard Hit". 2014-06-30 19:08:23 +02:00
Ian Haase
8109170405 Updated the tileset map_cavewall_4. Now it has got additional wall and corner tiles.
Credits go to rijackson741.
2014-06-20 15:58:13 +02:00
Ian Haase
3bdf530beb Added world map which is updated to v.0.7 2014-06-20 11:13:34 +02:00
Ian Haase
da07968222 Edit of map_cavewall_3.png
Credits go to Moerit!
2014-06-08 14:47:10 +02:00
Ian Haase
d190bce37a Fixed up the two tutorial maps. 2014-06-08 10:38:25 +02:00
Zukero
ebdcc6c603 Added res/raw/actorconditions_debug.json, now loaded instead of the
usual ones when AndorsTrailApplication.DEVELOPMENT_DEBUGRESOURCES ==
true.
2014-05-29 00:57:17 +02:00
Zukero
b40cdd5350 Merge remote-tracking branch 'google/master' 2014-05-29 00:43:37 +02:00
Zukero
0454d6fa1d Fixed version control management errors.... 2014-05-29 00:43:23 +02:00
Zukero
e162066be2 Updated launchpad translations on 2014-05-28 22-16 UTC 2014-05-29 00:32:57 +02:00
Zukero
3d3c882ef0 Updated Polish version of strings.xml and xtrings_about.xml. Thanks to
DanielS.
Google issues #354 & #355
2014-05-29 00:20:22 +02:00
Zukero
869c791e76 Fixed bug when loot bags are on mapchange areas.
You will now be able to pick up a bag when you reach the loot bag
without being transported to a new map.
If you are transported to a new map on a loot bag, you will be offered
to pick up this bag.
2014-05-29 00:19:39 +02:00
Ian Haase
6cedd56453 small update on maps:
-shadow corrections
-other small issues
2014-05-15 13:22:15 +02:00
Zukero
7a02014e1b Merge remote-tracking branch 'google/master'
Conflicts:
	AndorsTrail/src/com/gpl/rpg/AndorsTrail/AndorsTrailApplication.java
2014-04-23 00:47:59 +02:00
Zukero
624bd19aa9 Updated all "strings.xml" translations to remove obsolete lines.
Made worldmap's named areas translatable through launchpad (.mo files)
2014-04-23 00:33:39 +02:00
Zukero
e920ec958e Included latest launchpad versions (2014-04-06) 2014-04-06 19:17:29 +02:00
Zukero
e390490f23 Updated DE strings.xml 2014-04-06 18:58:11 +02:00
Ian Haase
2240a9e26b added "Replace" object layer to the template file 2014-03-30 20:32:47 +02:00
Zukero
916ab8530d Reminder for later added. 2014-03-04 22:50:21 +01:00
Oskar Wiksten
bd27e5d5ab Bump version to v0.7.2dev 2014-03-02 09:30:40 +01:00
Zukero
7f619d03f8 Return to debug mode.... 2014-02-25 00:04:27 +01:00
Zukero
b43f49fbab Bumped version to v0.7.2dev 2014-02-25 00:03:26 +01:00
Zukero
35e3ad024c Bugfix introduced in previous commits. AP Cost (move, reequip & item
use) should have percentage applied when negative and 100% applied when
positive. Those are the only ones where negative value is a bonus to the
player.
2014-02-24 22:52:52 +01:00
Zukero
46d7bdcd87 Added all the missing stats from second-hand weapon to the dual wield
skill effects.
- DR
- AP Boost (or malus)
- Move cost
- Reequip cost
- Use Item Cost
2014-02-24 22:52:52 +01:00
Zukero
253dda89d7 Added missing \n at EOF... 2014-02-24 22:52:52 +01:00
Zukero
1d0f233292 Dual wield skill bugfixes.
(Seen when using a pair of Rapier of Lifesteal) : Adds boost to Max HP
from off-hand weapon (25% for Dual Wield lv 0, 50% for DW lv 1, and 100%
for DW lv 2)

(Seen when using a non-crit weap in the main hand, and a crit one in the
offhand) : Adds boost to Critical chance from off-hand weapon (25% for
DW0, 50% for DW1, 100% for DW2). Set critical multiplier as max of main
hand weapon's CM and off-hand weapon's CM multiplied by {0.25 for DW0,
0.5 for DW1, 1.0 for DW2).
2014-02-24 22:52:52 +01:00
Oskar Wiksten
0393447bf3 Merge branch 'production' 2014-02-22 17:10:25 +01:00
Oskar Wiksten
57ba9dfa69 Bump version to v0.7.1 (versioncode 42) 2014-02-22 16:57:58 +01:00
Ian Haase
95ee5b19d3 Added "map_transition_5" displaying additional shadow transitions 2014-02-20 16:01:50 +01:00
Oskar Wiksten
8d4adab240 Refactor: Remove unsued 'flags' param when writing savegames
* Remove unsued 'flags' parameter in methods for storing savegames.
* Refactor static constructors when reading objects from savegames so that the ctors are named "newFromParcel", to differentiate them from "readFromParcel".
2013-12-08 09:36:02 +01:00
Oskar Wiksten
9e799962e9 Reduce compiler and code inspection warnings
* Replace single-char strings with chars
* Reduce visibility where applicable
* Remove unused method parameters
2013-12-07 13:49:18 +01:00
Oskar Wiksten
29973a74dd Merge pull request #17 from TodorBalabanov/parallelcoords
Replace coords with xCoords and yCoords.
2013-12-03 12:29:05 -08:00
Todor Balabanov
8e98805a93 Replace coords with xCoords and yCoords.
One parallel array more will help to escape packing and unpacking
coordinates as integer values.
2013-12-03 11:57:30 +02:00
Oskar Wiksten
72a229a78a Code cleanup: intellij->rightclick->optimize imports 2013-11-30 11:05:04 +01:00
Oskar Wiksten
aefa578004 Merge pull request #13 from TodorBalabanov/master
We avoid unnecessary boxing of the Integer values.
2013-11-24 06:03:47 -08:00
Todor Balabanov
4b75f06987 We avoid unnecessary boxing of the Integer values.
Method implementation suggestion.  Issue #12
2013-11-24 15:04:49 +02:00
Oskar Wiksten
61ec20c775 Content editor: allow dragdrop reordering conversation replies 2013-11-24 11:42:52 +01:00
Oskar Wiksten
518ada6a82 Content editor: allow reordering items & monsters in table editor 2013-11-24 11:37:37 +01:00
Oskar Wiksten
660504ca72 Content editor: allow reordering quest stages & droplist content 2013-11-24 11:35:28 +01:00
Oskar Wiksten
f5df781fc9 Content editor: enable dragdrop sorting of resources 2013-11-24 11:29:53 +01:00
Oskar Wiksten
50751390a3 Updated Russian translation (thanks dromoz) 2013-11-23 22:28:38 +01:00
Oskar Wiksten
a24672a3f1 Slight border to monsters_rltiles3.png 2013-11-14 23:36:20 +01:00
Oskar Wiksten
b06c5b9b15 Unblur and add border for monsters_men.png 2013-11-14 23:24:21 +01:00
Oskar Wiksten
7cc2d303ef Add border to monsters_men2.png monsters_snakes.png 2013-11-14 23:05:57 +01:00
Oskar Wiksten
106203d85b Read fewer fields from TMX files
* Do not read "tilewidth" and "tileheight" from <map>, always assume 32.
* Do not read "tilewidth" and "tileheight" from <tileset>, always assume 32.
* Do not read "width" and "height" from <layer>, always assume same size as map.
* Do not read "width" and "height" from <objectgroup>, always assume same size as map.
* Do not read <image> inside <tileset>. Always assume tileset name is same as image resource name from ResourceLoader.
2013-11-10 23:40:01 +01:00
Oskar Wiksten
8b3ac992ce Remove obsoleted "width" and "height" on <objectgroup> in TMX files 2013-11-10 21:10:48 +01:00
Oskar Wiksten
1fabb499a9 Spelling corrections Elwyl: both our sakes -> both our sake 2013-11-10 13:50:37 +01:00
Oskar Wiksten
51e63167a0 Bump version to 0.7.1a1 (versiocode 41) 2013-11-10 12:49:50 +01:00
Oskar Wiksten
37ef73d9e2 Add xhdpi and xxhdpi icons. Update to SDK 19. 2013-11-10 12:09:36 +01:00
Oskar Wiksten
b950993852 Update French and Russian translations (thanks Marwane K and dromoz!) 2013-11-10 11:27:08 +01:00
Oskar Wiksten
4a2aa90373 Update PO with clarification of Lodar's def pots 2013-11-10 11:16:39 +01:00
Oskar Wiksten
161f516a98 Clarify monster locations in quest & conversation for Lodar def pot (thanks dromoz!) 2013-11-10 11:14:14 +01:00
Oskar Wiksten
c002405008 Updated translations (thanks Marwane K. & Andrej Znidarsic) 2013-11-03 16:24:38 +01:00
Oskar Wiksten
d4ff63d456 Merge branch 'reduce-warnings' 2013-11-03 15:07:13 +01:00
Oskar Wiksten
e8d0162ceb Refactor: Reduce warnings / reduce scope 2013-11-03 15:05:27 +01:00
Oskar Wiksten
eba387159e Refactor: Use enum instead of int for result of loading a savegame 2013-11-03 15:05:21 +01:00
Oskar Wiksten
6006fe1eb5 Refactor: Don't use hardcoded text for placeholders 2013-11-03 14:57:07 +01:00
Oskar Wiksten
f6559cac31 Refactor: remove unused resources 2013-11-03 14:55:59 +01:00
Oskar Wiksten
9405ad323a Bugfix: do not hardcode map names when upgrading savegame 2013-11-03 12:40:13 +01:00
Oskar Wiksten
b0f9ba9abe Bugfix: Do not assume that all saved maps are visited
* Maps that have deactivated spawn areas should be saved, but does not neccessarily have to be visited.
2013-11-03 10:22:05 +01:00
Oskar Wiksten
086fb199cf Remove Fallhaven prisoner when reaching quest farrik:70 2013-11-03 09:35:21 +01:00
Oskar Wiksten
b898cf7f7c Rename TMX property "outside" to "outdoors".
* Outdoors is a better name for this, because that's what we actually mean by it. Outside is ambiguous in this context. Outside is what it's called in Swedish :)
2013-11-03 08:20:00 +01:00
Oskar Wiksten
aacf97e274 Add requirement type: "hasActorCondition"
* Enables scripts and conversations to choose options based on whether the player has a certain actor condition or not.
2013-11-02 10:24:07 +01:00
Oskar Wiksten
d58db6efc4 Merge branch 'activate-spawnareas' 2013-11-02 09:27:11 +01:00
Oskar Wiksten
4a1c6779cf Enable scripts to activate/deactivate spawn areas & mapobjects
Renames "isActive" on spawnareas to "isSpawning" - so that a spawn area can be non-spawning but still have monsters left in it.
Adds new scripteffect types:
* "spawnAll" = sets  spawn area to spawning and spawns all monsters
* "removeSpawnArea" = sets a spawn area to non-spawning and removes all mobs
* "deactivateSpawnArea" = sets a spawn area to non-spawning
* "activateMapChangeArea" = sets a mapchange area to non-active
* "deactivateMapChangeArea" = sets a mapchange area to non-active (so that it does not teleport the player)
Adds new property "active" to spawn- and mapchange areas in tmx files, that determines whether the areas are active when starting a new game.
2013-11-02 09:26:04 +01:00
Oskar Wiksten
a2caea0a83 Refactor: Flatten some forward-arrow-pattern ifs to vertical code 2013-10-27 15:29:27 +01:00
Oskar Wiksten
4209f91d00 Bugfix: also save maps that use non-default values
* For example, maps that have had some spawn area deactivated should be saved in the savegame.
2013-10-27 14:17:40 +01:00
Oskar Wiksten
88f15b9099 Merge pull request #10 from oskarwiksten/persist-isactive-on-mapobjects-in-savegames
Save 'isActive' for MapObjects & SpawnArea in savegames
2013-10-27 05:55:42 -07:00
Oskar Wiksten
20ed608523 Save 'isActive' for MapObjects & SpawnArea in savegames
* Stores the "isActive" boolean in savegames for map objects and spawn areas
* Adds functions in MapController to activate and deactivate MapObject areas
* Adds functions in MonsterSpawnController to activate and deactivate MonsterSpawnAreas
* When a spawn area is deactivated, all monsters should be removed, since the spawn area is considered to be non-existant.
* Adds boolean "isActiveForNewGame" to map objects and spawn areas, that specify what "isActive" should be set to when starting a game. (Initially, all of these are true)
* This commit does not add any way to actually activate or deactive areas. That can come as a later commit (possibly using script effects to do that).
2013-10-27 13:04:09 +01:00
Oskar Wiksten
c001532106 Merge branch 'rename-phrase-reward-to-script-effect' 2013-10-27 10:59:56 +01:00
Oskar Wiksten
a8ad00c21c Refactor: Rename PhraseReward -> ScriptEffect
* This commit does not contain changes to json field names when parsing phrases though.
2013-10-27 10:59:21 +01:00
Oskar Wiksten
079511a30c Rename file Reward.java -> ScriptEffect.java 2013-10-27 10:52:11 +01:00
Oskar Wiksten
6fce649cbb Always deny monster movement on mapchange,keyarea,rest - regardless of isActive 2013-10-27 10:12:27 +01:00
Oskar Wiksten
d2c3eb9106 Refactor: rename functions for saving PredefinedMap data 2013-10-27 09:33:24 +01:00
Oskar Wiksten
53331aef1b Code reformat: Ctor arguments should be one arg per line
* Vertical list makes it easier to version control additions and removals of single parameters
2013-10-27 09:09:09 +01:00
Oskar Wiksten
0570589ecc Refactor: Rename reset() -> resetForNewGame() on map data classes 2013-10-27 08:38:27 +01:00
Oskar Wiksten
9af062e36e Updated PO translations from launchpad 2013-10-26 11:39:19 +02:00
Oskar Wiksten
9fc23ca1fc Add "translator-credits" to english POT file
* Used by Launchpad translations for maintaining list of translators.
2013-10-26 10:23:12 +02:00
Oskar Wiksten
e509b1d75f Update english.pot, reformat all PO files (sort by source location) 2013-10-26 09:50:18 +02:00
Oskar Wiksten
339c3ee7b2 Renamed Brazilian Portuguese translation file: pt-rBR.po -> pt_BR.po 2013-10-26 09:44:40 +02:00
Oskar Wiksten
0c3b4bded9 Merge pull request #9 from Zukero/requirements_negation
Added requirement negation capability :
2013-10-23 09:22:22 -07:00
Zukero
c06dba6b7d Factorized the checkbox definition in content editor. 2013-10-23 18:08:09 +02:00
Zukero
707940aa14 Added requirement negation capability :
- Use "requireNegation" property in Tiled map object
- Checkbox for require.negate added in Content Editor
2013-10-22 23:10:24 +02:00
Oskar Wiksten
bdde9cefba Merge branch 'activable_map_objects' 2013-10-22 18:06:23 +02:00
Zukero
26c412f7f1 MapObject & MonsterSpawnArea can be activated/deactivated using theisActive boolean.
No handle exist yet to deactivate these areas.
Deactivated areas are never returned by PredefinedMap API.
Inactive container areas' Loot are not created on
createAllContainerLoot() calls. Think of creating it on area activation
when implemented (TODO label placed in the code to never forget :p)
Updated comment; fixed old, one-object processing to better match the
List type.
2013-10-22 18:05:51 +02:00
Oskar Wiksten
159d977187 Merge pull request #7 from Zukero/debug_resources_bugfix
Fixed deprecated use of "consumedMore" instead of "spentGold" in
2013-10-22 06:38:27 -07:00
Zukero
e33ac42c1c Fixed deprecated use of "consumedMore" instead of "spentGold" in
conversationlist_debug.json
2013-10-22 15:18:44 +02:00
Oskar Wiksten
76720094c1 Merge pull request #6 from Zukero/map_object_group_data_kept
MapObject & MonsterSpawnArea now keep track of their Tiled group's name.
2013-10-20 23:39:38 -07:00
Zukero
c4896aaab3 Tiled group name also in ReplaceableMapSection 2013-10-20 22:18:42 +02:00
Zukero
bddb3e2a8c MapObject & MonsterSpawnArea now keep track of their Tiled group's name. 2013-10-20 22:14:35 +02:00
Oskar Wiksten
7f2388904b Minor gfx update to tiling pine trees 2013-10-20 10:30:01 +02:00
Oskar Wiksten
73e8851f27 Bugfix: Redraw whole screen if double-buffer is not pre-filled
* Fixes issue where the screen was only partially drawn after having entered heroinfoactivity before starting combat.
* lockCanvas() changes the supplied Rect object occasionally, to indicate that the double buffer has not been filled. In those cases, you need to redraw the whole rect.
2013-10-20 10:00:20 +02:00
Oskar Wiksten
a0f943994f Bugfix: Continue combat after having seen the combat log
* Previously, combat was stopped when entering the combat log. This commit makes the combat continue after having been stopped.
2013-10-20 09:03:53 +02:00
Oskar Wiksten
518934751b Merge branch 'new_tilesets_20131005' 2013-10-05 17:56:12 +02:00
Ian Haase
36da967dbe updated tilesets + template.tmx and authors.xml 2013-10-05 17:55:57 +02:00
Oskar Wiksten
9812dc6344 Merge pull request #5 from Zukero/master
Egocentric commit. Added my name in the authors...
2013-10-03 13:32:43 -07:00
Zukero
5daf70e739 Egocentric commit. Added my name in the authors... 2013-10-03 22:27:11 +02:00
Oskar Wiksten
0a8859b304 Add explicit quest stages to existing key areas 2013-10-03 08:27:11 +02:00
Oskar Wiksten
3cee7e95d2 Merge branch 'key_area_use_requirements' 2013-10-03 08:26:26 +02:00
Zukero
140dd16408 Key Area now use Requirement, instead of QuestProgress
* Requirement class moved from model.conversation to model.script
* Added requirement questLatestProgress : quest stage must be reached, but no stage with superior ID must be reached.
* New key requirements conditions type (item/gold/bonemeals) consumption (more or less than value, never strict checking, either <= or >=).
2013-10-02 18:21:14 +02:00
Oskar Wiksten
9af294932f Remove unused code 2013-09-25 22:30:10 +02:00
Oskar Wiksten
5136a7cab0 Merge branch 'headless-scripts' 2013-09-25 17:55:25 +02:00
Oskar Wiksten
b41fffee44 Content editor: Add support for giveItem,createTimer and timerElapsed in convs 2013-09-25 17:54:08 +02:00
Oskar Wiksten
0212dd6bbc Add world timers and world time (counted in number of rounds)
* Increase world time each round.
* Add script reward "createTimer"
* Add script requirement "timerElapsed"
2013-09-25 17:54:08 +02:00
Oskar Wiksten
d6583a4e33 Add reward type "giveItem", for quest rewards that do not need full droplists. 2013-09-25 17:54:08 +02:00
Oskar Wiksten
02bfeb5625 Enable map scripts to run on every round or tick 2013-09-25 17:54:08 +02:00
Oskar Wiksten
dc278fb5da First attempt at scripted map areas 2013-09-25 17:54:08 +02:00
Ian Haase
8d91c7375d recolored dirt transitions 2013-09-25 17:47:10 +02:00
1938 changed files with 3363225 additions and 185379 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,8 +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 kind="output" path="bin/classes"/>
</classpath>

View File

@@ -1,8 +1,15 @@
# Android ignores
app/src/main/res
app/src/main/assets
gen/
bin/
target/
local.properties
app/build/intermediates/
build/
debug/
release/
.gradle/
#IntelliJ
.idea/
@@ -14,3 +21,35 @@ 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/release/

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,4 +0,0 @@
gen
bin
.metadata
.git

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" />
</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,65 +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="40"
android:versionName="0.7.1dev"
android:installLocation="auto"
>
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="17"
/>
<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"
/>
<application
android:name=".AndorsTrailApplication"
android:label="@string/app_name"
android:icon="@drawable/icon"
android:description="@string/app_description"
android:allowBackup="true"
>
<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/Theme.NoBackground"
/>
<activity android:name=".activity.HeroinfoActivity" />
<activity android:name=".activity.MonsterInfoActivity" android:theme="@android:style/Theme.Dialog" />
<activity android:name=".activity.ItemInfoActivity" android:theme="@android:style/Theme.Dialog" />
<activity android:name=".activity.LevelUpActivity" android:theme="@android:style/Theme.Dialog" />
<activity android:name=".activity.MonsterEncounterActivity" android:theme="@android:style/Theme.Dialog" />
<activity android:name=".activity.ConversationActivity" android:theme="@android:style/Theme.Dialog" />
<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="@android:style/Theme.Dialog" />
<activity android:name=".activity.ActorConditionInfoActivity" android:theme="@android:style/Theme.Dialog" />
<activity android:name=".activity.BulkSelectionInterface" android:theme="@android:style/Theme.Dialog" />
<activity android:name=".activity.SkillInfoActivity" android:theme="@android:style/Theme.Dialog" />
<activity android:name=".activity.DisplayWorldMapActivity" />
</application>
</manifest>

View File

@@ -0,0 +1,52 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.gpl.rpg.AndorsTrail"
minSdkVersion 14
targetSdkVersion 30
}
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'
}
}
}
dependencies {
implementation 'com.android.support:support-v4:28.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}/src/main/res"
rename "(.*)\\.tmx", "\$1.xml"
}
task copyTranslation(type: Copy) {
description("Copies the translation files to the modules translations folder")
from "${rootDir}/assets/translation"
into "${projectDir}/src/main/assets/translation"
}
task cleanup(type: Delete) {
description("Deletes the assets/translation and the res folder from the modules folder")
delete "${projectDir}/src/main/res", "${projectDir}/src/main/assets/translation"
}
afterEvaluate {
preBuild.dependsOn project.tasks.copyRes
preBuild.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,79 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gpl.rpg.AndorsTrail"
android:versionCode="67"
android:versionName="0.8.3"
android:installLocation="auto"
>
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="30"
/>
<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: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="android.support.v4.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

@@ -0,0 +1,169 @@
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 com.gpl.rpg.AndorsTrail.util.Pair;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.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 String CURRENT_VERSION_DISPLAY = "0.8.3";
public static final boolean IS_RELEASE_VERSION = !CURRENT_VERSION_DISPLAY.matches(".*[a-d].*");
public static final boolean DEVELOPMENT_INCOMPATIBLE_SAVEGAMES = DEVELOPMENT_DEBUGRESOURCES || DEVELOPMENT_DEBUGBUTTONS || DEVELOPMENT_FASTSPEED || !IS_RELEASE_VERSION;
public static final int DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION = 999;
public static final int CURRENT_VERSION = DEVELOPMENT_INCOMPATIBLE_SAVEGAMES ? DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION : 67;
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 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());
}
}

View File

@@ -25,6 +25,11 @@ public final class AndorsTrailPreferences {
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;
@@ -35,6 +40,7 @@ public final class AndorsTrailPreferences {
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;
@@ -45,13 +51,17 @@ public final class AndorsTrailPreferences {
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 boolean useLocalizedResources = true;
public String language = "default";
public int selectedTheme = 0;
public void read(final Context androidContext) {
AndorsTrailPreferences dest = this;
@@ -65,14 +75,16 @@ public final class AndorsTrailPreferences {
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", 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.useLocalizedResources = prefs.getBoolean("useLocalizedResources", true);
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) {
@@ -85,13 +97,16 @@ public final class AndorsTrailPreferences {
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.useLocalizedResources = true;
dest.language = "default";
dest.selectedTheme = 0;
}
}
}

View File

@@ -1,22 +1,40 @@
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.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.graphics.drawable.BitmapDrawable;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
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.*;
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;
@@ -26,28 +44,26 @@ 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.resource.tiles.TileManager;
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;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
public final class Dialogs {
private static void showDialogAndPause(Dialog d, final ControllerContext context) {
private static void showDialogAndPause(CustomDialog d, final ControllerContext context) {
showDialogAndPause(d, context, null);
}
private static void showDialogAndPause(Dialog d, final ControllerContext context, final OnDismissListener onDismiss) {
private static void showDialogAndPause(CustomDialog d, final ControllerContext context, final OnDismissListener onDismiss) {
context.gameRoundController.pause();
d.setOnDismissListener(new OnDismissListener() {
CustomDialogFactory.setDismissListener(d, new OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
if (onDismiss != null) onDismiss.onDismiss(arg0);
context.gameRoundController.resume();
}
});
d.show();
CustomDialogFactory.show(d);
}
public static void showKeyArea(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
@@ -58,10 +74,19 @@ public final class Dialogs {
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);
}
@@ -85,7 +110,7 @@ public final class Dialogs {
if (!params.containsKey("x")) return null;
int x = params.getInt("x");
int y = params.getInt("y");
return world.model.currentMap.getMonsterAt(x, y);
return world.model.currentMaps.map.getMonsterAt(x, y);
}
public static void showMonsterEncounter(final MainActivity currentActivity, final ControllerContext context, final Monster monster) {
@@ -162,12 +187,23 @@ public final class Dialogs {
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.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) {
@@ -181,31 +217,29 @@ public final class Dialogs {
break;
}
}
if (removeFromCombinedLoot) combinedLoot.items.removeItem(itemTypeID);
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();
}
});
itemList.setAdapter(new ItemContainerAdapter(mainActivity, world.tileManager, combinedLoot.items, world.model.player));
AlertDialog.Builder db = new AlertDialog.Builder(mainActivity)
.setTitle(title)
.setMessage(msg)
.setIcon(new BitmapDrawable(mainActivity.getResources(), world.tileManager.preloadedTiles.getBitmap(TileManager.iconID_groundbag)))
.setNegativeButton(R.string.dialog_close, null)
.setView(itemList);
if (!combinedLoot.items.isEmpty()) {
db.setPositiveButton(R.string.dialog_loot_pickall, new DialogInterface.OnClickListener() {
if (!itemList.getAdapter().isEmpty()) {
CustomDialogFactory.addButton(d, R.string.dialog_loot_pickall, new View.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
public void onClick(View v) {
controllers.itemController.pickupAll(lootBags);
}
});
}
final Dialog d = db.create();
CustomDialogFactory.addDismissButton(d, R.string.dialog_close);
showDialogAndPause(d, controllers, new OnDismissListener() {
@Override
@@ -215,10 +249,31 @@ public final class Dialogs {
});
}
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());
@@ -232,36 +287,82 @@ public final class Dialogs {
}
public static void showConfirmRest(final Activity currentActivity, final ControllerContext controllerContext, final MapObject area) {
Dialog d = new AlertDialog.Builder(currentActivity)
.setTitle(R.string.dialog_rest_title)
.setMessage(R.string.dialog_rest_confirm_message)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
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(DialogInterface dialog, int which) {
public void onClick(View v) {
controllerContext.mapController.rest(area);
}
})
.setNegativeButton(android.R.string.no, null)
.create();
});
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(currentActivity)
.setTitle(R.string.dialog_rest_title)
.setMessage(R.string.dialog_rest_message)
.setNeutralButton(android.R.string.ok, null)
.create();
// 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) {
new AlertDialog.Builder(currentActivity)
.setTitle(R.string.dialog_newversion_title)
.setMessage(R.string.dialog_newversion_message)
.setNeutralButton(android.R.string.ok, null)
.show();
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);
}
@TargetApi(23)
private static boolean hasPermissions(final Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (activity.getApplicationContext().checkSelfPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
|| 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) {
@@ -269,17 +370,45 @@ public final class Dialogs {
Toast.makeText(mainActivity, R.string.menu_save_saving_not_allowed_in_combat, Toast.LENGTH_SHORT).show();
return false;
}
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;
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.INTENTREQUEST_LOADGAME);
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) {
@@ -316,22 +445,31 @@ public final class Dialogs {
}
public static void showCombatLog(final Context context, final ControllerContext controllerContext, final WorldContext world) {
final String[] combatLogMessages = world.model.combatLog.getAllMessages();
String[] combatLogMessages = world.model.combatLog.getAllMessages();
final ListView itemList = new ListView(context);
View view = null;
ListView itemList = null;
itemList = new ListView(context);
itemList.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, ListView.LayoutParams.WRAP_CONTENT));
itemList.setPadding(20, 0, 20, 20);
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 = new AlertDialog.Builder(context)
.setTitle(R.string.combat_log_title)
.setIcon(R.drawable.ui_icon_combat)
.setNegativeButton(R.string.dialog_close, null)
.setView(itemList)
.create();
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,16 +1,17 @@
package com.gpl.rpg.AndorsTrail;
import java.lang.ref.WeakReference;
import android.content.Context;
import android.content.res.Resources;
import android.os.AsyncTask;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.ModelContainer;
import com.gpl.rpg.AndorsTrail.resource.ResourceLoader;
import com.gpl.rpg.AndorsTrail.savegames.Savegames;
import java.lang.ref.WeakReference;
public final class WorldSetup {
private final WorldContext world;
@@ -26,7 +27,10 @@ public final class WorldSetup {
public int loadFromSlot = Savegames.SLOT_QUICKSAVE;
public boolean isSceneReady = false;
public String newHeroName;
private int loadResult;
public int newHeroIcon;
public int newHeroStartLives;
public boolean newHeroUnlimitedSaves;
private Savegames.LoadSavegameResult loadResult;
public WorldSetup(WorldContext world, ControllerContext controllers, Context androidContext) {
this.world = world;
@@ -53,10 +57,14 @@ public final class WorldSetup {
isInitializingResources = true;
}
//Load resources essential to the app synchroneously
ResourceLoader.loadResourcesSync(world, r);
//And the rest asynchroneously
(new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... arg0) {
ResourceLoader.loadResources(world, r);
ResourceLoader.loadResourcesAsync(world, r);
return null;
}
@@ -102,10 +110,10 @@ public final class WorldSetup {
@Override
protected Void doInBackground(Void... arg0) {
synchronized (onlyOneThreadAtATimeMayLoadSavegames) {
if (world.model != null) world.reset();
if (world.model != null) world.resetForNewGame();
if (createNewCharacter) {
createNewWorld();
loadResult = Savegames.LOAD_RESULT_SUCCESS;
loadResult = Savegames.LoadSavegameResult.success;
} else {
loadResult = continueWorld();
}
@@ -126,7 +134,7 @@ public final class WorldSetup {
onSceneLoadedListener = null;
if (o == null) return;
if (loadResult == Savegames.LOAD_RESULT_SUCCESS) {
if (loadResult == Savegames.LoadSavegameResult.success) {
o.onSceneLoaded();
} else {
o.onSceneLoadFailed(loadResult);
@@ -136,15 +144,15 @@ public final class WorldSetup {
}).execute();
}
private int continueWorld() {
private Savegames.LoadSavegameResult continueWorld() {
Context ctx = androidContext.get();
return Savegames.loadWorld(world, controllers, ctx, loadFromSlot);
}
private void createNewWorld() {
Context ctx = androidContext.get();
world.model = new ModelContainer();
world.model.player.initializeNewPlayer(world.itemTypes, world.dropLists, newHeroName);
world.model = new ModelContainer(newHeroStartLives, newHeroUnlimitedSaves);
world.model.player.initializeNewPlayer(world.dropLists, newHeroName, newHeroIcon);
controllers.actorStatsController.recalculatePlayerStats(world.model.player);
controllers.movementController.respawnPlayer(ctx.getResources());
@@ -152,9 +160,9 @@ public final class WorldSetup {
}
public interface OnSceneLoadedListener {
public static interface OnSceneLoadedListener {
void onSceneLoaded();
void onSceneLoadFailed(int loadResult);
void onSceneLoadFailed(Savegames.LoadSavegameResult loadResult);
}
public interface OnResourcesLoadedListener {
void onResourcesLoaded();

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;
@@ -11,14 +10,17 @@ 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.util.ThemeHelper;
public final class AboutActivity extends Activity implements ImageGetter {
public final class AboutActivity extends AndorsTrailBaseActivity implements ImageGetter {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getBaseTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);

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;
@@ -9,17 +8,20 @@ import android.view.Window;
import android.widget.Button;
import android.widget.LinearLayout;
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.ability.ActorConditionType;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.AbilityModifierInfoView;
import com.gpl.rpg.AndorsTrail.view.ItemEffectsView_OnUse;
public final class ActorConditionInfoActivity extends Activity {
public final class ActorConditionInfoActivity extends AndorsTrailBaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getDialogTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }

View File

@@ -0,0 +1,23 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.os.Bundle;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
public abstract class AndorsTrailBaseActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setLocale(this);
}
@Override
protected void onResume() {
super.onResume();
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setLocale(this);
}
}

View File

@@ -0,0 +1,22 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
public abstract class AndorsTrailBaseFragmentActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setLocale(this);
}
@Override
protected void onResume() {
super.onResume();
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
app.setLocale(this);
}
}

View File

@@ -1,8 +1,6 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.app.Dialog;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
@@ -17,17 +15,21 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.SeekBar;
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.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
* Creates the BulkSelectionInterface dialog that allows for buy/drop/selling
*/
public final class BulkSelectionInterface extends Activity implements TextWatcher {
public final class BulkSelectionInterface extends AndorsTrailBaseActivity implements TextWatcher {
// class variables
public static enum BulkInterfaceType {
@@ -70,6 +72,7 @@ public final class BulkSelectionInterface extends Activity implements TextWatche
*/
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getDialogTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
@@ -192,18 +195,33 @@ public final class BulkSelectionInterface extends Activity implements TextWatche
final String displayType = ItemInfoActivity.getDisplayTypeString(res, itemType).toLowerCase();
final String message = res.getString(R.string.bulkselection_sell_confirmation, itemType.getName(world.model.player), displayType);
new AlertDialog.Builder(v.getContext())
.setIcon(android.R.drawable.ic_dialog_info)
.setTitle(R.string.bulkselection_sell_confirmation_title)
.setMessage(message)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
// new AlertDialog.Builder(v.getContext())
// .setIcon(android.R.drawable.ic_dialog_info)
// .setTitle(R.string.bulkselection_sell_confirmation_title)
// .setMessage(message)
// .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// itemsResult(intent);
// }
// })
// .setNegativeButton(android.R.string.no, null)
// .show();
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,
null,
true);
CustomDialogFactory.addButton(d, android.R.string.yes, new View.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
public void onClick(View v) {
itemsResult(intent);
}
})
.setNegativeButton(android.R.string.no, null)
.show();
});
CustomDialogFactory.addDismissButton(d, android.R.string.no);
CustomDialogFactory.show(d);
} else {
itemsResult(intent);
}
@@ -289,7 +307,7 @@ public final class BulkSelectionInterface extends Activity implements TextWatche
if (s.equals("")) return 0;
try {
return Integer.parseInt(s);
} catch (NumberFormatException e) { }
} catch (NumberFormatException ignored) { }
return 0;
}

View File

@@ -1,10 +1,12 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import java.util.ArrayList;
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;
@@ -16,9 +18,17 @@ import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.*;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.TextView.BufferType;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.Dialogs;
import com.gpl.rpg.AndorsTrail.R;
@@ -32,24 +42,20 @@ 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;
import java.util.ArrayList;
public final class ConversationActivity extends Activity implements OnKeyListener
public final class ConversationActivity
extends AndorsTrailBaseActivity
implements OnKeyListener
, ConversationController.ConversationStatemachine.ConversationStateListener {
public static final int ACTIVITYRESULT_ATTACK = Activity.RESULT_FIRST_USER + 1;
public static final int ACTIVITYRESULT_REMOVE = Activity.RESULT_FIRST_USER + 2;
private static final int playerNameColor = Color.argb(255, 0xbb, 0x22, 0x22);
private static final int NPCNameColor = Color.argb(255, 0xbb, 0xbb, 0x22);
private static final int playerPhraseColor = 0;
private static final int NPCPhraseColor = 0;
private static final int rewardColor = Color.argb(255, 0x99, 0x99, 0x55);
private WorldContext world;
private Player player;
private ArrayList<ConversationStatement> conversationHistory = new ArrayList<ConversationStatement>();
private final ArrayList<ConversationStatement> conversationHistory = new ArrayList<ConversationStatement>();
private ConversationController.ConversationStatemachine conversationState;
private int numberOfNewMessage = 0;
private StatementContainerAdapter listAdapter;
private Button nextButton;
@@ -59,22 +65,27 @@ public final class ConversationActivity extends Activity implements OnKeyListene
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getDialogTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
this.world = app.getWorld();
this.player = world.model.player;
this.conversationState = new ConversationController.ConversationStatemachine(world, app.getControllerContext(), getResources(), this);
this.conversationState = new ConversationController.ConversationStatemachine(world, app.getControllerContext(), this);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.conversation);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
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);
@@ -106,17 +117,22 @@ public final class ConversationActivity extends Activity implements OnKeyListene
statementList.setFocusable(false);
statementList.setFocusableInTouchMode(false);
String phraseID;
boolean applyScriptEffectsForFirstPhrase;
boolean displayLastMessage = true;
if (savedInstanceState != null) {
conversationState.setCurrentNPC(Dialogs.getMonsterFromBundle(savedInstanceState, world));
ArrayList<ConversationStatement> savedConversationHistory = savedInstanceState.getParcelableArrayList("conversationHistory");
if (savedConversationHistory != null) conversationHistory.addAll(savedConversationHistory);
final String phraseID = savedInstanceState.getString("phraseID");
conversationState.proceedToRestoredState(phraseID);
phraseID = savedInstanceState.getString("phraseID");
applyScriptEffectsForFirstPhrase = false;
displayLastMessage = false;
} else {
conversationState.setCurrentNPC(Dialogs.getMonsterFromIntent(getIntent(), world));
final String phraseID = getIntent().getData().getLastPathSegment();
conversationState.proceedToPhrase(phraseID);
phraseID = getIntent().getData().getLastPathSegment();
applyScriptEffectsForFirstPhrase = getIntent().getBooleanExtra("applyScriptEffectsForFirstPhrase", true);
}
conversationState.proceedToPhrase(getResources(), phraseID, applyScriptEffectsForFirstPhrase, displayLastMessage);
}
@Override
@@ -126,11 +142,16 @@ public final class ConversationActivity extends Activity implements OnKeyListene
}
private int getSelectedReplyIndex() {
int j = 0;
for (int i = 0; i < replyGroup.getChildCount(); ++i) {
final View v = replyGroup.getChildAt(i);
if (v == null) continue;
if (!(v instanceof RadioButton)) {
continue;
}
final RadioButton rb = (RadioButton) v;
if (rb.isChecked()) return i;
if (rb.isChecked()) return j;
j++;
}
return -1;
}
@@ -139,27 +160,36 @@ public final class ConversationActivity extends Activity implements OnKeyListene
int replyCount = replyGroup.getChildCount();
if (replyCount <= 0) return;
if (i < 0) i = 0;
else if (i >= replyCount) i = replyCount - 1;
else if (i >= (replyCount-1)) i = replyCount-1;
View v = replyGroup.getChildAt(i);
if (v == null) return;
RadioButton rb = (RadioButton) v;
rb.setChecked(true);
for (int j = 0; j < replyGroup.getChildCount(); ++j) {
View v = replyGroup.getChildAt(j);
if (v == null) continue;
if (!(v instanceof RadioButton)) {
continue;
}
i--;
if (i < 0) {
RadioButton rb = (RadioButton) v;
rb.setChecked(true);
break;
}
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (handleKeypress(keyCode, event)) return true;
if (handleKeypress(keyCode)) return true;
else return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKey(View arg0, int keyCode, KeyEvent event) {
if (event.getAction() != KeyEvent.ACTION_DOWN) return false;
return handleKeypress(keyCode, event);
return handleKeypress(keyCode);
}
public boolean handleKeypress(int keyCode, KeyEvent event) {
public boolean handleKeypress(int keyCode) {
int selectedReplyIndex = getSelectedReplyIndex();
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
@@ -192,6 +222,9 @@ public final class ConversationActivity extends Activity implements OnKeyListene
for (int i = 0; i < replyGroup.getChildCount(); ++i) {
final View v = replyGroup.getChildAt(i);
if (v == null) continue;
if (!(v instanceof RadioButton)) {
continue;
}
final RadioButton rb = (RadioButton) v;
if (rb.isChecked()) {
return rb;
@@ -200,21 +233,42 @@ public final class ConversationActivity extends Activity implements OnKeyListene
return null; // No reply was found. This is probably an error.
}
private void greyAllConversationStatement(){
int numberOfMessage = this.conversationHistory.size();
while(numberOfNewMessage != 0){
ConversationStatement conversation = conversationHistory.get(numberOfMessage - numberOfNewMessage);
if(conversation.hasActor()){
conversation.textColor = getSpanColor(R.attr.ui_theme_dialogue_dark_color);
if(conversation.isPlayerActor){
conversation.nameColor = getSpanColor(R.attr.ui_theme_playername_light_color);
} else {
conversation.nameColor = getSpanColor(R.attr.ui_theme_npcname_dark_color);
}
} else if (conversation.isReward) {
conversation.textColor = getSpanColor(R.attr.ui_theme_reward_light_color);
} else {
conversation.textColor = getSpanColor(R.attr.ui_theme_dialogue_dark_color);;
}
numberOfNewMessage--;
}
}
private void nextButtonClicked() {
greyAllConversationStatement();
RadioButton rb = getSelectedReplyButton();
replyGroup.removeAllViews();
nextButton.setEnabled(false);
if (conversationState.hasOnlyOneNextReply()) {
conversationState.playerSelectedNextStep();
conversationState.playerSelectedNextStep(getResources());
} else {
if (rb == null) return;
Reply r = (Reply) rb.getTag();
addConversationStatement(player, rb.getText().toString(), playerPhraseColor);
conversationState.playerSelectedReply(r);
addConversationStatement(player, rb.getText().toString(), getSpanColor(R.attr.ui_theme_dialogue_light_color), false);
conversationState.playerSelectedReply(getResources(), r);
}
}
private void addConversationStatement(Actor actor, String text, int textColor) {
private void addConversationStatement(Actor actor, String text, int textColor, boolean isReward) {
ConversationStatement s = new ConversationStatement();
if (actor != null) {
s.iconID = actor.iconID;
@@ -223,10 +277,12 @@ public final class ConversationActivity extends Activity implements OnKeyListene
s.iconID = ConversationStatement.NO_ICON;
}
s.text = text;
s.nameColor = actor == player ? playerNameColor : NPCNameColor;
s.nameColor = actor == player ? getSpanColor(R.attr.ui_theme_playername_light_color) : getSpanColor(R.attr.ui_theme_npcname_light_color);
s.textColor = textColor;
s.isPlayerActor = actor != null && actor == player;
s.isReward = isReward;
conversationHistory.add(s);
numberOfNewMessage++;
statementList.clearFocus();
listAdapter.notifyDataSetChanged();
statementList.requestLayout();
@@ -248,6 +304,7 @@ public final class ConversationActivity extends Activity implements OnKeyListene
public int nameColor;
public int textColor;
public boolean isPlayerActor;
public boolean isReward;
public boolean hasActor() {
return iconID != NO_ICON;
@@ -264,10 +321,12 @@ public final class ConversationActivity extends Activity implements OnKeyListene
dest.writeInt(nameColor);
dest.writeInt(textColor);
dest.writeByte((byte) (isPlayerActor ? 1 : 0));
dest.writeByte((byte) (isReward ? 1 : 0));
}
@SuppressWarnings("unused")
public static final Parcelable.Creator<ConversationStatement> CREATOR = new Parcelable.Creator<ConversationStatement>() {
@Override
public ConversationStatement createFromParcel(Parcel in) {
ConversationStatement result = new ConversationStatement();
result.actorName = in.readString();
@@ -276,9 +335,11 @@ public final class ConversationActivity extends Activity implements OnKeyListene
result.nameColor = in.readInt();
result.textColor = in.readInt();
result.isPlayerActor = in.readByte() == 1;
result.isReward = in.readByte() == 1;
return result;
}
@Override
public ConversationStatement[] newArray(int size) {
return new ConversationStatement[size];
}
@@ -288,10 +349,12 @@ public final class ConversationActivity extends Activity implements OnKeyListene
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
@@ -306,7 +369,7 @@ public final class ConversationActivity extends Activity implements OnKeyListene
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();
@@ -340,15 +403,15 @@ public final class ConversationActivity extends Activity implements OnKeyListene
}
@Override
public void onTextPhraseReached(String message, Actor actor) {
addConversationStatement(actor, message, NPCPhraseColor);
public void onTextPhraseReached(String message, Actor actor, String phraseID) {
addConversationStatement(actor, message, getSpanColor(R.attr.ui_theme_dialogue_light_color), false);
}
@Override
public void onPlayerReceivedRewards(ConversationController.PhraseRewards phraseRewards) {
Loot loot = phraseRewards.loot;
public void onScriptEffectsApplied(ConversationController.ScriptEffectResult scriptEffectResult) {
Loot loot = scriptEffectResult.loot;
for (QuestProgress reward : phraseRewards.questProgress) {
for (QuestProgress reward : scriptEffectResult.questProgress) {
Quest q = world.quests.getQuest(reward.questID);
if (!q.showInLog) continue;
QuestLogEntry logEntry = q.getQuestLogEntry(reward.progress);
@@ -377,7 +440,7 @@ public final class ConversationActivity extends Activity implements OnKeyListene
}
private void addRewardMessage(String text) {
addConversationStatement(null, text, rewardColor);
addConversationStatement(null, text, getSpanColor(R.attr.ui_theme_reward_light_color), true);
}
@Override
@@ -395,13 +458,11 @@ public final class ConversationActivity extends Activity implements OnKeyListene
@Override
public void onConversationEndedWithCombat(Monster npc) {
ConversationActivity.this.setResult(ACTIVITYRESULT_ATTACK);
ConversationActivity.this.finish();
}
@Override
public void onConversationEndedWithRemoval(Monster npc) {
ConversationActivity.this.setResult(ACTIVITYRESULT_REMOVE);
ConversationActivity.this.finish();
}
@@ -413,6 +474,7 @@ public final class ConversationActivity extends Activity implements OnKeyListene
@Override
public void onConversationHasReply(Reply r, String message) {
RadioGroup.LayoutParams layoutParams = new RadioGroup.LayoutParams(RadioGroup.LayoutParams.MATCH_PARENT, RadioGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(0, getResources().getDimensionPixelOffset(R.dimen.conversation_replyseparator_margintop), 0, getResources().getDimensionPixelOffset(R.dimen.conversation_replyseparator_marginbottom));
RadioButton rb = new RadioButton(this);
rb.setLayoutParams(layoutParams);
rb.setText(message);
@@ -421,6 +483,18 @@ public final class ConversationActivity extends Activity implements OnKeyListene
rb.setShadowLayer(1, 1, 1, Color.BLACK);
rb.setFocusable(false);
rb.setFocusableInTouchMode(false);
if (replyGroup.getChildCount() == 0) { //Add a separator before first item
ImageView iv = new ImageView(this);
iv.setBackgroundResource(ThemeHelper.getThemeResource(this, R.attr.ui_theme_listseparator_drawable));
RadioGroup.LayoutParams ivLayoutParams = new RadioGroup.LayoutParams(RadioGroup.LayoutParams.MATCH_PARENT, RadioGroup.LayoutParams.WRAP_CONTENT);
ivLayoutParams.setMargins(0, getResources().getDimensionPixelOffset(R.dimen.conversation_replyseparator_margintop), 0, getResources().getDimensionPixelOffset(R.dimen.conversation_replyseparator_marginbottom));
iv.setLayoutParams(ivLayoutParams);
replyGroup.addView(iv, ivLayoutParams);
}
replyGroup.addView(rb, layoutParams);
}
private int getSpanColor(int resId) {
return ThemeHelper.getThemeColor(this, resId);
}
}

View File

@@ -0,0 +1,341 @@
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>();
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);
}
}
})
,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);
}
})
}));
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, "houseatcrossroads4", "down", 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 (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);
}
}
})
,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);
}
})
}));
buttonList.addAll(tpButtons2);
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);
}
}
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

@@ -0,0 +1,168 @@
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();
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);
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

@@ -0,0 +1,97 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.app.FragmentTabHost;
import android.view.LayoutInflater;
import android.view.ViewGroup;
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.activity.fragment.HeroinfoActivity_Inventory;
import com.gpl.rpg.AndorsTrail.activity.fragment.HeroinfoActivity_Quests;
import com.gpl.rpg.AndorsTrail.activity.fragment.HeroinfoActivity_Skills;
import com.gpl.rpg.AndorsTrail.activity.fragment.HeroinfoActivity_Stats;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
public final class HeroinfoActivity extends AndorsTrailBaseFragmentActivity {
private WorldContext world;
private FragmentTabHost tabHost;
@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.tabbedlayout);
Resources res = getResources();
tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
LayoutInflater inflater = getLayoutInflater();
ViewGroup v;
v = (ViewGroup) inflater.inflate(R.layout.tabindicator, null);
((TextView)v.findViewById(R.id.tabindicator_text)).setText(res.getString(R.string.heroinfo_char));
((ImageView)v.findViewById(R.id.tabindicator_icon)).setImageDrawable(res.getDrawable(R.drawable.char_hero));
tabHost.addTab(tabHost.newTabSpec("char")
.setIndicator(v)
,HeroinfoActivity_Stats.class, null);
v = (ViewGroup) inflater.inflate(R.layout.tabindicator, null);
((TextView)v.findViewById(R.id.tabindicator_text)).setText(res.getString(R.string.heroinfo_quests));
((ImageView)v.findViewById(R.id.tabindicator_icon)).setImageDrawable(res.getDrawable(R.drawable.ui_icon_quest));
tabHost.addTab(tabHost.newTabSpec("quests")
.setIndicator(v)
,HeroinfoActivity_Quests.class, null);
v = (ViewGroup) inflater.inflate(R.layout.tabindicator, null);
((TextView)v.findViewById(R.id.tabindicator_text)).setText(res.getString(R.string.heroinfo_skill));
((ImageView)v.findViewById(R.id.tabindicator_icon)).setImageDrawable(res.getDrawable(R.drawable.ui_icon_skill));
tabHost.addTab(tabHost.newTabSpec("skills")
.setIndicator(v)
,HeroinfoActivity_Skills.class, null);
v = (ViewGroup) inflater.inflate(R.layout.tabindicator, null);
((TextView)v.findViewById(R.id.tabindicator_text)).setText(res.getString(R.string.heroinfo_inv));
((ImageView)v.findViewById(R.id.tabindicator_icon)).setImageDrawable(res.getDrawable(R.drawable.ui_icon_equipment));
tabHost.addTab(tabHost.newTabSpec("inv")
.setIndicator(v)
,HeroinfoActivity_Inventory.class, null);
String t = world.model.uiSelections.selectedTabHeroInfo;
if (t != null && t.length() > 0) {
tabHost.setCurrentTabByTag(t);
}
updateIconForPlayer();
}
@Override
protected void onResume() {
super.onResume();
updateIconForPlayer();
}
private void updateIconForPlayer() {
ImageView iv = (ImageView) tabHost.getTabWidget().getChildTabViewAt(0).findViewById(R.id.tabindicator_icon);
world.tileManager.setImageViewTileForPlayer(getResources(), iv, world.model.player.iconID);
}
@Override
protected void onPause() {
super.onPause();
world.model.uiSelections.selectedTabHeroInfo = tabHost.getCurrentTabTag();
}
}

View File

@@ -1,5 +1,7 @@
package com.gpl.rpg.AndorsTrail.activity;
import java.util.Collections;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
@@ -8,22 +10,25 @@ 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;
import java.util.Collections;
public final class ItemInfoActivity extends Activity {
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; }
@@ -38,6 +43,7 @@ public final class ItemInfoActivity extends Activity {
final String buttonText = params.getString("buttonText");
boolean buttonEnabled = params.getBoolean("buttonEnabled");
boolean moreButtonEnabled = params.getBoolean("moreActions");
setContentView(R.layout.iteminfo);
@@ -62,6 +68,8 @@ public final class ItemInfoActivity extends Activity {
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()
);
@@ -73,6 +81,21 @@ public final class ItemInfoActivity extends Activity {
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) {

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;
@@ -8,6 +7,7 @@ import android.view.View.OnClickListener;
import android.view.Window;
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.ControllerContext;
@@ -15,8 +15,9 @@ import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.ActorStatsController;
import com.gpl.rpg.AndorsTrail.controller.Constants;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
public final class LevelUpActivity extends Activity {
public final class LevelUpActivity extends AndorsTrailBaseActivity {
private WorldContext world;
private ControllerContext controllers;
private Player player;
@@ -26,6 +27,7 @@ public final class LevelUpActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getDialogTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }

View File

@@ -0,0 +1,766 @@
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.annotation.TargetApi;
import android.app.Activity;
import android.app.Dialog;
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 android.support.annotation.RequiresApi;
import android.support.v4.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"));
setContentView(R.layout.loadsave);
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.LOLLIPOP) {
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
@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 source = DocumentFile.fromFile(storageDir);
DocumentFile target = DocumentFile.fromTreeUri(context, uri);
if (target == null) {
return;
}
DocumentFile[] files = source.listFiles();
boolean hasExistingFiles = false;
for (DocumentFile file :
files) {
String fileName = file.getName();
if (fileName == null)
continue;
DocumentFile existingFile = target.findFile(fileName);
if (existingFile != null) {
hasExistingFiles = true;
break;
}
}
if (hasExistingFiles) {
showConfirmOverwriteByExportQuestion(resolver, target, files);
} else {
exportSaveGamesFolderContentToFolder(resolver, target, files);
}
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void exportSaveGamesFolderContentToFolder(ContentResolver resolver, DocumentFile target, DocumentFile[] files) {
DocumentFile[] sourceFiles = new DocumentFile[files.length];
DocumentFile[] worldmapFiles = null;
for (int i = 0; i < files.length; i++) {
DocumentFile file = files[i];
if (file.isFile()) {
sourceFiles[i] = file;
} else if (file.isDirectory() && Objects.equals(file.getName(), Constants.FILENAME_WORLDMAP_DIRECTORY)) {
worldmapFiles = file.listFiles();
}
}
Context context =this;
DocumentFile[] finalWorldmapFiles = worldmapFiles;
AndroidStorage.copyDocumentFilesToDirAsync(sourceFiles,
context,
target,
(sucess) -> {
if (sucess) {
DocumentFile worldmapFolder = target.createDirectory(Constants.FILENAME_WORLDMAP_DIRECTORY);
AndroidStorage.copyDocumentFilesToDirAsync(finalWorldmapFiles,
context,
worldmapFolder,
(sucessWorldmap) -> completeLoadSaveActivity(SLOT_NUMBER_EXPORT_SAVEGAMES, sucessWorldmap));
} else {
completeLoadSaveActivity(SLOT_NUMBER_EXPORT_SAVEGAMES, false);
}
});
}
@RequiresApi(api = Build.VERSION_CODES.N)
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 = context.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.N)
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);
}
}
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,
(sucess) -> completeLoadSaveActivity(SLOT_NUMBER_IMPORT_SAVEGAMES, sucess));
}
private void completeSavegameImportAndCheckIfDone(List<Integer> importsNeedingConfirmation, int slot) {
importsNeedingConfirmation.remove((Object) slot);
if (importsNeedingConfirmation.isEmpty()) {
completeLoadSaveActivity(SLOT_NUMBER_IMPORT_SAVEGAMES);
}
}
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)) {
//TODO: Maybe output a message that the file didn't have the right name?
return -1;
}
String slotStr = fileName.substring(Constants.FILENAME_SAVEGAME_FILENAME_PREFIX.length());
int slot;
try {
slot = Integer.parseInt(slotStr);
return slot;
} catch (NumberFormatException e) {
//TODO: Maybe output a message that the file didn't have the right name?
return -1;
}
}
private void importSaveGameFile(ContentResolver resolver, DocumentFile appSavegameFolder, DocumentFile itemFile, int slot) {
String targetName = Savegames.getSlotFileName(slot);
DocumentFile targetFile = getOrCreateDocumentFile(appSavegameFolder, targetName);
if (targetFile == null || !targetName.equals(targetFile.getName())) {
showErrorImportingSaveGameUnknown();//TODO: maybe replace with a more specific error message
return;
}
try {
AndroidStorage.copyDocumentFile(itemFile, resolver, targetFile);
} catch (IOException e) {
showErrorImportingSaveGameUnknown();
e.printStackTrace();
}
}
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 = getApplicationContext();
ContentResolver resolver = AndorsTrailApplication.getApplicationFromActivity(this).getContentResolver();
File storageDir = AndroidStorage.getStorageDirectory(context, Constants.FILENAME_SAVEGAME_DIRECTORY);
DocumentFile storageFolder = DocumentFile.fromFile(storageDir);
DocumentFile ownWorldmapFolder = storageFolder.findFile(Constants.FILENAME_WORLDMAP_DIRECTORY);
if (ownWorldmapFolder == null) {
ownWorldmapFolder = storageFolder.createDirectory(Constants.FILENAME_WORLDMAP_DIRECTORY);
}
DocumentFile chosenFolder = DocumentFile.fromTreeUri(context, uri);
if (chosenFolder == null || !chosenFolder.isDirectory()) {
showErrorImportingWorldmapWrongDirectory();
return;
}
if (!Constants.FILENAME_WORLDMAP_DIRECTORY.equals(chosenFolder.getName())) {
//user did not select the worldmap folder directly
DocumentFile file = chosenFolder.findFile(Constants.FILENAME_WORLDMAP_DIRECTORY);
if (file == null || !file.isDirectory() || !Constants.FILENAME_WORLDMAP_DIRECTORY.equals(file.getName())) {
//could not find a worldmap folder in the users selection
showErrorImportingWorldmapWrongDirectory();
return;
}
chosenFolder = file;
}
AndroidStorage.copyDocumentFilesToDirAsync(chosenFolder.listFiles(),
this,
ownWorldmapFolder,
(success) -> completeLoadSaveActivity(SLOT_NUMBER_IMPORT_WORLDMAP, success));
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void clickExportSaveGames() {
startActivityForResult(AndroidStorage.getNewOpenDirectoryIntent(), -SLOT_NUMBER_EXPORT_SAVEGAMES);
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void clickImportSaveGames() {
startActivityForResult(AndroidStorage.getNewSelectMultipleSavegameFilesIntent(), -SLOT_NUMBER_IMPORT_SAVEGAMES);
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void clickImportWorldmap() {
startActivityForResult(AndroidStorage.getNewOpenDirectoryIntent(), -SLOT_NUMBER_IMPORT_WORLDMAP);
}
@RequiresApi(api = Build.VERSION_CODES.P)
private void showConfirmOverwriteByExportQuestion(ContentResolver resolver, DocumentFile targetFolder, DocumentFile[] 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(resolver, targetFolder, files));
CustomDialogFactory.addDismissButton(d, android.R.string.no);
CustomDialogFactory.show(d);
}
@RequiresApi(api = Build.VERSION_CODES.N)
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<CustomDialog>(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, slot, existingFileHeader.describe());
String importedFileDescription = getString(R.string.loadsave_import_imported_description, 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.N)
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
private void showErrorImportingWorldmapWrongDirectory() {
final CustomDialog d = CustomDialogFactory.createErrorDialog(this,
getString(R.string.loadsave_import_worldmap_unsuccessfull),
getString(R.string.loadsave_import_worldmap_wrong_directory));
CustomDialogFactory.show(d);
}
private void showErrorImportingSaveGameUnknown() {
final CustomDialog d = CustomDialogFactory.createErrorDialog(this,
getString(R.string.loadsave_import_save_unsuccessfull),
getString(R.string.loadsave_import_save_error_unknown));
CustomDialogFactory.show(d);
}
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

@@ -0,0 +1,180 @@
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);
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 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

@@ -1,14 +1,23 @@
package com.gpl.rpg.AndorsTrail.activity;
import java.lang.ref.WeakReference;
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.*;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.RelativeLayout;
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;
@@ -17,26 +26,41 @@ import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.AttackResult;
import com.gpl.rpg.AndorsTrail.controller.CombatController;
import com.gpl.rpg.AndorsTrail.controller.MovementController;
import com.gpl.rpg.AndorsTrail.controller.Constants;
import com.gpl.rpg.AndorsTrail.controller.listeners.CombatActionListener;
import com.gpl.rpg.AndorsTrail.controller.listeners.CombatTurnListener;
import com.gpl.rpg.AndorsTrail.controller.listeners.PlayerMovementListener;
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.ItemContainer.ItemEntry;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection;
import com.gpl.rpg.AndorsTrail.savegames.Savegames;
import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.view.*;
import com.gpl.rpg.AndorsTrail.view.QuickButton.QuickButtonContextMenuInfo;
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;
import com.gpl.rpg.AndorsTrail.view.QuickButton;
import com.gpl.rpg.AndorsTrail.view.QuickitemView;
import com.gpl.rpg.AndorsTrail.view.QuickslotsItemContainerAdapter;
import com.gpl.rpg.AndorsTrail.view.StatusView;
import com.gpl.rpg.AndorsTrail.view.ToolboxView;
import com.gpl.rpg.AndorsTrail.view.VirtualDpadView;
import java.lang.ref.WeakReference;
import java.util.Collection;
public final class MainActivity extends Activity implements PlayerMovementListener, CombatActionListener, CombatTurnListener, WorldEventListener {
public final class MainActivity
extends AndorsTrailBaseActivity
implements
PlayerMovementListener
, CombatActionListener
, CombatTurnListener
, WorldEventListener {
public static final int INTENTREQUEST_MONSTERENCOUNTER = 2;
public static final int INTENTREQUEST_CONVERSATION = 4;
@@ -54,10 +78,12 @@ public final class MainActivity extends Activity implements PlayerMovementListen
private TextView statusText;
private WeakReference<Toast> lastToast = null;
private ContextMenuInfo lastSelectedMenu = null;
//private ContextMenuInfo lastSelectedMenu = null;
private OnLongClickListener quickButtonLongClickListener = null;
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getNoBackgroundTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
@@ -73,6 +99,7 @@ public final class MainActivity extends Activity implements PlayerMovementListen
combatview = (CombatView) findViewById(R.id.main_combatview);
quickitemview = (QuickitemView) findViewById(R.id.main_quickitemview);
activeConditions = new DisplayActiveActorConditionIcons(controllers, world, this, (RelativeLayout) findViewById(R.id.statusview_activeconditions));
activeConditions.setTarget(world.model.player);
VirtualDpadView dpad = (VirtualDpadView) findViewById(R.id.main_virtual_dpad);
toolboxview = (ToolboxView) findViewById(R.id.main_toolboxview);
statusview.registerToolboxViews(toolboxview, quickitemview);
@@ -90,6 +117,7 @@ public final class MainActivity extends Activity implements PlayerMovementListen
new DebugInterface(controllers, world, this).addDebugButtons();
quickitemview.setVisibility(View.GONE);
createLongClickListener();
quickitemview.registerForContextMenu(this);
dpad.updateVisibility(preferences);
@@ -115,7 +143,6 @@ public final class MainActivity extends Activity implements PlayerMovementListen
}
break;
case INTENTREQUEST_CONVERSATION:
MovementController.refreshMonsterAggressiveness(world.model.currentMap, world.model.player);
controllers.mapController.applyCurrentMapReplacements(getResources(), true);
break;
case INTENTREQUEST_SAVEGAME:
@@ -123,6 +150,9 @@ public final class MainActivity extends Activity implements PlayerMovementListen
final int slot = data.getIntExtra("slot", 1);
if (save(slot)) {
Toast.makeText(this, getResources().getString(R.string.menu_save_gamesaved, slot), Toast.LENGTH_SHORT).show();
if (!world.model.statistics.hasUnlimitedSaves()) {
finish();
}
} else {
Toast.makeText(this, R.string.menu_save_failed, Toast.LENGTH_LONG).show();
}
@@ -131,8 +161,7 @@ public final class MainActivity extends Activity implements PlayerMovementListen
}
private boolean save(int slot) {
final Player player = world.model.player;
return Savegames.saveWorld(world, this, slot, getString(R.string.savegame_currenthero_displayinfo, player.getLevel(), player.getTotalExperience(), player.getGold()));
return Savegames.saveWorld(world, this, slot);
}
@Override
@@ -162,13 +191,11 @@ public final class MainActivity extends Activity implements PlayerMovementListen
super.onResume();
if (!AndorsTrailApplication.getApplicationFromActivity(this).getWorldSetup().isSceneReady) return;
controllers.gameRoundController.resume();
if (world.model.uiSelections.isInCombat) {
controllers.combatController.setCombatSelection(world.model.uiSelections.selectedMonster, world.model.uiSelections.selectedPosition);
controllers.combatController.enterCombat(CombatController.BeginTurnAs.continueLastTurn);
if (world.model.statistics.isDead()) this.finish();
else {
controllers.gameRoundController.resume();
updateStatus();
}
updateStatus();
}
private void unsubscribeFromModel() {
@@ -180,6 +207,8 @@ public final class MainActivity extends Activity implements PlayerMovementListen
controllers.movementController.playerMovementListeners.remove(this);
controllers.combatController.combatActionListeners.remove(this);
controllers.combatController.combatTurnListeners.remove(this);
controllers.actorStatsController.combatActionListeners.remove(this);
controllers.skillController.combatActionListeners.remove(this);
controllers.mapController.worldEventListeners.remove(this);
}
@@ -187,6 +216,8 @@ public final class MainActivity extends Activity implements PlayerMovementListen
controllers.mapController.worldEventListeners.add(this);
controllers.combatController.combatTurnListeners.add(this);
controllers.combatController.combatActionListeners.add(this);
controllers.actorStatsController.combatActionListeners.add(this);
controllers.skillController.combatActionListeners.add(this);
controllers.movementController.playerMovementListeners.add(this);
statusview.subscribe();
quickitemview.subscribe();
@@ -194,48 +225,50 @@ public final class MainActivity extends Activity implements PlayerMovementListen
combatview.subscribe();
activeConditions.subscribe();
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if(quickitemview.isQuickButtonId(v.getId())){
createQuickButtonMenu(menu);
}
lastSelectedMenu = null;
public void registerForLongClick(QuickButton item) {
item.setOnLongClickListener(quickButtonLongClickListener);
}
private void createQuickButtonMenu(ContextMenu menu){
menu.add(Menu.NONE, R.id.quick_menu_unassign, Menu.NONE, R.string.inventory_unassign);
SubMenu assignMenu = menu.addSubMenu(Menu.NONE, R.id.quick_menu_assign, Menu.NONE, R.string.inventory_assign);
for(int i=0; i<world.model.player.inventory.items.size(); ++i){
ItemEntry itemEntry = world.model.player.inventory.items.get(i);
if(itemEntry.itemType.isUsable())
assignMenu.add(R.id.quick_menu_assign_group, i, Menu.NONE, itemEntry.itemType.getName(world.model.player));
}
}
public void createLongClickListener() {
if (quickButtonLongClickListener != null) return;
quickButtonLongClickListener = new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (v instanceof QuickButton) {
final int buttonId = ((QuickButton)v).getIndex();
// final AlertDialog dialog = new AlertDialog.Builder(new ContextThemeWrapper(v.getContext(), R.style.AndorsTrailStyle_Dialog)).create();
View view = getLayoutInflater().inflate(R.layout.quickbuttons_usable_inventory, null);
ListView lv = (ListView) view.findViewById(R.id.quickbuttons_assignlist);
@Override
public boolean onContextItemSelected(MenuItem item) {
QuickButtonContextMenuInfo menuInfo;
if(item.getGroupId() == R.id.quick_menu_assign_group){
menuInfo = (QuickButtonContextMenuInfo) lastSelectedMenu;
controllers.itemController.setQuickItem(world.model.player.inventory.items.get(item.getItemId()).itemType, menuInfo.index);
return true;
}
switch(item.getItemId()){
case R.id.quick_menu_unassign:
menuInfo = (QuickButtonContextMenuInfo) item.getMenuInfo();
controllers.itemController.setQuickItem(null, menuInfo.index);
break;
case R.id.quick_menu_assign:
menuInfo = (QuickButtonContextMenuInfo) item.getMenuInfo();
lastSelectedMenu = menuInfo;
break;
default:
return super.onContextItemSelected(item);
}
return true;
TileCollection wornTiles = world.tileManager.loadTilesFor(world.model.player.inventory, getResources());
final ItemContainerAdapter inventoryListAdapter = new QuickslotsItemContainerAdapter(lv.getContext(), world.tileManager, world.model.player.inventory.usableItems(), world.model.player, wornTiles);
lv.setAdapter(inventoryListAdapter);
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);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
controllers.itemController.setQuickItem(inventoryListAdapter.getItem(position).itemType, buttonId);
d.dismiss();
}
});
CustomDialogFactory.show(d);
}
return true;
}
};
}
private void updateStatus() {
statusview.updateStatus();
@@ -248,6 +281,14 @@ public final class MainActivity extends Activity implements PlayerMovementListen
world.model.combatLog.append(msg);
statusText.setText(world.model.combatLog.getLastMessages());
statusText.setVisibility(View.VISIBLE);
if (! world.model.uiSelections.isInCombat) {
statusText.postDelayed(new Runnable(){
@Override
public void run() {
clearMessages();
}
}, Constants.STATUS_TEXT_AUTOHIDE_DELAY);
}
}
private void clearMessages() {
@@ -264,6 +305,10 @@ public final class MainActivity extends Activity implements PlayerMovementListen
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);
}
@@ -272,7 +317,7 @@ public final class MainActivity extends Activity implements PlayerMovementListen
@Override
public void onPlayerMoved(Coord newPosition, Coord previousPosition) { }
public void onPlayerMoved(PredefinedMap map, Coord newPosition, Coord previousPosition) { }
@Override
public void onPlayerEnteredNewMap(PredefinedMap map, Coord p) { }
@@ -340,6 +385,11 @@ public final class MainActivity extends Activity implements PlayerMovementListen
Dialogs.showConversation(this, controllers, phraseID, m);
}
@Override
public void onScriptAreaStartedConversation(String phraseID) {
Dialogs.showMapScriptMessage(this, controllers, phraseID);
}
@Override
public void onPlayerSteppedOnMonster(Monster m) {
Dialogs.showMonsterEncounter(this, controllers, m);
@@ -411,7 +461,11 @@ public final class MainActivity extends Activity implements PlayerMovementListen
@Override
public void onPlayerDied(int lostExp) {
message(getString(R.string.combat_hero_dies, lostExp));
if (!world.model.statistics.isDead()) {
message(getString(R.string.combat_hero_dies, lostExp));
} else {
Dialogs.showHeroDied(this, controllers);
}
}
@Override
@@ -428,4 +482,68 @@ public final class MainActivity extends Activity implements PlayerMovementListen
public void onPlayerDoesNotHaveEnoughAP() {
message(getString(R.string.combat_not_enough_ap));
}
@Override
public void onPlayerTauntsMonster(Monster attacker) {
if (attacker != null) message(getString(R.string.combat_taunt_monster, attacker.getName()));
}
@Override
public void onPlayerReceviesActorCondition(ActorConditionEffect effect) {
StringBuilder sb = new StringBuilder();
if (effect.isImmunity()) {
sb.append(effect.conditionType.name);
} else if (effect.isRemovalEffect()) {
sb.append(effect.conditionType.name);
} else {
sb.append(effect.conditionType.name);
if (effect.magnitude > 1) {
sb.append(" x");
sb.append(effect.magnitude);
}
}
if (ActorCondition.isTemporaryEffect(effect.duration)) {
sb.append(' ');
sb.append(getString(R.string.iteminfo_effect_duration, effect.duration));
}
String msg = sb.toString();
if (effect.isImmunity()) {
message(getString(R.string.combat_condition_player_immune, msg));
} else if (effect.isRemovalEffect()) {
message(getString(R.string.combat_condition_player_clear, msg));
} else {
message(getString(R.string.combat_condition_player_apply, msg));
}
}
@Override
public void onMonsterReceivesActorCondition(ActorConditionEffect effect, Monster target) {
StringBuilder sb = new StringBuilder();
if (effect.isImmunity()) {
sb.append(effect.conditionType.name);
} else if (effect.isRemovalEffect()) {
sb.append(effect.conditionType.name);
} else {
sb.append(effect.conditionType.name);
if (effect.magnitude > 1) {
sb.append(" x");
sb.append(effect.magnitude);
}
}
if (ActorCondition.isTemporaryEffect(effect.duration)) {
sb.append(' ');
sb.append(getString(R.string.iteminfo_effect_duration, effect.duration));
}
String msg = sb.toString();
if (effect.isImmunity()) {
message(getString(R.string.combat_condition_monster_immune, target.getName(), msg));
} else if (effect.isRemovalEffect()) {
message(getString(R.string.combat_condition_monster_clear, target.getName(), msg));
} else {
message(getString(R.string.combat_condition_monster_apply, target.getName(), msg));
}
}
}

View File

@@ -1,23 +1,25 @@
package com.gpl.rpg.AndorsTrail.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
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.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
public final class MonsterEncounterActivity extends Activity {
public final class MonsterEncounterActivity extends AndorsTrailBaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getDialogTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
@@ -38,7 +40,7 @@ public final class MonsterEncounterActivity extends Activity {
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;
@@ -8,17 +7,19 @@ import android.view.ViewGroup;
import android.view.Window;
import android.widget.Button;
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.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
import com.gpl.rpg.AndorsTrail.view.ItemEffectsView;
import com.gpl.rpg.AndorsTrail.view.RangeBar;
import com.gpl.rpg.AndorsTrail.view.TraitsInfoView;
public final class MonsterInfoActivity extends Activity {
public final class MonsterInfoActivity extends AndorsTrailBaseActivity {
private WorldContext world;
private ControllerContext controllers;
@@ -29,10 +30,12 @@ public final class MonsterInfoActivity extends Activity {
private RangeBar hp;
private ViewGroup monsterinfo_container;
private TextView monsterinfo_max_ap;
private TextView monsterinfo_killcount;
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getDialogTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
@@ -45,6 +48,7 @@ public final class MonsterInfoActivity extends Activity {
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() {
@@ -76,7 +80,7 @@ public final class MonsterInfoActivity extends Activity {
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));
}
@@ -87,9 +91,12 @@ public final class MonsterInfoActivity extends Activity {
null,
monster.getOnHitEffectsAsList(),
null,
monster.getOnHitReceivedEffectsAsList(),
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

@@ -0,0 +1,36 @@
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);
}
}

View File

@@ -2,17 +2,23 @@ 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 android.view.LayoutInflater;
import android.view.ViewGroup;
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.activity.fragment.ShopActivity_Buy;
import com.gpl.rpg.AndorsTrail.activity.fragment.ShopActivity_Sell;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
public final class ShopActivity extends FragmentActivity {
public final class ShopActivity extends AndorsTrailBaseFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getBaseTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
@@ -26,11 +32,22 @@ public final class ShopActivity extends FragmentActivity {
FragmentTabHost tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
LayoutInflater inflater = getLayoutInflater();
ViewGroup v;
v = (ViewGroup) inflater.inflate(R.layout.tabindicator, null);
((TextView)v.findViewById(R.id.tabindicator_text)).setText(res.getString(R.string.shop_buy));
((ImageView)v.findViewById(R.id.tabindicator_icon)).setImageResource(R.drawable.ui_icon_equipment);
tabHost.addTab(tabHost.newTabSpec("buy")
.setIndicator(res.getString(R.string.shop_buy))
.setIndicator(v)
,ShopActivity_Buy.class, null);
v = (ViewGroup) inflater.inflate(R.layout.tabindicator, null);
((TextView)v.findViewById(R.id.tabindicator_text)).setText(res.getString(R.string.shop_sell));
((ImageView)v.findViewById(R.id.tabindicator_icon)).setImageResource(R.drawable.ui_icon_coins);
tabHost.addTab(tabHost.newTabSpec("sell")
.setIndicator(res.getString(R.string.shop_sell))
.setIndicator(v)
,ShopActivity_Sell.class, null);
}
}

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;
@@ -10,6 +9,7 @@ import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
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;
@@ -18,11 +18,13 @@ import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
import com.gpl.rpg.AndorsTrail.model.ability.SkillInfo;
import com.gpl.rpg.AndorsTrail.model.ability.SkillInfo.SkillLevelRequirement;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
public final class SkillInfoActivity extends Activity {
public final class SkillInfoActivity extends AndorsTrailBaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(ThemeHelper.getDialogTheme());
super.onCreate(savedInstanceState);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this);
if (!app.isInitialized()) { finish(); return; }
@@ -145,9 +147,12 @@ public final class SkillInfoActivity extends Activity {
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;
}
@@ -176,6 +181,7 @@ public final class SkillInfoActivity extends Activity {
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,9 +200,16 @@ public final class SkillInfoActivity extends Activity {
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);
case weaponProficiencyPole: return res.getString(R.string.skill_longdescription_weapon_prof_pole, SkillCollection.PER_SKILLPOINT_INCREASE_WEAPON_PROF_AC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_WEAPON_PROF_BC_PERCENT, SkillCollection.PER_SKILLPOINT_INCREASE_WEAPON_PROF_CS_PERCENT);
default:
return "";
}

View File

@@ -0,0 +1,288 @@
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 android.support.v4.app.Fragment;
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;
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);
}
@Override
public void onRequestPermissionsResult(int requestCode, 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,18 +1,26 @@
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.*;
import android.view.ContextMenu.ContextMenuInfo;
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;
@@ -20,14 +28,17 @@ 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 {
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;
@@ -37,7 +48,15 @@ public final class HeroinfoActivity_Inventory extends Fragment {
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;
@@ -60,25 +79,71 @@ public final class HeroinfoActivity_Inventory extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.heroinfo_inventory, container, false);
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);
ListView inventoryList = (ListView) v.findViewById(R.id.inventorylist_root);
registerForContextMenu(inventoryList);
inventoryList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
ItemType itemType = inventoryListAdapter.getItem(position).itemType;
// 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);
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);
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);
@@ -118,6 +183,10 @@ public final class HeroinfoActivity_Inventory extends Fragment {
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"));
@@ -201,45 +270,76 @@ public final class HeroinfoActivity_Inventory extends Fragment {
}
private void updateItemList() {
inventoryListAdapter.notifyDataSetChanged();
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) {
super.onCreateContextMenu(menu, v, menuInfo);
ItemType type = getSelectedItemType((AdapterContextMenuInfo) menuInfo);
// @Override
// public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {}
// ItemType type = getSelectedItemType((AdapterContextMenuInfo) menuInfo);
public void showContextMenuForItem(ItemType type) {
MenuInflater inflater = getActivity().getMenuInflater();
switch (v.getId()) {
case R.id.inventorylist_root:
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);
}
break;
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(AdapterContextMenuInfo info) {
return inventoryListAdapter.getItem(info.position).itemType;
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 boolean onContextItemSelected(MenuItem item) {
ItemType itemType;
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
public void onMenuItemSelected(MenuItem item, Object data) {
ItemType itemType = (ItemType) data;
switch (item.getItemId()) {
case R.id.inv_menu_info:
showInventoryItemInfo(getSelectedItemType(info));
showInventoryItemInfo(itemType);
//context.mapController.itemInfo(this, getSelectedItemType(info));
break;
case R.id.inv_menu_drop:
String itemTypeID = getSelectedItemType(info).id;
String itemTypeID = itemType.id;
int quantity = player.inventory.getItemQuantity(itemTypeID);
if (quantity > 1) {
Intent intent = Dialogs.getIntentForBulkDroppingInterface(getActivity(), itemTypeID, quantity);
@@ -249,11 +349,9 @@ public final class HeroinfoActivity_Inventory extends Fragment {
}
break;
case R.id.inv_menu_equip:
itemType = getSelectedItemType(info);
controllers.itemController.equipItem(itemType, itemType.category.inventorySlot);
break;
case R.id.inv_menu_equip_offhand:
itemType = getSelectedItemType(info);
if (itemType.category.inventorySlot == Inventory.WearSlot.weapon) {
controllers.itemController.equipItem(itemType, Inventory.WearSlot.shield);
} else if (itemType.category.inventorySlot == Inventory.WearSlot.leftring) {
@@ -264,31 +362,28 @@ public final class HeroinfoActivity_Inventory extends Fragment {
context.mapController.unequipItem(this, getSelectedItemType(info));
break;*/
case R.id.inv_menu_use:
controllers.itemController.useItem(getSelectedItemType(info));
controllers.itemController.useItem(itemType);
break;
case R.id.inv_menu_assign:
lastSelectedItem = getSelectedItemType(info);
//lastSelectedItem = itemType;
break;
case R.id.inv_assign_slot1:
controllers.itemController.setQuickItem(lastSelectedItem, 0);
controllers.itemController.setQuickItem(itemType, 0);
break;
case R.id.inv_assign_slot2:
controllers.itemController.setQuickItem(lastSelectedItem, 1);
controllers.itemController.setQuickItem(itemType, 1);
break;
case R.id.inv_assign_slot3:
controllers.itemController.setQuickItem(lastSelectedItem, 2);
controllers.itemController.setQuickItem(itemType, 2);
break;
case R.id.inv_menu_movetop:
player.inventory.sortToTop(getSelectedItemType(info).id);
player.inventory.sortToTop(itemType.id);
break;
case R.id.inv_menu_movebottom:
player.inventory.sortToBottom(getSelectedItemType(info).id);
player.inventory.sortToBottom(itemType.id);
break;
default:
return super.onContextItemSelected(item);
}
update();
return true;
}
private void showEquippedItemInfo(ItemType itemType, Inventory.WearSlot inventorySlot) {
@@ -340,4 +435,56 @@ public final class HeroinfoActivity_Inventory extends Fragment {
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

@@ -1,5 +1,10 @@
package com.gpl.rpg.AndorsTrail.activity.fragment;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
@@ -7,24 +12,25 @@ import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ExpandableListView;
import android.widget.SimpleExpandableListAdapter;
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.actor.Player;
import com.gpl.rpg.AndorsTrail.model.quest.Quest;
import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.gpl.rpg.AndorsTrail.view.SpinnerEmulator;
public final class HeroinfoActivity_Quests extends Fragment {
private WorldContext world;
private Spinner questlog_includecompleted;
// private Button includeCompletedButton;
// private Dialog includeCompletedDialog = null;
// private ListView questlog_includecompleted;
private SimpleExpandableListAdapter questlog_contents_adapter;
private Player player;
@@ -42,27 +48,33 @@ public final class HeroinfoActivity_Quests extends Fragment {
this.player = world.model.player;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.questlog, container, false);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this.getActivity());
if (!app.isInitialized()) return v;
Context ctx = getActivity();
questlog_includecompleted = (Spinner) v.findViewById(R.id.questlog_includecompleted);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(ctx, R.array.questlog_includecompleted, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
questlog_includecompleted.setAdapter(adapter);
questlog_includecompleted.setOnItemSelectedListener(new OnItemSelectedListener() {
new SpinnerEmulator(v, R.id.questlog_includecompleted_button, R.array.questlog_includecompleted, R.string.questlog_includecompleted_prompt) {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
world.model.uiSelections.selectedQuestFilter = questlog_includecompleted.getSelectedItemPosition();
public void setValue(int value) {
world.model.uiSelections.selectedQuestFilter = value;
}
@Override
public void selectionChanged(int value) {
reloadQuests();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {}
});
questlog_includecompleted.setSelection(world.model.uiSelections.selectedQuestFilter);
public int getValue() {
return world.model.uiSelections.selectedQuestFilter;
}
};
ExpandableListView questlog_contents = (ExpandableListView) v.findViewById(R.id.questlog_contents);
questlog_contents_adapter = new SimpleExpandableListAdapter(
ctx
@@ -104,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 = questlog_includecompleted.getSelectedItemPosition();
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

@@ -1,5 +1,7 @@
package com.gpl.rpg.AndorsTrail.activity.fragment;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
@@ -11,6 +13,7 @@ import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
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;
@@ -19,7 +22,7 @@ import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.view.SkillListAdapter;
import com.gpl.rpg.AndorsTrail.view.SpinnerEmulator;
public final class HeroinfoActivity_Skills extends Fragment {
private static final int INTENTREQUEST_SKILLINFO = 12;
@@ -28,8 +31,9 @@ public final class HeroinfoActivity_Skills extends Fragment {
private ControllerContext controllers;
private Player player;
private SkillListAdapter skillListAdapter;
private TextView listskills_number_of_increases;
ListView skillList;
private ArrayList<SkillListAdapter> skillListCategoryViewsAdapters = new ArrayList<SkillListAdapter>();
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -41,17 +45,60 @@ public final class HeroinfoActivity_Skills extends Fragment {
this.player = world.model.player;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.heroinfo_skill_list, container, false);
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this.getActivity());
if (!app.isInitialized()) return v;
final Activity ctx = getActivity();
skillListAdapter = new SkillListAdapter(ctx, world.skills.getAllSkills(), player);
ListView skillList = (ListView) v.findViewById(R.id.heroinfo_listskills_list);
skillList.setAdapter(skillListAdapter);
new SpinnerEmulator(v,R.id.skillList_category_filters_button, R.array.skill_category_filters, R.string.heroinfo_skill_categories) {
@Override
public void setValue(int value) {
world.model.uiSelections.selectedSkillCategory = value;
}
@Override
public void selectionChanged(int value) {
reloadShownCategory();
}
@Override
public int getValue() {
return world.model.uiSelections.selectedSkillCategory;
}
};
new SpinnerEmulator(v,R.id.skillList_sort_filters_button, R.array.skill_sort_filters, R.string.heroinfo_skill_sort) {
@Override
public void setValue(int value) {
world.model.uiSelections.selectedSkillSort = value;
}
@Override
public void selectionChanged(int value) {
reloadShownSort();
}
@Override
public int getValue() {
return world.model.uiSelections.selectedSkillSort;
}
};
for(int i = 0; i< SkillCollection.SkillCategory.values().length; i++){
// Creates a list of adapters for each category.
// The adapter at position 0 has all items.
// length + 1 in order to create an extra position for "all"
skillListCategoryViewsAdapters.add(
new SkillListAdapter(ctx, world.skills.getAllSkills(), player, i));
}
skillList = (ListView) v.findViewById(R.id.heroinfo_listskills_list);
skillList.setAdapter(getCurrentCategoryAdapter());
skillList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Intent intent = Dialogs.getIntentForSkillInfo(ctx, skillListAdapter.getItem(position).id);
Intent intent = Dialogs.getIntentForSkillInfo(ctx,
getCurrentCategoryAdapter().getItem(position).id);
startActivityForResult(intent, INTENTREQUEST_SKILLINFO);
}
});
@@ -59,6 +106,25 @@ public final class HeroinfoActivity_Skills extends Fragment {
return v;
}
private void reloadShownSort() {
int v = world.model.uiSelections.selectedSkillSort;
if(v==0) getCurrentCategoryAdapter().sortDefault();
if(v==1) getCurrentCategoryAdapter().sortByName();
if(v==2) getCurrentCategoryAdapter().sortByPoints();
if(v==3) getCurrentCategoryAdapter().sortByUnlocked();
updateSkillList();
}
private void reloadShownCategory() {
skillList.setAdapter(getCurrentCategoryAdapter());
updateSkillList();
}
private SkillListAdapter getCurrentCategoryAdapter(){
return skillListCategoryViewsAdapters.get(
world.model.uiSelections.selectedSkillCategory);
}
@Override
public void onStart() {
super.onStart();
@@ -95,6 +161,6 @@ public final class HeroinfoActivity_Skills extends Fragment {
} else {
listskills_number_of_increases.setVisibility(View.GONE);
}
skillListAdapter.notifyDataSetInvalidated();
getCurrentCategoryAdapter().notifyDataSetInvalidated();
}
}
}

View File

@@ -1,5 +1,7 @@
package com.gpl.rpg.AndorsTrail.activity.fragment;
import java.util.ArrayList;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
@@ -12,32 +14,35 @@ import android.widget.Button;
import android.widget.TableLayout;
import android.widget.TableRow;
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.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.GameStatistics;
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.ItemTraits_OnHitReceived;
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnUse;
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
import com.gpl.rpg.AndorsTrail.view.ItemEffectsView;
import com.gpl.rpg.AndorsTrail.view.RangeBar;
import com.gpl.rpg.AndorsTrail.view.TraitsInfoView;
import java.util.ArrayList;
public final class HeroinfoActivity_Stats extends Fragment {
private static final int INTENTREQUEST_LEVELUP = 6;
private WorldContext world;
private Player player;
private GameStatistics statistics;
private View view;
private Button levelUpButton;
private TextView heroinfo_ap;
private TextView heroinfo_reequip_cost;
private TextView heroinfo_useitem_cost;
private TextView heroinfo_mode;
private TextView heroinfo_level;
private TextView heroinfo_totalexperience;
private TextView basetraitsinfo_max_hp;
@@ -46,10 +51,12 @@ public final class HeroinfoActivity_Stats extends Fragment {
private TextView heroinfo_base_useitem_cost;
private RangeBar rangebar_hp;
private RangeBar rangebar_exp;
private RangeBar rangebar_ap;
private ItemEffectsView actorinfo_onhiteffects;
private TableLayout heroinfo_basestats_table;
private ViewGroup heroinfo_container;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -57,6 +64,7 @@ public final class HeroinfoActivity_Stats extends Fragment {
if (!app.isInitialized()) return;
this.world = app.getWorld();
this.player = world.model.player;
this.statistics = world.model.statistics;
}
@Override
@@ -64,27 +72,36 @@ public final class HeroinfoActivity_Stats extends Fragment {
View v = inflater.inflate(R.layout.heroinfo_stats, container, false);
view = v;
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(this.getActivity());
if (!app.isInitialized()) return v;
TextView tv = (TextView) v.findViewById(R.id.heroinfo_title);
tv.setText(player.getName());
world.tileManager.setImageViewTile(getResources(), tv, player);
if (tv != null) {
tv.setText(player.getName());
tv.setCompoundDrawablesWithIntrinsicBounds(HeroCollection.getHeroLargeSprite(player.iconID), 0, 0, 0);
}
heroinfo_container = (ViewGroup) v.findViewById(R.id.heroinfo_container);
heroinfo_ap = (TextView) v.findViewById(R.id.heroinfo_ap);
heroinfo_reequip_cost = (TextView) v.findViewById(R.id.heroinfo_reequip_cost);
heroinfo_useitem_cost = (TextView) v.findViewById(R.id.heroinfo_useitem_cost);
basetraitsinfo_max_hp = (TextView) v.findViewById(R.id.basetraitsinfo_max_hp);
basetraitsinfo_max_ap = (TextView) v.findViewById(R.id.basetraitsinfo_max_ap);
heroinfo_base_reequip_cost = (TextView) v.findViewById(R.id.heroinfo_base_reequip_cost);
heroinfo_base_useitem_cost = (TextView) v.findViewById(R.id.heroinfo_base_useitem_cost);
heroinfo_mode = (TextView) v.findViewById(R.id.heroinfo_mode);
heroinfo_level = (TextView) v.findViewById(R.id.heroinfo_level);
heroinfo_totalexperience = (TextView) v.findViewById(R.id.heroinfo_totalexperience);
actorinfo_onhiteffects = (ItemEffectsView) v.findViewById(R.id.actorinfo_onhiteffects);
heroinfo_basestats_table = (TableLayout) v.findViewById(R.id.heroinfo_basestats_table);
rangebar_hp = (RangeBar) v.findViewById(R.id.heroinfo_healthbar);
rangebar_hp.init(R.drawable.ui_progress_health, R.string.status_hp);
rangebar_hp.init(R.drawable.ui_progress_health, R.string.heroinfo_healthpoints);
rangebar_hp.setLargeLabel(true);
rangebar_exp = (RangeBar) v.findViewById(R.id.heroinfo_expbar);
rangebar_exp.init(R.drawable.ui_progress_exp, R.string.status_exp);
rangebar_exp.init(R.drawable.ui_progress_exp, R.string.heroinfo_experiencepoints);
rangebar_exp.setLargeLabel(true);
rangebar_ap = (RangeBar) v.findViewById(R.id.heroinfo_apbar);
rangebar_ap.init(R.drawable.ui_progress_ap, R.string.heroinfo_actionpoints);
rangebar_ap.setLargeLabel(true);
levelUpButton = (Button) v.findViewById(R.id.heroinfo_levelup);
levelUpButton.setOnClickListener(new OnClickListener() {
@@ -126,10 +143,21 @@ public final class HeroinfoActivity_Stats extends Fragment {
private void updateTraits() {
final Resources res = getResources();
String mode = "";
if (statistics.hasUnlimitedLives() && statistics.hasUnlimitedSaves()) {
mode = res.getString(R.string.heroinfo_unlimited_lives_and_saves);
} else if (statistics.hasUnlimitedLives()) {
mode = res.getString(R.string.heroinfo_unlimited_lives);
} else if (statistics.getStartLives() == 1) {
mode = res.getString(R.string.heroinfo_one_life);
} else {
mode = res.getString(R.string.heroinfo_limited_lives, statistics.getLivesLeft(), statistics.getStartLives());
}
heroinfo_mode.setText(mode);
heroinfo_level.setText(Integer.toString(player.getLevel()));
heroinfo_totalexperience.setText(Integer.toString(player.getTotalExperience()));
heroinfo_ap.setText(player.getMaxAP() + "/" + player.getCurrentAP());
// heroinfo_ap.update(player.getMaxAP() + "/" + player.getCurrentAP());
heroinfo_reequip_cost.setText(Integer.toString(player.getReequipCost()));
heroinfo_useitem_cost.setText(Integer.toString(player.getUseItemCost()));
basetraitsinfo_max_hp.setText(Integer.toString(player.baseTraits.maxHP));
@@ -138,6 +166,7 @@ public final class HeroinfoActivity_Stats extends Fragment {
heroinfo_base_useitem_cost.setText(Integer.toString(player.baseTraits.useItemCost));
rangebar_hp.update(player.getMaxHP(), player.getCurrentHP());
rangebar_exp.update(player.getMaxLevelExperience(), player.getCurrentLevelExperience());
rangebar_ap.update(player.getMaxAP(), player.getCurrentAP());
TraitsInfoView.update(heroinfo_container, player);
TraitsInfoView.updateTraitsTable(
@@ -155,15 +184,18 @@ public final class HeroinfoActivity_Stats extends Fragment {
ArrayList<ItemTraits_OnUse> effects_hit = new ArrayList<ItemTraits_OnUse>();
ArrayList<ItemTraits_OnUse> effects_kill = new ArrayList<ItemTraits_OnUse>();
ArrayList<ItemTraits_OnHitReceived> effects_hitReceived = 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_kill != null) effects_kill.add(type.effects_kill);
if (type.effects_hitReceived != null) effects_hitReceived.add(type.effects_hitReceived);
}
if (effects_hit.isEmpty()) effects_hit = null;
if (effects_kill.isEmpty()) effects_kill = null;
actorinfo_onhiteffects.update(null, null, effects_hit, effects_kill, false);
if (effects_hitReceived.isEmpty()) effects_hitReceived = null;
actorinfo_onhiteffects.update(null, null, effects_hit, effects_kill, effects_hitReceived, null, false);
updateStatsTableRow(world.model.statistics.getNumberOfCompletedQuests(world), R.id.heroinfo_gamestats_quests, R.id.heroinfo_gamestats_quests_row);

View File

@@ -1,14 +1,18 @@
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.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;
@@ -18,10 +22,9 @@ 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;
import java.util.HashSet;
public abstract class ShopActivityFragment extends Fragment implements OnContainerItemClickedListener {
protected static final int INTENTREQUEST_ITEMINFO = 3;
@@ -33,6 +36,7 @@ public abstract class ShopActivityFragment extends Fragment implements OnContain
protected ItemContainer shopInventory;
private TextView shop_gc;
private ShopItemContainerAdapter listAdapter;
private Button shoplist_sort;
protected abstract boolean isSellingInterface();
@@ -66,9 +70,33 @@ public abstract class ShopActivityFragment extends Fragment implements OnContain
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();

View File

@@ -2,6 +2,7 @@ package com.gpl.rpg.AndorsTrail.activity.fragment;
import android.app.Activity;
import android.content.Intent;
import com.gpl.rpg.AndorsTrail.Dialogs;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.activity.ItemInfoActivity;

View File

@@ -2,6 +2,7 @@ package com.gpl.rpg.AndorsTrail.activity.fragment;
import android.app.Activity;
import android.content.Intent;
import com.gpl.rpg.AndorsTrail.Dialogs;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.activity.ItemInfoActivity;

View File

@@ -0,0 +1,416 @@
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 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.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());
}
});
}
}
@TargetApi(29)
public void migrateDataOnDemand(final Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
if (activity.getApplicationContext().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
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;
@TargetApi(23)
public static void checkAndRequestPermissions(final Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) {
if (activity.getApplicationContext().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
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

@@ -0,0 +1,181 @@
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 android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.WorldSetup;
import com.gpl.rpg.AndorsTrail.activity.LoadingActivity;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager;
import com.gpl.rpg.AndorsTrail.view.SpinnerEmulator;
public class StartScreenActivity_NewGame extends Fragment {
private TextView startscreen_enterheroname;
private int selectedIconID = TileManager.CHAR_HERO;
private int startLives = -1;
private boolean unlimitedSaves = true;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
if (container != null) {
container.removeAllViews();
}
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) {
@Override
public void setValue(int value) {
if (value == 0) {
startLives = -1;
unlimitedSaves = true;
} else {
unlimitedSaves = false;
if (value == 1) {
startLives = -1;
} else if (value == 2) {
startLives = 50;
} else if (value == 3) {
startLives = 10;
} else if (value == 4) {
startLives = 3;
} else {
startLives = 1;
}
}
}
@Override
public void selectionChanged(int value) {
}
@Override
public int getValue() {
return 0;
}
};
final RadioGroup group = (RadioGroup) root.findViewById(R.id.newgame_spritegroup);
group.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
for (int i = 0; i < group.getChildCount(); i++) {
ToggleButton tb = ((ToggleButton)group.getChildAt(i));
tb.setChecked(tb.getId() == checkedId);
}
switch (checkedId) {
case R.id.newgame_sprite0:
selectedIconID = TileManager.CHAR_HERO_0;
break;
case R.id.newgame_sprite1:
selectedIconID = TileManager.CHAR_HERO_1;
break;
case R.id.newgame_sprite2:
selectedIconID = TileManager.CHAR_HERO_2;
break;
}
}
});
OnClickListener l = new OnClickListener() {
@Override
public void onClick(View v) {
group.check(v.getId());
}
};
for (int i = 0; i < group.getChildCount(); i++) {
ToggleButton tb = ((ToggleButton)group.getChildAt(i));
tb.setOnClickListener(l);
}
Button b = (Button) root.findViewById(R.id.startscreen_newgame_start);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
createNewGame();
}
});
b = (Button) root.findViewById(R.id.startscreen_newgame_cancel);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
gameCreationOver();
}
});
return root;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
listener = (GameCreationOverListener) activity;
}
@Override
public void onDetach() {
super.onDetach();
listener = null;
}
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;
setup.newHeroIcon = selectedIconID;
setup.newHeroStartLives = startLives;
setup.newHeroUnlimitedSaves = unlimitedSaves;
gameCreationOver();
startActivity(new Intent(getActivity(), LoadingActivity.class));
}
private void createNewGame() {
String name = startscreen_enterheroname.getText().toString().trim();
if (name == null || name.length() <= 0) {
Toast.makeText(getActivity(), R.string.startscreen_enterheroname, Toast.LENGTH_SHORT).show();
return;
}
continueGame(true, 0, name);
}
public interface GameCreationOverListener {
public void onGameCreationCancelled();
}
private GameCreationOverListener listener = null;
private void gameCreationOver() {
if (listener != null) {
listener.onGameCreationCancelled();
}
}
}

View File

@@ -1,11 +1,24 @@
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;
import com.gpl.rpg.AndorsTrail.AndorsTrailPreferences;
import com.gpl.rpg.AndorsTrail.controller.*;
import java.lang.ref.WeakReference;
import com.gpl.rpg.AndorsTrail.controller.ActorStatsController;
import com.gpl.rpg.AndorsTrail.controller.CombatController;
import com.gpl.rpg.AndorsTrail.controller.ConversationController;
import com.gpl.rpg.AndorsTrail.controller.GameRoundController;
import com.gpl.rpg.AndorsTrail.controller.InputController;
import com.gpl.rpg.AndorsTrail.controller.ItemController;
import com.gpl.rpg.AndorsTrail.controller.MapController;
import com.gpl.rpg.AndorsTrail.controller.MonsterMovementController;
import com.gpl.rpg.AndorsTrail.controller.MonsterSpawningController;
import com.gpl.rpg.AndorsTrail.controller.MovementController;
import com.gpl.rpg.AndorsTrail.controller.SkillController;
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController;
public final class ControllerContext {
//Controllers
@@ -46,4 +59,5 @@ public final class ControllerContext {
public Resources getResources() {
return app.get().getResources();
}
public Context getContext() {return app.get().getApplicationContext(); }
}

View File

@@ -59,7 +59,7 @@ public final class WorldContext {
this.actorConditionsTypes = copy.actorConditionsTypes;
this.skills = copy.skills;
}
public void reset() {
maps.reset();
public void resetForNewGame() {
maps.resetForNewGame();
}
}

View File

@@ -1,9 +1,13 @@
package com.gpl.rpg.AndorsTrail.controller;
import java.util.ArrayList;
import java.util.List;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.listeners.ActorConditionListeners;
import com.gpl.rpg.AndorsTrail.controller.listeners.ActorStatsListeners;
import com.gpl.rpg.AndorsTrail.controller.listeners.CombatActionListeners;
import com.gpl.rpg.AndorsTrail.controller.listeners.PlayerStatsListeners;
import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition;
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
@@ -16,20 +20,20 @@ import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.item.Inventory;
import com.gpl.rpg.AndorsTrail.model.item.ItemTraits_OnEquip;
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.map.MonsterSpawnArea;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.resource.VisualEffectCollection;
import java.util.ArrayList;
public final class ActorStatsController {
private final ControllerContext controllers;
private final WorldContext world;
public final ActorConditionListeners actorConditionListeners = new ActorConditionListeners();
public final ActorStatsListeners actorStatsListeners = new ActorStatsListeners();
public final PlayerStatsListeners playerStatsListeners = new PlayerStatsListeners();
public final CombatActionListeners combatActionListeners = new CombatActionListeners();
public ActorStatsController(ControllerContext controllers, WorldContext world) {
this.controllers = controllers;
@@ -49,6 +53,9 @@ public final class ActorStatsController {
if (equipEffects == null) return;
if (equipEffects.addedConditions == null) return;
for (ActorConditionEffect e : equipEffects.addedConditions) {
if (e.isImmunity()) {
removeActorConditionImmunity(player, e.conditionType, e.magnitude, ActorCondition.DURATION_FOREVER);
}
if (e.isRemovalEffect()) continue;
if (e.magnitude <= 0) continue;
if (e.conditionType.isStacking) {
@@ -93,16 +100,75 @@ public final class ActorStatsController {
}
removeStackableActorCondition(player, type, magnitude, duration);
}
private void removeActorConditionImmunity(Player player, ActorConditionType type, int magnitude, int duration) {
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(type.conditionTypeID)) continue;
if (!e.isImmunity()) continue;
if (e.duration != duration) continue;
// The player is wearing some other item that gives this immunity. It will not be removed now.
return;
}
}
for(int i = player.immunities.size() - 1; i >= 0; --i) {
ActorCondition c = player.immunities.get(i);
if (!type.conditionTypeID.equals(c.conditionType.conditionTypeID)) continue;
if (c.duration != duration) continue;
player.immunities.remove(i);
actorConditionListeners.onActorConditionImmunityRemoved(player, c);
break;
}
//Looking for still-equipped items that would reapply this actor condition.
List<ActorConditionEffect> toReapply = new ArrayList<ActorConditionEffect>();
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(type.conditionTypeID)) continue;
//There's another immunity (a temporary one for example) active. No nned to keep looking.
if (e.isImmunity()) return;
// The player is wearing some other item that gives this formerly immune actor condition
toReapply.add(e);
}
}
for (ActorConditionEffect e : toReapply) {
applyActorCondition(player, e, ActorCondition.DURATION_FOREVER);
}
}
public void applyActorCondition(Actor actor, ActorConditionEffect e) { applyActorCondition(actor, e, e.duration); }
private void applyActorCondition(Actor actor, ActorConditionEffect e, int duration) {
if (e.isRemovalEffect()) {
if (e.isImmunity()) {
removeAllConditionsOfType(actor, e.conditionType.conditionTypeID);
addActorConditionImmunity(actor, e, duration);
} else if (e.isRemovalEffect()) {
removeAllConditionsOfType(actor, e.conditionType.conditionTypeID);
} else if (e.magnitude > 0) {
if (e.conditionType.isStacking) {
addStackableActorCondition(actor, e, duration);
} else {
addNonStackableActorCondition(actor, e, duration);
boolean immune = false;
for (ActorCondition immunity : actor.immunities) {
if (e.conditionType.conditionTypeID.equals(immunity.conditionType.conditionTypeID)) {
immune = true;
}
}
if (!immune) {
if (e.conditionType.isStacking) {
addStackableActorCondition(actor, e, duration);
} else {
addNonStackableActorCondition(actor, e, duration);
}
}
}
recalculateActorCombatTraits(actor);
@@ -145,6 +211,23 @@ public final class ActorStatsController {
actor.conditions.add(c);
actorConditionListeners.onActorConditionAdded(actor, c);
}
private void addActorConditionImmunity(Actor actor, ActorConditionEffect e, int duration) {
final ActorConditionType type = e.conditionType;
for(int i = actor.immunities.size() - 1; i >= 0; --i) {
ActorCondition c = actor.immunities.get(i);
if (!type.conditionTypeID.equals(c.conditionType.conditionTypeID)) continue;
if (c.duration >= duration) return;
// If the actor already has this immunity, but of a shorter duration, we replace the old immunity by the new, longer one.
actor.immunities.remove(i);
actorConditionListeners.onActorConditionRemoved(actor, c);
}
ActorCondition c = e.createCondition(duration);
actor.immunities.add(c);
actorConditionListeners.onActorConditionImmunityAdded(actor, c);
}
public void removeAllTemporaryConditions(final Actor actor) {
for(int i = actor.conditions.size() - 1; i >= 0; --i) {
@@ -178,6 +261,10 @@ public final class ActorStatsController {
addActorMoveCost(actor, effects.increaseMoveCost * multiplier);
addActorAttackCost(actor, effects.increaseAttackCost * multiplier);
if (actor.isPlayer) {
addPlayerReequipCost((Player)actor, effects.increaseReequipCost * multiplier);
addPlayerUseCost((Player)actor, effects.increaseUseItemCost * multiplier);
}
//criticalMultiplier should not be increased. It is always defined by the weapon in use.
actor.attackChance += effects.increaseAttackChance * multiplier;
actor.criticalSkill += effects.increaseCriticalSkill * multiplier;
@@ -185,34 +272,46 @@ 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);
}
public void applyConditionsToPlayer(Player player, boolean isFullRound) {
if (player.conditions.isEmpty()) return;
if (player.conditions.isEmpty() && player.immunities.isEmpty()) return;
if (!isFullRound) removeConditionsFromSkillEffects(player);
applyStatsEffects(player, isFullRound);
@@ -242,17 +341,26 @@ public final class ActorStatsController {
}
private static int getRandomConditionForRejuvenate(Player player) {
ArrayList<Integer> potentialConditions = new ArrayList<Integer>();
for(int i = 0; i < player.conditions.size(); ++i) {
ActorCondition c = player.conditions.get(i);
if (!c.isTemporaryEffect()) continue;
if (c.conditionType.isPositive) continue;
if (c.conditionType.conditionCategory == ActorConditionType.ConditionCategory.spiritual) continue;
potentialConditions.add(i);
}
if (potentialConditions.isEmpty()) return -1;
int i = -1;
int count = 0;
int potentialConditions[] = new int[player.conditions.size()];
for (ActorCondition c : player.conditions) {
i++;
return potentialConditions.get(Constants.rnd.nextInt(potentialConditions.size()));
if (!c.isTemporaryEffect())
continue;
if (c.conditionType.isPositive)
continue;
if (c.conditionType.conditionCategory == ActorConditionType.ConditionCategory.spiritual)
continue;
potentialConditions[count++] = i;
}
if (count == 0)
return -1;
return potentialConditions[Constants.rnd.nextInt(count)];
}
public void applyConditionsToMonsters(PredefinedMap map, boolean isFullRound) {
@@ -273,7 +381,7 @@ public final class ActorStatsController {
return;
}
decreaseDurationAndRemoveConditions(monster);
if (!isFullRound) decreaseDurationAndRemoveConditions(monster);
}
private void applyStatsEffects(Actor actor, boolean isFullRound) {
@@ -306,6 +414,44 @@ public final class ActorStatsController {
actorConditionListeners.onActorConditionDurationChanged(actor, c);
}
}
for(int i = actor.immunities.size() - 1; i >= 0; --i) {
ActorCondition c = actor.immunities.get(i);
if (!c.isTemporaryEffect()) continue;
if (c.duration <= 1) {
actor.immunities.remove(i);
actorConditionListeners.onActorConditionImmunityRemoved(actor, c);
removedAnyConditions = true;
} else {
c.duration -= 1;
actorConditionListeners.onActorConditionImmunityDurationChanged(actor, c);
}
if (actor instanceof Player) {
Player player = (Player) actor;
//Looking for still-equipped items that would reapply this actor condition.
List<ActorConditionEffect> toReapply = new ArrayList<ActorConditionEffect>();
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)) continue;
//There's another immunity (a temporary one for example) active. No need to keep looking.
if (e.isImmunity()) {
toReapply.clear();
break;
}
// The player is wearing some other item that gives this formerly immune actor condition
toReapply.add(e);
}
}
for (ActorConditionEffect e : toReapply) {
applyActorCondition(player, e, ActorCondition.DURATION_FOREVER);
}
}
}
if (removedAnyConditions) {
recalculateActorCombatTraits(actor);
}
@@ -331,12 +477,22 @@ public final class ActorStatsController {
controllers.effectController.startEnqueuedEffect(source.position);
}
}
public void applyHitReceivedEffect(Actor source, Actor target, ItemTraits_OnHitReceived effect) {
applyUseEffect(source, target, effect);
if (effect.changedStats_target != null) {
applyStatsModifierEffect(target, effect.changedStats, 1);
controllers.effectController.startEnqueuedEffect(target.position);
}
}
private void rollForConditionEffect(Actor actor, ActorConditionEffect conditionEffect) {
int chanceRollBias = 0;
if (actor.isPlayer) chanceRollBias = SkillController.getActorConditionEffectChanceRollBias(conditionEffect, (Player) actor);
if (!Constants.rollResult(conditionEffect.chance, chanceRollBias)) return;
if (actor.isPlayer) combatActionListeners.onPlayerReceviesActorCondition(conditionEffect);
else combatActionListeners.onMonsterReceivesActorCondition(conditionEffect, (Monster)actor);
applyActorCondition(actor, conditionEffect);
}
@@ -383,6 +539,13 @@ public final class ActorStatsController {
applyUseEffect(player, null, type.effects_kill);
}
}
public void applyOnDeathEffectsToPlayer(Player player, Actor monster) {
ItemTraits_OnUse onDeathEffect = monster.getOnDeathEffects();
if (onDeathEffect == null) return;
applyUseEffect(player, null, onDeathEffect);
}
public void applySkillEffectsForNewRound(Player player, PredefinedMap currentMap) {
int level = player.getSkillLevel(SkillCollection.SkillID.regeneration);
@@ -394,6 +557,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
@@ -456,6 +624,18 @@ public final class ActorStatsController {
if (actor.attackCost <= 0) actor.attackCost = 1;
actorStatsListeners.onActorAttackCostChanged(actor, actor.attackCost);
}
public void addPlayerReequipCost(Player player, int amount) {
if (amount == 0) return;
player.reequipCost += amount;
if (player.reequipCost < 0) player.reequipCost = 0;
actorStatsListeners.onPlayerReequipCostChanged(player, player.reequipCost);
}
public void addPlayerUseCost(Player player, int amount) {
if (amount == 0) return;
player.useItemCost += amount;
if (player.useItemCost < 0) player.useItemCost = 0;
actorStatsListeners.onPlayerUseCostChanged(player, player.useItemCost);
}
public void setActorMaxHealth(Actor actor) {
if (actor.health.isMax()) return;

View File

@@ -1,9 +1,12 @@
package com.gpl.rpg.AndorsTrail.controller;
import java.util.ArrayList;
import android.os.Handler;
import android.os.Message;
import android.util.FloatMath;
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.VisualEffectController.VisualEffectCompletedCallback;
@@ -15,13 +18,15 @@ 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;
import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea;
import com.gpl.rpg.AndorsTrail.resource.VisualEffectCollection;
import com.gpl.rpg.AndorsTrail.util.Coord;
import java.util.ArrayList;
import static java.lang.Math.max;
public final class CombatController implements VisualEffectCompletedCallback {
private final ControllerContext controllers;
@@ -54,10 +59,18 @@ 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;
world.model.uiSelections.selectedMonster = null;
controllers.gameRoundController.resetRoundTimers();
if (world.model.player.isDead()) {
controllers.gameRoundController.resetRoundTimers();
} else {
endOfCombatRound();
}
if (pickupLootBags && totalExpThisFight > 0) {
controllers.itemController.lootMonsterBags(killedMonsterBags, totalExpThisFight);
} else {
@@ -66,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;
@@ -78,7 +116,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
}
public void setCombatSelection(Monster selectedMonster, Coord selectedPosition) {
if (selectedMonster != null) {
if (!selectedMonster.isAgressive()) return;
if (!selectedMonster.isAgressive(world.model.player)) return;
}
Coord previousSelection = world.model.uiSelections.selectedPosition;
if (previousSelection != null) {
@@ -102,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);
}
}
@@ -121,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) {
@@ -148,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);
}
@@ -170,11 +208,14 @@ public final class CombatController implements VisualEffectCompletedCallback {
playerKilledMonster(target);
}
controllers.skillController.applySkillEffectsFromPlayerAttack(attack, target);
startAttackEffect(attack, attackPosition, this, CALLBACK_PLAYERATTACK);
} else {
combatActionListeners.onPlayerAttackMissed(target, attack);
playerAttackCompleted();
controllers.skillController.applySkillEffectsFromPlayerAttack(attack, target);
startMissedEffect(attack, attackPosition, this, CALLBACK_PLAYERATTACK);
}
}
private void playerAttackCompleted() {
@@ -188,24 +229,26 @@ 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;
controllers.actorStatsController.applyKillEffectsToPlayer(player);
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);
}
@@ -227,7 +270,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;
@@ -263,7 +306,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
}
world.model.player.nextPosition.set(dest);
controllers.movementController.moveToNextIfPossible(false);
controllers.movementController.moveToNextIfPossible();
playerActionCompleted();
}
@@ -294,7 +337,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);
}
@@ -312,14 +355,14 @@ 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()) continue;
if (!m.isAgressive(world.model.player)) continue;
if (shouldAttackWithMonsterInCombat(m, playerPosition)) {
currentActiveMonster = m;
return MonsterAction.attack;
} else if (shouldMoveMonsterInCombat(m, a, playerPosition)) {
} else if (shouldMoveMonsterInCombat(m, a, world.model.player, playerPosition)) {
currentActiveMonster = m;
return MonsterAction.move;
}
@@ -333,13 +376,13 @@ public final class CombatController implements VisualEffectCompletedCallback {
if (!m.rectPosition.isAdjacentTo(playerPosition)) return false;
return true;
}
private static boolean shouldMoveMonsterInCombat(Monster m, MonsterSpawnArea a, Coord playerPosition) {
private static boolean shouldMoveMonsterInCombat(Monster m, MonsterSpawnArea a, Player p, Coord playerPosition) {
final MonsterType.AggressionType movementAggressionType = m.getMovementAggressionType();
if (movementAggressionType == MonsterType.AggressionType.none) return false;
if (!m.hasAPs(m.getMoveCost())) return false;
if (m.position.isAdjacentTo(playerPosition)) return false;
if (!m.isAgressive()) return false;
if (!m.isAgressive(p)) return false;
if (movementAggressionType == MonsterType.AggressionType.protectSpawn) {
if (a.area.contains(playerPosition)) return true;
@@ -374,10 +417,16 @@ public final class CombatController implements VisualEffectCompletedCallback {
handleNextMonsterAction();
return;
}
controllers.monsterMovementController.moveMonsterToNextPosition(currentActiveMonster, world.model.currentMap);
combatActionListeners.onMonsterMovedDuringCombat(currentActiveMonster);
waitForNextMonsterAction();
final Monster movingMonster = currentActiveMonster;
controllers.monsterMovementController.moveMonsterToNextPositionDuringCombat(currentActiveMonster, world.model.currentMaps.map, new VisualEffectController.VisualEffectCompletedCallback(){
@Override
public void onVisualEffectCompleted(int callbackValue) {
combatActionListeners.onMonsterMovedDuringCombat(movingMonster);
handleNextMonsterAction();
}
});
}
private void attackWithCurrentMonster() {
@@ -389,12 +438,12 @@ public final class CombatController implements VisualEffectCompletedCallback {
if (attack.isHit) {
combatActionListeners.onMonsterAttackSuccess(currentActiveMonster, attack);
controllers.skillController.applySkillEffectsFromMonsterAttack(attack, currentActiveMonster);
startAttackEffect(attack, world.model.player.position, this, CALLBACK_MONSTERATTACK);
} else {
combatActionListeners.onMonsterAttackMissed(currentActiveMonster, attack);
waitForNextMonsterAction();
controllers.skillController.applySkillEffectsFromMonsterAttack(attack, currentActiveMonster);
startMissedEffect(attack, world.model.player.position, this, CALLBACK_MONSTERATTACK);
}
}
@@ -427,10 +476,25 @@ public final class CombatController implements VisualEffectCompletedCallback {
controllers.effectController.startEffect(
position
, VisualEffectCollection.VisualEffectID.redSplash
, attack.damage
, (attack.damage == 0) ? null : String.valueOf(attack.damage)
, callback
, callbackValue);
}
private void startMissedEffect(AttackResult attack, final Coord position, VisualEffectCompletedCallback callback, int callbackValue) {
if (controllers.preferences.attackspeed_milliseconds <= 0) {
callback.onVisualEffectCompleted(callbackValue);
return;
}
controllers.effectController.startEffect(
position
, VisualEffectCollection.VisualEffectID.miss
, controllers.getResources().getString(R.string.combat_miss_animation_message)
, callback
, callbackValue);
}
private void endMonsterTurn() {
currentActiveMonster = null;
newPlayerTurn(false);
@@ -452,13 +516,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();
@@ -472,7 +552,7 @@ public final class CombatController implements VisualEffectCompletedCallback {
float averageDamagePerTurn = getAverageDamagePerTurn(attacker, target);
if (averageDamagePerTurn <= 0) return 100;
return (int) FloatMath.ceil(target.getMaxHP() / averageDamagePerTurn);
return (int) Math.ceil(target.getMaxHP() / averageDamagePerTurn);
}
public int getMonsterDifficulty(Monster monster) {
// returns [0..100) . 100 == easy.
@@ -487,13 +567,11 @@ public final class CombatController implements VisualEffectCompletedCallback {
private AttackResult playerAttacks(Monster currentMonster) {
AttackResult result = attack(world.model.player, currentMonster);
controllers.skillController.applySkillEffectsFromPlayerAttack(result, currentMonster);
return result;
}
private AttackResult monsterAttacks(Monster currentMonster) {
AttackResult result = attack(currentMonster, world.model.player);
controllers.skillController.applySkillEffectsFromMonsterAttack(result, currentMonster);
return result;
}
@@ -530,11 +608,24 @@ public final class CombatController implements VisualEffectCompletedCallback {
private void applyAttackHitStatusEffects(Actor attacker, Actor target) {
ItemTraits_OnUse[] onHitEffects = attacker.getOnHitEffects();
if (onHitEffects == null) return;
for (ItemTraits_OnUse e : onHitEffects) {
controllers.actorStatsController.applyUseEffect(attacker, target, e);
ItemTraits_OnHitReceived[] onHitReceivedEffects = target.getOnHitReceivedEffects();
if (onHitEffects != null) {
for (ItemTraits_OnUse e : onHitEffects) {
controllers.actorStatsController.applyUseEffect(attacker, target, e);
}
}
if (onHitReceivedEffects != null) {
for (ItemTraits_OnHitReceived e : onHitReceivedEffects) {
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.currentMaps.map, true);
}
public void monsterSteppedOnPlayer(Monster m) {

View File

@@ -1,11 +1,11 @@
package com.gpl.rpg.AndorsTrail.controller;
import java.util.Random;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.util.ConstRange;
import com.gpl.rpg.AndorsTrail.util.Range;
import java.util.Random;
public final class Constants {
public static final int PERCENT_EXP_LOST_WHEN_DIED = 30;
public static final int LEVELUP_EFFECT_HEALTH = 5;
@@ -19,11 +19,15 @@ public final class Constants {
public static final int EXP_FACTOR_DAMAGERESISTANCE = 9;
public static final float EXP_FACTOR_SCALING = 0.7f;
public static final int FLEE_FAIL_CHANCE_PERCENT = 20;
public static final long MINIMUM_INPUT_INTERVAL = AndorsTrailApplication.DEVELOPMENT_DEBUGBUTTONS ? 50 : 200;
public static final int MAX_MAP_WIDTH = 33;
public static final int MAX_MAP_HEIGHT = 33;
public static final long MINIMUM_INPUT_INTERVAL_FAST = 50;
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 = 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;
@@ -31,8 +35,9 @@ public final class Constants {
public static final int TICKS_PER_ROUND = ROUND_DURATION / TICK_DELAY;
public static final int TICKS_PER_FULLROUND = FULLROUND_DURATION / TICK_DELAY;
public static final int SPLATTER_DURATION_MS = 20000;
public static final int STATUS_TEXT_AUTOHIDE_DELAY = ROUND_DURATION;
public static final ConstRange monsterWaitTurns = new ConstRange(30,4);
public static final ConstRange monsterWaitTurns = new ConstRange(5,1);
public static final long MAP_UNVISITED_RESPAWN_DURATION_MS = 3 * 60 * 1000; // 3 min in milliseconds
public static final String PREFERENCE_MODEL_LASTRUNVERSION = "lastversion";
@@ -43,10 +48,16 @@ public final class Constants {
public static final String FILENAME_WORLDMAP_HTMLFILE_SUFFIX = ".html";
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;
@@ -54,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

@@ -0,0 +1,479 @@
package com.gpl.rpg.AndorsTrail.controller;
import java.util.ArrayList;
import android.content.res.Resources;
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.model.GameStatistics;
import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition;
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionType;
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
import com.gpl.rpg.AndorsTrail.model.ability.SkillInfo;
import com.gpl.rpg.AndorsTrail.model.actor.Actor;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.conversation.ConversationCollection;
import com.gpl.rpg.AndorsTrail.model.conversation.Phrase;
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.MonsterSpawnArea;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry;
import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress;
import com.gpl.rpg.AndorsTrail.model.script.Requirement;
import com.gpl.rpg.AndorsTrail.model.script.ScriptEffect;
import com.gpl.rpg.AndorsTrail.util.ConstRange;
import com.gpl.rpg.AndorsTrail.util.L;
public final class ConversationController {
private final ControllerContext controllers;
private final WorldContext world;
public ConversationController(ControllerContext controllers, WorldContext world) {
this.controllers = controllers;
this.world = world;
}
private static final ConstRange always = new ConstRange(1, 1);
public static final class ScriptEffectResult {
public final Loot loot = new Loot();
public final ArrayList<ActorConditionEffect> actorConditions = new ArrayList<ActorConditionEffect>();
public final ArrayList<SkillInfo> skillIncrease = new ArrayList<SkillInfo>();
public final ArrayList<QuestProgress> questProgress = new ArrayList<QuestProgress>();
public boolean isEmpty() {
if (loot.hasItemsOrExp()) return false;
if (!actorConditions.isEmpty()) return false;
if (!skillIncrease.isEmpty()) return false;
if (!questProgress.isEmpty()) return false;
return true;
}
}
private ScriptEffectResult applyScriptEffectsForPhrase(Resources res, final Player player, final Phrase phrase) {
if (phrase.scriptEffects == null || phrase.scriptEffects.length == 0) return null;
final ScriptEffectResult result = new ScriptEffectResult();
for (ScriptEffect effect : phrase.scriptEffects) {
applyScriptEffect(res, player, effect, result);
}
if (result.isEmpty()) return null;
player.inventory.add(result.loot);
controllers.actorStatsController.addExperience(result.loot.exp);
return result;
}
private void applyScriptEffect(Resources res, Player player, ScriptEffect effect, ScriptEffectResult result) {
switch (effect.type) {
case actorCondition:
addActorConditionReward(player, effect.effectID, effect.value, result);
break;
case actorConditionImmunity:
addActorConditionImmunityReward(player, effect.effectID, effect.value, result);
break;
case skillIncrease:
addSkillReward(player, SkillCollection.SkillID.valueOf(effect.effectID), result);
break;
case dropList:
addDropListReward(player, effect.effectID, result);
break;
case questProgress:
addQuestProgressReward(player, effect.effectID, effect.value, result);
break;
case alignmentChange:
addAlignmentReward(player, effect.effectID, effect.value);
break;
case alignmentSet:
setAlignmentReward(player, effect.effectID, effect.value);
break;
case giveItem:
addItemReward(effect.effectID, effect.value, result);
break;
case createTimer:
world.model.worldData.createTimer(effect.effectID);
break;
case spawnAll:
spawnAll(effect.mapName, effect.effectID);
break;
case removeSpawnArea:
deactivateSpawnArea(effect.mapName, effect.effectID, true);
break;
case deactivateSpawnArea:
deactivateSpawnArea(effect.mapName, effect.effectID, false);
break;
case activateMapObjectGroup:
activateMapObjectGroup(effect.mapName, effect.effectID);
break;
case deactivateMapObjectGroup:
deactivateMapObjectGroup(effect.mapName, effect.effectID);
break;
case removeQuestProgress:
addRemoveQuestProgressReward(player, effect.effectID, effect.value);
break;
case changeMapFilter:
changeMapFilter(res, effect.mapName, effect.effectID);
break;
}
}
private void changeMapFilter(Resources res, String mapName, String effectID) {
PredefinedMap map = findMapForScriptEffect(mapName);
map.currentColorFilter = effectID;
if (world.model.currentMaps.map == map) {
controllers.mapController.applyCurrentMapReplacements(res, true);
}
}
private void deactivateMapObjectGroup(String mapName, String mapObjectGroupID) {
PredefinedMap map = findMapForScriptEffect(mapName);
controllers.mapController.deactivateMapObjectGroup(map, mapObjectGroupID);
}
private PredefinedMap findMapForScriptEffect(String mapName) {
if (mapName == null) return world.model.currentMaps.map;
return world.maps.findPredefinedMap(mapName);
}
private void activateMapObjectGroup(String mapName, String mapObjectGroupID) {
PredefinedMap map = findMapForScriptEffect(mapName);
controllers.mapController.activateMapObjectGroup(map, mapObjectGroupID);
}
private void spawnAll(String mapName, String areaId) {
PredefinedMap map = findMapForScriptEffect(mapName);
LayeredTileMap tileMap = null;
if (map == world.model.currentMaps.map) {
tileMap = world.model.currentMaps.tileMap;
}
for (MonsterSpawnArea area : map.spawnAreas) {
if (!area.areaID.equals(areaId)) continue;
controllers.monsterSpawnController.activateSpawnArea(map, tileMap, area, true);
controllers.effectController.asyncUpdateArea(area.area);
}
}
private void deactivateSpawnArea(String mapName, String areaID, boolean removeAllMonsters) {
PredefinedMap map = findMapForScriptEffect(mapName);
for (MonsterSpawnArea area : map.spawnAreas) {
if (!area.areaID.equals(areaID)) continue;
controllers.monsterSpawnController.deactivateSpawnArea(area, removeAllMonsters);
if (removeAllMonsters) controllers.effectController.asyncUpdateArea(area.area);
}
}
private void addAlignmentReward(Player player, String faction, int delta) {
player.addAlignment(faction, delta);
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.currentMaps.map, world.model.player);
}
private void addQuestProgressReward(Player player, String questID, int questProgress, ScriptEffectResult result) {
QuestProgress progress = new QuestProgress(questID, questProgress);
boolean added = player.addQuestProgress(progress);
if (!added) return; // Only apply exp reward if the quest stage was reached just now (and not re-reached)
QuestLogEntry stage = world.quests.getQuestLogEntry(progress);
if (stage == null) return;
result.loot.exp += stage.rewardExperience;
result.questProgress.add(progress);
}
private void addRemoveQuestProgressReward(Player player, String questID, int questProgress) {
QuestProgress progress = new QuestProgress(questID, questProgress);
player.removeQuestProgress(progress);
}
private void addDropListReward(Player player, String droplistID, ScriptEffectResult result) {
world.dropLists.getDropList(droplistID).createRandomLoot(result.loot, player);
}
private void addItemReward(String itemTypeID, int quantity, ScriptEffectResult result) {
result.loot.add(world.itemTypes.getItemType(itemTypeID), quantity);
}
private void addSkillReward(Player player, SkillCollection.SkillID skillID, ScriptEffectResult result) {
SkillInfo skill = world.skills.getSkill(skillID);
boolean addedSkill = controllers.skillController.levelUpSkillByQuest(player, skill);
if (addedSkill) {
result.skillIncrease.add(skill);
}
}
private void addActorConditionReward(Player player, String conditionTypeID, int value, ScriptEffectResult result) {
int magnitude = 1;
int duration = value;
if (value == ActorCondition.DURATION_FOREVER) duration = ActorCondition.DURATION_FOREVER;
else if (value == ActorCondition.MAGNITUDE_REMOVE_ALL) {
duration = ActorCondition.DURATION_NONE;
magnitude = ActorCondition.MAGNITUDE_REMOVE_ALL;
}
ActorConditionType conditionType = world.actorConditionsTypes.getActorConditionType(conditionTypeID);
ActorConditionEffect e = new ActorConditionEffect(conditionType, magnitude, duration, always);
controllers.actorStatsController.applyActorCondition(player, e);
result.actorConditions.add(e);
}
private void addActorConditionImmunityReward(Player player, String conditionTypeID, int value, ScriptEffectResult result) {
int duration = value;
int magnitude = ActorCondition.MAGNITUDE_REMOVE_ALL;
ActorConditionType conditionType = world.actorConditionsTypes.getActorConditionType(conditionTypeID);
ActorConditionEffect e = new ActorConditionEffect(conditionType, magnitude, duration, always);
controllers.actorStatsController.applyActorCondition(player, e);
result.actorConditions.add(e);
}
private static void applyReplyEffect(final WorldContext world, final Reply reply, ControllerContext controllers) {
if (!reply.hasRequirements()) return;
for (Requirement requirement : reply.requires) {
requirementFulfilled(world, requirement, controllers);
}
}
private static boolean canSelectReply(final WorldContext world, final Reply reply) {
if (!reply.hasRequirements()) return true;
for (Requirement requirement : reply.requires) {
if (!canFulfillRequirement(world, requirement)) return false;
}
return true;
}
public static boolean canFulfillRequirement(WorldContext world, Requirement requirement) {
Player player = world.model.player;
GameStatistics stats = world.model.statistics;
boolean result;
switch (requirement.requireType) {
case questProgress:
result = player.hasExactQuestProgress(requirement.requireID, requirement.value);
break;
case questLatestProgress:
result = player.isLatestQuestProgress(requirement.requireID, requirement.value);
break;
case wear:
case wearRemove:
result = player.inventory.isWearing(requirement.requireID, requirement.value);
break;
case inventoryKeep:
case inventoryRemove:
if (ItemTypeCollection.isGoldItemType(requirement.requireID)) {
result = player.inventory.gold >= requirement.value;
} else {
result = player.inventory.hasItem(requirement.requireID, requirement.value);
}
break;
case skillLevel:
result = player.getSkillLevel(SkillCollection.SkillID.valueOf(requirement.requireID)) >= requirement.value;
break;
case killedMonster:
result = stats.getNumberOfKillsForMonsterType(requirement.requireID) >= requirement.value;
break;
case timerElapsed:
result = world.model.worldData.hasTimerElapsed(requirement.requireID, requirement.value);
break;
case usedItem:
result = stats.getNumberOfTimesItemHasBeenUsed(requirement.requireID) >= requirement.value;
break;
case spentGold:
result = stats.getSpentGold() >= requirement.value;
break;
case random:
result = Constants.rollResult(requirement.chance);
break;
case consumedBonemeals:
result = stats.getNumberOfUsedBonemealPotions() >= requirement.value;
break;
case hasActorCondition:
result = player.hasCondition(requirement.requireID);
break;
case factionScore:
result = player.getAlignment(requirement.requireID) >= requirement.value;
break;
case factionScoreEquals:
result = player.getAlignment(requirement.requireID) == requirement.value;
break;
default:
result = true;
}
return requirement.negate ? !result : result;
}
public static void requirementFulfilled(WorldContext world, Requirement requirement, ControllerContext controllers) {
Player p = world.model.player;
switch (requirement.requireType) {
case inventoryRemove:
if (ItemTypeCollection.isGoldItemType(requirement.requireID)) {
p.inventory.gold -= requirement.value;
world.model.statistics.addGoldSpent(requirement.value);
} else {
p.inventory.removeItem(requirement.requireID, requirement.value);
}
break;
case wearRemove:
controllers.itemController.removeEquippedItem(requirement.requireID, requirement.value);
break;
}
}
private static String getDisplayMessage(Phrase phrase, Player player) { return replacePlayerName(phrase.message, player); }
private static String getDisplayMessage(Reply reply, Player player) { return replacePlayerName(reply.text, player); }
private static String replacePlayerName(String s, Player player) {
return s.replace(Constants.PLACEHOLDER_PLAYERNAME, player.getName());
}
public static final class ConversationStatemachine {
private final ConversationCollection conversationCollection = new ConversationCollection();
private final WorldContext world;
private final ControllerContext controllers;
private final Player player;
private String currentPhraseID;
private Phrase currentPhrase;
private Monster npc;
public final ConversationStateListener listener;
public ConversationStatemachine(WorldContext world, ControllerContext controllers, ConversationStateListener listener) {
this.world = world;
this.player = world.model.player;
this.controllers = controllers;
this.listener = listener;
}
public void setCurrentNPC(Monster currentNPC) { this.npc = currentNPC; }
public Monster getCurrentNPC() { return npc; }
public String getCurrentPhraseID() { return currentPhraseID; }
public void playerSelectedReply(final Resources res, Reply r) {
applyReplyEffect(world, r, controllers);
proceedToPhrase(res, r.nextPhrase, true, true);
}
public void playerSelectedNextStep(final Resources res) {
playerSelectedReply(res, currentPhrase.replies[0]);
}
public interface ConversationStateListener {
void onTextPhraseReached(String message, Actor actor, String phraseID);
void onConversationEnded();
void onConversationEndedWithShop(Monster npc);
void onConversationEndedWithCombat(Monster npc);
void onConversationEndedWithRemoval(Monster npc);
void onScriptEffectsApplied(ScriptEffectResult scriptEffectResult);
void onConversationCanProceedWithNext();
void onConversationHasReply(Reply r, String message);
}
private void setCurrentPhrase(final Resources res, String phraseID) {
this.currentPhraseID = phraseID;
this.currentPhrase = world.conversationLoader.loadPhrase(phraseID, conversationCollection, res);
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) {
if (currentPhrase == null) currentPhrase = new Phrase("(phrase \"" + phraseID + "\" not implemented yet)", null, null, null);
}
if (this.currentPhrase.switchToNPC != null) {
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 null;
} else if (phraseID.equalsIgnoreCase(ConversationCollection.PHRASE_SHOP)) {
listener.onConversationEndedWithShop(npc);
return null;
} else if (phraseID.equalsIgnoreCase(ConversationCollection.PHRASE_ATTACK)) {
endConversationWithCombat();
return null;
} else if (phraseID.equalsIgnoreCase(ConversationCollection.PHRASE_REMOVE)) {
endConversationWithRemovingNPC();
return null;
}
setCurrentPhrase(res, phraseID);
if (applyScriptEffects) {
ScriptEffectResult scriptEffectResult = controllers.conversationController.applyScriptEffectsForPhrase(res, player, currentPhrase);
if (scriptEffectResult != null) {
listener.onScriptEffectsApplied(scriptEffectResult);
}
}
if (currentPhrase.message == null) {
for (Reply r : currentPhrase.replies) {
if (!canSelectReply(world, r)) continue;
applyReplyEffect(world, r, controllers);
return r.nextPhrase;
}
} else if (displayPhraseMessage) {
String message = getDisplayMessage(currentPhrase, player);
listener.onTextPhraseReached(message, npc, phraseID);
}
if (hasOnlyOneNextReply()) {
listener.onConversationCanProceedWithNext();
return null;
}
for (Reply r : currentPhrase.replies) {
if (!canSelectReply(world, r)) continue;
listener.onConversationHasReply(r, getDisplayMessage(r, player));
}
return null;
}
private void endConversationWithRemovingNPC() {
if (npc == null) {
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) L.log("Tried to remove NPC from conversation without having a valid npc target!");
listener.onConversationEnded();
return;
}
controllers.monsterSpawnController.remove(world.model.currentMaps.map, npc);
listener.onConversationEndedWithRemoval(npc);
}
private void endConversationWithCombat() {
if (npc == null) {
if (AndorsTrailApplication.DEVELOPMENT_VALIDATEDATA) L.log("Tried to enter combat from conversation without having a valid npc target!");
listener.onConversationEnded();
return;
}
npc.forceAggressive();
controllers.combatController.setCombatSelection(npc);
controllers.combatController.enterCombat(CombatController.BeginTurnAs.player);
listener.onConversationEndedWithCombat(npc);
}
public boolean hasOnlyOneNextReply() {
if (currentPhrase.replies == null) return false;
if (currentPhrase.replies.length != 1) return false;
final Reply singleReply = currentPhrase.replies[0];
if (!singleReply.text.equals(ConversationCollection.REPLY_NEXT)) return false;
if (!canSelectReply(world, singleReply)) return false;
return true;
}
}
}

View File

@@ -3,6 +3,7 @@ package com.gpl.rpg.AndorsTrail.controller;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.listeners.GameRoundListeners;
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
import com.gpl.rpg.AndorsTrail.util.TimedMessageTask;
public final class GameRoundController implements TimedMessageTask.Callback {
@@ -51,6 +52,11 @@ public final class GameRoundController implements TimedMessageTask.Callback {
public void resume() {
world.model.uiSelections.isMainActivityVisible = true;
roundTimer.start();
if (world.model.uiSelections.isInCombat) {
controllers.combatController.setCombatSelection(world.model.uiSelections.selectedMonster, world.model.uiSelections.selectedPosition);
controllers.combatController.enterCombat(CombatController.BeginTurnAs.continueLastTurn);
}
}
private void restartWaitForNextFullRound() {
@@ -68,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();
}
@@ -79,18 +85,21 @@ public final class GameRoundController implements TimedMessageTask.Callback {
gameRoundListeners.onNewRound();
}
public void onNewPlayerRound() {
world.model.worldData.tickWorldTime();
controllers.actorStatsController.applyConditionsToPlayer(world.model.player, false);
controllers.actorStatsController.applySkillEffectsForNewRound(world.model.player, world.model.currentMap);
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.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,6 +1,10 @@
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;
@@ -8,11 +12,15 @@ 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.*;
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 java.util.ArrayList;
import java.util.Collection;
import static java.lang.Math.min;
public final class ItemController {
@@ -28,7 +36,7 @@ public final class ItemController {
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);
world.model.currentMaps.map.itemDropped(type, quantity, world.model.player.position);
}
public void equipItem(ItemType type, Inventory.WearSlot slot) {
@@ -51,6 +59,9 @@ public final class ItemController {
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) {
@@ -65,6 +76,9 @@ public final class ItemController {
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) {
@@ -85,11 +99,12 @@ public final class ItemController {
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);
//TODO: provide feedback that the item has been used.
//context.mainActivity.message(androidContext.getResources().getString(R.string.inventory_item_used, type.name));
if (world.model.uiSelections.isInCombat && !controllers.combatController.playerHasApLeft()) {
controllers.combatController.endPlayerTurn();
}
}
public void playerSteppedOnLootBag(Loot loot) {
@@ -170,29 +185,46 @@ public final class ItemController {
// 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.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 = null;
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 e = type.effects_hit;
if (e == null) continue;
ItemTraits_OnUse eh = type.effects_hit;
ItemTraits_OnHitReceived ehr = type.effects_hitReceived;
if (eh == null && ehr == null) continue;
if (effects == null) effects = new ArrayList<ItemTraits_OnUse>();
effects.add(e);
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 != null) {
ItemTraits_OnUse[] effects_ = new ItemTraits_OnUse[effects.size()];
effects_ = effects.toArray(effects_);
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) {
@@ -210,6 +242,7 @@ public final class ItemController {
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) {
@@ -220,8 +253,8 @@ public final class ItemController {
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);
world.model.currentMaps.map.removeGroundLoot(loot);
controllers.mapController.mapLayoutListeners.onLootBagRemoved(world.model.currentMaps.map, loot.position);
return true; // The bag was removed.
}
@@ -307,7 +340,6 @@ public final class ItemController {
boolean addSpace = false;
if (attackChance != 0) {
sb.append(attackChance);
sb.append('%');
addSpace = true;
}
if (minDamage != 0 || maxDamage != 0) {
@@ -325,19 +357,16 @@ public final class ItemController {
sb.append('+');
}
sb.append(criticalSkill);
addSpace = true;
}
if (criticalMultiplier != 0 && criticalMultiplier != 1) {
sb.append('x');
sb.append(criticalMultiplier);
addSpace = true;
}
}
public static void describeBlockEffect(int blockChance, int damageResistance, StringBuilder sb) {
if (blockChance != 0) {
sb.append(blockChance);
sb.append('%');
}
if (damageResistance != 0) {
sb.append('/');
@@ -354,4 +383,64 @@ public final class ItemController {
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

@@ -0,0 +1,248 @@
package com.gpl.rpg.AndorsTrail.controller;
import java.util.List;
import android.content.res.Resources;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.listeners.MapLayoutListeners;
import com.gpl.rpg.AndorsTrail.controller.listeners.WorldEventListeners;
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
import com.gpl.rpg.AndorsTrail.model.actor.Actor;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.model.conversation.Reply;
import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap;
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.model.map.ReplaceableMapSection;
import com.gpl.rpg.AndorsTrail.util.Coord;
public final class MapController {
private final ControllerContext controllers;
private final WorldContext world;
public final WorldEventListeners worldEventListeners = new WorldEventListeners();
public final MapLayoutListeners mapLayoutListeners = new MapLayoutListeners();
private ConversationController.ConversationStatemachine mapScriptExecutor;
public MapController(ControllerContext controllers, WorldContext world) {
this.controllers = controllers;
this.world = world;
}
public void handleMapEventsAfterMovement(PredefinedMap currentMap, Coord newPosition, Coord lastPosition) {
// Several map objects can now overlap. Inactive ones won't be returned by getActiveEventObjectsAt()
List<MapObject> objects = currentMap.getActiveEventObjectsAt(newPosition);
if (objects == null) return;
for (MapObject mapObject : objects) {
switch (mapObject.evaluateWhen) {
case afterEveryRound:
continue;
case whenEntering:
// Do not trigger event if the player already was on the same MapObject before.
if (mapObject.position.contains(lastPosition)) continue;
break;
case onEveryStep:
break;
}
handleMapEvent(mapObject, newPosition);
}
}
public void handleMapEvents(PredefinedMap currentMap, Coord position, MapObject.MapObjectEvaluationType evaluationType) {
List<MapObject> objects = currentMap.getActiveEventObjectsAt(position);
if (objects == null) return;
for (MapObject mapObject : objects) {
if (mapObject == null) return;
if (mapObject.evaluateWhen != evaluationType) return;
handleMapEvent(mapObject, position);
}
}
private void handleMapEvent(MapObject o, Coord position) {
if (!shouldHandleMapEvent(o)) return;
switch (o.type) {
case sign:
if (o.id == null || o.id.length() <= 0) return;
worldEventListeners.onPlayerSteppedOnMapSignArea(o);
break;
case newmap:
if (o.map == null || o.place == null) return;
int offset_x = position.x - o.position.topLeft.x;
int offset_y = position.y - o.position.topLeft.y;
controllers.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, o.map, o.place, offset_x, offset_y);
break;
case rest:
steppedOnRestArea(o);
break;
case script:
runScriptArea(o);
break;
}
}
private boolean shouldHandleMapEvent(MapObject mapObject) {
if (!mapObject.isActive) return false;
if (world.model.uiSelections.isInCombat) {
// Only "script" events may run while in combat.
if (mapObject.type != MapObject.MapObjectType.script) return false;
}
return true;
}
private void runScriptArea(MapObject o) {
Resources res = controllers.getResources();
mapScriptExecutor.proceedToPhrase(res, o.id, true, true);
controllers.mapController.applyCurrentMapReplacements(res, true);
}
private void steppedOnRestArea(MapObject area) {
if (controllers.preferences.confirmRest) {
worldEventListeners.onPlayerSteppedOnRestArea(area);
} else {
rest(area);
}
}
public void steppedOnMonster(Monster m, Coord p) {
if (m.isAgressive(world.model.player)) {
controllers.combatController.setCombatSelection(m, p);
if (controllers.preferences.confirmAttack) {
worldEventListeners.onPlayerSteppedOnMonster(m);
} else {
controllers.combatController.enterCombat(CombatController.BeginTurnAs.player);
}
} else {
worldEventListeners.onPlayerStartedConversation(m, m.getPhraseID());
}
}
public void handlePlayerDeath() {
controllers.combatController.exitCombat(false);
final Player player = world.model.player;
int lostExp = player.getCurrentLevelExperience() * Constants.PERCENT_EXP_LOST_WHEN_DIED / 100;
lostExp -= lostExp * player.getSkillLevel(SkillCollection.SkillID.lowerExploss) * SkillCollection.PER_SKILLPOINT_INCREASE_EXPLOSS_PERCENT / 100;
if (lostExp < 0) lostExp = 0;
controllers.actorStatsController.addExperience(-lostExp);
world.model.statistics.addPlayerDeath(lostExp);
if (!world.model.statistics.isDead()) {
controllers.movementController.respawnPlayerAsync();
lotsOfTimePassed();
}
worldEventListeners.onPlayerDied(lostExp);
}
public void lotsOfTimePassed() {
final Player player = world.model.player;
controllers.actorStatsController.removeAllTemporaryConditions(player);
controllers.actorStatsController.recalculatePlayerStats(player);
controllers.actorStatsController.setActorMaxAP(player);
controllers.actorStatsController.setActorMaxHealth(player);
for (PredefinedMap m : world.maps.getAllMaps()) {
m.resetTemporaryData();
}
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.currentMaps.map.name, area.id);
worldEventListeners.onPlayerRested();
}
public boolean canEnterKeyArea(MapObject area) {
if (ConversationController.canFulfillRequirement(world, area.enteringRequirement)) {
ConversationController.requirementFulfilled(world, area.enteringRequirement, controllers);
return true;
}
worldEventListeners.onPlayerSteppedOnKeyArea(area);
return false;
}
public void resetMapsNotRecentlyVisited() {
for (PredefinedMap m : world.maps.getAllMaps()) {
if (m == world.model.currentMaps.map) continue;
if (m.isRecentlyVisited()) continue;
if (m.hasResetTemporaryData()) continue;
m.resetTemporaryData();
}
}
public void applyCurrentMapReplacements(final Resources res, boolean updateWorldmap) {
if (!applyReplacements(world.model.currentMaps.map, world.model.currentMaps.tileMap)) return;
world.maps.worldMapRequiresUpdate = true;
if (!updateWorldmap) return;
WorldMapController.updateWorldMap(controllers.getContext(), world, res);
mapLayoutListeners.onMapTilesChanged(world.model.currentMaps.map, world.model.currentMaps.tileMap);
}
private boolean applyReplacements(PredefinedMap map, LayeredTileMap tileMap) {
boolean hasUpdated = false;
if (tileMap.replacements != null) {
for(ReplaceableMapSection replacement : tileMap.replacements) {
if (replacement.isApplied) continue;
if (!satisfiesCondition(replacement)) continue;
else ConversationController.requirementFulfilled(world, replacement.requirement, controllers);
tileMap.applyReplacement(replacement);
for (ReplaceableMapSection impactedReplacement : tileMap.replacements) {
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;
}
}
hasUpdated = true;
}
}
if (map.currentColorFilter != null) {
LayeredTileMap.ColorFilterId filter = LayeredTileMap.ColorFilterId.valueOf(map.currentColorFilter);
if (filter != tileMap.colorFilter) {
tileMap.changeColorFilter(filter);
hasUpdated = true;
}
}
if (!map.lastSeenLayoutHash.equalsIgnoreCase(tileMap.getCurrentLayoutHash())) {
map.lastSeenLayoutHash = tileMap.getCurrentLayoutHash();
hasUpdated = true;
}
return hasUpdated;
}
public boolean satisfiesCondition(ReplaceableMapSection replacement) {
return ConversationController.canFulfillRequirement(world, replacement.requirement);
}
private final ConversationController.ConversationStatemachine.ConversationStateListener conversationStateListener = new ConversationController.ConversationStatemachine.ConversationStateListener() {
@Override
public void onTextPhraseReached(String message, Actor actor, String phraseID) {
worldEventListeners.onScriptAreaStartedConversation(phraseID);
}
@Override public void onScriptEffectsApplied(ConversationController.ScriptEffectResult scriptEffectResult) { }
@Override public void onConversationEnded() { }
@Override public void onConversationEndedWithShop(Monster npc) { }
@Override public void onConversationEndedWithCombat(Monster npc) { }
@Override public void onConversationEndedWithRemoval(Monster npc) { }
@Override public void onConversationCanProceedWithNext() { }
@Override public void onConversationHasReply(Reply r, String message) { }
};
public void prepareScriptsOnCurrentMap() {
mapScriptExecutor = new ConversationController.ConversationStatemachine(world, controllers, conversationStateListener);
}
public void activateMapObjectGroup(PredefinedMap map, String group) {
map.activateMapObjectGroup(group);
}
public void deactivateMapObjectGroup(PredefinedMap map, String group) {
map.deactivateMapObjectGroup(group);
}
}

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,9 +37,9 @@ 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()) continue;
if (!m.isAgressive(world.model.player)) continue;
if (!m.isAdjacentTo(world.model.player)) continue;
int aggressionChanceBias = world.model.player.getSkillLevel(SkillCollection.SkillID.evasion) * SkillCollection.PER_SKILLPOINT_INCREASE_EVASION_MONSTER_ATTACK_CHANCE_PERCENTAGE;
@@ -52,43 +52,47 @@ public final class MonsterMovementController implements EvaluateWalkable {
}
}
public static boolean monsterCanMoveTo(final PredefinedMap map, final LayeredTileMap tilemap, final CoordRect p) {
public static boolean monsterCanMoveTo(final Monster movingMonster, final PredefinedMap map, final LayeredTileMap tilemap, final CoordRect p, boolean ignoreAreas) {
if (tilemap != null) {
if (!tilemap.isWalkable(p)) return false;
}
if (map.getMonsterAt(p) != null) return false;
MapObject m = map.getEventObjectAt(p.topLeft);
if (m != null) {
if (m.type == MapObject.MapObjectType.newmap) return false;
if (m.type == MapObject.MapObjectType.keyarea) return false;
if (map.getMonsterAt(p, movingMonster) != null) return false;
if (!ignoreAreas) {
for (MapObject mObj : map.eventObjects) {
if (mObj == null) continue;
if (!mObj.isActive) continue;
if (!mObj.position.intersects(p)) continue;
switch (mObj.type) {
case newmap:
case keyarea:
case rest:
return false;
}
}
}
return true;
}
private void moveMonster(final Monster m, final MonsterSpawnArea area) {
PredefinedMap map = world.model.currentMap;
LayeredTileMap tileMap = world.model.currentTileMap;
m.nextActionTime += getMillisecondsPerMove(m);
if (m.movementDestination == null) {
// Monster has waited and should start to move again.
m.movementDestination = new Coord(m.position);
if (Constants.rnd.nextBoolean()) {
m.movementDestination.x = area.area.topLeft.x + Constants.rnd.nextInt(area.area.size.width);
} else {
m.movementDestination.y = area.area.topLeft.y + Constants.rnd.nextInt(area.area.size.height);
}
} else if (m.position.equals(m.movementDestination)) {
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.
cancelCurrentMonsterMovement(m);
} else {
determineMonsterNextPosition(m, area, world.model.player.position);
if (!monsterCanMoveTo(map, tileMap, m.nextPosition)) {
if (!monsterCanMoveTo(m, map, tileMap, m.nextPosition, area.ignoreAreas)) {
cancelCurrentMonsterMovement(m);
return;
}
if (m.nextPosition.contains(world.model.player.position)) {
if (!m.isAgressive()) {
if (!m.isAgressive(world.model.player)) {
cancelCurrentMonsterMovement(m);
return;
}
@@ -101,7 +105,7 @@ public final class MonsterMovementController implements EvaluateWalkable {
}
private void determineMonsterNextPosition(Monster m, MonsterSpawnArea area, Coord playerPosition) {
if (m.isAgressive()) {
// if (m.isAgressive()) {
boolean searchForPath = false;
if (m.getMovementAggressionType() == MonsterType.AggressionType.protectSpawn) {
if (area.area.contains(playerPosition)) searchForPath = true;
@@ -111,8 +115,18 @@ public final class MonsterMovementController implements EvaluateWalkable {
if (searchForPath) {
if (findPathFor(m, playerPosition)) return;
}
}
// }
// Monster has waited and should start to move again.
if (m.movementDestination == null) {
m.movementDestination = new Coord(m.position);
if (Constants.rnd.nextBoolean()) {
m.movementDestination.x = area.area.topLeft.x + Constants.rnd.nextInt(area.area.size.width);
} else {
m.movementDestination.y = area.area.topLeft.y + Constants.rnd.nextInt(area.area.size.height);
}
}
// Monster is moving in a straight line.
m.nextPosition.topLeft.set(
m.position.x + sgn(m.movementDestination.x - m.position.x)
@@ -122,12 +136,18 @@ public final class MonsterMovementController implements EvaluateWalkable {
private static void cancelCurrentMonsterMovement(final Monster m) {
m.movementDestination = null;
m.nextActionTime += getMillisecondsPerMove(m) * Constants.rollValue(Constants.monsterWaitTurns);
m.nextActionTime = System.currentTimeMillis() + (getMillisecondsPerMove(m) * Constants.rollValue(Constants.monsterWaitTurns));
}
private static int getMillisecondsPerMove(Monster m) {
return Constants.MONSTER_MOVEMENT_TURN_DURATION_MS * m.getMoveCost() / m.getMaxAP();
}
private int getMillisecondsPerCombatMove(Monster m) {
if (controllers.preferences.attackspeed_milliseconds <= 0) return 0;
return controllers.preferences.attackspeed_milliseconds;
}
private static int sgn(int i) {
if (i <= -1) return -1;
@@ -137,17 +157,33 @@ public final class MonsterMovementController implements EvaluateWalkable {
private final PathFinder pathfinder = new PathFinder(Constants.MAX_MAP_WIDTH, Constants.MAX_MAP_HEIGHT, this);
public boolean findPathFor(Monster m, Coord to) {
return pathfinder.findPathBetween(m.rectPosition, to, m.nextPosition);
return pathfinder.findPathBetween(m.rectPosition, to, m.nextPosition, m);
}
@Override
public boolean isWalkable(CoordRect r) {
return monsterCanMoveTo(world.model.currentMap, world.model.currentTileMap, r);
public boolean isWalkable(CoordRect r, Monster m) {
return monsterCanMoveTo(null, world.model.currentMaps.map, world.model.currentMaps.tileMap, r, m.area.ignoreAreas);
}
public void moveMonsterToNextPosition(Monster m, PredefinedMap map) {
CoordRect previousPosition = new CoordRect(new Coord(m.position), m.rectPosition.size);
public void moveMonsterToNextPosition(final Monster m, final PredefinedMap map) {
moveMonsterToNextPositionWithCallback(m, map, getMillisecondsPerMove(m) / 4, null);
}
public void moveMonsterToNextPositionDuringCombat(final Monster m, final PredefinedMap map, final VisualEffectController.VisualEffectCompletedCallback callback) {
moveMonsterToNextPositionWithCallback(m, map, getMillisecondsPerCombatMove(m) / 4, callback);
}
private void moveMonsterToNextPositionWithCallback(final Monster m, final PredefinedMap map, int duration, final VisualEffectController.VisualEffectCompletedCallback callback) {
final CoordRect previousPosition = new CoordRect(new Coord(m.position), m.rectPosition.size);
m.lastPosition.set(previousPosition.topLeft);
m.position.set(m.nextPosition.topLeft);
monsterMovementListeners.onMonsterMoved(map, m, previousPosition);
controllers.effectController.startActorMoveEffect(m, map, previousPosition.topLeft, m.position, duration, new VisualEffectController.VisualEffectCompletedCallback() {
@Override
public void onVisualEffectCompleted(int callbackValue) {
if (callback != null) callback.onVisualEffectCompleted(callbackValue);
monsterMovementListeners.onMonsterMoved(map, m, previousPosition);
}
}, 0);
}
}

View File

@@ -51,20 +51,20 @@ public final class MonsterSpawningController {
}
public boolean TEST_spawnInArea(PredefinedMap map, LayeredTileMap tileMap, MonsterSpawnArea a, MonsterType type) { return spawnInArea(map, tileMap, a, type, null); }
private boolean spawnInArea(PredefinedMap map, LayeredTileMap tileMap, MonsterSpawnArea a, MonsterType type, Coord playerPosition) {
Coord p = getRandomFreePosition(map, tileMap, a.area, type.tileSize, playerPosition);
Coord p = getRandomFreePosition(map, tileMap, a, type.tileSize, playerPosition);
if (p == null) return false;
Monster m = a.spawn(p, type);
monsterSpawnListeners.onMonsterSpawned(map, m);
return true;
}
public static Coord getRandomFreePosition(PredefinedMap map, LayeredTileMap tileMap, CoordRect area, Size requiredSize, Coord playerPosition) {
public static Coord getRandomFreePosition(PredefinedMap map, LayeredTileMap tileMap, MonsterSpawnArea a, Size requiredSize, Coord playerPosition) {
CoordRect p = new CoordRect(requiredSize);
for(int i = 0; i < 100; ++i) {
p.topLeft.set(
area.topLeft.x + Constants.rnd.nextInt(area.size.width)
,area.topLeft.y + Constants.rnd.nextInt(area.size.height));
if (!MonsterMovementController.monsterCanMoveTo(map, tileMap, p)) continue;
a.area.topLeft.x + Constants.rnd.nextInt(a.area.size.width)
,a.area.topLeft.y + Constants.rnd.nextInt(a.area.size.height));
if (!MonsterMovementController.monsterCanMoveTo(null, map, tileMap, p, a.ignoreAreas)) continue;
if (playerPosition != null && p.contains(playerPosition)) continue;
return p.topLeft;
}
@@ -78,4 +78,18 @@ public final class MonsterSpawningController {
monsterSpawnListeners.onMonsterRemoved(map, m, m.rectPosition);
}
public void activateSpawnArea(PredefinedMap map, LayeredTileMap tileMap, MonsterSpawnArea spawnArea, boolean spawnAllMonsters) {
spawnArea.isSpawning = true;
if (spawnAllMonsters) {
boolean respawnUniqueMonsters = true;
spawnAllInArea(map, tileMap, spawnArea, respawnUniqueMonsters);
}
}
public void deactivateSpawnArea(MonsterSpawnArea spawnArea, boolean removeAllMonsters) {
spawnArea.isSpawning = false;
if (removeAllMonsters) {
spawnArea.removeAllMonsters();
}
}
}

View File

@@ -2,15 +2,21 @@ package com.gpl.rpg.AndorsTrail.controller;
import android.content.res.Resources;
import android.os.AsyncTask;
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;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
import com.gpl.rpg.AndorsTrail.model.map.*;
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.map.TMXMapTranslator;
import com.gpl.rpg.AndorsTrail.resource.tiles.TileCollection;
import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.util.L;
@@ -19,7 +25,8 @@ import com.gpl.rpg.AndorsTrail.util.TimedMessageTask;
public final class MovementController implements TimedMessageTask.Callback {
private final ControllerContext controllers;
private final WorldContext world;
private final TimedMessageTask movementHandler;
//TODO restore final modifier before release
private TimedMessageTask movementHandler;
public final PlayerMovementListeners playerMovementListeners = new PlayerMovementListeners();
public MovementController(ControllerContext controllers, WorldContext world) {
@@ -27,6 +34,12 @@ public final class MovementController implements TimedMessageTask.Callback {
this.world = world;
this.movementHandler = new TimedMessageTask(this, Constants.MINIMUM_INPUT_INTERVAL, false);
}
//TODO remove this method before release
public void resetMovementHandler() {
this.movementHandler.stop();
this.movementHandler = new TimedMessageTask(this, Constants.MINIMUM_INPUT_INTERVAL, false);
}
public void placePlayerAsyncAt(final MapObject.MapObjectType objectType, final String mapName, final String placeName, final int offset_x, final int offset_y) {
@@ -44,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();
}
@@ -65,9 +78,13 @@ public final class MovementController implements TimedMessageTask.Callback {
L.log("Cannot find place " + placeName + " of type " + objectType + " in map " + mapName);
return;
}
if (!place.isActive) {
L.log("Place " + placeName + " of type " + objectType + " in map " + mapName + " cannot be used as it is inactive");
return;
}
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);
@@ -81,27 +98,37 @@ public final class MovementController implements TimedMessageTask.Callback {
}
private void playerVisitsMapFirstTime(PredefinedMap m) {
m.reset();
m.createAllContainerLoot();
world.maps.worldMapRequiresUpdate = true;
}
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.applyCurrentMapReplacements(res, false);
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() {
@@ -114,13 +141,13 @@ 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;
}
moveToNextIfPossible(true);
moveToNextIfPossible();
}
private boolean findWalkablePosition(int dx, int dy) {
@@ -179,15 +206,15 @@ 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);
if (m != null && !m.isAgressive()) return true; // avoid MOVEMENTAGGRESSIVENESS settings for NPCs
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;
if (aggressiveness == AndorsTrailPreferences.MOVEMENTAGGRESSIVENESS_DEFENSIVE && m != null) return false;
@@ -206,12 +233,13 @@ public final class MovementController implements TimedMessageTask.Callback {
else return -v;
}
public void moveToNextIfPossible(boolean handleEvents) {
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) {
if (!o.isActive) continue;
if (o.type == MapObject.MapObjectType.keyarea) {
if (o.position.contains(newPosition)) {
if (!controllers.mapController.canEnterKeyArea(o)) return;
@@ -222,24 +250,29 @@ public final class MovementController implements TimedMessageTask.Callback {
player.lastPosition.set(player.position);
player.position.set(newPosition);
controllers.combatController.setCombatSelection(null, null);
playerMovementListeners.onPlayerMoved(newPosition, player.lastPosition);
controllers.effectController.startActorMoveEffect(player, currentMap, player.lastPosition, newPosition, (int) (Constants.MINIMUM_INPUT_INTERVAL / 2), new VisualEffectController.VisualEffectCompletedCallback() {
@Override
public void onVisualEffectCompleted(int callbackValue) {
if (handleEvents) {
MapObject o = currentMap.getEventObjectAt(newPosition);
if (o != null) {
if (!o.position.contains(player.lastPosition)) { // Do not trigger event if the player already was on the same MapObject before.
controllers.mapController.handleMapEvent(o, newPosition);
playerMovementListeners.onPlayerMoved(currentMap, newPosition, player.lastPosition);
controllers.mapController.handleMapEventsAfterMovement(currentMap, newPosition, player.lastPosition);
if (!world.model.uiSelections.isInCombat) {
//currentMap can be outdated due to mapchange events processed above.
Loot loot = world.model.currentMaps.map.getBagAt(newPosition);
if (loot != null) controllers.itemController.playerSteppedOnLootBag(loot);
}
}
Loot loot = currentMap.getBagAt(newPosition);
if (loot != null) controllers.itemController.playerSteppedOnLootBag(loot);
}
}, 0);
}
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);
@@ -261,7 +294,7 @@ public final class MovementController implements TimedMessageTask.Callback {
for (MonsterSpawnArea a : map.spawnAreas) {
for (Monster m : a.monsters) {
if (tileMap.isWalkable(m.rectPosition)) continue;
Coord p = MonsterSpawningController.getRandomFreePosition(map, tileMap, a.area, m.tileSize, playerPosition);
Coord p = MonsterSpawningController.getRandomFreePosition(map, tileMap, a, m.tileSize, playerPosition);
if (p == null) continue;
m.position.set(p);
}
@@ -282,20 +315,12 @@ public final class MovementController implements TimedMessageTask.Callback {
private static Coord getFirstMapChangeAreaPosition(PredefinedMap map) {
for (MapObject o : map.eventObjects) {
if (!o.isActive) continue;
if (o.type == MapObject.MapObjectType.newmap) return o.position.topLeft;
}
return null;
}
private void cacheCurrentMapData(final Resources res, final PredefinedMap nextMap) {
LayeredTileMap mapTiles = TMXMapTranslator.readLayeredTileMap(res, world.tileManager.tileCache, nextMap);
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) {
@@ -322,13 +347,14 @@ public final class MovementController implements TimedMessageTask.Callback {
}
public static void refreshMonsterAggressiveness(final PredefinedMap map, final Player player) {
for(MonsterSpawnArea a : map.spawnAreas) {
for (Monster m : a.monsters) {
String faction = m.getFaction();
if (faction == null) continue;
if (player.getAlignment(faction) < 0) m.forceAggressive();
}
}
// Faction-related agressiveness now dynamic, and unrelated to "forceAgressive".
// for(MonsterSpawnArea a : map.spawnAreas) {
// for (Monster m : a.monsters) {
// String faction = m.getFaction();
// if (faction == null) continue;
// if (player.getAlignment(faction) < 0) m.forceAggressive();
// }
// }
}
public static boolean hasAdjacentAggressiveMonster(PredefinedMap map, Player player) {
@@ -337,7 +363,7 @@ public final class MovementController implements TimedMessageTask.Callback {
public static Monster getAdjacentAggressiveMonster(PredefinedMap map, Player player) {
for (MonsterSpawnArea a : map.spawnAreas) {
for (Monster m : a.monsters) {
if (!m.isAgressive()) continue;
if (!m.isAgressive(player)) continue;
if (m.isAdjacentTo(player)) return m;
}
}

View File

@@ -1,17 +1,17 @@
package com.gpl.rpg.AndorsTrail.controller;
import java.util.Arrays;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.util.Coord;
import com.gpl.rpg.AndorsTrail.util.CoordRect;
import java.util.Arrays;
public class PathFinder {
private final int maxWidth;
private final int maxHeight;
private final boolean visited[];
private final ListOfCoords visitQueue;
private final EvaluateWalkable map;
public int iterations = 0;
public PathFinder(int maxWidth, int maxHeight, EvaluateWalkable map) {
this.maxWidth = maxWidth;
@@ -22,12 +22,12 @@ public class PathFinder {
}
public interface EvaluateWalkable {
public boolean isWalkable(CoordRect r);
public boolean isWalkable(CoordRect r, Monster m);
}
public boolean findPathBetween(final CoordRect from, final Coord to, CoordRect nextStep) {
iterations = 0;
if (from.equals(to)) return false;
public boolean findPathBetween(final CoordRect from, final Coord to, CoordRect nextStep, Monster m) {
int iterations = 0;
if (from.contains(to)) return false;
Coord measureDistanceTo = from.topLeft;
Coord p = nextStep.topLeft;
@@ -45,19 +45,19 @@ public class PathFinder {
if (from.isAdjacentTo(p)) return true;
p.x -= 1; visit(nextStep, measureDistanceTo);
p.x += 2; visit(nextStep, measureDistanceTo);
p.x -= 1; p.y -= 1; visit(nextStep, measureDistanceTo);
p.y += 2; visit(nextStep, measureDistanceTo);
p.x -= 1; visit(nextStep, measureDistanceTo);
p.x += 2; visit(nextStep, measureDistanceTo);
p.y -= 2; visit(nextStep, measureDistanceTo);
p.x -= 2; visit(nextStep, measureDistanceTo);
p.x -= 1; visit(nextStep, measureDistanceTo, m);
p.x += 2; visit(nextStep, measureDistanceTo, m);
p.x -= 1; p.y -= 1; visit(nextStep, measureDistanceTo, m);
p.y += 2; visit(nextStep, measureDistanceTo, m);
p.x -= 1; visit(nextStep, measureDistanceTo, m);
p.x += 2; visit(nextStep, measureDistanceTo, m);
p.y -= 2; visit(nextStep, measureDistanceTo, m);
p.x -= 2; visit(nextStep, measureDistanceTo, m);
}
return false;
}
private void visit(CoordRect r, Coord measureDistanceTo) {
private void visit(CoordRect r, Coord measureDistanceTo, Monster m) {
final int x = r.topLeft.x;
final int y = r.topLeft.y;
@@ -69,7 +69,7 @@ public class PathFinder {
final int i = (y * maxWidth) + x;
if (visited[i]) return;
visited[i] = true;
if (!map.isWalkable(r)) return;
if (!map.isWalkable(r, m)) return;
int dx = (measureDistanceTo.x - x);
int dy = (measureDistanceTo.y - y);
@@ -77,7 +77,8 @@ public class PathFinder {
}
private static final class ListOfCoords {
private final int coords[];
private final int xCoords[];
private final int yCoords[];
private final int weights[];
private final int maxIndex;
private int lastIndex; // Index of the last coord that was inserted
@@ -86,25 +87,21 @@ public class PathFinder {
public ListOfCoords(int maxSize) {
this.maxIndex = maxSize-1;
this.coords = new int[maxSize];
this.xCoords = new int[maxSize];
this.yCoords = new int[maxSize];
this.weights = new int[maxSize];
}
public void reset() {
lastIndex = -1;
frontIndex = 0;
}
private static int coordsToInt(int x, int y) {
return ((y << 8) & 0xff00) | (x & 0xff);
}
private static void intToCoords(int c, Coord dest) {
dest.x = c & 0xff;
dest.y = (c >> 8) & 0xff;
}
public void push(int x, int y, int weight) {
if (lastIndex == maxIndex) return;
++lastIndex;
coords[lastIndex] = coordsToInt(x, y);
xCoords[lastIndex] = x;
yCoords[lastIndex] = y;
weights[lastIndex] = weight;
}
@@ -120,7 +117,8 @@ public class PathFinder {
lowestWeight = weights[i];
}
}
intToCoords(coords[lowestWeightIndex], dest);
dest.x = xCoords[lowestWeightIndex];
dest.y = yCoords[lowestWeightIndex];
weights[lowestWeightIndex] = DISCARDED;
// Increase frontIndex to the first index that is not discarded.

View File

@@ -1,8 +1,8 @@
package com.gpl.rpg.AndorsTrail.controller;
import android.util.FloatMath;
import com.gpl.rpg.AndorsTrail.context.ControllerContext;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.controller.listeners.CombatActionListeners;
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionType;
import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection;
@@ -21,6 +21,8 @@ import com.gpl.rpg.AndorsTrail.util.ConstRange;
public final class SkillController {
private final ControllerContext controllers;
private final WorldContext world;
public final CombatActionListeners combatActionListeners = new CombatActionListeners();
public SkillController(ControllerContext controllers, WorldContext world) {
this.controllers = controllers;
@@ -70,7 +72,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) {
@@ -80,7 +82,7 @@ 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;
}
@@ -124,6 +126,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;
}
@@ -136,6 +141,7 @@ public final class SkillController {
skill = SkillID.resistancePhysical; break;
case blood:
skill = SkillID.resistanceBlood; break;
case spiritual:
default:
return 0;
}
@@ -184,6 +190,7 @@ public final class SkillController {
public void applySkillEffectsFromMonsterAttack(AttackResult result, Monster monster) {
if (!result.isHit) {
if (rollForSkillChance(world.model.player, SkillID.taunt, SkillCollection.PER_SKILLPOINT_INCREASE_TAUNT_CHANCE)) {
combatActionListeners.onPlayerTauntsMonster(monster);
controllers.actorStatsController.changeActorAP(monster, -SkillCollection.TAUNT_AP_LOSS, false, false);
}
}
@@ -283,8 +290,10 @@ public final class SkillController {
else if (itemCategoryID.equals("axe") || itemCategoryID.equals("axe2h"))
return SkillID.weaponProficiencyAxe;
else if (itemCategoryID.equals("club") || itemCategoryID.equals("staff") || itemCategoryID.equals("mace")
|| itemCategoryID.equals("scepter") || itemCategoryID.equals("hammer") || itemCategoryID.equals("hammer2h"))
|| itemCategoryID.equals("scepter") || itemCategoryID.equals("hammer") || itemCategoryID.equals("hammer2h") || itemCategoryID.equals("whip"))
return SkillID.weaponProficiencyBlunt;
else if (itemCategoryID.equals("pole"))
return SkillID.weaponProficiencyPole;
} else if (category.isShield()) {
return SkillID.armorProficiencyShield;
} else if (category.isArmor()) {
@@ -301,6 +310,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);
@@ -327,12 +345,16 @@ public final class SkillController {
if (skillLevelFightStyle == 2) {
percent = SkillCollection.DUALWIELD_EFFICIENCY_LEVEL2;
playerTraits.attackCost = Math.max(attackCostMainHand, attackCostOffHand);
playerTraits.criticalMultiplier = Math.max(mainHandItem.effects_equip.stats.setCriticalMultiplier, getPercentage(offHandItem.effects_equip.stats.setCriticalMultiplier, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL2, 0));
} else if (skillLevelFightStyle == 1) {
percent = SkillCollection.DUALWIELD_EFFICIENCY_LEVEL1;
playerTraits.attackCost = attackCostMainHand + getPercentage(attackCostOffHand, SkillCollection.DUALWIELD_LEVEL1_OFFHAND_AP_COST_PERCENT, 0);
//Take into account the case where the worst weapon AP-wise is in the off-hand.
playerTraits.attackCost = Math.max(attackCostMainHand, attackCostOffHand) + getPercentage( Math.min(attackCostMainHand, attackCostOffHand), SkillCollection.DUALWIELD_LEVEL1_OFFHAND_AP_COST_PERCENT, 0);
playerTraits.criticalMultiplier = Math.max(mainHandItem.effects_equip.stats.setCriticalMultiplier, getPercentage(offHandItem.effects_equip.stats.setCriticalMultiplier, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL1, 0));
} else {
percent = SkillCollection.DUALWIELD_EFFICIENCY_LEVEL0;
playerTraits.attackCost = attackCostMainHand + attackCostOffHand;
playerTraits.criticalMultiplier = Math.max(mainHandItem.effects_equip.stats.setCriticalMultiplier, getPercentage(offHandItem.effects_equip.stats.setCriticalMultiplier, SkillCollection.DUALWIELD_EFFICIENCY_LEVEL0, 0));
}
final int skillLevel = getSkillLevelForItemType(player, offHandItem);
@@ -344,6 +366,14 @@ public final class SkillController {
addPercentBlockChance(player, offHandItem, percent, 100);
addPercentDamage(player, offHandItem, percent, 100);
addPercentCriticalSkill(player, offHandItem, percent, 100);
addPercentMaxHPBoost(player, offHandItem, percent, 100);
addPercentDamageResistance(player, offHandItem, percent, 100);
addPercentMaxAPBoost(player, offHandItem, percent, 100);
//Reversed parameters, as a positive value is a malus for these...
addPercentMoveCost(player, offHandItem, 100, percent);
addPercentReequipCost(player, offHandItem, 100, percent);
addPercentUseItemCost(player, offHandItem, 100, percent);
}
int skillLevelSpecialization = player.getSkillLevel(SkillID.specializationDualWield);
@@ -368,20 +398,65 @@ 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) {
if (itemType.effects_equip == null) return;
player.criticalSkill += getPercentage(itemType.effects_equip.stats.increaseCriticalSkill, percentForPositiveValues, percentForNegativeValues);
}
private static void addPercentMaxHPBoost(Player player, ItemType itemType, int percentForPositiveValues, int percentForNegativeValues) {
if (itemType.effects_equip == null) return;
player.health.addToMax(getPercentage(itemType.effects_equip.stats.increaseMaxHP, percentForPositiveValues, percentForNegativeValues));
}
private static void addPercentDamageResistance(Player player, ItemType itemType, int percentForPositiveValues, int percentForNegativeValues) {
if (itemType.effects_equip == null) return;
player.damageResistance += getPercentage(itemType.effects_equip.stats.increaseDamageResistance, percentForPositiveValues, percentForNegativeValues);
}
private static void addPercentMaxAPBoost(Player player, ItemType itemType, int percentForPositiveValues, int percentForNegativeValues) {
if (itemType.effects_equip == null) return;
player.ap.addToMax(getPercentage(itemType.effects_equip.stats.increaseMaxAP, percentForPositiveValues, percentForNegativeValues));
}
private static void addPercentMoveCost(Player player, ItemType itemType, int percentForPositiveValues, int percentForNegativeValues) {
if (itemType.effects_equip == null) return;
player.moveCost += getPercentage(itemType.effects_equip.stats.increaseMoveCost, percentForPositiveValues, percentForNegativeValues);
}
private static void addPercentUseItemCost(Player player, ItemType itemType, int percentForPositiveValues, int percentForNegativeValues) {
if (itemType.effects_equip == null) return;
player.useItemCost += getPercentage(itemType.effects_equip.stats.increaseUseItemCost, percentForPositiveValues, percentForNegativeValues);
}
private static void addPercentReequipCost(Player player, ItemType itemType, int percentForPositiveValues, int percentForNegativeValues) {
if (itemType.effects_equip == null) return;
player.reequipCost += getPercentage(itemType.effects_equip.stats.increaseReequipCost, percentForPositiveValues, percentForNegativeValues);
}
private static int getPercentage(int originalValue, int percentForPositiveValues, int percentForNegativeValues) {
if (originalValue == 0) {
return 0;
} else if (originalValue > 0) {
return (int) FloatMath.floor(originalValue * percentForPositiveValues / 100.0f);
return (int) Math.floor(originalValue * percentForPositiveValues / 100.0f);
} else {
return (int) FloatMath.floor(originalValue * percentForNegativeValues / 100.0f);
return (int) Math.floor(originalValue * percentForNegativeValues / 100.0f);
}
}
private static float getPercentage(float originalValue, int percentForPositiveValues, int percentForNegativeValues) {
if (originalValue == 0) {
return 0;
} else if (originalValue > 0) {
return originalValue * percentForPositiveValues / 100.0f;
} else {
return originalValue * percentForNegativeValues / 100.0f;
}
}

View File

@@ -3,10 +3,14 @@ package com.gpl.rpg.AndorsTrail.controller;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.Rect;
import android.os.Handler;
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.VisualEffectFrameListeners;
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.map.PredefinedMap;
@@ -25,14 +29,14 @@ public final class VisualEffectController {
private final VisualEffectCollection effectTypes;
public final VisualEffectFrameListeners visualEffectFrameListeners = new VisualEffectFrameListeners();
public VisualEffectController(ControllerContext controllers, WorldContext world) {
this.controllers = controllers;
this.world = world;
this.effectTypes = world.visualEffectTypes;
}
public void startEffect(Coord position, VisualEffectCollection.VisualEffectID effectID, int displayValue, VisualEffectCompletedCallback callback, int callbackValue) {
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();
@@ -50,20 +54,96 @@ public final class VisualEffectController {
}
public void startEnqueuedEffect(Coord position) {
if (enqueuedEffectID == null) return;
startEffect(position, enqueuedEffectID, enqueuedEffectValue, null, 0);
startEffect(position, enqueuedEffectID, (enqueuedEffectValue == 0) ? null : String.valueOf(enqueuedEffectValue), null, 0);
enqueuedEffectID = null;
enqueuedEffectValue = 0;
}
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;
private final VisualEffectCompletedCallback callback;
private final int callbackValue;
public final int duration;
public final Actor actor;
public final PredefinedMap map;
public final Coord origin;
public final Coord destination;
@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) {
this.callback = callback;
this.callbackValue = callbackValue;
this.duration = duration;
this.actor = actor;
this.map = map;
this.origin = origin;
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;
actor.vfxDuration = duration;
actor.vfxStartTime = System.currentTimeMillis();
visualEffectFrameListeners.onSpriteMoveStarted(this);
if (duration == 0 || !controllers.preferences.enableUiAnimations) onCompleted();
else {
postDelayed(this, duration);
}
}
}
public static final Paint textPaint = new Paint();
static {
textPaint.setShadowLayer(2, 1, 1, Color.DKGRAY);
textPaint.setAlpha(255);
textPaint.setTextAlign(Align.CENTER);
}
public final class VisualEffectAnimation extends Handler implements Runnable {
@Override
public void run() {
update();
if (currentFrame == effect.lastFrame) {
if (currentFrame >= effect.lastFrame) {
onCompleted();
} else {
postDelayed(this, effect.millisecondPerFrame);
postDelayed(this, effect.millisecondPerFrame * controllers.preferences.attackspeed_milliseconds / AndorsTrailPreferences.ATTACKSPEED_DEFAULT_MILLISECONDS);
update();
}
}
@@ -74,7 +154,7 @@ public final class VisualEffectController {
int tileID = effect.frameIconIDs[frame];
int textYOffset = -2 * (frame);
if (frame >= beginFadeAtFrame && displayText != null) {
this.textPaint.setAlpha(255 * (effect.lastFrame - frame) / (effect.lastFrame - beginFadeAtFrame));
textPaint.setAlpha(255 * (effect.lastFrame - frame) / (effect.lastFrame - beginFadeAtFrame));
}
area.topLeft.y = position.y - 1;
visualEffectFrameListeners.onNewAnimationFrame(this, tileID, textYOffset);
@@ -87,7 +167,8 @@ public final class VisualEffectController {
}
public void start() {
postDelayed(this, 0);
if (!controllers.preferences.enableUiAnimations) onCompleted();
else postDelayed(this, 0);
}
private int currentFrame = 0;
@@ -97,25 +178,29 @@ public final class VisualEffectController {
public final Coord position;
public final String displayText;
public final CoordRect area;
public final Paint textPaint = new Paint();
private final int beginFadeAtFrame;
private final VisualEffectCompletedCallback callback;
private final int callbackValue;
public VisualEffectAnimation(VisualEffect effect, Coord position, int displayValue, VisualEffectCompletedCallback callback, int callbackValue) {
public VisualEffectAnimation(VisualEffect effect, Coord position, String displayValue, VisualEffectCompletedCallback callback, int callbackValue) {
this.position = position;
this.callback = callback;
this.callbackValue = callbackValue;
this.area = new CoordRect(new Coord(position.x, position.y - 1), new Size(1, 2));
this.effect = effect;
this.displayText = (displayValue == 0) ? null : String.valueOf(displayValue);
this.textPaint.setColor(effect.textColor);
this.textPaint.setShadowLayer(2, 1, 1, Color.DKGRAY);
this.textPaint.setTextSize(world.tileManager.viewTileSize * 0.5f); // 32dp.
this.textPaint.setAlpha(255);
this.textPaint.setTextAlign(Align.CENTER);
this.displayText = displayValue == null ? "" : displayValue;
textPaint.setColor(effect.textColor);
textPaint.setTextSize(world.tileManager.tileSize * 0.5f); // 32dp.
Rect textBounds = new Rect();
textPaint.getTextBounds(displayText, 0, displayText.length(), textBounds);
int widthNeededInTiles = 1 + (textBounds.width() / world.tileManager.tileSize);
if (widthNeededInTiles % 2 == 0) widthNeededInTiles++;
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;
}
}
public static interface VisualEffectCompletedCallback {
@@ -183,4 +268,10 @@ public final class VisualEffectController {
return -1;
}
}
public void asyncUpdateArea(CoordRect area) {
visualEffectFrameListeners.onAsyncAreaUpdate(area);
}
}

View File

@@ -1,5 +1,13 @@
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;
@@ -8,8 +16,8 @@ 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;
@@ -21,30 +29,23 @@ 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;
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;
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);
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(
final WorldContext world,
Context context, final WorldContext world,
final PredefinedMap map,
final LayeredTileMap mapTiles,
final TileCollection cachedTiles,
@@ -52,15 +53,15 @@ public final class WorldMapController {
final String worldMapSegmentName = world.maps.getWorldMapSegmentNameForMap(map.name);
if (worldMapSegmentName == null) return;
if (!shouldUpdateWorldMap(map, worldMapSegmentName, world.maps.worldMapRequiresUpdate)) 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(map, renderer);
updateWorldMapSegment(res, world, worldMapSegmentName);
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);
@@ -73,22 +74,22 @@ public final class WorldMapController {
}).execute();
}
private static boolean shouldUpdateWorldMap(PredefinedMap map, String worldMapSegmentName, boolean forceUpdate) {
private static boolean shouldUpdateWorldMap(Context context, PredefinedMap map, String worldMapSegmentName, boolean forceUpdate) {
if (forceUpdate) return true;
if (!map.visited) return true;
File file = getFileForMap(map, false);
File file = getFileForMap(context, map, false);
if (!file.exists()) return true;
file = getCombinedWorldMapFile(worldMapSegmentName);
file = getCombinedWorldMapFile(context, worldMapSegmentName);
if (!file.exists()) return true;
return false;
}
private static void updateCachedBitmap(PredefinedMap map, MapRenderer renderer) throws IOException {
ensureWorldmapDirectoryExists();
private static void updateCachedBitmap(Context context, PredefinedMap map, MapRenderer renderer) throws IOException {
ensureWorldmapDirectoryExists(context);
File file = getFileForMap(map, false);
File file = getFileForMap(context, map, false);
if (file.exists()) return;
Bitmap image = renderer.drawMap();
@@ -114,7 +115,7 @@ public final class WorldMapController {
this.cachedTiles = cachedTiles;
this.tileSize = world.tileManager.tileSize;
this.scale = (float) WORLDMAP_SCREENSHOT_TILESIZE / world.tileManager.tileSize;
mapTiles.setColorFilter(mPaint);
mapTiles.setColorFilter(mPaint, null, true);
}
public Bitmap drawMap() {
@@ -124,9 +125,11 @@ public final class WorldMapController {
canvas.scale(scale, scale);
synchronized (cachedTiles) {
drawMapLayer(canvas, mapTiles.currentLayout.layerGround);
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;
}
@@ -148,9 +151,8 @@ public final class WorldMapController {
}
}
private static void ensureWorldmapDirectoryExists() throws IOException {
File root = Environment.getExternalStorageDirectory();
File dir = new File(root, Constants.FILENAME_SAVEGAME_DIRECTORY);
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();
@@ -158,27 +160,32 @@ public final class WorldMapController {
File noMediaFile = new File(dir, ".nomedia");
if (!noMediaFile.exists()) noMediaFile.createNewFile();
}
private static File getFileForMap(PredefinedMap map, boolean verifyFileExists) {
public static boolean fileForMapExists(Context context, PredefinedMap map) {
if (map.lastSeenLayoutHash.length() > 0) {
File fileWithHash = getPngFile(map.name + "." + map.lastSeenLayoutHash);
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(map.name);
return getPngFile(context, map.name);
}
private static File getPngFile(String fileName) {
return new File(getWorldmapDirectory(), fileName + ".png");
private static File getPngFile(Context context, String fileName) {
return new File(getWorldmapDirectory(context), fileName + ".png");
}
private static File getWorldmapDirectory() {
File dir = Environment.getExternalStorageDirectory();
dir = new File(dir, Constants.FILENAME_SAVEGAME_DIRECTORY);
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(String segmentName) {
return new File(getWorldmapDirectory(), Constants.FILENAME_WORLDMAP_HTMLFILE_PREFIX + segmentName + Constants.FILENAME_WORLDMAP_HTMLFILE_SUFFIX);
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(Resources res, WorldContext world, String segmentName) {
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());
@@ -187,7 +194,7 @@ public final class WorldMapController {
PredefinedMap predefinedMap = world.maps.findPredefinedMap(map.mapName);
if (predefinedMap == null) continue;
if (!predefinedMap.visited) continue;
File f = WorldMapController.getFileForMap(predefinedMap, true);
File f = WorldMapController.getFileForMap(context, predefinedMap, true);
if (!f.exists()) continue;
displayedMapFilenamesPerMapName.put(map.mapName, f);
@@ -286,16 +293,16 @@ public final class WorldMapController {
return new CoordRect(topLeft, new Size(bottomRight.x - topLeft.x, bottomRight.y - topLeft.y));
}
private static void updateWorldMapSegment(Resources res, WorldContext world, String segmentName) throws IOException {
String mapAsHtml = getWorldMapSegmentAsHtml(res, world, segmentName);
File outputFile = getCombinedWorldMapFile(segmentName);
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.currentMap.name);
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;

View File

@@ -9,4 +9,7 @@ public interface ActorConditionListener {
public void onActorConditionDurationChanged(Actor actor, ActorCondition condition);
public void onActorConditionMagnitudeChanged(Actor actor, ActorCondition condition);
public void onActorConditionRoundEffectApplied(Actor actor, ActorCondition condition);
public void onActorConditionImmunityAdded(Actor actor, ActorCondition condition);
public void onActorConditionImmunityRemoved(Actor actor, ActorCondition condition);
public void onActorConditionImmunityDurationChanged(Actor actor, ActorCondition condition);
}

View File

@@ -21,7 +21,16 @@ public final class ActorConditionListeners extends ListOfListeners<ActorConditio
private final Function2<ActorConditionListener, Actor, ActorCondition> onActorConditionRoundEffectApplied = new Function2<ActorConditionListener, Actor, ActorCondition>() {
@Override public void call(ActorConditionListener listener, Actor actor, ActorCondition condition) { listener.onActorConditionRoundEffectApplied(actor, condition); }
};
private final Function2<ActorConditionListener, Actor, ActorCondition> onActorConditionImmunityAdded = new Function2<ActorConditionListener, Actor, ActorCondition>() {
@Override public void call(ActorConditionListener listener, Actor actor, ActorCondition condition) { listener.onActorConditionImmunityAdded(actor, condition); }
};
private final Function2<ActorConditionListener, Actor, ActorCondition> onActorConditionImmunityRemoved = new Function2<ActorConditionListener, Actor, ActorCondition>() {
@Override public void call(ActorConditionListener listener, Actor actor, ActorCondition condition) { listener.onActorConditionImmunityRemoved(actor, condition); }
};
private final Function2<ActorConditionListener, Actor, ActorCondition> onActorConditionImmunityDurationChanged = new Function2<ActorConditionListener, Actor, ActorCondition>() {
@Override public void call(ActorConditionListener listener, Actor actor, ActorCondition condition) { listener.onActorConditionImmunityDurationChanged(actor, condition); }
};
@Override
public void onActorConditionAdded(Actor actor, ActorCondition condition) {
callAllListeners(this.onActorConditionAdded, actor, condition);
@@ -46,4 +55,20 @@ public final class ActorConditionListeners extends ListOfListeners<ActorConditio
public void onActorConditionRoundEffectApplied(Actor actor, ActorCondition condition) {
callAllListeners(this.onActorConditionRoundEffectApplied, actor, condition);
}
@Override
public void onActorConditionImmunityAdded(Actor actor, ActorCondition condition) {
callAllListeners(this.onActorConditionImmunityAdded, actor, condition);
}
@Override
public void onActorConditionImmunityRemoved(Actor actor, ActorCondition condition) {
callAllListeners(this.onActorConditionImmunityRemoved, actor, condition);
}
@Override
public void onActorConditionImmunityDurationChanged(Actor actor, ActorCondition condition) {
callAllListeners(this.onActorConditionImmunityDurationChanged, actor, condition);
}
}

View File

@@ -1,10 +1,13 @@
package com.gpl.rpg.AndorsTrail.controller.listeners;
import com.gpl.rpg.AndorsTrail.model.actor.Actor;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
public interface ActorStatsListener {
void onActorHealthChanged(Actor actor);
void onActorAPChanged(Actor actor);
void onActorAttackCostChanged(Actor actor, int newAttackCost);
void onActorMoveCostChanged(Actor actor, int newMoveCost);
void onPlayerReequipCostChanged(Player actor, int newAttackCost);
void onPlayerUseCostChanged(Player actor, int newMoveCost);
}

View File

@@ -1,6 +1,7 @@
package com.gpl.rpg.AndorsTrail.controller.listeners;
import com.gpl.rpg.AndorsTrail.model.actor.Actor;
import com.gpl.rpg.AndorsTrail.model.actor.Player;
import com.gpl.rpg.AndorsTrail.util.ListOfListeners;
public final class ActorStatsListeners extends ListOfListeners<ActorStatsListener> implements ActorStatsListener {
@@ -20,6 +21,14 @@ public final class ActorStatsListeners extends ListOfListeners<ActorStatsListene
private final Function2<ActorStatsListener, Actor, Integer> onActorMoveCostChanged = new Function2<ActorStatsListener, Actor, Integer>() {
@Override public void call(ActorStatsListener listener, Actor actor, Integer newMoveCost) { listener.onActorMoveCostChanged(actor, newMoveCost); }
};
private final Function2<ActorStatsListener, Player, Integer> onPlayerReequipCostChanged = new Function2<ActorStatsListener, Player, Integer>() {
@Override public void call(ActorStatsListener listener, Player actor, Integer newAttackCost) { listener.onPlayerReequipCostChanged(actor, newAttackCost); }
};
private final Function2<ActorStatsListener, Player, Integer> onPlayerUseCostChanged = new Function2<ActorStatsListener, Player, Integer>() {
@Override public void call(ActorStatsListener listener, Player actor, Integer newMoveCost) { listener.onPlayerUseCostChanged(actor, newMoveCost); }
};
@Override
public void onActorHealthChanged(Actor actor) {
@@ -40,4 +49,15 @@ public final class ActorStatsListeners extends ListOfListeners<ActorStatsListene
public void onActorMoveCostChanged(Actor actor, int newMoveCost) {
callAllListeners(this.onActorMoveCostChanged, actor, newMoveCost);
}
@Override
public void onPlayerReequipCostChanged(Player actor, int newAttackCost) {
callAllListeners(this.onPlayerReequipCostChanged, actor, newAttackCost);
}
@Override
public void onPlayerUseCostChanged(Player actor, int newMoveCost) {
callAllListeners(this.onPlayerUseCostChanged, actor, newMoveCost);
}
}

View File

@@ -1,6 +1,7 @@
package com.gpl.rpg.AndorsTrail.controller.listeners;
import com.gpl.rpg.AndorsTrail.controller.AttackResult;
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
public interface CombatActionListener {
@@ -13,4 +14,8 @@ public interface CombatActionListener {
void onPlayerStartedFleeing();
void onPlayerFailedFleeing();
void onPlayerDoesNotHaveEnoughAP();
void onPlayerTauntsMonster(Monster attacker);
void onPlayerReceviesActorCondition(ActorConditionEffect conditionEffect);
void onMonsterReceivesActorCondition(ActorConditionEffect conditionEffect, Monster target);
}

View File

@@ -1,6 +1,7 @@
package com.gpl.rpg.AndorsTrail.controller.listeners;
import com.gpl.rpg.AndorsTrail.controller.AttackResult;
import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.util.ListOfListeners;
@@ -41,6 +42,18 @@ public final class CombatActionListeners extends ListOfListeners<CombatActionLis
private final Function<CombatActionListener> onPlayerDoesNotHaveEnoughAP = new Function<CombatActionListener>() {
@Override public void call(CombatActionListener listener) { listener.onPlayerDoesNotHaveEnoughAP(); }
};
private final Function1<CombatActionListener, Monster> onPlayerTauntsMonster = new Function1<CombatActionListener, Monster>() {
@Override public void call(CombatActionListener listener, Monster attacker) { listener.onPlayerTauntsMonster(attacker); }
};
private final Function1<CombatActionListener, ActorConditionEffect> onPlayerReceviesActorCondition = new Function1<CombatActionListener, ActorConditionEffect>() {
@Override public void call(CombatActionListener listener, ActorConditionEffect effect) { listener.onPlayerReceviesActorCondition(effect); }
};
private final Function2<CombatActionListener, ActorConditionEffect, Monster> onMonsterReceivesActorCondition = new Function2<CombatActionListener, ActorConditionEffect, Monster>() {
@Override public void call(CombatActionListener listener, ActorConditionEffect effect, Monster target) { listener.onMonsterReceivesActorCondition(effect, target); }
};
@Override
public void onPlayerAttackMissed(Monster target, AttackResult attackResult) {
@@ -86,4 +99,20 @@ public final class CombatActionListeners extends ListOfListeners<CombatActionLis
public void onPlayerDoesNotHaveEnoughAP() {
callAllListeners(this.onPlayerDoesNotHaveEnoughAP);
}
@Override
public void onPlayerTauntsMonster(Monster attacker) {
callAllListeners(this.onPlayerTauntsMonster, attacker);
}
@Override
public void onPlayerReceviesActorCondition(ActorConditionEffect effect) {
callAllListeners(this.onPlayerReceviesActorCondition, effect);
}
@Override
public void onMonsterReceivesActorCondition(ActorConditionEffect effect, Monster target) {
callAllListeners(this.onMonsterReceivesActorCondition, effect, target);
}
}

View File

@@ -4,6 +4,6 @@ import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap;
import com.gpl.rpg.AndorsTrail.util.Coord;
public interface PlayerMovementListener {
void onPlayerMoved(Coord newPosition, Coord previousPosition);
void onPlayerMoved(PredefinedMap map, Coord newPosition, Coord previousPosition);
void onPlayerEnteredNewMap(PredefinedMap map, Coord p);
}

View File

@@ -6,8 +6,8 @@ import com.gpl.rpg.AndorsTrail.util.ListOfListeners;
public final class PlayerMovementListeners extends ListOfListeners<PlayerMovementListener> implements PlayerMovementListener {
private final Function2<PlayerMovementListener, Coord, Coord> onPlayerMoved = new Function2<PlayerMovementListener, Coord, Coord>() {
@Override public void call(PlayerMovementListener listener, Coord newPosition, Coord previousPosition) { listener.onPlayerMoved(newPosition, previousPosition); }
private final Function3<PlayerMovementListener, PredefinedMap, Coord, Coord> onPlayerMoved = new Function3<PlayerMovementListener, PredefinedMap, Coord, Coord>() {
@Override public void call(PlayerMovementListener listener, PredefinedMap map, Coord newPosition, Coord previousPosition) { listener.onPlayerMoved(map, newPosition, previousPosition); }
};
private final Function2<PlayerMovementListener, PredefinedMap, Coord> onPlayerEnteredNewMap = new Function2<PlayerMovementListener, PredefinedMap, Coord>() {
@@ -15,8 +15,8 @@ public final class PlayerMovementListeners extends ListOfListeners<PlayerMovemen
};
@Override
public void onPlayerMoved(Coord newPosition, Coord previousPosition) {
callAllListeners(this.onPlayerMoved, newPosition, previousPosition);
public void onPlayerMoved(PredefinedMap map, Coord newPosition, Coord previousPosition) {
callAllListeners(this.onPlayerMoved, map, newPosition, previousPosition);
}
@Override

View File

@@ -0,0 +1,14 @@
package com.gpl.rpg.AndorsTrail.controller.listeners;
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.SpriteMoveAnimation;
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAnimation;
import com.gpl.rpg.AndorsTrail.util.CoordRect;
public interface VisualEffectFrameListener {
void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset);
void onAnimationCompleted(VisualEffectAnimation animation);
void onSpriteMoveStarted(SpriteMoveAnimation animation);
void onNewSpriteMoveFrame(SpriteMoveAnimation animation);
void onSpriteMoveCompleted(SpriteMoveAnimation animation);
void onAsyncAreaUpdate(CoordRect area);
}

View File

@@ -0,0 +1,63 @@
package com.gpl.rpg.AndorsTrail.controller.listeners;
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.SpriteMoveAnimation;
import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAnimation;
import com.gpl.rpg.AndorsTrail.util.CoordRect;
import com.gpl.rpg.AndorsTrail.util.ListOfListeners;
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, VisualEffectAnimation> onAnimationCompleted = new Function1<VisualEffectFrameListener, VisualEffectAnimation>() {
@Override public void call(VisualEffectFrameListener listener, VisualEffectAnimation animation) { listener.onAnimationCompleted(animation); }
};
private final Function1<VisualEffectFrameListener, SpriteMoveAnimation> onSpriteMoveStarted = new Function1<VisualEffectFrameListener, SpriteMoveAnimation>() {
@Override public void call(VisualEffectFrameListener listener, SpriteMoveAnimation animation) { listener.onSpriteMoveStarted(animation); }
};
private final Function1<VisualEffectFrameListener, SpriteMoveAnimation> onNewSpriteMoveFrame = new Function1<VisualEffectFrameListener, SpriteMoveAnimation>() {
@Override public void call(VisualEffectFrameListener listener, SpriteMoveAnimation animation) { listener.onNewSpriteMoveFrame(animation); }
};
private final Function1<VisualEffectFrameListener, SpriteMoveAnimation> onSpriteMoveCompleted = new Function1<VisualEffectFrameListener, SpriteMoveAnimation>() {
@Override public void call(VisualEffectFrameListener listener, SpriteMoveAnimation animation) { listener.onSpriteMoveCompleted(animation); }
};
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);
}
@Override
public void onAnimationCompleted(VisualEffectAnimation animation) {
callAllListeners(this.onAnimationCompleted, animation);
}
@Override
public void onSpriteMoveStarted(SpriteMoveAnimation animation) {
callAllListeners(this.onSpriteMoveStarted, animation);
}
@Override
public void onNewSpriteMoveFrame(SpriteMoveAnimation animation) {
callAllListeners(this.onNewSpriteMoveFrame, animation);
}
@Override
public void onSpriteMoveCompleted(SpriteMoveAnimation animation) {
callAllListeners(this.onSpriteMoveCompleted, animation);
}
@Override
public void onAsyncAreaUpdate(CoordRect area) {
callAllListeners(this.onAsyncAreaUpdate, area);
}
}

View File

@@ -1,13 +1,14 @@
package com.gpl.rpg.AndorsTrail.controller.listeners;
import java.util.Collection;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
import java.util.Collection;
public interface WorldEventListener {
void onPlayerStartedConversation(Monster m, String phraseID);
void onScriptAreaStartedConversation(String phraseID);
void onPlayerSteppedOnMonster(Monster m);
void onPlayerSteppedOnMapSignArea(MapObject area);
void onPlayerSteppedOnKeyArea(MapObject area);

View File

@@ -1,18 +1,22 @@
package com.gpl.rpg.AndorsTrail.controller.listeners;
import java.util.Collection;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.model.item.Loot;
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
import com.gpl.rpg.AndorsTrail.util.ListOfListeners;
import java.util.Collection;
public final class WorldEventListeners extends ListOfListeners<WorldEventListener> implements WorldEventListener {
private final Function2<WorldEventListener, Monster, String> onPlayerStartedConversation = new Function2<WorldEventListener, Monster, String>() {
@Override public void call(WorldEventListener listener, Monster m, String phraseID) { listener.onPlayerStartedConversation(m, phraseID); }
};
private final Function1<WorldEventListener, String> onScriptAreaStartedConversation = new Function1<WorldEventListener, String>() {
@Override public void call(WorldEventListener listener, String phraseID) { listener.onScriptAreaStartedConversation(phraseID); }
};
private final Function1<WorldEventListener, Monster> onPlayerSteppedOnMonster = new Function1<WorldEventListener, Monster>() {
@Override public void call(WorldEventListener listener, Monster m) { listener.onPlayerSteppedOnMonster(m); }
};
@@ -58,6 +62,11 @@ public final class WorldEventListeners extends ListOfListeners<WorldEventListene
callAllListeners(this.onPlayerStartedConversation, m, phraseID);
}
@Override
public void onScriptAreaStartedConversation(String phraseID) {
callAllListeners(this.onScriptAreaStartedConversation, phraseID);
}
@Override
public void onPlayerSteppedOnMonster(Monster m) {
callAllListeners(this.onPlayerSteppedOnMonster, m);

View File

@@ -1,30 +1,48 @@
package com.gpl.rpg.AndorsTrail.model;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
import android.content.res.Resources;
import com.gpl.rpg.AndorsTrail.R;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
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 java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.*;
import java.util.Map.Entry;
import com.gpl.rpg.AndorsTrail.util.HashMapHelper;
public final class GameStatistics {
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;
private int startLives = -1; // -1 --> unlimited
public GameStatistics() { }
public void addMonsterKill(String monsterTypeID) {
if (!killedMonsters.containsKey(monsterTypeID)) killedMonsters.put(monsterTypeID, 1);
else killedMonsters.put(monsterTypeID, killedMonsters.get(monsterTypeID) + 1);
public GameStatistics(boolean unlimitedSaves, int startLives) {
this.unlimitedSaves = unlimitedSaves;
this.startLives = startLives;
}
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;
}
@@ -33,8 +51,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() {
@@ -45,31 +62,41 @@ public final class GameStatistics {
return spentGold;
}
public boolean hasUnlimitedSaves() { return unlimitedSaves; }
public boolean hasUnlimitedLives() { return startLives == -1; }
public int getStartLives() { return startLives; }
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);
}
@@ -113,15 +140,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) {
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>>() {
@@ -145,8 +172,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();
@@ -156,11 +189,16 @@ public final class GameStatistics {
this.usedItems.put(name, value);
}
this.spentGold = src.readInt();
if (fileversion < 49) return;
this.startLives = src.readInt();
this.unlimitedSaves = src.readBoolean();
}
public void writeToParcel(DataOutputStream dest, int flags) throws IOException {
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());
@@ -173,5 +211,7 @@ public final class GameStatistics {
dest.writeInt(e.getValue());
}
dest.writeInt(spentGold);
dest.writeInt(startLives);
dest.writeBoolean(unlimitedSaves);
}
}

View File

@@ -1,13 +1,12 @@
package com.gpl.rpg.AndorsTrail.model;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.util.Coord;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import com.gpl.rpg.AndorsTrail.model.actor.Monster;
import com.gpl.rpg.AndorsTrail.util.Coord;
public final class InterfaceData {
public boolean isMainActivityVisible = false;
public boolean isInCombat = false;
@@ -17,12 +16,19 @@ public final class InterfaceData {
public String selectedTabHeroInfo = "";
public int selectedQuestFilter = 0; // Should not be parceled
public int selectedInventoryCategory = 0; //All
public int selectedInventorySort = 0; //Unsorted
public int oldSortSelection = 0; // Later will be used for reversing ascending/descending order
public int selectedSkillCategory = 0; //All
public int selectedSkillSort = 0; //Unsorted
public int selectedShopSort = 0; //Unsorted
public InterfaceData() { }
// ====== PARCELABLE ===================================================================
public InterfaceData(DataInputStream src, WorldContext world, int fileversion) throws IOException {
public InterfaceData(DataInputStream src, int fileversion) throws IOException {
this.isMainActivityVisible = src.readBoolean();
this.isInCombat = src.readBoolean();
final boolean hasSelectedPosition = src.readBoolean();
@@ -34,12 +40,12 @@ public final class InterfaceData {
this.selectedTabHeroInfo = src.readUTF();
}
public void writeToParcel(DataOutputStream dest, int flags) throws IOException {
public void writeToParcel(DataOutputStream dest) throws IOException {
dest.writeBoolean(isMainActivityVisible);
dest.writeBoolean(isInCombat);
if (selectedPosition != null) {
dest.writeBoolean(true);
selectedPosition.writeToParcel(dest, flags);
selectedPosition.writeToParcel(dest);
} else {
dest.writeBoolean(false);
}

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

@@ -1,15 +1,13 @@
package com.gpl.rpg.AndorsTrail.model;
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;
import java.io.DataInputStream;
import java.io.DataOutputStream;
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;
public final class ModelContainer {
public final Player player;
@@ -17,27 +15,26 @@ 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() {
public ModelContainer(int startLives, boolean unlimitedSaves) {
player = new Player();
uiSelections = new InterfaceData();
statistics = new GameStatistics();
statistics = new GameStatistics(unlimitedSaves, startLives);
worldData = new WorldData();
}
// ====== PARCELABLE ===================================================================
public ModelContainer(DataInputStream src, WorldContext world, ControllerContext controllers, int fileversion) throws IOException {
this.player = Player.readFromParcel(src, world, controllers, fileversion);
this.currentMap = world.maps.findPredefinedMap(src.readUTF());
this.uiSelections = new InterfaceData(src, world, fileversion);
this.player = Player.newFromParcel(src, world, controllers, fileversion);
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 {
@@ -45,11 +42,11 @@ public final class ModelContainer {
}
}
public void writeToParcel(DataOutputStream dest, int flags) throws IOException {
player.writeToParcel(dest, flags);
dest.writeUTF(currentMap.name);
uiSelections.writeToParcel(dest, flags);
statistics.writeToParcel(dest, flags);
worldData.writeToParcel(dest, flags);
public void writeToParcel(DataOutputStream dest) throws IOException {
player.writeToParcel(dest);
dest.writeUTF(currentMaps.map.name);
uiSelections.writeToParcel(dest);
statistics.writeToParcel(dest);
worldData.writeToParcel(dest);
}
}

View File

@@ -0,0 +1,59 @@
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;
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;
}
// ====== 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());
}
}
}

View File

@@ -1,20 +1,25 @@
package com.gpl.rpg.AndorsTrail.model.ability;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import com.gpl.rpg.AndorsTrail.context.WorldContext;
public final class ActorCondition {
public static final int MAGNITUDE_REMOVE_ALL = -99;
public static final int DURATION_FOREVER = 999;
public static final int DURATION_NONE = 0;
public final ActorConditionType conditionType;
public int magnitude;
public int duration;
public ActorCondition(ActorConditionType conditionType, int magnitude, int duration) {
public ActorCondition(
ActorConditionType conditionType
, int magnitude
, int duration
) {
this.conditionType = conditionType;
this.magnitude = magnitude;
this.duration = duration;
@@ -35,7 +40,7 @@ public final class ActorCondition {
this.duration = src.readInt();
}
public void writeToParcel(DataOutputStream dest, int flags) throws IOException {
public void writeToParcel(DataOutputStream dest) throws IOException {
dest.writeUTF(conditionType.conditionTypeID);
dest.writeInt(magnitude);
dest.writeInt(duration);

View File

@@ -8,15 +8,24 @@ public final class ActorConditionEffect {
public final int duration;
public final ConstRange chance;
public ActorConditionEffect(ActorConditionType conditionType, int magnitude, int duration, ConstRange chance) {
public ActorConditionEffect(
ActorConditionType conditionType
, int magnitude
, int duration
, ConstRange chance
) {
this.conditionType = conditionType;
this.magnitude = magnitude;
this.duration = duration;
this.chance = chance;
}
public boolean isImmunity() {
return magnitude == ActorCondition.MAGNITUDE_REMOVE_ALL && duration != ActorCondition.DURATION_NONE;
}
public boolean isRemovalEffect() {
return magnitude == ActorCondition.MAGNITUDE_REMOVE_ALL;
return magnitude == ActorCondition.MAGNITUDE_REMOVE_ALL && duration == ActorCondition.DURATION_NONE;
}
public ActorCondition createCondition() { return createCondition(duration); }

View File

@@ -19,15 +19,16 @@ public final class ActorConditionType {
public final AbilityModifierTraits abilityEffect;
public ActorConditionType(
String conditionTypeID,
String name,
int iconID,
ConditionCategory conditionCategory,
boolean isStacking,
boolean isPositive,
StatsModifierTraits statsEffect_everyRound,
StatsModifierTraits statsEffect_everyFullRound,
AbilityModifierTraits abilityEffect) {
String conditionTypeID
, String name
, int iconID
, ConditionCategory conditionCategory
, boolean isStacking
, boolean isPositive
, StatsModifierTraits statsEffect_everyRound
, StatsModifierTraits statsEffect_everyFullRound
, AbilityModifierTraits abilityEffect
) {
this.conditionTypeID = conditionTypeID;
this.name = name;
this.iconID = iconID;

View File

@@ -1,11 +1,11 @@
package com.gpl.rpg.AndorsTrail.model.ability;
import java.util.HashMap;
import com.gpl.rpg.AndorsTrail.AndorsTrailApplication;
import com.gpl.rpg.AndorsTrail.resource.parsers.ActorConditionsTypeParser;
import com.gpl.rpg.AndorsTrail.util.L;
import java.util.HashMap;
public final class ActorConditionTypeCollection {
private final HashMap<String, ActorConditionType> conditionTypes = new HashMap<String, ActorConditionType>();

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