mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-02-23 15:38:29 +01:00
Compare commits
71 Commits
gra
...
gitignore-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af248d3e02 | ||
|
|
ec8b114782 | ||
|
|
aaecb8ae4a | ||
|
|
322007e5ac | ||
|
|
7b5fc79375 | ||
|
|
72a19eeb80 | ||
|
|
a993cc5a08 | ||
|
|
83724ba408 | ||
|
|
a4cd8f7460 | ||
|
|
7a52bbb9f3 | ||
|
|
3552ff8a9f | ||
|
|
0e081f3319 | ||
|
|
1d94519e1c | ||
|
|
0bbc6adb4b | ||
|
|
b48ddd4999 | ||
|
|
be8dad981d | ||
|
|
f9708f48a4 | ||
|
|
155b01bdea | ||
|
|
19810b2099 | ||
|
|
c6886f7a3e | ||
|
|
3bea24f9cc | ||
|
|
4b8f5c4908 | ||
|
|
66d9618b1b | ||
|
|
488d6347d0 | ||
|
|
51fd0d0994 | ||
|
|
50833af145 | ||
|
|
ca7c2388aa | ||
|
|
8e7d6adca5 | ||
|
|
17edb96ff8 | ||
|
|
3f3869916c | ||
|
|
1d2fc7ade7 | ||
|
|
aa84e5a73d | ||
|
|
4ecf7d2dda | ||
|
|
dca1cb676c | ||
|
|
9a4f41eac2 | ||
|
|
23012b0d40 | ||
|
|
916134bd9b | ||
|
|
1d6777daae | ||
|
|
4793751ba8 | ||
|
|
185c0eaf7c | ||
|
|
4b50d13149 | ||
|
|
23b58c3e7c | ||
|
|
2d5ebc3b13 | ||
|
|
59e2e3035c | ||
|
|
6d5ddfdbfa | ||
|
|
f8ae18721f | ||
|
|
63bc7c3a4e | ||
|
|
8e72763314 | ||
|
|
9310d53362 | ||
|
|
a71dcc13a3 | ||
|
|
ea95f4ff87 | ||
|
|
f35167d112 | ||
|
|
9f935190f2 | ||
|
|
c11430cf6b | ||
|
|
8f97a27ab7 | ||
|
|
9e36f848dc | ||
|
|
b24d52b1da | ||
|
|
e2a9307560 | ||
|
|
e3ac804f61 | ||
|
|
fd504d2df5 | ||
|
|
0e615d3f11 | ||
|
|
47646457ab | ||
|
|
8e393b93d8 | ||
|
|
3289bd6fb1 | ||
|
|
23a331d655 | ||
|
|
112301c444 | ||
|
|
f50e4f1d38 | ||
|
|
d623c22b38 | ||
|
|
d11bf5b0aa | ||
|
|
e30f67e327 | ||
|
|
96a1a5760a |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1 +0,0 @@
|
||||
/AndorsTrail/.idea/workspace.xml
|
||||
|
||||
64
AndorsTrail/.gitignore
vendored
64
AndorsTrail/.gitignore
vendored
@@ -1,55 +1,23 @@
|
||||
# Android ignores
|
||||
# Android Module ignores (we would overwrite them in the build script anyway)
|
||||
app/src/main/res
|
||||
app/src/main/assets
|
||||
gen/
|
||||
bin/
|
||||
target/
|
||||
local.properties
|
||||
app/build/intermediates/
|
||||
build/
|
||||
debug/
|
||||
release/
|
||||
|
||||
# Gradle files
|
||||
.gradle/
|
||||
build/
|
||||
|
||||
#IntelliJ
|
||||
.idea/
|
||||
out/production/
|
||||
out/test/
|
||||
*.iws
|
||||
*.ipr
|
||||
# Local configuration file (sdk path, etc)
|
||||
local.properties
|
||||
|
||||
# Other
|
||||
.metadata
|
||||
.svn/
|
||||
# Log/OS Files
|
||||
*.log
|
||||
|
||||
# Android Studio generated files and folders
|
||||
captures/
|
||||
.externalNativeBuild/
|
||||
.cxx/
|
||||
*.apk
|
||||
output.json
|
||||
|
||||
#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/
|
||||
*.jks
|
||||
*.keystore
|
||||
|
||||
Binary file not shown.
Binary file not shown.
8
AndorsTrail/.idea/.gitignore
generated
vendored
Normal file
8
AndorsTrail/.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
workspace.xml
|
||||
|
||||
misc.xml
|
||||
deploymentTargetDropDown.xml
|
||||
render.experimental.xml
|
||||
.editorconfig
|
||||
139
AndorsTrail/.idea/codeStyles/Project.xml
generated
Normal file
139
AndorsTrail/.idea/codeStyles/Project.xml
generated
Normal file
@@ -0,0 +1,139 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<codeStyleSettings language="JAVA">
|
||||
<option name="RIGHT_MARGIN" value="110" />
|
||||
<option name="KEEP_LINE_BREAKS" value="false" />
|
||||
<option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
|
||||
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
|
||||
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
|
||||
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
|
||||
<option name="ALIGN_MULTILINE_ASSIGNMENT" value="true" />
|
||||
<option name="ALIGN_MULTILINE_PARENTHESIZED_EXPRESSION" value="true" />
|
||||
<option name="CALL_PARAMETERS_WRAP" value="5" />
|
||||
<option name="PREFER_PARAMETERS_WRAP" value="true" />
|
||||
<option name="METHOD_PARAMETERS_WRAP" value="5" />
|
||||
<option name="RESOURCE_LIST_WRAP" value="5" />
|
||||
<option name="METHOD_CALL_CHAIN_WRAP" value="5" />
|
||||
<option name="BINARY_OPERATION_WRAP" value="5" />
|
||||
<option name="BINARY_OPERATION_SIGN_ON_NEXT_LINE" value="true" />
|
||||
<option name="TERNARY_OPERATION_WRAP" value="5" />
|
||||
<option name="TERNARY_OPERATION_SIGNS_ON_NEXT_LINE" value="true" />
|
||||
<option name="IF_BRACE_FORCE" value="1" />
|
||||
<option name="FOR_BRACE_FORCE" value="3" />
|
||||
<option name="SOFT_MARGINS" value="100" />
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="XML">
|
||||
<option name="FORCE_REARRANGE_MODE" value="1" />
|
||||
<indentOptions>
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
</indentOptions>
|
||||
<arrangement>
|
||||
<rules>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:android</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>xmlns:.*</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:id</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*:name</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>name</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>style</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>^$</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>ANDROID_ATTRIBUTE_ORDER</order>
|
||||
</rule>
|
||||
</section>
|
||||
<section>
|
||||
<rule>
|
||||
<match>
|
||||
<AND>
|
||||
<NAME>.*</NAME>
|
||||
<XML_ATTRIBUTE />
|
||||
<XML_NAMESPACE>.*</XML_NAMESPACE>
|
||||
</AND>
|
||||
</match>
|
||||
<order>BY_NAME</order>
|
||||
</rule>
|
||||
</section>
|
||||
</rules>
|
||||
</arrangement>
|
||||
</codeStyleSettings>
|
||||
</code_scheme>
|
||||
</component>
|
||||
5
AndorsTrail/.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
5
AndorsTrail/.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
@@ -0,0 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||
</state>
|
||||
</component>
|
||||
2
AndorsTrail/.idea/gradle.xml
generated
2
AndorsTrail/.idea/gradle.xml
generated
@@ -7,7 +7,7 @@
|
||||
<option name="testRunner" value="GRADLE" />
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="1.8" />
|
||||
<option name="gradleJvm" value="11" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
|
||||
10
AndorsTrail/.idea/misc.xml
generated
10
AndorsTrail/.idea/misc.xml
generated
@@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
<option name="id" value="Android" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -12,12 +12,41 @@ android {
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.gpl.rpg.AndorsTrail"
|
||||
android:versionCode="66"
|
||||
android:versionName="0.8.2"
|
||||
android:versionCode="68"
|
||||
android:versionName="0.8.4dev"
|
||||
android:installLocation="auto"
|
||||
>
|
||||
<uses-sdk
|
||||
@@ -27,7 +27,7 @@
|
||||
<application
|
||||
android:name="com.gpl.rpg.AndorsTrail.AndorsTrailApplication"
|
||||
android:label="@string/app_name"
|
||||
android:icon="@drawable/icon"
|
||||
android:icon="@drawable/${icon_name}"
|
||||
android:description="@string/app_description"
|
||||
android:allowBackup="true"
|
||||
android:theme="@style/AndorsTrailTheme_Blue"
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
<provider
|
||||
android:name="android.support.v4.content.FileProvider"
|
||||
android:authorities="com.gpl.rpg.AndorsTrail.fileprovider"
|
||||
android:authorities="${applicationId}.fileprovider"
|
||||
android:grantUriPermissions="true"
|
||||
android:exported="false">
|
||||
<meta-data
|
||||
|
||||
@@ -24,15 +24,15 @@ 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_DEBUGBUTTONS = true;
|
||||
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.2";
|
||||
public static final boolean DEVELOPMENT_VALIDATEDATA = true;
|
||||
public static final boolean DEVELOPMENT_DEBUGMESSAGES = true;
|
||||
public static final String CURRENT_VERSION_DISPLAY = "0.8.4dev";
|
||||
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 : 66;
|
||||
public static final int CURRENT_VERSION = DEVELOPMENT_INCOMPATIBLE_SAVEGAMES ? DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION : 68;
|
||||
|
||||
private final AndorsTrailPreferences preferences = new AndorsTrailPreferences();
|
||||
private WorldContext world = new WorldContext();
|
||||
|
||||
@@ -46,14 +46,15 @@ import com.gpl.rpg.AndorsTrail.model.item.Loot;
|
||||
import com.gpl.rpg.AndorsTrail.model.map.MapObject;
|
||||
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
|
||||
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
|
||||
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory.CustomDialog;
|
||||
import com.gpl.rpg.AndorsTrail.view.ItemContainerAdapter;
|
||||
|
||||
public final class Dialogs {
|
||||
|
||||
private static void showDialogAndPause(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();
|
||||
CustomDialogFactory.setDismissListener(d, new OnDismissListener() {
|
||||
@Override
|
||||
@@ -195,7 +196,7 @@ public final class Dialogs {
|
||||
// itemList.setPadding(20, 0, 20, 20);
|
||||
itemList.setAdapter(new ItemContainerAdapter(mainActivity, world.tileManager, combinedLoot.items, world.model.player));
|
||||
|
||||
final Dialog d = CustomDialogFactory.createDialog(mainActivity,
|
||||
final CustomDialog d = CustomDialogFactory.createDialog(mainActivity,
|
||||
mainActivity.getResources().getString(title),
|
||||
mainActivity.getResources().getDrawable(R.drawable.ui_icon_equipment),
|
||||
msg,
|
||||
@@ -249,7 +250,7 @@ public final class Dialogs {
|
||||
}
|
||||
|
||||
public static void showHeroDied(final MainActivity mainActivity, final ControllerContext controllers) {
|
||||
final Dialog d = CustomDialogFactory.createDialog(mainActivity,
|
||||
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),
|
||||
@@ -286,7 +287,7 @@ public final class Dialogs {
|
||||
}
|
||||
|
||||
public static void showConfirmRest(final Activity currentActivity, final ControllerContext controllerContext, final MapObject area) {
|
||||
final Dialog d = CustomDialogFactory.createDialog(currentActivity,
|
||||
final CustomDialog d = CustomDialogFactory.createDialog(currentActivity,
|
||||
currentActivity.getResources().getString(R.string.dialog_rest_title),
|
||||
null,
|
||||
currentActivity.getResources().getString(R.string.dialog_rest_confirm_message),
|
||||
@@ -310,7 +311,7 @@ public final class Dialogs {
|
||||
// .setMessage(R.string.dialog_rest_message)
|
||||
// .setNeutralButton(android.R.string.ok, null)
|
||||
// .create();
|
||||
final Dialog d = CustomDialogFactory.createDialog(currentActivity,
|
||||
final CustomDialog d = CustomDialogFactory.createDialog(currentActivity,
|
||||
currentActivity.getResources().getString(R.string.dialog_rest_title),
|
||||
null,
|
||||
currentActivity.getResources().getString(R.string.dialog_rest_message),
|
||||
@@ -336,7 +337,7 @@ public final class Dialogs {
|
||||
text += currentActivity.getResources().getString(R.string.dialog_newversion_permission_information);
|
||||
}
|
||||
|
||||
final Dialog d = CustomDialogFactory.createDialog(currentActivity,
|
||||
final CustomDialog d = CustomDialogFactory.createDialog(currentActivity,
|
||||
currentActivity.getResources().getString(R.string.dialog_newversion_title),
|
||||
null,
|
||||
text,
|
||||
@@ -371,7 +372,7 @@ public final class Dialogs {
|
||||
}
|
||||
|
||||
if (!world.model.statistics.hasUnlimitedSaves()) {
|
||||
final Dialog d = CustomDialogFactory.createDialog(mainActivity,
|
||||
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),
|
||||
@@ -460,7 +461,7 @@ public final class Dialogs {
|
||||
itemList.setAdapter(new ArrayAdapter<String>(context, R.layout.combatlog_row, android.R.id.text1, combatLogMessages));
|
||||
view = itemList;
|
||||
|
||||
final Dialog d = CustomDialogFactory.createDialog(context,
|
||||
final CustomDialog d = CustomDialogFactory.createDialog(context,
|
||||
context.getResources().getString(R.string.combat_log_title),
|
||||
context.getResources().getDrawable(R.drawable.ui_icon_combat),
|
||||
null,
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.gpl.rpg.AndorsTrail.controller.ItemController;
|
||||
import com.gpl.rpg.AndorsTrail.model.item.ItemType;
|
||||
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
|
||||
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
|
||||
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory.CustomDialog;
|
||||
|
||||
/**
|
||||
* @author ejwessel
|
||||
@@ -206,7 +207,7 @@ public final class BulkSelectionInterface extends AndorsTrailBaseActivity implem
|
||||
// })
|
||||
// .setNegativeButton(android.R.string.no, null)
|
||||
// .show();
|
||||
final Dialog d = CustomDialogFactory.createDialog(v.getContext(),
|
||||
final CustomDialog d = CustomDialogFactory.createDialog(v.getContext(),
|
||||
v.getContext().getResources().getString(R.string.bulkselection_sell_confirmation_title),
|
||||
v.getContext().getResources().getDrawable(android.R.drawable.ic_dialog_info),
|
||||
message,
|
||||
|
||||
@@ -1,16 +1,29 @@
|
||||
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;
|
||||
@@ -22,241 +35,732 @@ 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;
|
||||
private static final int SLOT_NUMBER_CREATE_NEW_SLOT = -1;
|
||||
private static final int SLOT_NUMBER_FIRST_SLOT = 1;
|
||||
private ModelContainer model;
|
||||
private TileManager tileManager;
|
||||
private AndorsTrailPreferences preferences;
|
||||
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);
|
||||
@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;
|
||||
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"));
|
||||
String loadsave = getIntent().getData().getLastPathSegment();
|
||||
isLoading = (loadsave.equalsIgnoreCase("load"));
|
||||
|
||||
setContentView(R.layout.loadsave);
|
||||
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);
|
||||
}
|
||||
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 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);
|
||||
ViewGroup newSlotContainer = (ViewGroup) findViewById(R.id.loadsave_save_to_new_slot_container);
|
||||
Button createNewSlot = (Button) findViewById(R.id.loadsave_save_to_new_slot);
|
||||
|
||||
addSavegameSlotButtons(slotList, params, Savegames.getUsedSavegameSlots(this));
|
||||
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);
|
||||
|
||||
checkAndRequestPermissions();
|
||||
|
||||
if (!isLoading) {
|
||||
createNewSlot.setTag(SLOT_NUMBER_CREATE_NEW_SLOT);
|
||||
createNewSlot.setOnClickListener(this);
|
||||
newSlotContainer.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
newSlotContainer.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
exportSaves.setTag(SLOT_NUMBER_EXPORT_SAVEGAMES);
|
||||
importSaves.setTag(SLOT_NUMBER_IMPORT_SAVEGAMES);
|
||||
importWorldmap.setTag(SLOT_NUMBER_IMPORT_WORLDMAP);
|
||||
|
||||
private static final int READ_EXTERNAL_STORAGE_REQUEST=1;
|
||||
private static final int WRITE_EXTERNAL_STORAGE_REQUEST=2;
|
||||
|
||||
@TargetApi(23)
|
||||
private void checkAndRequestPermissions() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && 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);
|
||||
}
|
||||
}
|
||||
|
||||
public void loadsave(int slot) {
|
||||
if (slot == SLOT_NUMBER_CREATE_NEW_SLOT) {
|
||||
List<Integer> usedSlots = Savegames.getUsedSavegameSlots(this);
|
||||
if (usedSlots.isEmpty()) slot = SLOT_NUMBER_FIRST_SLOT;
|
||||
else slot = Collections.max(usedSlots) + 1;
|
||||
}
|
||||
if (slot < SLOT_NUMBER_FIRST_SLOT) slot = SLOT_NUMBER_FIRST_SLOT;
|
||||
|
||||
Intent i = new Intent();
|
||||
i.putExtra("slot", slot);
|
||||
setResult(Activity.RESULT_OK, i);
|
||||
LoadSaveActivity.this.finish();
|
||||
}
|
||||
|
||||
private String getConfirmOverwriteQuestion(int slot) {
|
||||
if (isLoading) return null;
|
||||
if (slot == SLOT_NUMBER_CREATE_NEW_SLOT) return null; // if we're creating a new slot
|
||||
if (!Savegames.getSlotFile(slot, this).exists()) return null;
|
||||
|
||||
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 (!isLoading && slot != SLOT_NUMBER_CREATE_NEW_SLOT && AndorsTrailApplication.CURRENT_VERSION == AndorsTrailApplication.DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION) {
|
||||
final FileHeader header = Savegames.quickload(this, slot);
|
||||
if (header != null && header.fileversion != AndorsTrailApplication.DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION) {
|
||||
final Dialog d = CustomDialogFactory.createDialog(this,
|
||||
"Overwriting not allowed",
|
||||
getResources().getDrawable(android.R.drawable.ic_dialog_alert),
|
||||
"You are currently using a development version of Andor's trail. Overwriting a regular savegame is not allowed in development mode.",
|
||||
null,
|
||||
true);
|
||||
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
|
||||
CustomDialogFactory.show(d);
|
||||
return;
|
||||
}
|
||||
}
|
||||
ViewGroup exportImportContainer = (ViewGroup) findViewById(R.id.loadsave_export_import_save_container);
|
||||
|
||||
|
||||
if (isLoading) {
|
||||
if(!Savegames.getSlotFile(slot, this).exists()) {
|
||||
showErrorLoadingEmptySlot();
|
||||
} else {
|
||||
final FileHeader header = Savegames.quickload(this, slot);
|
||||
if (header != null && !header.hasUnlimitedSaves) {
|
||||
showSlotGetsDeletedOnLoadWarning(slot);
|
||||
} else {
|
||||
loadsave(slot);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
final String message = getConfirmOverwriteQuestion(slot);
|
||||
if (message != null) {
|
||||
showConfirmoverwriteQuestion(slot, message);
|
||||
} else {
|
||||
loadsave(slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
addSavegameSlotButtons(slotList, params, Savegames.getUsedSavegameSlots(this));
|
||||
|
||||
private void showErrorLoadingEmptySlot() {
|
||||
final Dialog d = CustomDialogFactory.createDialog(this,
|
||||
getString(R.string.startscreen_error_loading_game),
|
||||
getResources().getDrawable(android.R.drawable.ic_dialog_alert),
|
||||
getString(R.string.startscreen_error_loading_empty_slot),
|
||||
null,
|
||||
true);
|
||||
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
|
||||
CustomDialogFactory.show(d);
|
||||
}
|
||||
checkAndRequestPermissions();
|
||||
|
||||
private void showSlotGetsDeletedOnLoadWarning(final int slot) {
|
||||
final Dialog 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, new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
loadsave(slot);
|
||||
}
|
||||
});
|
||||
CustomDialogFactory.show(d);
|
||||
}
|
||||
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);
|
||||
|
||||
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 Dialog d = CustomDialogFactory.createDialog(this,
|
||||
title,
|
||||
getResources().getDrawable(android.R.drawable.ic_dialog_alert),
|
||||
message,
|
||||
null,
|
||||
true);
|
||||
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
|
||||
|
||||
CustomDialogFactory.addButton(d, android.R.string.yes, new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
loadsave(slot);
|
||||
}
|
||||
});
|
||||
CustomDialogFactory.addDismissButton(d, android.R.string.no);
|
||||
CustomDialogFactory.show(d);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,11 +20,12 @@ 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 Dialog progressDialog;
|
||||
private CustomDialog progressDialog;
|
||||
private CloudsAnimatorView clouds_back, clouds_mid, clouds_front;
|
||||
boolean loaded = false;
|
||||
|
||||
@@ -165,7 +166,7 @@ public final class LoadingActivity extends AndorsTrailBaseActivity implements On
|
||||
}
|
||||
|
||||
private void showLoadingFailedDialog(int messageResourceID) {
|
||||
final Dialog d = CustomDialogFactory.createDialog(this, getResources().getString(R.string.dialog_loading_failed_title), null, getResources().getString(messageResourceID), null, true);
|
||||
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
|
||||
|
||||
@@ -43,6 +43,7 @@ import com.gpl.rpg.AndorsTrail.util.Coord;
|
||||
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
|
||||
import com.gpl.rpg.AndorsTrail.view.CombatView;
|
||||
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
|
||||
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory.CustomDialog;
|
||||
import com.gpl.rpg.AndorsTrail.view.DisplayActiveActorConditionIcons;
|
||||
import com.gpl.rpg.AndorsTrail.view.ItemContainerAdapter;
|
||||
import com.gpl.rpg.AndorsTrail.view.MainView;
|
||||
@@ -247,7 +248,7 @@ public final class MainActivity
|
||||
final ItemContainerAdapter inventoryListAdapter = new QuickslotsItemContainerAdapter(lv.getContext(), world.tileManager, world.model.player.inventory.usableItems(), world.model.player, wornTiles);
|
||||
lv.setAdapter(inventoryListAdapter);
|
||||
|
||||
final Dialog d = CustomDialogFactory.createDialog(v.getContext(),
|
||||
final CustomDialog d = CustomDialogFactory.createDialog(v.getContext(),
|
||||
v.getResources().getString(R.string.inventory_assign),
|
||||
v.getResources().getDrawable(R.drawable.ui_icon_equipment),
|
||||
v.getResources().getString(R.string.inventory_selectitem), view, false);
|
||||
|
||||
@@ -11,6 +11,7 @@ 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;
|
||||
@@ -114,7 +115,7 @@ public final class StartScreenActivity extends AndorsTrailBaseFragmentActivity i
|
||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
||||
if (grantResults.length > 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED) {
|
||||
|
||||
final Dialog d = CustomDialogFactory.createDialog(this,
|
||||
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),
|
||||
|
||||
@@ -38,25 +38,26 @@ 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 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);
|
||||
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) {
|
||||
@@ -64,11 +65,11 @@ public class StartScreenActivity_MainMenu extends Fragment {
|
||||
}
|
||||
|
||||
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() {
|
||||
@@ -114,7 +115,7 @@ public class StartScreenActivity_MainMenu extends Fragment {
|
||||
AndorsTrailApplication app = AndorsTrailApplication.getApplicationFromActivity(getActivity());
|
||||
if (hasExistingGame && app != null && app.getWorld() != null && app.getWorld().model != null
|
||||
&& app.getWorld().model.statistics != null && !app.getWorld().model.statistics.hasUnlimitedSaves()) {
|
||||
final Dialog d = CustomDialogFactory.createDialog(getActivity(),
|
||||
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),
|
||||
@@ -134,7 +135,7 @@ public class StartScreenActivity_MainMenu extends Fragment {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
if (AndorsTrailApplication.DEVELOPMENT_FORCE_STARTNEWGAME) {
|
||||
if (AndorsTrailApplication.DEVELOPMENT_DEBUGRESOURCES) {
|
||||
@@ -152,14 +153,14 @@ public class StartScreenActivity_MainMenu extends Fragment {
|
||||
checkAndRequestPermissions(getActivity());
|
||||
migrateDataOnDemand(getActivity());
|
||||
}
|
||||
|
||||
|
||||
return root;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
|
||||
String playerName;
|
||||
String displayInfo = null;
|
||||
int iconID = TileManager.CHAR_HERO;
|
||||
@@ -189,14 +190,10 @@ public class StartScreenActivity_MainMenu extends Fragment {
|
||||
setCurrentVersionForVersionCheck();
|
||||
checkAndRequestPermissions(getActivity());
|
||||
migrateDataOnDemand(getActivity());
|
||||
boolean hasSavegames = !Savegames.getUsedSavegameSlots(getActivity()).isEmpty();
|
||||
startscreen_load.setEnabled(hasSavegames);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
boolean hasSavegames = !Savegames.getUsedSavegameSlots(getActivity()).isEmpty();
|
||||
startscreen_load.setEnabled(hasSavegames);
|
||||
}
|
||||
|
||||
@TargetApi(29)
|
||||
@@ -204,23 +201,16 @@ public class StartScreenActivity_MainMenu extends Fragment {
|
||||
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 Dialog d = CustomDialogFactory.createDialog(activity,
|
||||
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);
|
||||
d.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
@Override
|
||||
public void onDismiss(DialogInterface arg0) {
|
||||
boolean hasSavegames = !Savegames.getUsedSavegameSlots(getActivity()).isEmpty();
|
||||
startscreen_load.setEnabled(hasSavegames);
|
||||
}
|
||||
});
|
||||
CustomDialogFactory.show(d);
|
||||
if (!AndroidStorage.migrateToInternalStorage(activity.getApplicationContext())) {
|
||||
final Dialog errorDlg = CustomDialogFactory.createDialog(activity,
|
||||
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),
|
||||
@@ -259,13 +249,13 @@ public class StartScreenActivity_MainMenu extends Fragment {
|
||||
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);
|
||||
@@ -305,9 +295,9 @@ public class StartScreenActivity_MainMenu extends Fragment {
|
||||
// .create().show();
|
||||
//
|
||||
//
|
||||
final Dialog d = CustomDialogFactory.createDialog(getActivity(),
|
||||
getString(R.string.startscreen_newgame),
|
||||
getResources().getDrawable(android.R.drawable.ic_delete),
|
||||
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);
|
||||
@@ -318,9 +308,9 @@ public class StartScreenActivity_MainMenu extends Fragment {
|
||||
}
|
||||
});
|
||||
CustomDialogFactory.addDismissButton(d, android.R.string.cancel);
|
||||
|
||||
|
||||
CustomDialogFactory.show(d);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private static final String versionCheck = "lastversion";
|
||||
@@ -337,64 +327,90 @@ public class StartScreenActivity_MainMenu extends Fragment {
|
||||
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:
|
||||
if (resultCode != Activity.RESULT_OK) break;
|
||||
final int slot = data.getIntExtra("slot", 1);
|
||||
continueGame(false, slot, null);
|
||||
break;
|
||||
case INTENTREQUEST_PREFERENCES:
|
||||
updatePreferences(true);
|
||||
break;
|
||||
|
||||
@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();
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -51,6 +51,10 @@ public final class Constants {
|
||||
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 + 1) * 100 -1, r.current * 100 + bias)/100; }
|
||||
|
||||
@@ -308,6 +308,7 @@ public final class ResourceLoader {
|
||||
loader.prepareTileset(R.drawable.items_consumables_omi1, "items_consumables_omi1", sz1x1, sz1x1, mTileSize);
|
||||
loader.prepareTileset(R.drawable.items_feygard1, "items_feygard1", new Size(6, 2), sz1x1, mTileSize);
|
||||
loader.prepareTileset(R.drawable.items_omi2, "items_omi2", new Size(6, 5), sz1x1, mTileSize);
|
||||
loader.prepareTileset(R.drawable.items_omgeeky, "items_omgeeky", new Size(10, 3), sz1x1, mTileSize);
|
||||
/*INSERT_ITEMS_TILESETS_HERE*/
|
||||
|
||||
loader.prepareTileset(R.drawable.monsters_armor1, "monsters_armor1", sz1x1, sz1x1, mTileSize);
|
||||
@@ -435,6 +436,7 @@ public final class ResourceLoader {
|
||||
loader.prepareTileset(R.drawable.map_rock_3, "map_rock_3", new Size(6, 5), sz1x1, mTileSize);
|
||||
loader.prepareTileset(R.drawable.map_sign_ladder_omi2, "map_sign_ladder_omi2", new Size(8, 4), sz1x1, mTileSize);
|
||||
loader.prepareTileset(R.drawable.map_transition_6, "map_transition_6", new Size(18, 8), sz1x1, mTileSize);
|
||||
loader.prepareTileset(R.drawable.map_ratdom, "map_ratdom", new Size(18, 6), sz1x1, mTileSize);
|
||||
/*INSERT_MAP_TILESETS_HERE*/
|
||||
|
||||
loader.prepareTileset(R.drawable.effect_blood4, "effect_blood4", new Size(7, 2), sz1x1, mTileSize);
|
||||
|
||||
@@ -86,7 +86,7 @@ public final class Savegames {
|
||||
|
||||
private static void writeBackup(Context androidContext, byte[] savegame, String playerId) throws IOException {
|
||||
File cheatDetectionFolder = AndroidStorage.getStorageDirectory(androidContext, Constants.CHEAT_DETECTION_FOLDER);
|
||||
if (!cheatDetectionFolder.exists()) cheatDetectionFolder.mkdir();
|
||||
ensureDirExists(cheatDetectionFolder);
|
||||
File backupFile = new File(cheatDetectionFolder, playerId + "X");
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(backupFile);
|
||||
fileOutputStream.write(savegame);
|
||||
@@ -127,34 +127,33 @@ public final class Savegames {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean triedToCheat(Context androidContext, FileHeader fh) throws IOException {
|
||||
long savedVersionToCheck = 0;
|
||||
File cheatDetectionFolder = AndroidStorage.getStorageDirectory(androidContext, Constants.CHEAT_DETECTION_FOLDER);
|
||||
if (!cheatDetectionFolder.exists()) cheatDetectionFolder.mkdir();
|
||||
File cheatDetectionFile = new File(cheatDetectionFolder, fh.playerId);
|
||||
if (cheatDetectionFile.exists()) {
|
||||
FileInputStream fileInputStream = new FileInputStream(cheatDetectionFile);
|
||||
DataInputStream dataInputStream = new DataInputStream(fileInputStream);
|
||||
final CheatDetection cheatDetection = new CheatDetection(dataInputStream);
|
||||
savedVersionToCheck = cheatDetection.savedVersion;
|
||||
dataInputStream.close();
|
||||
fileInputStream.close();
|
||||
}
|
||||
private static boolean triedToCheat(Context androidContext, FileHeader fh) throws IOException {
|
||||
long savedVersionToCheck = 0;
|
||||
File cheatDetectionFolder = AndroidStorage.getStorageDirectory(androidContext, Constants.CHEAT_DETECTION_FOLDER);
|
||||
ensureDirExists(cheatDetectionFolder);
|
||||
File cheatDetectionFile = new File(cheatDetectionFolder, fh.playerId);
|
||||
if (cheatDetectionFile.exists()) {
|
||||
FileInputStream fileInputStream = new FileInputStream(cheatDetectionFile);
|
||||
DataInputStream dataInputStream = new DataInputStream(fileInputStream);
|
||||
final CheatDetection cheatDetection = new CheatDetection(dataInputStream);
|
||||
savedVersionToCheck = cheatDetection.savedVersion;
|
||||
dataInputStream.close();
|
||||
fileInputStream.close();
|
||||
}
|
||||
|
||||
if (savedVersionToCheck == DENY_LOADING_BECAUSE_GAME_IS_CURRENTLY_PLAYED) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (androidContext.getFileStreamPath(fh.playerId).exists()) {
|
||||
FileInputStream fileInputStream = androidContext.openFileInput(fh.playerId);
|
||||
DataInputStream dataInputStream = new DataInputStream(fileInputStream);
|
||||
final CheatDetection cheatDetection = new CheatDetection(dataInputStream);
|
||||
if (cheatDetection.savedVersion == DENY_LOADING_BECAUSE_GAME_IS_CURRENTLY_PLAYED) {
|
||||
savedVersionToCheck = DENY_LOADING_BECAUSE_GAME_IS_CURRENTLY_PLAYED;
|
||||
}
|
||||
else if (cheatDetection.savedVersion > savedVersionToCheck) {
|
||||
savedVersionToCheck = cheatDetection.savedVersion;
|
||||
}
|
||||
if (androidContext.getFileStreamPath(fh.playerId).exists()) {
|
||||
FileInputStream fileInputStream = androidContext.openFileInput(fh.playerId);
|
||||
DataInputStream dataInputStream = new DataInputStream(fileInputStream);
|
||||
final CheatDetection cheatDetection = new CheatDetection(dataInputStream);
|
||||
if (cheatDetection.savedVersion == DENY_LOADING_BECAUSE_GAME_IS_CURRENTLY_PLAYED) {
|
||||
savedVersionToCheck = DENY_LOADING_BECAUSE_GAME_IS_CURRENTLY_PLAYED;
|
||||
} else if (cheatDetection.savedVersion > savedVersionToCheck) {
|
||||
savedVersionToCheck = cheatDetection.savedVersion;
|
||||
}
|
||||
|
||||
if (AndorsTrailApplication.DEVELOPMENT_DEBUGMESSAGES) {
|
||||
L.log("Internal cheatcheck file savedVersion: " + cheatDetection.savedVersion);
|
||||
@@ -167,31 +166,48 @@ public final class Savegames {
|
||||
return (savedVersionToCheck == DENY_LOADING_BECAUSE_GAME_IS_CURRENTLY_PLAYED || fh.savedVersion < savedVersionToCheck);
|
||||
}
|
||||
|
||||
private static FileOutputStream getOutputFile(Context androidContext, int slot) throws IOException {
|
||||
if (slot == SLOT_QUICKSAVE) {
|
||||
return androidContext.openFileOutput(Constants.FILENAME_SAVEGAME_QUICKSAVE, Context.MODE_PRIVATE);
|
||||
} else {
|
||||
ensureSavegameDirectoryExists(androidContext);
|
||||
return new FileOutputStream(getSlotFile(slot, androidContext));
|
||||
}
|
||||
}
|
||||
private static void ensureSavegameDirectoryExists(Context context) {
|
||||
File dir = AndroidStorage.getStorageDirectory(context, Constants.FILENAME_SAVEGAME_DIRECTORY);
|
||||
if (!dir.exists()) dir.mkdir();
|
||||
}
|
||||
private static FileInputStream getInputFile(Context androidContext, int slot) throws IOException {
|
||||
if (slot == SLOT_QUICKSAVE) {
|
||||
return androidContext.openFileInput(Constants.FILENAME_SAVEGAME_QUICKSAVE);
|
||||
} else {
|
||||
return new FileInputStream(getSlotFile(slot, androidContext));
|
||||
}
|
||||
}
|
||||
private static FileOutputStream getOutputFile(Context androidContext, int slot) throws IOException {
|
||||
if (slot == SLOT_QUICKSAVE) {
|
||||
return androidContext.openFileOutput(Constants.FILENAME_SAVEGAME_QUICKSAVE, Context.MODE_PRIVATE);
|
||||
} else {
|
||||
ensureSavegameDirectoryExists(androidContext);
|
||||
return new FileOutputStream(getSlotFile(slot, androidContext));
|
||||
}
|
||||
}
|
||||
|
||||
public static File getSlotFile(int slot, Context context) {
|
||||
File root = AndroidStorage.getStorageDirectory(context, Constants.FILENAME_SAVEGAME_DIRECTORY);
|
||||
return new File(root, Constants.FILENAME_SAVEGAME_FILENAME_PREFIX + slot);
|
||||
}
|
||||
private static void ensureSavegameDirectoryExists(Context context) {
|
||||
File dir = AndroidStorage.getStorageDirectory(context, Constants.FILENAME_SAVEGAME_DIRECTORY);
|
||||
ensureDirExists(dir);
|
||||
}
|
||||
|
||||
public static boolean ensureDirExists(File dir) {
|
||||
if (!dir.exists()) {
|
||||
boolean worked = dir.mkdir();
|
||||
return worked;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static FileInputStream getInputFile(Context androidContext, int slot) throws IOException {
|
||||
if (slot == SLOT_QUICKSAVE) {
|
||||
return androidContext.openFileInput(Constants.FILENAME_SAVEGAME_QUICKSAVE);
|
||||
} else {
|
||||
return new FileInputStream(getSlotFile(slot, androidContext));
|
||||
}
|
||||
}
|
||||
|
||||
public static File getSlotFile(int slot, Context context) {
|
||||
File root = AndroidStorage.getStorageDirectory(context, Constants.FILENAME_SAVEGAME_DIRECTORY);
|
||||
return getSlotFile(slot, root);
|
||||
}
|
||||
|
||||
public static File getSlotFile(int slot, File directory) {
|
||||
return new File(directory, getSlotFileName(slot));
|
||||
}
|
||||
|
||||
public static String getSlotFileName(int slot) {
|
||||
return Constants.FILENAME_SAVEGAME_FILENAME_PREFIX + slot;
|
||||
}
|
||||
|
||||
|
||||
public static void saveWorld(WorldContext world, OutputStream outStream, String displayInfo) throws IOException {
|
||||
@@ -207,10 +223,11 @@ public final class Savegames {
|
||||
dest.close();
|
||||
}
|
||||
|
||||
public static LoadSavegameResult loadWorld(Resources res, WorldContext world, ControllerContext controllers, InputStream inState, FileHeader fh) throws IOException {
|
||||
DataInputStream src = new DataInputStream(inState);
|
||||
final FileHeader header = new FileHeader(src, fh.skipIcon);
|
||||
if (header.fileversion > AndorsTrailApplication.CURRENT_VERSION) return LoadSavegameResult.savegameIsFromAFutureVersion;
|
||||
public static LoadSavegameResult loadWorld(Resources res, WorldContext world, ControllerContext controllers, InputStream inState, FileHeader fh) throws IOException {
|
||||
DataInputStream src = new DataInputStream(inState);
|
||||
final FileHeader header = new FileHeader(src, fh.skipIcon);
|
||||
if (header.fileversion > AndorsTrailApplication.CURRENT_VERSION)
|
||||
return LoadSavegameResult.savegameIsFromAFutureVersion;
|
||||
|
||||
world.maps.readFromParcel(src, world, controllers, header.fileversion);
|
||||
world.model = new ModelContainer(src, world, controllers, header.fileversion);
|
||||
@@ -249,15 +266,15 @@ public final class Savegames {
|
||||
}
|
||||
}
|
||||
|
||||
private static void writeCheatCheck(Context androidContext, long savedVersion, String playerId) throws IOException {
|
||||
File cheatDetectionFolder = AndroidStorage.getStorageDirectory(androidContext, Constants.CHEAT_DETECTION_FOLDER);
|
||||
if (!cheatDetectionFolder.exists()) cheatDetectionFolder.mkdir();
|
||||
File cheatDetectionFile = new File(cheatDetectionFolder, playerId);
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(cheatDetectionFile);
|
||||
DataOutputStream dataOutputStream = new DataOutputStream(fileOutputStream);
|
||||
CheatDetection.writeToParcel(dataOutputStream, savedVersion);
|
||||
dataOutputStream.close();
|
||||
fileOutputStream.close();
|
||||
private static void writeCheatCheck(Context androidContext, long savedVersion, String playerId) throws IOException {
|
||||
File cheatDetectionFolder = AndroidStorage.getStorageDirectory(androidContext, Constants.CHEAT_DETECTION_FOLDER);
|
||||
ensureDirExists(cheatDetectionFolder);
|
||||
File cheatDetectionFile = new File(cheatDetectionFolder, playerId);
|
||||
FileOutputStream fileOutputStream = new FileOutputStream(cheatDetectionFile);
|
||||
DataOutputStream dataOutputStream = new DataOutputStream(fileOutputStream);
|
||||
CheatDetection.writeToParcel(dataOutputStream, savedVersion);
|
||||
dataOutputStream.close();
|
||||
fileOutputStream.close();
|
||||
|
||||
fileOutputStream = androidContext.openFileOutput(playerId, Context.MODE_PRIVATE);
|
||||
dataOutputStream = new DataOutputStream(fileOutputStream);
|
||||
@@ -268,26 +285,26 @@ public final class Savegames {
|
||||
|
||||
private static final Pattern savegameFilenamePattern = Pattern.compile(Constants.FILENAME_SAVEGAME_FILENAME_PREFIX + "(\\d+)");
|
||||
|
||||
public static List<Integer> getUsedSavegameSlots(Context context) {
|
||||
try {
|
||||
final List<Integer> result = new ArrayList<Integer>();
|
||||
AndroidStorage.getStorageDirectory(context, Constants.FILENAME_SAVEGAME_DIRECTORY).listFiles(new FilenameFilter() {
|
||||
@Override
|
||||
public boolean accept(File f, String filename) {
|
||||
Matcher m = savegameFilenamePattern.matcher(filename);
|
||||
if (m != null && m.matches()) {
|
||||
result.add(Integer.parseInt(m.group(1)));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
Collections.sort(result);
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public static List<Integer> getUsedSavegameSlots(Context context) {
|
||||
try {
|
||||
final List<Integer> result = new ArrayList<Integer>();
|
||||
AndroidStorage.getStorageDirectory(context, Constants.FILENAME_SAVEGAME_DIRECTORY).listFiles(new FilenameFilter() {
|
||||
@Override
|
||||
public boolean accept(File f, String filename) {
|
||||
Matcher m = savegameFilenamePattern.matcher(filename);
|
||||
if (m != null && m.matches()) {
|
||||
result.add(Integer.parseInt(m.group(1)));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
Collections.sort(result);
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
return new ArrayList<Integer>();
|
||||
}
|
||||
}
|
||||
|
||||
private static final class CheatDetection {
|
||||
public final int fileversion;
|
||||
@@ -307,17 +324,16 @@ public final class Savegames {
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static final class FileHeader {
|
||||
public final int fileversion;
|
||||
public final String playerName;
|
||||
public final String displayInfo;
|
||||
public final int iconID;
|
||||
public boolean skipIcon = false;
|
||||
public final boolean isDead;
|
||||
public final boolean hasUnlimitedSaves;
|
||||
public final String playerId;
|
||||
public final long savedVersion;
|
||||
public static final class FileHeader {
|
||||
public final int fileversion;
|
||||
public final String playerName;
|
||||
public final String displayInfo;
|
||||
public final int iconID;
|
||||
public boolean skipIcon = false;
|
||||
public final boolean isDead;
|
||||
public final boolean hasUnlimitedSaves;
|
||||
public final String playerId;
|
||||
public final long savedVersion;
|
||||
|
||||
public String describe() {
|
||||
return (fileversion == AndorsTrailApplication.DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION ? "(D) " : "") + playerName + ", " + displayInfo;
|
||||
@@ -326,17 +342,18 @@ public final class Savegames {
|
||||
|
||||
// ====== PARCELABLE ===================================================================
|
||||
|
||||
public FileHeader(DataInputStream src, boolean skipIcon) throws IOException {
|
||||
int fileversion = src.readInt();
|
||||
if (fileversion == 11) fileversion = 5; // Fileversion 5 had no version identifier, but the first byte was 11.
|
||||
this.fileversion = fileversion;
|
||||
if (fileversion >= 14) { // Before fileversion 14 (0.6.7), we had no file header.
|
||||
this.playerName = src.readUTF();
|
||||
this.displayInfo = src.readUTF();
|
||||
} else {
|
||||
this.playerName = null;
|
||||
this.displayInfo = null;
|
||||
}
|
||||
public FileHeader(DataInputStream src, boolean skipIcon) throws IOException {
|
||||
int fileversion = src.readInt();
|
||||
if (fileversion == 11)
|
||||
fileversion = 5; // Fileversion 5 had no version identifier, but the first byte was 11.
|
||||
this.fileversion = fileversion;
|
||||
if (fileversion >= 14) { // Before fileversion 14 (0.6.7), we had no file header.
|
||||
this.playerName = src.readUTF();
|
||||
this.displayInfo = src.readUTF();
|
||||
} else {
|
||||
this.playerName = null;
|
||||
this.displayInfo = null;
|
||||
}
|
||||
|
||||
if (fileversion >= 43) {
|
||||
int id = src.readInt();
|
||||
|
||||
@@ -1,12 +1,24 @@
|
||||
package com.gpl.rpg.AndorsTrail.util;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.support.v4.content.FileProvider;
|
||||
import android.support.v4.provider.DocumentFile;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.webkit.MimeTypeMap;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.controller.Constants;
|
||||
import com.gpl.rpg.AndorsTrail.util.BackgroundWorker.BackgroundWorkerCallback;
|
||||
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
@@ -14,10 +26,12 @@ import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.concurrent.CancellationException;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public final class AndroidStorage {
|
||||
public static File getStorageDirectory(Context context, String name) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
return context.getExternalFilesDir(name);
|
||||
}
|
||||
else {
|
||||
@@ -25,6 +39,7 @@ public final class AndroidStorage {
|
||||
return new File(root, name);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean shouldMigrateToInternalStorage(Context context) {
|
||||
boolean ret = false;
|
||||
File externalSaveGameDirectory = new File(Environment.getExternalStorageDirectory(), Constants.FILENAME_SAVEGAME_DIRECTORY);
|
||||
@@ -76,33 +91,236 @@ public final class AndroidStorage {
|
||||
}
|
||||
}
|
||||
|
||||
private static void copyFile(File source, File target) throws IOException {
|
||||
InputStream in = null;
|
||||
OutputStream out = null;
|
||||
try {
|
||||
in = new FileInputStream(source);
|
||||
out = new FileOutputStream(target);
|
||||
byte[] buf = new byte[1024];
|
||||
int length;
|
||||
while ((length = in.read(buf)) > 0) {
|
||||
out.write(buf, 0, length);
|
||||
}
|
||||
} finally {
|
||||
if (in != null) {
|
||||
in.close();
|
||||
}
|
||||
if (out != null) {
|
||||
out.close();
|
||||
}
|
||||
public static void copyFile(File source, File target) throws IOException {
|
||||
try (InputStream in = new FileInputStream(source); OutputStream out = new FileOutputStream(target)) {
|
||||
copyStream(in, out);
|
||||
}
|
||||
}
|
||||
|
||||
public static void copyStream(InputStream in, OutputStream out) throws IOException {
|
||||
byte[] buf = new byte[1024];
|
||||
int length;
|
||||
while ((length = in.read(buf)) > 0) {
|
||||
out.write(buf, 0, length);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void copyDocumentFileToNewOrExistingFile(DocumentFile sourceFile, ContentResolver resolver, DocumentFile targetFolder) throws IOException {
|
||||
copyDocumentFileToNewOrExistingFile(sourceFile, resolver, targetFolder, Constants.NO_FILE_EXTENSION_MIME_TYPE);
|
||||
}
|
||||
|
||||
|
||||
public static void copyDocumentFileToNewOrExistingFile(DocumentFile sourceFile, ContentResolver resolver, DocumentFile targetFolder, String mimeType) throws IOException {
|
||||
String fileName = sourceFile.getName();
|
||||
DocumentFile file = targetFolder.findFile(fileName);
|
||||
if (file == null)
|
||||
file = targetFolder.createFile(mimeType, fileName);
|
||||
if (file == null)
|
||||
return;
|
||||
|
||||
AndroidStorage.copyDocumentFile(sourceFile, resolver, file);
|
||||
}
|
||||
|
||||
public static void copyDocumentFile(DocumentFile sourceFile, ContentResolver resolver, DocumentFile targetFile) throws IOException {
|
||||
try (OutputStream outputStream = resolver.openOutputStream(targetFile.getUri());
|
||||
InputStream inputStream = resolver.openInputStream(sourceFile.getUri())) {
|
||||
copyStream(inputStream, outputStream);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the MIME-Type for a file.<p/>
|
||||
* Fallback value is '* / *' (without spaces) <p/>
|
||||
* Mostly copied together from: <a href="https://stackoverflow.com/q/8589645/17292289">StackOverflow</a>
|
||||
*/
|
||||
@NonNull
|
||||
public static String getMimeType(ContentResolver resolver, Uri uri) {
|
||||
String type = null;
|
||||
if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
|
||||
type = resolver.getType(uri);
|
||||
return type;
|
||||
}
|
||||
|
||||
final String extension = MimeTypeMap.getFileExtensionFromUrl(uri.getPath());
|
||||
if (extension != null) {
|
||||
type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.toLowerCase());
|
||||
}
|
||||
if (type == null) {
|
||||
type = "*/*"; // fallback type.
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
public static String getUrlForFile(Context context, File worldmap) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
Uri uri = FileProvider.getUriForFile(context, "com.gpl.rpg.AndorsTrail.fileprovider", worldmap);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
String applicationId = context.getPackageName();
|
||||
Uri uri = FileProvider.getUriForFile(context, applicationId + ".fileprovider", worldmap);
|
||||
return uri.toString();
|
||||
} else {
|
||||
return "file://" + worldmap.getAbsolutePath();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||
public static Intent getNewOpenDirectoryIntent() {
|
||||
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
|
||||
return intent;
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||
public static Intent getNewSelectMultipleSavegameFilesIntent() {
|
||||
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
|
||||
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
|
||||
intent.setType(Constants.SAVEGAME_FILE_MIME_TYPE);
|
||||
return intent;
|
||||
}
|
||||
|
||||
public static void copyDocumentFilesFromToAsync(DocumentFile[] sources, Context context, DocumentFile[] targets, Consumer<Boolean> callback) {
|
||||
if(sources.length != targets.length)
|
||||
{
|
||||
throw new IllegalArgumentException("Both arrays, target & source have to have the same size");
|
||||
}
|
||||
|
||||
BackgroundWorker worker = new BackgroundWorker();
|
||||
CustomDialogFactory.CustomDialog progressDialog = getLoadingDialog(context);
|
||||
progressDialog.setOnCancelListener(dialog -> worker.cancel());
|
||||
ContentResolver resolver = context.getContentResolver();
|
||||
Handler handler = Handler.createAsync(Looper.getMainLooper());
|
||||
|
||||
worker.setTask(new BackgroundWorker.worker() {
|
||||
@Override
|
||||
public void doWork(BackgroundWorkerCallback callback) {
|
||||
try {
|
||||
callback.onInitialize();
|
||||
for (int i = 0; i < sources.length ; i++) {
|
||||
if (worker.isCancelled()) {
|
||||
callback.onFailure(new CancellationException("Cancelled"));
|
||||
return;
|
||||
}
|
||||
DocumentFile source = sources[i];
|
||||
DocumentFile target = targets[i];
|
||||
|
||||
if(source == null || target == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
copyDocumentFile(source, resolver,target);
|
||||
float progress = i /(float) sources.length;
|
||||
callback.onProgress(progress);
|
||||
}
|
||||
callback.onComplete(true);
|
||||
} catch (NullPointerException e) {
|
||||
if (worker.isCancelled()) {
|
||||
callback.onFailure(new CancellationException("Cancelled"));
|
||||
return;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
callback.onFailure(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
worker.setCallback(getDefaultBackgroundWorkerCallback(handler, progressDialog, callback));
|
||||
worker.run();
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.P)
|
||||
public static void copyDocumentFilesToDirAsync(DocumentFile[] files,
|
||||
Context context,
|
||||
DocumentFile targetDirectory,
|
||||
Consumer<Boolean> callback) {
|
||||
BackgroundWorker<Boolean> worker = new BackgroundWorker<>();
|
||||
CustomDialogFactory.CustomDialog progressDialog = getLoadingDialog(context);
|
||||
progressDialog.setOnCancelListener(dialog -> worker.cancel());
|
||||
ContentResolver resolver = context.getContentResolver();
|
||||
Handler handler = Handler.createAsync(Looper.getMainLooper());
|
||||
|
||||
worker.setTask(workerCallback -> {
|
||||
try {
|
||||
workerCallback.onInitialize();
|
||||
for (int i = 0; i < files.length; i++) {
|
||||
if (worker.isCancelled()) {
|
||||
workerCallback.onFailure(new CancellationException("Cancelled"));
|
||||
return;
|
||||
}
|
||||
DocumentFile file = files[i];
|
||||
if(file == null)
|
||||
continue;
|
||||
|
||||
copyDocumentFileToNewOrExistingFile(file, resolver, targetDirectory);
|
||||
float progress = i /(float) files.length;
|
||||
workerCallback.onProgress(progress);
|
||||
}
|
||||
workerCallback.onComplete(true);
|
||||
} catch (NullPointerException e) {
|
||||
if (worker.isCancelled()) {
|
||||
workerCallback.onFailure(new CancellationException("Cancelled"));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
workerCallback.onFailure(e);
|
||||
}
|
||||
});
|
||||
worker.setCallback(getDefaultBackgroundWorkerCallback(handler, progressDialog, callback));
|
||||
worker.run();
|
||||
}
|
||||
|
||||
private static BackgroundWorkerCallback<Boolean> getDefaultBackgroundWorkerCallback(Handler handler,
|
||||
CustomDialogFactory.CustomDialog progressDialog,
|
||||
Consumer<Boolean> callback) {
|
||||
return new BackgroundWorkerCallback<Boolean>() {
|
||||
private int progress = -1;
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
handler.post(() -> {
|
||||
CustomDialogFactory.show(progressDialog);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProgress(float progress) {
|
||||
handler.post(() -> {
|
||||
int intProgress = (int) (progress * 100);
|
||||
if(this.progress == intProgress)
|
||||
return;
|
||||
|
||||
this.progress = intProgress;
|
||||
CustomDialogFactory.setDesc(progressDialog, intProgress + "%");
|
||||
});
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Override
|
||||
public void onFailure(Exception e) {
|
||||
handler.post(() -> {
|
||||
progressDialog.dismiss();
|
||||
callback.accept(false);
|
||||
});
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
@Override
|
||||
public void onComplete(Boolean result) {
|
||||
handler.post(() -> {
|
||||
progressDialog.dismiss();
|
||||
callback.accept(true);
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private static CustomDialogFactory.CustomDialog getLoadingDialog(Context context) {
|
||||
return CustomDialogFactory.createDialog(context,
|
||||
context.getResources().getString(R.string.dialog_loading_message),
|
||||
context.getResources().getDrawable(R.drawable.loading_anim),
|
||||
null,
|
||||
null,
|
||||
false,
|
||||
false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.gpl.rpg.AndorsTrail.util;
|
||||
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
public final class BackgroundWorker<T> {
|
||||
boolean cancelled = false;
|
||||
worker task;
|
||||
BackgroundWorkerCallback callback;
|
||||
|
||||
public void setTask(worker task) {
|
||||
this.task = task;
|
||||
}
|
||||
|
||||
public void setCallback(BackgroundWorkerCallback callback) {
|
||||
this.callback = callback;
|
||||
}
|
||||
|
||||
public void cancel() {
|
||||
cancelled = true;
|
||||
}
|
||||
|
||||
interface worker<T> {
|
||||
void doWork(BackgroundWorkerCallback callback);
|
||||
}
|
||||
|
||||
interface BackgroundWorkerCallback<T> {
|
||||
void onInitialize();
|
||||
|
||||
default void onProgress(float progress) {
|
||||
}
|
||||
|
||||
void onFailure(Exception e);
|
||||
|
||||
void onComplete(T result);
|
||||
}
|
||||
|
||||
public void run() {
|
||||
Executors.newSingleThreadExecutor().execute(() -> {
|
||||
task.doWork(callback);
|
||||
});
|
||||
}
|
||||
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.gpl.rpg.AndorsTrail.view;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface.OnDismissListener;
|
||||
import android.content.DialogInterface.OnCancelListener;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.AnimationDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
@@ -22,25 +22,33 @@ import com.gpl.rpg.AndorsTrail.R;
|
||||
import com.gpl.rpg.AndorsTrail.util.ThemeHelper;
|
||||
|
||||
public class CustomDialogFactory {
|
||||
|
||||
public static class CustomDialog extends Dialog {
|
||||
|
||||
public static class CustomDialog extends android.app.Dialog {
|
||||
public CustomDialog(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
boolean verticalButtons = false;
|
||||
}
|
||||
|
||||
public static CustomDialog createDialog(final Context context, String title, Drawable icon, String desc, View content, boolean hasButtons) {
|
||||
|
||||
public static CustomDialog createDialog(final Context context, String title, Drawable icon,
|
||||
String desc, View content, boolean hasButtons, boolean canDismiss) {
|
||||
return createDialog(context, title, icon, desc, content, hasButtons, canDismiss, false);
|
||||
}
|
||||
|
||||
public static CustomDialog createDialog(final Context context, String title, Drawable icon,
|
||||
String desc, View content, boolean hasButtons) {
|
||||
return createDialog(context, title, icon, desc, content, hasButtons, true);
|
||||
}
|
||||
|
||||
public static CustomDialog createDialog(final Context context, String title, Drawable icon, String desc, View content, boolean hasButtons, final boolean canDismiss) {
|
||||
|
||||
public static CustomDialog createDialog(final Context context, String title, Drawable icon,
|
||||
String desc, View content, boolean hasButtons,
|
||||
final boolean canDismiss, final boolean verticalButtons) {
|
||||
final CustomDialog dialog = new CustomDialog(new ContextThemeWrapper(context, ThemeHelper.getDialogTheme())) {
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
Rect r = new Rect();
|
||||
this.getWindow().getDecorView().findViewById(R.id.dialog_hitrect).getHitRect(r);
|
||||
|
||||
|
||||
if (r.contains((int)event.getX(), (int)event.getY())) {
|
||||
return super.onTouchEvent(event);
|
||||
} else {
|
||||
@@ -51,7 +59,7 @@ public class CustomDialogFactory {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onWindowFocusChanged(boolean hasFocus) {
|
||||
super.onWindowFocusChanged(hasFocus);
|
||||
@@ -63,7 +71,8 @@ public class CustomDialogFactory {
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
dialog.verticalButtons = verticalButtons;
|
||||
|
||||
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
dialog.setContentView(R.layout.custom_dialog_title_icon);
|
||||
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
|
||||
@@ -72,23 +81,37 @@ public class CustomDialogFactory {
|
||||
} else {
|
||||
dialog.getWindow().setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||
}
|
||||
|
||||
|
||||
setTitle(dialog, title, icon);
|
||||
|
||||
|
||||
setDesc(dialog, desc);
|
||||
|
||||
|
||||
setContent(dialog, content);
|
||||
|
||||
ViewGroup buttonsHolder = (ViewGroup) dialog.findViewById(R.id.dialog_button_container);
|
||||
|
||||
ViewGroup buttonsHolder = getButtonContainer(dialog);
|
||||
ViewGroup unusedButtonsHolder = getUnusedButtonContainer(dialog);
|
||||
|
||||
unusedButtonsHolder.setVisibility(View.GONE);
|
||||
if (hasButtons) {
|
||||
buttonsHolder.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
buttonsHolder.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
|
||||
return dialog;
|
||||
}
|
||||
|
||||
|
||||
public static CustomDialog createErrorDialog(final Context context, String title, String description) {
|
||||
final CustomDialog d = createDialog(context,
|
||||
title,
|
||||
context.getResources().getDrawable(android.R.drawable.ic_dialog_alert),
|
||||
description,
|
||||
null,
|
||||
true);
|
||||
CustomDialogFactory.addDismissButton(d, android.R.string.ok);
|
||||
return d;
|
||||
}
|
||||
|
||||
public static CustomDialog setTitle(final CustomDialog dialog, String title, Drawable icon) {
|
||||
TextView titleView = (TextView) dialog.findViewById(R.id.dialog_title);
|
||||
if (title != null || icon != null) {
|
||||
@@ -100,7 +123,7 @@ public class CustomDialogFactory {
|
||||
}
|
||||
return dialog;
|
||||
}
|
||||
|
||||
|
||||
public static CustomDialog setDesc(final CustomDialog dialog, String desc) {
|
||||
TextView descView = (TextView) dialog.findViewById(R.id.dialog_description);
|
||||
ViewGroup descHolder = (ViewGroup) dialog.findViewById(R.id.dialog_description_container);
|
||||
@@ -113,7 +136,7 @@ public class CustomDialogFactory {
|
||||
}
|
||||
return dialog;
|
||||
}
|
||||
|
||||
|
||||
public static CustomDialog setContent(final CustomDialog dialog, View content) {
|
||||
ViewGroup contentHolder = (ViewGroup) dialog.findViewById(R.id.dialog_content_container);
|
||||
if (content != null) {
|
||||
@@ -124,54 +147,101 @@ public class CustomDialogFactory {
|
||||
}
|
||||
return dialog;
|
||||
}
|
||||
|
||||
public static Dialog addButton(final Dialog dialog, int textId, final OnClickListener listener) {
|
||||
|
||||
Button template = (Button) dialog.findViewById(R.id.dialog_template_button);
|
||||
|
||||
public static CustomDialog addButton(final CustomDialog dialog, String text, final OnClickListener listener) {
|
||||
return addButton(dialog, -1, text, listener);
|
||||
}
|
||||
public static CustomDialog addButton(final CustomDialog dialog, int textId, final OnClickListener listener) {
|
||||
return addButton(dialog, textId, null, listener);
|
||||
}
|
||||
public static CustomDialog addButton(final CustomDialog dialog, int textId, String text, final OnClickListener listener) {
|
||||
Button template = getButtonTemplate(dialog);
|
||||
LayoutParams params = template.getLayoutParams();
|
||||
ViewGroup buttonsHolder = (ViewGroup) dialog.findViewById(R.id.dialog_button_container);
|
||||
|
||||
ViewGroup buttonsHolder = getButtonContainer(dialog);
|
||||
|
||||
Button b = new Button(dialog.getContext());
|
||||
b.setLayoutParams(params);
|
||||
//Old android versions need this "reminder"
|
||||
b.setBackgroundDrawable(ThemeHelper.getThemeDrawable(dialog.getContext(), R.attr.ui_theme_textbutton_drawable));
|
||||
b.setTextColor(ThemeHelper.getThemeColor(dialog.getContext(), R.attr.ui_theme_dialogue_light_color));
|
||||
|
||||
b.setText(textId);
|
||||
|
||||
if(textId != -1) {
|
||||
b.setText(textId);
|
||||
} else {
|
||||
b.setText(text);
|
||||
}
|
||||
|
||||
b.setOnClickListener(new OnClickListener() {
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
listener.onClick(v);
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
buttonsHolder.addView(b, params);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
public static Dialog addDismissButton(final Dialog dialog, int textId) {
|
||||
|
||||
public static CustomDialog addDismissButton(final CustomDialog dialog, int textId) {
|
||||
return CustomDialogFactory.addButton(dialog, textId, new OnClickListener() {
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static Dialog setDismissListener(Dialog dialog, OnDismissListener listener) {
|
||||
public static CustomDialog addCancelButton(final CustomDialog dialog, int textId) {
|
||||
return CustomDialogFactory.addButton(dialog, textId, new OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dialog.cancel();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static CustomDialog setDismissListener(CustomDialog dialog, OnDismissListener listener) {
|
||||
dialog.setOnDismissListener(listener);
|
||||
|
||||
|
||||
return dialog;
|
||||
}
|
||||
|
||||
public static void show(Dialog dialog) {
|
||||
|
||||
|
||||
public static CustomDialog setCancelListener(CustomDialog dialog, OnCancelListener listener) {
|
||||
dialog.setOnCancelListener(listener);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
public static void show(CustomDialog dialog) {
|
||||
|
||||
dialog.findViewById(R.id.dialog_template_button).setVisibility(View.GONE);
|
||||
dialog.findViewById(R.id.dialog_template_button_vertical).setVisibility(View.GONE);
|
||||
dialog.show();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static ViewGroup getUnusedButtonContainer(CustomDialog dialog) {
|
||||
if (dialog.verticalButtons)
|
||||
return (ViewGroup) dialog.findViewById(R.id.dialog_button_container);
|
||||
else
|
||||
return (ViewGroup) dialog.findViewById(R.id.dialog_button_container_vertical);
|
||||
}
|
||||
|
||||
private static ViewGroup getButtonContainer(CustomDialog dialog) {
|
||||
if (dialog.verticalButtons)
|
||||
return (ViewGroup) dialog.findViewById(R.id.dialog_button_container_vertical);
|
||||
else
|
||||
return (ViewGroup) dialog.findViewById(R.id.dialog_button_container);
|
||||
}
|
||||
|
||||
private static Button getButtonTemplate(CustomDialog dialog) {
|
||||
if (dialog.verticalButtons)
|
||||
return (Button) dialog.findViewById(R.id.dialog_template_button_vertical);
|
||||
else
|
||||
return (Button) dialog.findViewById(R.id.dialog_template_button);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,13 +9,15 @@ import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.gpl.rpg.AndorsTrail.view.CustomDialogFactory.CustomDialog;
|
||||
|
||||
/**
|
||||
* Simply instantiate this class, implement abstract methods in an anonymous type, and tada, your Button is a Spinner!
|
||||
*/
|
||||
public abstract class SpinnerEmulator {
|
||||
|
||||
private Button spinnerButton;
|
||||
private Dialog spinnerDialog = null;
|
||||
private CustomDialog spinnerDialog = null;
|
||||
private ListView choicesList;
|
||||
private Context context;
|
||||
|
||||
|
||||
@@ -48018,6 +48018,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48139,6 +48142,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48853,7 +48860,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50728,7 +50735,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50863,6 +50870,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58661,6 +58672,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47909,6 +47909,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48030,6 +48033,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48744,7 +48751,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50619,7 +50626,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50754,6 +50761,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58552,6 +58563,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47910,6 +47910,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48031,6 +48034,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48745,7 +48752,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50620,7 +50627,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50755,6 +50762,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58553,6 +58564,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47912,6 +47912,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48033,6 +48036,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48747,7 +48754,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50622,7 +50629,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50757,6 +50764,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58555,6 +58566,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -48033,6 +48033,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48154,6 +48157,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48868,7 +48875,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50743,7 +50750,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50878,6 +50885,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Daga"
|
||||
@@ -58728,6 +58739,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47909,6 +47909,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48030,6 +48033,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48744,7 +48751,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50619,7 +50626,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50754,6 +50761,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58552,6 +58563,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -48734,6 +48734,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48855,6 +48858,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -49569,7 +49576,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -51444,7 +51451,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -51579,6 +51586,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Dýka"
|
||||
@@ -59536,6 +59547,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "Hledání Andora"
|
||||
|
||||
Binary file not shown.
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: Andors Trail\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-11-10 11:48+0000\n"
|
||||
"PO-Revision-Date: 2022-10-07 23:04+0000\n"
|
||||
"PO-Revision-Date: 2022-10-08 23:15+0000\n"
|
||||
"Last-Translator: Nut Andor <nut.andor@posteo.de>\n"
|
||||
"Language-Team: German <https://hosted.weblate.org/projects/andors-trail/"
|
||||
"game-content/de/>\n"
|
||||
@@ -48689,7 +48689,7 @@ msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_matpat_3:1
|
||||
msgid "I'll find him."
|
||||
msgstr ""
|
||||
msgstr "Ich werde ihn finden."
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_matpat_4
|
||||
msgid "We should find him or else what shall we do?"
|
||||
@@ -48744,6 +48744,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48865,6 +48868,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -49579,7 +49586,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -51454,7 +51461,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -51589,6 +51596,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Dolch"
|
||||
@@ -59551,6 +59562,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "Suche nach Andor"
|
||||
|
||||
@@ -47907,6 +47907,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48028,6 +48031,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48742,7 +48749,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50617,7 +50624,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50752,6 +50759,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58550,6 +58561,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -48020,6 +48020,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48141,6 +48144,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48855,7 +48862,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50730,7 +50737,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50865,6 +50872,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58663,6 +58674,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47907,6 +47907,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48028,6 +48031,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48742,7 +48749,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50617,7 +50624,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50752,6 +50759,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58550,6 +58561,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47893,6 +47893,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48014,6 +48017,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48728,7 +48735,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50598,7 +50605,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50733,6 +50740,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58531,6 +58542,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47909,6 +47909,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48030,6 +48033,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48744,7 +48751,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50619,7 +50626,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50754,6 +50761,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58552,6 +58563,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -48576,6 +48576,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48697,6 +48700,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -49411,7 +49418,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -51286,7 +51293,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -51421,6 +51428,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Puñal"
|
||||
@@ -59377,6 +59388,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "La búsqueda de Andor"
|
||||
|
||||
@@ -47907,6 +47907,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48028,6 +48031,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48742,7 +48749,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50617,7 +50624,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50752,6 +50759,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58550,6 +58561,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47907,6 +47907,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48028,6 +48031,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48742,7 +48749,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50617,7 +50624,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50752,6 +50759,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58550,6 +58561,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47919,6 +47919,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48040,6 +48043,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48754,7 +48761,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50629,7 +50636,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50764,6 +50771,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58562,6 +58573,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47943,6 +47943,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48064,6 +48067,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48778,7 +48785,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50653,7 +50660,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50788,6 +50795,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58586,6 +58597,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -47909,6 +47909,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48030,6 +48033,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48744,7 +48751,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50619,7 +50626,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50754,6 +50761,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58552,6 +58563,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47919,6 +47919,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48040,6 +48043,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48754,7 +48761,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50629,7 +50636,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50764,6 +50771,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58562,6 +58573,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47946,6 +47946,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48067,6 +48070,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48781,7 +48788,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50656,7 +50663,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50791,6 +50798,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58589,6 +58600,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
Binary file not shown.
@@ -3,26 +3,28 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-18 09:24+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"PO-Revision-Date: 2022-10-12 06:50+0000\n"
|
||||
"Last-Translator: Anupam Malhotra <anpm.malhotra@gmail.com>\n"
|
||||
"Language-Team: Hindi <https://hosted.weblate.org/projects/andors-trail/"
|
||||
"game-content/hi/>\n"
|
||||
"Language: hi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Translate Toolkit 3.3.2\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 4.15-dev\n"
|
||||
|
||||
#: actorconditions_v069.json:bless
|
||||
msgid "Bless"
|
||||
msgstr ""
|
||||
msgstr "आशीर्वाद"
|
||||
|
||||
#: actorconditions_v069.json:poison_weak
|
||||
msgid "Weak Poison"
|
||||
msgstr ""
|
||||
msgstr "कमजोर ज़हर"
|
||||
|
||||
#: actorconditions_v069.json:str
|
||||
msgid "Strength"
|
||||
msgstr ""
|
||||
msgstr "शक्ति"
|
||||
|
||||
#: actorconditions_v069.json:regen
|
||||
msgid "Shadow Regeneration"
|
||||
@@ -34,7 +36,7 @@ msgstr ""
|
||||
|
||||
#: actorconditions_v069_bwm.json:fatigue_minor
|
||||
msgid "Minor fatigue"
|
||||
msgstr ""
|
||||
msgstr "हल्की थकान"
|
||||
|
||||
#: actorconditions_v069_bwm.json:feebleness_minor
|
||||
msgid "Minor weapon feebleness"
|
||||
@@ -47907,6 +47909,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48028,6 +48033,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48742,7 +48751,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50617,7 +50626,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50752,6 +50761,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58550,6 +58563,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -48089,6 +48089,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48210,6 +48213,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48924,7 +48931,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50799,7 +50806,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50934,6 +50941,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Tőr"
|
||||
@@ -58732,6 +58743,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "Andor keresése"
|
||||
|
||||
@@ -48099,6 +48099,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48220,6 +48223,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48934,7 +48941,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50809,7 +50816,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50944,6 +50951,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Pisau belati"
|
||||
@@ -58742,6 +58753,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -48568,6 +48568,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48689,6 +48692,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -49403,7 +49410,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -51278,7 +51285,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -51413,6 +51420,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Pugnale"
|
||||
@@ -59371,6 +59382,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "La ricerca di Andor"
|
||||
|
||||
@@ -48729,6 +48729,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48850,6 +48853,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -49564,7 +49571,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -51439,7 +51446,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -51574,6 +51581,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "ダガー"
|
||||
@@ -59531,6 +59542,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "アンドールの捜索"
|
||||
|
||||
Binary file not shown.
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: andors-trail\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-11-10 11:48+0000\n"
|
||||
"PO-Revision-Date: 2022-03-16 14:59+0000\n"
|
||||
"PO-Revision-Date: 2022-10-19 16:07+0000\n"
|
||||
"Last-Translator: 이정희 <daemul72@gmail.com>\n"
|
||||
"Language-Team: Korean <https://hosted.weblate.org/projects/andors-trail/"
|
||||
"game-content/ko/>\n"
|
||||
@@ -17,12 +17,16 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 4.12-dev\n"
|
||||
"X-Generator: Weblate 4.14.2-dev\n"
|
||||
"X-Launchpad-Export-Date: 2015-11-02 12:26+0000\n"
|
||||
|
||||
#: [none]
|
||||
msgid "translator-credits"
|
||||
msgstr "번역 참여분들:KimHyunSu,KimTaeYang,KimSeungEon,LeeJungHee"
|
||||
msgstr ""
|
||||
"KimHyunSu,\n"
|
||||
"KimTaeYang,\n"
|
||||
"KimSeungEon,\n"
|
||||
"LeeJungHee"
|
||||
|
||||
#: actorconditions_v069.json:bless
|
||||
msgid "Bless"
|
||||
@@ -1186,7 +1190,7 @@ msgstr ""
|
||||
#: conversationlist_brimhaven.json:edrin_0_0
|
||||
#: conversationlist_gorwath.json:arensia_1:0
|
||||
msgid "Hello."
|
||||
msgstr ""
|
||||
msgstr "안녕하세요."
|
||||
|
||||
#: conversationlist_crossglen_leta.json:oromir2
|
||||
msgid "I'm hiding here from my wife Leta. She is always getting angry at me for not helping out on the farm. Please don't tell her that I'm here."
|
||||
@@ -4694,7 +4698,7 @@ msgstr ""
|
||||
|
||||
#: conversationlist_umar.json:umar_return_1:3
|
||||
msgid "What are your plans for the new traitors?"
|
||||
msgstr ""
|
||||
msgstr "새로운 반역자들에 대한 당신의 계획은 무엇입니까?"
|
||||
|
||||
#: conversationlist_umar.json:umar_return_1:4
|
||||
msgid "Matpat told me that Defy and his men left Sullengard."
|
||||
@@ -4726,11 +4730,11 @@ msgstr ""
|
||||
|
||||
#: conversationlist_umar.json:umar_return_1:12
|
||||
msgid "What are your plans for the traitors?"
|
||||
msgstr "[OUTDATED]안녕."
|
||||
msgstr "반역자들에 대한 당신의 계획은 무엇입니까?"
|
||||
|
||||
#: conversationlist_umar.json:umar_return_1:13
|
||||
msgid "Can you continue with what you were telling me about the traitors?"
|
||||
msgstr ""
|
||||
msgstr "반역자들에 대해 나에게 말했던 것을 계속할 수 있습니까?"
|
||||
|
||||
#: conversationlist_umar.json:umar_return_1:14
|
||||
msgid "We are supposed to talk about something."
|
||||
@@ -8210,7 +8214,7 @@ msgstr ""
|
||||
|
||||
#: conversationlist_prim_guthbered.json:guthbered_workingforbwm_1
|
||||
msgid "Fine. You should leave now while you still can, traitor."
|
||||
msgstr ""
|
||||
msgstr "좋아, 할 수 있을 때 당장 떠나야 해, 반역자."
|
||||
|
||||
#: conversationlist_prim_guthbered.json:guthbered_talkedto_harl_9
|
||||
msgid "I want you to go up there into their settlement and find any clues as to what they are planning."
|
||||
@@ -25934,7 +25938,7 @@ msgstr ""
|
||||
|
||||
#: conversationlist_guynmart_npc.json:guynmart_steward4_20:1
|
||||
msgid "Do you think so? Traitor!"
|
||||
msgstr ""
|
||||
msgstr "그렇게 생각하는거냐? 반역자!"
|
||||
|
||||
#: conversationlist_guynmart_npc.json:guynmart_steward4_30
|
||||
msgid "Now you will get what you deserve!"
|
||||
@@ -32474,7 +32478,7 @@ msgstr ""
|
||||
|
||||
#: conversationlist_omicronrg9.json:umar_guild03_12:0
|
||||
msgid "And you think the traitors are involved in that?"
|
||||
msgstr ""
|
||||
msgstr "그리고 반역자들이 거기에 연루되어 있다고 생각하니?"
|
||||
|
||||
#: conversationlist_omicronrg9.json:umar_guild03_13
|
||||
msgid "I'm pretty sure about it. The team leader is the one we call \"Crackshot\", as he is a master of murder, torture and the subjugation arts. He's really a dangerous man."
|
||||
@@ -48006,12 +48010,17 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_2
|
||||
msgid "No. We still don't know where that traitor is. How can we ever sleep peacefully and live sufficiently with this tragic situation?"
|
||||
msgstr ""
|
||||
"아니. 우리는 그 배신자가 어디에 있는지 아직 몰라. 우리는 어떻게 평화롭게 "
|
||||
"잠을 자고 이 비극적인 상황에서 충분히 살 수 있을까?"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_3
|
||||
msgid "But please talk to my fellow bootleg brewers. Maybe they know something."
|
||||
@@ -48127,6 +48136,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48841,7 +48854,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50716,7 +50729,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50851,6 +50864,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "단도"
|
||||
@@ -58649,6 +58666,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "안도르를 찾아라"
|
||||
@@ -63404,4 +63425,3 @@ msgstr ""
|
||||
#: worldmap.xml:world1:deebo_orchard
|
||||
msgid "Deebo's Orchard"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -47932,6 +47932,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48053,6 +48056,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48767,7 +48774,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50642,7 +50649,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50777,6 +50784,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Pisau"
|
||||
@@ -58575,6 +58586,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47945,6 +47945,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48066,6 +48069,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48780,7 +48787,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50655,7 +50662,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50790,6 +50797,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58588,6 +58599,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47972,6 +47972,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48093,6 +48096,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48807,7 +48814,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50682,7 +50689,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50817,6 +50824,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58615,6 +58626,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "Zoektocht naar Andor"
|
||||
|
||||
@@ -47912,6 +47912,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48033,6 +48036,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48747,7 +48754,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50622,7 +50629,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50757,6 +50764,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58555,6 +58566,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
Binary file not shown.
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: Andors Trail\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-11-10 11:48+0000\n"
|
||||
"PO-Revision-Date: 2022-10-05 18:56+0000\n"
|
||||
"PO-Revision-Date: 2022-10-19 16:07+0000\n"
|
||||
"Last-Translator: Daniel Stasiak <daniels.automatyk@gmail.com>\n"
|
||||
"Language-Team: Polish <https://hosted.weblate.org/projects/andors-trail/"
|
||||
"game-content/pl/>\n"
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.14.1\n"
|
||||
"X-Generator: Weblate 4.14.2-dev\n"
|
||||
"X-Launchpad-Export-Date: 2015-11-02 12:27+0000\n"
|
||||
|
||||
#: [none]
|
||||
@@ -12808,11 +12808,11 @@ msgstr "Twoje łóżko jest tam, w tyle. Korzystaj z niego do woli."
|
||||
|
||||
#: conversationlist_loneford_4.json:arngyr_7
|
||||
msgid "Look, kid. I make the rules around here. If that's my price then that's my price. Take it or leave it."
|
||||
msgstr "Słuchaj mały. Ustalam tu zasady. Jeśli taka jest moja cena, to jest ona niezmienna. Bierzesz albo nie."
|
||||
msgstr "Słuchaj młody. To ja ustalam tu zasady. Jeśli mówię że coś kosztuje tyle to nie ma gadania że to tamto. Bierzesz albo nie."
|
||||
|
||||
#: conversationlist_loneford_4.json:arngyr_7:0
|
||||
msgid "Fine, here is the gold."
|
||||
msgstr "Świetnie. Proszę, tu jest złoto."
|
||||
msgstr "Cóż, oto należna zapłata."
|
||||
|
||||
#: conversationlist_loneford_4.json:arngyr_7:1
|
||||
msgid "Never mind then."
|
||||
@@ -12848,7 +12848,7 @@ msgstr "To nie jest miejsce dla takiego dzieciaka jak Ty. Myślę, że powiniene
|
||||
|
||||
#: conversationlist_loneford_4.json:loneford_tavern_patron:0
|
||||
msgid "I met a man named Forlin who recommended that I speak with you in regards to a possible murder investigation that I am conducting."
|
||||
msgstr "Spotkałem mężczyznę o imieniu Forlin, który polecił abym porozmawiał z Tobą w związku z potencjalnym śledztwem, które prowadzę w sprawie morderstwa."
|
||||
msgstr "Spotkałem mężczyznę o imieniu Forlin, który polecił abym porozmawiał z Tobą w związku z śledztwem które prowadzę w sprawie potencjalnego morderstwa."
|
||||
|
||||
#: conversationlist_loneford_4.json:loneford_tavern_patron:1
|
||||
msgid "I did as you suggested and found the scene of a murder and I found this glove."
|
||||
@@ -35805,7 +35805,7 @@ msgstr "Tak mi przykro słyszeć o Twoich problemach. Też uwielbiam psy."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_tavern1_guest2:1
|
||||
msgid "Hey, speaking of killing, I'm wondering if you know anything about Lawellyn's death?"
|
||||
msgstr "Hej, skoro mowa o zabójstwie, zastanawiam się czy wiesz coś o śmierci Lawellyn?"
|
||||
msgstr "Hej, skoro już mówimy o zabijaniu, to może wiesz coś o tym jak umarł Lawellyn?"
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_tavern1_landlord
|
||||
msgid "I'm coming, just a second..."
|
||||
@@ -37272,7 +37272,7 @@ msgstr "Proszę bardzo młody"
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_2_1
|
||||
msgid "I recognize this. I made it, many years ago, for a man called Lawellyn. Alas, I hear he is now dead. See this recess in the pommel? There used to be an unusual gem in that. It gave the dagger some special properties. If you can find the gem, I can repair it for you."
|
||||
msgstr "Poznaję to. Stworzyłem go, wiele lat temu, dla mężczyzny o imieniu Lawellyn. Słyszałem, że już niestety nie żyje. Widzisz to zagłębienie w rękojeści? Kiedyś był w nim niezwykły klejnot. Nadawał ostrzu specjalnych właściwości. Jeśli znajdziesz klejnot, to mogę Ci go naprawić."
|
||||
msgstr "Poznaję moje dzieło. Stworzyłem go wiele lat temu, dla mężczyzny o imieniu Lawellyn. Słyszałem, że już niestety nie żyje. Widzisz to zagłębienie w rękojeści? Kiedyś był w nim osadzony niezwykły klejnot. Nadawał ostrzu specjalnych właściwości. Jeśli znajdziesz klejnot, to mogę Ci go naprawić."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_2_1:0
|
||||
msgid "I think I know where to find that. I'll go and get it."
|
||||
@@ -37288,7 +37288,7 @@ msgstr "Porozmawiajmy o czymś innym."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_3_1
|
||||
msgid "I recognize this. It was used in something I made, many years ago. It was set into the pommel of a dagger I made for a man called Lawellyn. Alas, I hear he is now dead. It gave the dagger some special properties. If you can find the dagger, I can repair it for you."
|
||||
msgstr "Rozpoznaję to. Zostało użyte w czymś co stworzyłem wiele lat temu. Był osadzony w rękojeści sztyletu zrobionego dla mężczyzny o imieniu Lawellyn. Niestety słyszę, że on już nie żyje. Nadawał sztyletowi specjalnych właściwości. Jeśli znajdziesz sztylet, to mogę Ci go naprawić."
|
||||
msgstr "Rozpoznaję go. Był osadzony w rękojeści sztyletu zrobionego wiele lat temu dla pewnego mężczyzny o imieniu Lawellyn. Niestety, doszły mnie wieści że człowiek ów już nie żyje. Klejnot dawał sztyletowi specjalne właściwości. Znajdź sztylet, a wówczas go naprawię."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_3_1:0
|
||||
msgid "I think I know where to find that. I'll be right back."
|
||||
@@ -37296,15 +37296,15 @@ msgstr "Myślę, że wiem gdzie go znaleźć. Zaraz wracam."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_3_1:1
|
||||
msgid "Maybe if I find the time I'll look for it. Let's talk about something else."
|
||||
msgstr "Może jeśli znajdę czas to się zanim rozejrzę. Porozmawiajmy o czymś innym."
|
||||
msgstr "Jeśli tylko znajdę czas, to go poszukam. Porozmawiajmy o czymś innym."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_3_1:2
|
||||
msgid "OK. Thanks for the information."
|
||||
msgstr "OK. Dziękuję za informacje."
|
||||
msgstr "Dobrze. Dziękuję za informacje."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_4_1
|
||||
msgid "I recognize these. I made the dagger, many years ago, for a man called Lawellyn. Alas, I hear he is now dead. See this recess in the pommel? The gem you have fits in that. It gave the dagger some special properties. If you wish, I can repair it for you."
|
||||
msgstr "Rozpoznaję je. Stworzyłem sztylet wiele lat temu, dla mężczyzny o imieniu Lawellyn. Słyszę niestety, że już nie żyje. Widzisz to wgłębienie w rękojeści? Ten klejnot, który masz pasuje do niego. Nadawał sztyletowi specjalnych właściwości. Jeśli chcesz to naprawię Ci go."
|
||||
msgstr "Rozpoznaję te przedmioty. Stworzyłem ten sztylet wiele lat temu, dla mężczyzny o imieniu Lawellyn. Niestety jak słyszałem, to człowiek ów już nie żyje. Widzisz to wgłębienie w rękojeści? Klejnot, który masz idealnie pasuje do niego. Nadaje sztyletowi specjalnych właściwości. Jeśli chcesz to naprawię go dla Ciebie."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_4_1:0
|
||||
#: conversationlist_brimhaven.json:edrin_5_0:0
|
||||
@@ -37331,7 +37331,7 @@ msgstr "Mam sztylet. Myślę, że pasuje do klejnotu o którym rozmawialiśmy. "
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_0_0:4
|
||||
msgid "I'm looking for my brother, Andor. Have you seen anyone around town that looks a bit like me?"
|
||||
msgstr "Szukam brata, Andora. Widział pan w okolicy kogoś podobnego do mnie?"
|
||||
msgstr "Szukam mojego brata, ma na imię Andora. Widziałeś może już tu wcześniej kogoś podobnego do mnie?"
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_0_0:6
|
||||
msgid "Hello, did you order a 'Striped Hammer'?"
|
||||
@@ -37339,11 +37339,11 @@ msgstr "Witaj, czy zamawiałeś 'Młot w paski'?"
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_5_0
|
||||
msgid "Yes, that's the one that matches the dagger! Now that I have both pieces, I can repair the dagger for you if you wish."
|
||||
msgstr "Tak, to ten odpowiedni dla sztyletu! Teraz gdy mam obie części mogę Ci naprawić ten sztylet, jeśli chcesz."
|
||||
msgstr "Tak, to ten klejnot który był osadzony w rękojeści! Teraz gdy mam już obie części to mogę naprawić sztylet, jeśli tylko chcesz."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_6_0
|
||||
msgid "Yes, that's the one that matches the gem! Now that I have both pieces, I can repair the dagger for you if you wish."
|
||||
msgstr "Tak, to ten, który pasuje do klejnotu! Teraz, gdy mam obie części mogę naprawić sztylet, jeśli chcesz."
|
||||
msgstr "Tak, to sztylet w którego rękojeści był osadzony klejnot! Teraz, gdy mam obie części to mogę naprawić go, jeśli oczywiście tego chcesz."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_6_0:1
|
||||
msgid "I'll think about it"
|
||||
@@ -37353,7 +37353,7 @@ msgstr "Zastanowię się nad tym"
|
||||
#: conversationlist_brimhaven.json:edrin_5_1
|
||||
#: conversationlist_brimhaven.json:edrin_6_1
|
||||
msgid "The best I can offer is 800 gold. The repair is quite delicate, and if done incorrectly it will just be a dagger with a gem in the pommel, and no more."
|
||||
msgstr "Jedyne co mogę zaoferować to 800 sztuk złota. Naprawa jest dość precyzyjna, a jeśli zostanie przeprowadzona nieprawidłowo, to będzie jedynie sztylet z klejnotem i nic więcej."
|
||||
msgstr "Minimalna cena jaką mogę zaoferować to 800 sztuk złota. Naprawa musi być wykonana z odpowiednią precyzją, a jeden błąd może sprawić, że będzie to jedynie sztylet z klejnotem i nic więcej."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_4_2:0
|
||||
#: conversationlist_brimhaven.json:edrin_5_1:0
|
||||
@@ -37371,13 +37371,13 @@ msgstr "To zbyt drogo. Zatrzymam sztylet oraz klejnot, który mam."
|
||||
#: conversationlist_brimhaven.json:edrin_5_1:2
|
||||
#: conversationlist_brimhaven.json:edrin_6_1:2
|
||||
msgid "OK. I agree. Here are the dagger and the gem."
|
||||
msgstr "OK. Zgadzam się. Oto sztylet i klejnot."
|
||||
msgstr "W porządku. Zgadzam się. Oto sztylet i klejnot."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_4_3a
|
||||
#: conversationlist_brimhaven.json:edrin_5_2a
|
||||
#: conversationlist_brimhaven.json:edrin_6_2a
|
||||
msgid "That is up to you, although I think you have made a mistake."
|
||||
msgstr "To zależy od Ciebie, myślę jednak, że popełniłeś błąd."
|
||||
msgstr "To Twoja decyzja, jednakże moim zdaniem popełniasz błąd."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_4_3b
|
||||
#: conversationlist_brimhaven.json:edrin_5_2b
|
||||
@@ -37387,25 +37387,25 @@ msgstr "To zajmie mi trochę czasu. Przyjdź później by odebrać naprawiony sz
|
||||
#: conversationlist_brimhaven.json:edrin_7_1a
|
||||
#: conversationlist_brimhaven.json:edrin_7_1b
|
||||
msgid "Yes, it is done. Here is the repaired dagger. It's nice to see Lawellyn's dagger brought back to its original glory. There is some mystery about his death. I don't know anything about it though. Maybe someone else in town can tell you more."
|
||||
msgstr "Tak, zrobione. Oto naprawiony sztylet. Miło widzieć, że przywrócono dawno świetność sztyletowi Lawellyna. Jest pewna tajemnica dotycząca jego śmierci. Jednak nic o tym nie wiem. Może ktoś inny w mieście będzie mógł Ci powiedzieć więcej."
|
||||
msgstr "Tak, jest naprawiony. Proszę, oto on. Miło jest widzieć, że sztylet Lawellyna odzyskał dawną świetność. Żeby było ciekawiej, okoliczności jego śmierci nie są do końca jasne. Tyle wiem w tym temacie. Może ktoś z miejscowych powie Ci coś więcej."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_7_1c
|
||||
msgid "No, not yet. You must have patience. I told you this is a difficult repair."
|
||||
msgstr "Nie, jeszcze nie. Musisz mieć cierpliwość. Mówiłem Ci, że trudno to naprawić."
|
||||
msgstr "Nie, jeszcze nie. Cierpliwości. Tłumaczyłem Ci przecież, że to robota wymagająca precyzji."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_4_3c
|
||||
#: conversationlist_brimhaven.json:edrin_5_2c
|
||||
#: conversationlist_brimhaven.json:edrin_6_2c
|
||||
msgid "Feel free to come back when you decide."
|
||||
msgstr "Jeśli masz ochotę wróć do nas, gdy się zdecydujesz."
|
||||
msgstr "Jeśli się zdecydujesz, to zajrzyj tu ponownie."
|
||||
|
||||
#: conversationlist_brimhaven.json:edrin_6_2b
|
||||
msgid "This will take me some time. Please come back later to collect the repaired dagger."
|
||||
msgstr "To zajmie trochę czasu. Przyjdź później, by odebrać naprawiony sztylet."
|
||||
msgstr "To zajmie mi trochę czasu. Przyjdź tu później."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_1
|
||||
msgid "May I help you? [He looks down on you.]"
|
||||
msgstr "Mogę Ci pomóc? [Patrzy na Ciebie z góry.]"
|
||||
msgstr "W czym mogę pomóc? [Patrzy na Ciebie.]"
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_1:0
|
||||
msgid "I am just checking things out."
|
||||
@@ -37421,15 +37421,18 @@ msgstr "[Wskazujesz na bardzo drogi naszyjnik] Ile to kosztuje?"
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_3
|
||||
msgid "I don't think this would fit you."
|
||||
msgstr "Nie sądzę by Ci to pasowało."
|
||||
msgstr "Nie sądzę aby pasował do Ciebie."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_3:0
|
||||
msgid "Well, I didn't ask if it would fit. I asked how much it was."
|
||||
msgstr "W porządku, nie pytałem czy pasowałoby mi. Pytałem ile by to kosztowało."
|
||||
msgstr ""
|
||||
"Cóż, ja nie pytałem o to czy pasowałby do mnie. Pytałem ile on kosztuje."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_4
|
||||
msgid "It is very expensive. I don't think we have anything for you. You are obviously in the wrong place. Please leave."
|
||||
msgstr "To bardzo drogie. Nic tu nie mam dla Ciebie. Najwyraźniej jesteś w złym miejscu. Odejdź."
|
||||
msgstr ""
|
||||
"Jest bardzo drogi. Myślę, że akurat tu nie ma nic dla Ciebie. To oczywiste, "
|
||||
"że trafiłeś w złe miejsce. Wyjdź stąd."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_4:0
|
||||
msgid "[You slowly pull out your coin bag and show him your gold.]"
|
||||
@@ -37437,23 +37440,25 @@ msgstr "[Powoli wyjmujesz swą sakwę i pokazujesz mu złoto.]"
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_guard_20
|
||||
msgid "Hello again, Sir."
|
||||
msgstr "Witam ponownie, panie."
|
||||
msgstr "Witam ponownie Szanownego Pana."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_guard_10
|
||||
msgid "I will keep an eye on you."
|
||||
msgstr "Będę Cię pilnował."
|
||||
msgstr "Mam Cię na oku."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_20
|
||||
msgid "How can I serve you, Sir?"
|
||||
msgstr "W czym mogę służyć, panie?"
|
||||
msgstr "W czym mogę służyć Szanownemu Panu?"
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_20:0
|
||||
msgid "Show me your wares."
|
||||
msgstr "Pokaż mi swoje towary."
|
||||
msgstr "Pokaż mi co masz na sprzedaż."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_20:1
|
||||
msgid "I am looking for a necklace in our family colors of red, green and white, that I would like to give as a present to my father."
|
||||
msgstr "Szukam naszyjnika w naszych rodzinnych barwach, czerwieni, zieleni i bieli, który mógłbym dać ojcu jako prezent."
|
||||
msgstr ""
|
||||
"Szukam naszyjnika w naszych rodowych barwach: czerwieni, zieleni i bieli. "
|
||||
"Chciałbym go dać ojcu jako prezent."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_10
|
||||
msgid ""
|
||||
@@ -37461,15 +37466,17 @@ msgid ""
|
||||
"I was just kidding, child... I mean... Sir!"
|
||||
msgstr ""
|
||||
"[Jego oczy rozszerzają się.] Och\n"
|
||||
"Tylko żartowałem, dzieciaku... Miałem na myśli... Panie!"
|
||||
"Tylko żartowałem, młody... Miałem na myśli... Szanowny Panie!"
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_10:0
|
||||
msgid "Show me your wares, you worm."
|
||||
msgstr "Pokaż mi swoje towary, ty gnido."
|
||||
msgstr "Pokaż mi co masz na sprzedaż, ty szujo."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_30
|
||||
msgid "No problem, Sir. I can arrange one for you. Just tell me how much you want to spend."
|
||||
msgstr "Nie ma problemu, panie. Mogę Ci jeden załatwić. Powiedz mi ile chcesz wydać."
|
||||
msgstr ""
|
||||
"Klient nasz Pan. Mogę sprezentować taki. Muszę tylko wiedzieć w jakiej cenie "
|
||||
"mam się zmieścić."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_30:1
|
||||
msgid "Give me a necklace for 5 gold coins."
|
||||
@@ -37493,7 +37500,7 @@ msgstr "Oto naszyjnik."
|
||||
|
||||
#: conversationlist_brimhaven.json:brv_shop_owner_40_1
|
||||
msgid "Take this... valuable necklace. Your father will be proud to wear it."
|
||||
msgstr "Weź ten... wartościowy naszyjnik. Twój ojciec będzie dumny, że go nosi."
|
||||
msgstr "Weź ten... cenny naszyjnik. Twój ojciec będzie dumny, że go nosi."
|
||||
|
||||
#: conversationlist_brimhaven.json:mikhail_present_10
|
||||
msgid "I asked you to search for your brother Andor and you did not find out anything and instead you are bringing me a necklace? Go and search for your brother!"
|
||||
@@ -39774,7 +39781,7 @@ msgid ""
|
||||
"Survived by Arlish"
|
||||
msgstr ""
|
||||
"Tu leży Lawellyn słaby.\n"
|
||||
"Przeżył go Arlish"
|
||||
"Przeżyła go Arlish"
|
||||
|
||||
#: conversationlist_brimhaven_2.json:brv2_grave_9_1:0
|
||||
msgid "Hmm, interesting."
|
||||
@@ -39867,11 +39874,11 @@ msgstr "Być może. Kto pyta?"
|
||||
|
||||
#: conversationlist_brimhaven_2.json:brv_tavern1_guest2_asd_10:0
|
||||
msgid "Well, I've been asked by Lawellyn's daughter, Arlish, to investigate his death."
|
||||
msgstr "Świetnie, zostałem poproszony przez córkę Lawellyna Arlish, aby zbadać okoliczności jego śmierci."
|
||||
msgstr "Cóż, Arlish, córka Lawellyna poprosiła mnie abym zbadał okoliczności jego śmierci."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:brv_tavern1_guest2_asd_20
|
||||
msgid "Oh, OK. Arlish helped me a lot in school when we were kids, so I feel like I owe it to her to help you."
|
||||
msgstr "Och, OK. Kiedy byliśmy dziećmi to Arlish bardzo mi pomogła w nauce. Sądzę, że jestem jej winien pomocy."
|
||||
msgstr "Och, dobra. Arlish bardzo pomagała mi w nauce, kiedy byliśmy dziećmi a zatem myślę, że jestem jej winien pomoc."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:brv_tavern1_guest2_asd_30
|
||||
msgid "Don't tell the bartender, but I like to frequent the tavern in Loneford a lot, and as such, I've developed quite a friendship with the owner Kizzo. One day we were talking about how scary the woods between Loneford and Brimhaven can be at nighttime. After sharing some not so scary stories, Kizzo told me a crazy murder story. Now I can't remember the details because...well, I had been drinking."
|
||||
@@ -39883,11 +39890,11 @@ msgstr "Proponuję Ci porozmawiać z Kizzo."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:kizzo_asd_10
|
||||
msgid "Oh, yes. A couple of years ago, a customer that I've never seen before nor have I seen since, sits down at the bar with a terrified look on his face."
|
||||
msgstr "Och, tak. Wiele lat temu klient, którego nigdy wcześniej ani później nie widziałem, usiadł przy barze z przerażającym wyrazem twarzy."
|
||||
msgstr "A, tak. Kilka lat temu był tu klient, którego nigdy wcześniej ani później nie widziałem. Zapamiętałem go z uwagi na przerażenie jakie miał wypisane na twarzy."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:kizzo_asd_20
|
||||
msgid "He begins to tell me that he just witnessed two men in the woods between here and Brimhaven embroiled in a violent altercation and fears that one killed the other."
|
||||
msgstr "Zaczyna opowiadać mi, że właśnie dostrzegł dwóch mężczyzn w lesie między tym miejscem, a Brimhaven uwikłanych w gwałtowną sprzeczkę i obawia się, że jeden zabił drugiego."
|
||||
msgstr "Opowiedział mi, jak odrobinę wcześniej dostrzegł dwóch uwikłanych w gwałtowną kłótnię mężczyzn w lesie pomiędzy Loneford a Brimhaven i obawiał się, że jeden zabił drugiego."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:kizzo_asd_30
|
||||
msgid "That's all I know. Maybe you could find out more if you can find the scene of the murder?"
|
||||
@@ -39895,11 +39902,11 @@ msgstr "Tyle wiem. Może mógłbyś dowiedzieć się więcej, jeśli znajdziesz
|
||||
|
||||
#: conversationlist_brimhaven_2.json:kizzo_asd_40
|
||||
msgid "Wow! This glove looks like it's been through a lot."
|
||||
msgstr "Wow! Ta rękawiczka wygląda jakby była całkiem znoszona."
|
||||
msgstr "Jejku! Ta rękawiczka wygląda jakby wiele przeszła."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:kizzo_asd_50
|
||||
msgid "This does however look like it used to be a high quality item."
|
||||
msgstr "Jednakże wygląda to jako rzecz całkiem dobrej jakości."
|
||||
msgstr "Jednakże wygląda na to, że była to rękawica dobrej jakości."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:kizzo_asd_60
|
||||
msgid "Yes. If that was my glove, I would have tried to get a new one made instead of buying a new set as it would be cheaper."
|
||||
@@ -39911,7 +39918,7 @@ msgstr "Gdzie ktoś mógłby znaleźć tylko jedną rękawiczkę?"
|
||||
|
||||
#: conversationlist_brimhaven_2.json:kizzo_asd_70
|
||||
msgid "Well, I know Venanra in Brimhaven does some great work with cloth and leather items."
|
||||
msgstr "Świetnie, Venanra z Brimhaven wykonuje świetne dzieła z materiału i artykułów skórzanych."
|
||||
msgstr "Cóż, z tego co wiem to Venanra w Brimhaven szyje świetne rzeczy z wszelakich tkanin i skóry."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:brv_crime_scene_20
|
||||
msgid "[Upon inspection, you notice what appears to be leather peeking out from under some leaves. You pull at it, and find a glove. It has what looks like old blood stains on it.]"
|
||||
@@ -39931,19 +39938,19 @@ msgstr "Zignoruj to."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:brv_laundry_boss_10
|
||||
msgid "Well, yes, I have. In fact, I made one exactly like it a couple of years ago for a customer. I remember because it is a very unique looking glove."
|
||||
msgstr "Świetnie, tak, mam. Faktycznie, stworzyłem parę lat temu dla klienta taki sam. Pamiętam, ponieważ to bardzo unikatowo wyglądająca rękawiczka."
|
||||
msgstr "Cóż, tak, poznaję. Faktycznie, uszyłam takie parę lat temu. Pamiętam, ponieważ jest to wyjątkowo wyglądająca rękawiczka."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:brv_laundry_boss_10:0
|
||||
msgid "Can you remember who the customer was?"
|
||||
msgstr "Pamiętasz kto był tym klientem?"
|
||||
msgstr "Pamiętasz dla kogo je zrobiłaś?"
|
||||
|
||||
#: conversationlist_brimhaven_2.json:brv_laundry_boss_20
|
||||
msgid "Um, let me think for a second...ah, yes, it was for Ogea."
|
||||
msgstr "Uhm, niech no pomyślę... ach, tak, to była Ogea."
|
||||
msgstr "Uhm, niech no pomyślę... ach, tak, to był Ogea."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:brv_laundry_boss_30
|
||||
msgid "He came to me with a story that he lost his glove while hunting one night and how he wanted me to make him a replacement as he could not afford to purchase a new pair."
|
||||
msgstr "Przyszedł do mnie z bajeczką, że zgubił rękawiczkę pewnej nocy podczas polowania i chciał bym mu uszył zamiennik, ponieważ nie było go stać na nową parę."
|
||||
msgstr "Przyszedł do mnie mówiąc, że zgubił rękawiczkę podczas nocnego polowania i chciał, abym mu uszyła drugą, ponieważ nie było go stać na zakup nowej pary."
|
||||
|
||||
#: conversationlist_brimhaven_2.json:brv_laundry_boss_40
|
||||
msgid "Oh, absolutely. I'm sure."
|
||||
@@ -48730,6 +48737,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48851,6 +48861,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -49565,7 +49579,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -51440,7 +51454,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -51575,6 +51589,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Sztylet"
|
||||
@@ -59532,6 +59550,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "W poszukiwaniu Andora"
|
||||
@@ -63195,7 +63217,7 @@ msgstr "Powinienem zanieść dowody Kizzo."
|
||||
|
||||
#: questlist_brimhaven.json:brv_dagger:170
|
||||
msgid "Kizzo recommended that I ask Venanra in Brimhaven about the glove."
|
||||
msgstr "Kizzo polecił mi zapytać Venanra z Brimhaven o rękawicę."
|
||||
msgstr "Kizzo zaproponował mi abym zapytał Venanrę z Brimhaven o rękawicę."
|
||||
|
||||
#: questlist_brimhaven.json:brv_dagger:180
|
||||
msgid "After speaking with Venanra, I learned that the glove belonged to Ogea."
|
||||
@@ -64305,4 +64327,3 @@ msgstr ""
|
||||
#: worldmap.xml:world1:deebo_orchard
|
||||
msgid "Deebo's Orchard"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -47909,6 +47909,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48030,6 +48033,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48744,7 +48751,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50619,7 +50626,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50754,6 +50761,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58552,6 +58563,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -48508,6 +48508,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48629,6 +48632,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -49343,7 +49350,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -51218,7 +51225,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -51353,6 +51360,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Adaga"
|
||||
@@ -59258,6 +59269,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "Busca por Andor"
|
||||
|
||||
Binary file not shown.
@@ -3,8 +3,9 @@ msgstr ""
|
||||
"Project-Id-Version: Andors Trail\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-11-10 11:48+0000\n"
|
||||
"PO-Revision-Date: 2022-10-05 18:56+0000\n"
|
||||
"Last-Translator: Lucas Araujo <lucassants2808@gmail.com>\n"
|
||||
"PO-Revision-Date: 2022-10-23 04:10+0000\n"
|
||||
"Last-Translator: Elton Viana Gonçalves da Luz <eltongoncalves94@hotmail.com>"
|
||||
"\n"
|
||||
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
|
||||
"andors-trail/game-content/pt_BR/>\n"
|
||||
"Language: pt_BR\n"
|
||||
@@ -12,7 +13,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 4.14.1\n"
|
||||
"X-Generator: Weblate 4.14.2-dev\n"
|
||||
"X-Launchpad-Export-Date: 2015-11-02 12:27+0000\n"
|
||||
|
||||
#: [none]
|
||||
@@ -4726,7 +4727,7 @@ msgstr "[OUTDATED]Devemos conversar sobre alguma coisa."
|
||||
|
||||
#: conversationlist_umar.json:umar_return_1:7
|
||||
msgid "What am I supposed to do in Sullengard again?"
|
||||
msgstr ""
|
||||
msgstr "O que eu devo fazer em Sullengard novamente?"
|
||||
|
||||
#: conversationlist_umar.json:umar_return_1:9
|
||||
msgid "Are you going to tell me about the key?"
|
||||
@@ -48729,6 +48730,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48850,6 +48854,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -49564,7 +49572,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -51439,7 +51447,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -51574,6 +51582,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Adaga"
|
||||
@@ -59531,6 +59543,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "Busca por Andor"
|
||||
@@ -64304,4 +64320,3 @@ msgstr ""
|
||||
#: worldmap.xml:world1:deebo_orchard
|
||||
msgid "Deebo's Orchard"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -47916,6 +47916,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48037,6 +48040,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48751,7 +48758,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50626,7 +50633,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50761,6 +50768,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58559,6 +58570,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
Binary file not shown.
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: Andors Trail\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-11-10 11:48+0000\n"
|
||||
"PO-Revision-Date: 2022-10-02 05:56+0000\n"
|
||||
"PO-Revision-Date: 2022-10-23 04:10+0000\n"
|
||||
"Last-Translator: ilya <keygrov@ya.ru>\n"
|
||||
"Language-Team: Russian <https://hosted.weblate.org/projects/andors-trail/"
|
||||
"game-content/ru/>\n"
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.14.1\n"
|
||||
"X-Generator: Weblate 4.14.2-dev\n"
|
||||
"X-Launchpad-Export-Date: 2015-11-02 12:27+0000\n"
|
||||
|
||||
#: [none]
|
||||
@@ -48752,6 +48752,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr "Добро пожаловать в Зулленгард, малыш. Поздравляем с 20-летием пива!"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr "Мы хотим пожертвовать золото в качестве компенсации за ваш материальный ущерб."
|
||||
|
||||
@@ -48873,6 +48876,10 @@ msgstr "Здравствуйте. Я Годфри, и я владелец это
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr "Мне нужно где-нибудь расслабиться и восстановиться. У вас есть свободная кровать?"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr "Вы случайно не знаете, где заблудившийся путник?"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr "Да, да, но это обойдется вам гораздо дороже, чем вы, возможно, предполагаете."
|
||||
@@ -49592,8 +49599,8 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr "Правильно. Упс... у меня нет новых вил. Сейчас вернусь."
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgstr "Большое спасибо, малыш. Передайте моей жене Эйнсли, что сегодня я смогу вернуться домой вовремя."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr "[OUTDATED]Большое спасибо, малыш. Передайте моей жене Эйнсли, что сегодня я смогу вернуться домой вовремя."
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
msgid ""
|
||||
@@ -50082,11 +50089,11 @@ msgstr "А где сейчас этот человек?"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_zaccheria_90:0
|
||||
msgid "I wish I knew. After he told me where to find your stuff, he took off and I was unable to see in what direction he fled. Here is your inventory."
|
||||
msgstr "[OUTDATED]Хотелось бы мне знать. После того как он сказал мне, где найти ваши вещи, он убежал, и мне не удалось увидеть, в каком направлении."
|
||||
msgstr "Хотелось бы мне знать. После того как он сказал мне, где найти ваши вещи, он убежал, и мне не удалось увидеть, в каком направлении. Вот ваш инвентарь."
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_zaccheria_90:1
|
||||
msgid "I wish I knew. After he told me where to find your stuff, he took off and I was unable to see in what direction he fled. I just remembered that I didn't bring your inventory with me. I'll be right back."
|
||||
msgstr ""
|
||||
msgstr "Хотелось бы мне знать. После того как он сказал мне, где найти ваши вещи, он убежал, и мне не удалось увидеть, в каком направлении. Вот ваш инвентарь. Вспомнилось, что ваши вещи остались там. Я сейчас вернусь."
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_zaccheria_100
|
||||
msgid ""
|
||||
@@ -51484,7 +51491,7 @@ msgid "How did you know that?"
|
||||
msgstr "Как вы узнали об этом?"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr "Спасибо, что доставили мое письмо Килви."
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -51619,6 +51626,11 @@ msgstr "Здравствуйте. Я Маддалена, служащая рат
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr "Если вы пришли по поводу жалобы на налоги или земельного спора, пожалуйста, зарегистрируйтесь, и я свяжусь с вами в ближайшее время."
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
"Конечно. Посмотри вон на тот стол. На данный момент он мой лучший клиент."
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Кинжал"
|
||||
@@ -59576,6 +59588,10 @@ msgstr "Лавовая сущность"
|
||||
msgid "Maddalena"
|
||||
msgstr "Маддалена"
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr "Королева лавовых сущностей"
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "Поиски Эндора"
|
||||
@@ -64351,4 +64367,3 @@ msgstr "Зулленгард"
|
||||
#: worldmap.xml:world1:deebo_orchard
|
||||
msgid "Deebo's Orchard"
|
||||
msgstr "Фруктовый сад Дибо"
|
||||
|
||||
|
||||
@@ -47922,6 +47922,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48043,6 +48046,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48757,7 +48764,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50632,7 +50639,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50767,6 +50774,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Bodalo"
|
||||
@@ -58565,6 +58576,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47909,6 +47909,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48030,6 +48033,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48744,7 +48751,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50619,7 +50626,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50754,6 +50761,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58552,6 +58563,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47946,6 +47946,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48067,6 +48070,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48781,7 +48788,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50656,7 +50663,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50791,6 +50798,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58589,6 +58600,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47909,6 +47909,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48030,6 +48033,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48744,7 +48751,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50619,7 +50626,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50754,6 +50761,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58552,6 +58563,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -47938,6 +47938,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48059,6 +48062,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48773,7 +48780,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50648,7 +50655,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50783,6 +50790,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58581,6 +58592,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -48172,6 +48172,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48293,6 +48296,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -49007,7 +49014,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50882,7 +50889,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -51017,6 +51024,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "Hançer"
|
||||
@@ -58815,6 +58826,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "Andor'un Peşinde"
|
||||
|
||||
@@ -48060,6 +48060,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48181,6 +48184,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48895,7 +48902,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50770,7 +50777,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50905,6 +50912,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58703,6 +58714,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
Binary file not shown.
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: andors-trail\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-11-10 11:48+0000\n"
|
||||
"PO-Revision-Date: 2022-10-07 23:04+0000\n"
|
||||
"Last-Translator: Nut Andor <nut.andor@posteo.de>\n"
|
||||
"PO-Revision-Date: 2022-11-04 13:07+0000\n"
|
||||
"Last-Translator: aircqsj <11285819@qq.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
|
||||
"andors-trail/game-content/zh_Hans/>\n"
|
||||
"Language: zh_CN\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 4.14.1\n"
|
||||
"X-Generator: Weblate 4.14.2-dev\n"
|
||||
"X-Launchpad-Export-Date: 2015-11-02 12:26+0000\n"
|
||||
|
||||
#: [none]
|
||||
@@ -407,7 +407,7 @@ msgstr "你还有更多任务要我做吗?"
|
||||
#: conversationlist_umar.json:umar_return_1:0
|
||||
#: conversationlist_umar.json:umar_return_1:8
|
||||
msgid "Do you have any tasks for me?"
|
||||
msgstr "[OUTDATED]我们应该谈点什么,对吧?"
|
||||
msgstr "你有什么任务给我吗?"
|
||||
|
||||
#: conversationlist_mikhail.json:mikhail_default:4
|
||||
msgid "Is there anything else you can tell me about Andor?"
|
||||
@@ -906,7 +906,7 @@ msgstr "你的哥哥?不,今天我还没见到他呢。我想我看到他昨
|
||||
|
||||
#: conversationlist_crossglen_leonid.json:leonid_andor:0
|
||||
msgid "Thanks, I'll go talk to Gruil. There was something more I wanted to talk about."
|
||||
msgstr "谢谢,我去和格鲁尔谈谈。我还想谈点其他事。"
|
||||
msgstr "谢谢,我会去和格鲁尔谈谈。我还想谈点其他事。"
|
||||
|
||||
#: conversationlist_crossglen_leonid.json:leonid_andor:1
|
||||
msgid "Thanks, I'll go talk to Gruil."
|
||||
@@ -48458,7 +48458,7 @@ msgstr "你想不想和我一起试试水晶球,看看它是否有效?"
|
||||
|
||||
#: conversationlist_delivery.json:brv_wh_delivery_brv_fortune:1
|
||||
msgid "Thanks for choosing Facutloni's delivery."
|
||||
msgstr "感谢你选择Facutloni'的快递。"
|
||||
msgstr "感谢你选择法库托尼的快递。"
|
||||
|
||||
#: conversationlist_delivery.json:brv_wh_delivery_brv_fortune_10
|
||||
msgid "You say you want me to help you?"
|
||||
@@ -48753,6 +48753,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr "欢迎来到苏伦加德,孩子。第20届啤酒庆典快乐!"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr "我们想捐献金币弥补您的经济损失。"
|
||||
|
||||
@@ -48874,6 +48877,10 @@ msgstr "你好。我是戈弗雷,这地方是我的,但我今天被迫工作
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr "我需要一个放松和提神的地方。你有空床吗?"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr "你知道这个迷路的旅行者在哪里吗?"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr "是的,我知道,但你要花的钱可能在你意料之外。"
|
||||
@@ -49593,8 +49600,8 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr "正确。哎呀......我没有新的干草叉。马上回来。"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgstr "非常感谢你,孩子。告诉我的妻子安斯利,我今天可以准时回家。"
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr "[OUTDATED]非常感谢你,孩子。告诉我的妻子安斯利,我今天可以准时回家。"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
msgid ""
|
||||
@@ -50087,7 +50094,8 @@ msgstr "[OUTDATED]我希望我知道。他告诉我在哪里可以找到你的
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_zaccheria_90:1
|
||||
msgid "I wish I knew. After he told me where to find your stuff, he took off and I was unable to see in what direction he fled. I just remembered that I didn't bring your inventory with me. I'll be right back."
|
||||
msgstr ""
|
||||
msgstr "我希望我知道。在他告诉我在哪里可以找到你的东西之后,他就溜了,我无法看到他逃"
|
||||
"往哪个方向。我只记得我没有带你的存货。我马上就回来。"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_zaccheria_100
|
||||
msgid ""
|
||||
@@ -51485,7 +51493,7 @@ msgid "How did you know that?"
|
||||
msgstr "你怎么知道的?"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr "感谢你把我的信送到基尔韦亚。"
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -51620,6 +51628,10 @@ msgstr "你好。我是玛达莱纳,市政厅的办事员。如果你要找艾
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr "如果您在这里处理税务投诉或土地纠纷,请登记,我很快就会与您联系。"
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr "当然,看看那边的桌子。他是我目前最好的顾客。"
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr "匕首"
|
||||
@@ -55257,11 +55269,20 @@ msgstr "握住它时,你会有一种温暖和舒适的感觉。"
|
||||
|
||||
#: itemlist_delivery.json:facutloni_docket
|
||||
msgid "Facutloni's Docket"
|
||||
msgstr "Facutloni的记事表"
|
||||
msgstr "法库托尼的记事表"
|
||||
|
||||
#: itemlist_delivery.json:facutloni_docket:description
|
||||
msgid "A document listing the contents of a delivery Arcir the book-lover from Fallhaven ordered a 'Dusty Old Book'. Edrin the metalsmith from Brimhaven ordered a 'Striped Hammer'. Odirath the armorer from Stoutford ordered a 'Pretty Porcelain Figure'. Venanra the laundress from Brimhaven ordered an 'Old, worn cape'. Tjure the unlucky merchant ordered a 'Mysterious green something'. Servant the servant from Guynmart Castle ordered a 'Chandelier'. Arghes from Remgard tavern ordered 'Yellow Boots'. Wyre the mournful woman from Vilegard ordered a 'Lyre'. Mikhail from Crossglen ordered a 'Plush Pillow'. Pangitain the fortune teller from Brimhaven ordered a 'Crystal Globe'. "
|
||||
msgstr "一份文件列出了Fallhaven的图书爱好者阿西尔(Arcir)订购了一本“尘封的旧书”。 来自Brimhaven的金属匠埃德林订购了一把“纹锤”。 来自Stoutford的装甲兵奥迪拉特订购了一个“漂亮的瓷器人物”。 来自Brimhaven的洗衣店Veranra订购了一件“破旧的斗篷”。 倒霉的商人Tjure订购了一个“神秘绿色之物”。 来自Guynmart城堡的仆人仆人订购了一盏“枝形吊灯”。 来自Remgard酒馆的Arghes订购了“黄靴子”。来自Vilegard的悲伤女人Wyre订购了一把“七弦琴”。 来自Crossglen的Mikhail订购了一个“毛绒枕头”。 来自Brimhaven的算命先生Pangitain订购了一个“水晶球” "
|
||||
msgstr ""
|
||||
"一份文件列出了法尔海文的图书爱好者阿西尔订购了一本“尘封的旧书”。 "
|
||||
"来自布林海文的金属匠埃德林订购了一把“纹锤”。 "
|
||||
"来自斯托福德的装甲兵奥迪拉特订购了一个“漂亮的瓷器人物”。 "
|
||||
"来自布林海文的洗衣店维南拉订购了一件“破旧的斗篷”。 "
|
||||
"倒霉的商人特诸尔订购了一个“神秘绿色之物”。 "
|
||||
"来自盖恩玛特城堡的仆人仆人订购了一盏“枝形吊灯”。 来自瑞姆加德酒馆的阿尔吉斯"
|
||||
"订购了“黄靴子”。来自维尔加德的悲伤女人维艾订购了一把“七弦琴”。 "
|
||||
"来自克罗斯山谷的米哈伊尔订购了一个“毛绒枕头”。 "
|
||||
"来自布林海文的算命先生盘尼坦订购了一个“水晶球” "
|
||||
|
||||
#: itemlist_sullengard.json:golden_jackal_fur
|
||||
msgid "Golden jackal fur"
|
||||
@@ -59582,6 +59603,10 @@ msgstr "拉瓦实体"
|
||||
msgid "Maddalena"
|
||||
msgstr "玛达莱纳"
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr "女王熔岩实体"
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr "搜索安道尔"
|
||||
@@ -64084,7 +64109,8 @@ msgstr "交货"
|
||||
|
||||
#: questlist_delivery.json:brv_wh_delivery:10
|
||||
msgid "Facutloni asked me to help him deliver all of the items ordered by his customers a long time ago. He even gave me an old document with the names and items written on it."
|
||||
msgstr "Facutloni让我帮助他运送很久以前顾客订购的所有物品。他甚至给了我一份旧文件,上面写着名字和物品。"
|
||||
msgstr "法库托尼让我帮助他运送很久以前顾客订购的所有物品。他甚至给了我一份旧文件,上"
|
||||
"面写着名字和物品。"
|
||||
|
||||
#: questlist_delivery.json:brv_wh_delivery:20
|
||||
msgid "Arcir the Fallhaven book-lover ordered a 'Dusty Old book'."
|
||||
@@ -64124,15 +64150,15 @@ msgstr "米哈伊尔订购了一个'毛绒枕头'。"
|
||||
|
||||
#: questlist_delivery.json:brv_wh_delivery:110
|
||||
msgid "Pangitain the Brimhaven fortune teller ordered a 'Crystal Globe'."
|
||||
msgstr "Brimhaven的算命先生Pangitain订购了一个'水晶球'。"
|
||||
msgstr "布林海文的算命先生盘尼坦订购了一个'水晶球'。"
|
||||
|
||||
#: questlist_delivery.json:brv_wh_delivery:120
|
||||
msgid "Facutloni wants me to report back after the deliveries are complete."
|
||||
msgstr "Facutloni希望我在交付完成后报告。"
|
||||
msgstr "法库托尼希望我在交付完成后报告。"
|
||||
|
||||
#: questlist_delivery.json:brv_wh_delivery:130
|
||||
msgid "I reported back to Facutloni. He is very happy."
|
||||
msgstr "我向Facutloni汇报了情况。他非常高兴。"
|
||||
msgstr "我向法库托尼汇报了情况。他非常高兴。"
|
||||
|
||||
#: questlist_sullengard.json:deebo_orchard_hth
|
||||
msgid "Hunting the hunter"
|
||||
@@ -64357,4 +64383,3 @@ msgstr "苏伦加德"
|
||||
#: worldmap.xml:world1:deebo_orchard
|
||||
msgid "Deebo's Orchard"
|
||||
msgstr "迪博果园"
|
||||
|
||||
|
||||
@@ -47999,6 +47999,9 @@ msgid "Welcome to Sullengard, kid. Happy 20th beer celebration!"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_1:2
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_beer_0:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_no_letter_delivered:1
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered:1
|
||||
msgid "We want to contribute gold coins for your financial loss."
|
||||
msgstr ""
|
||||
|
||||
@@ -48120,6 +48123,10 @@ msgstr ""
|
||||
msgid "I need somewhere to relax and refresh. Do you have a bed available?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10:2
|
||||
msgid "Do you know by chance where this lost travelor is?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_20
|
||||
msgid "Yes, I do, but it's going to cost you more than you may be expecting."
|
||||
msgstr ""
|
||||
@@ -48834,7 +48841,7 @@ msgid "Correct. Oops...I don't have the new pitchfork. Be right back."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_ainsley_3
|
||||
msgid "Thank you so much, kid. Tell my wife Ainsley I can come home on time today."
|
||||
msgid "Thank you so much, kid. Tell my wife Hadena I can come home on time today."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard7_road_sign
|
||||
@@ -50709,7 +50716,7 @@ msgid "How did you know that?"
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_mayor_letter_delivered
|
||||
msgid "Than you for delivering my letter to Kealwea."
|
||||
msgid "Thank you for delivering my letter to Kealwea."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:ff_captain_beer_tell_everything_32
|
||||
@@ -50844,6 +50851,10 @@ msgstr ""
|
||||
msgid "If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
msgstr ""
|
||||
|
||||
#: conversationlist_sullengard.json:sullengard_godrey_10a
|
||||
msgid "Sure. Look at the table over there. He is my best customer at he moment."
|
||||
msgstr ""
|
||||
|
||||
#: itemcategories_1.json:dagger
|
||||
msgid "Dagger"
|
||||
msgstr ""
|
||||
@@ -58642,6 +58653,10 @@ msgstr ""
|
||||
msgid "Maddalena"
|
||||
msgstr ""
|
||||
|
||||
#: monsterlist_next_release.json:lava_queen_entity
|
||||
msgid "Queen lava entity"
|
||||
msgstr ""
|
||||
|
||||
#: questlist.json:andor
|
||||
msgid "Search for Andor"
|
||||
msgstr ""
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
## This file must *NOT* be checked into Version Control Systems,
|
||||
# as it contains information specific to your local configuration.
|
||||
#
|
||||
# Location of the SDK. This is only used by Gradle.
|
||||
#
|
||||
#Sun Sep 25 12:50:59 CEST 2022
|
||||
sdk.dir=C\:\\Users\\chris\\AppData\\Local\\Android\\Sdk
|
||||
@@ -1,21 +1,81 @@
|
||||
I put both (release notes + forum announcement) into this source, so it will be easier to maintain them parallel:
|
||||
|
||||
APK 67 (0.8.3) //Haunted Forest 2022-11-04
|
||||
|
||||
Release notes (Google/Itch)
|
||||
=============
|
||||
Content
|
||||
* 38 new maps
|
||||
* A new quest "The Dead are Walking"
|
||||
|
||||
Engine
|
||||
* Export / Import function for savegames (Android 11+ devices only)
|
||||
* Beta versions come now as a different APK
|
||||
|
||||
|
||||
|
||||
Forum announcement
|
||||
==================
|
||||
Hello fellow adventurers,
|
||||
|
||||
we have another new release for you 8-)
|
||||
It would have been nice if we had been some days faster. Then it would have come out in time for Halloween.
|
||||
But we won't delay the release for an extra year because of that...
|
||||
|
||||
[list]We have 38 new maps and 1 new quest "The Dead are Walking" created by Antison - thanks for all the work 8-)
|
||||
You start at the church in Vilegard. But beware - similar to Sullengard, this release is no walk in the park![/list]
|
||||
|
||||
[list]In addition, the game now has the long-awaited export / import function, so that savegames can now be conveniently copied to another device.
|
||||
This feature was brought to us by OMGeeky, which we're taking as an opportunity to welcome him as the newest member of the development team!
|
||||
|
||||
There are now 3 more choices in the load menu:
|
||||
[list]Export: Writes all savegames and the world map to any directory.[/list]
|
||||
[list]Import: Loads individually selected saved games. If the slot is already occupied, you can choose between overwriting, canceling or saving in a new slot.[/list]
|
||||
[list]Import world map: Loads missing parts of the world maps, e.g. if saves were copied from another device.[/list]
|
||||
(This export/import is only available for Android 11+, older devices can be copied as usual.)
|
||||
[/list]
|
||||
|
||||
[list]This Beta version is released with a different APK name, so you won't have to deinstall the product version any more. You can install and play both APK's independently.[/list]
|
||||
[list]And as always we fixed some minor bugs and actualized the translations.[/list]
|
||||
|
||||
|
||||
Here is is the link: [url]https://andorstrail.com/static/AndorsTrail_v0.8.3_beta.apk[/url]
|
||||
|
||||
Have fun trying!
|
||||
If you encounter bugs or strange things, please post them. This will help us to fix it before publishing the release.
|
||||
|
||||
|
||||
APK 66 (0.8.2) //Sullengard Bugfix
|
||||
|
||||
Release notes
|
||||
=============
|
||||
* Fix of a lost traveler in certain conditions
|
||||
* Fix of a lost traveler in certain conditions
|
||||
* support of older mobiles again
|
||||
|
||||
|
||||
Forum announcement //2022-10-09
|
||||
==================
|
||||
Hello fellow adventurers,
|
||||
|
||||
we fixed a bug in the last Andor's Trail release to ensure the quest "Recovering stolen property" can be completed.
|
||||
we have a new release for you 8-)
|
||||
|
||||
Here is the link to the productive version: [url]https://andorstrail.com/static/AndorsTrail_v0.8.2.apk[/url]
|
||||
[list]Some of you had encountered a serious bug so that the quest "Recovering stolen property" could not be completed.
|
||||
(If you miss a certain traveler, you should talk to Sullengard's innkeeper in this new release)[/list]
|
||||
|
||||
Google Play and Itch will follow soon, and hopefully this version can also be provided by F-Droid again.
|
||||
[list]Then we increased XP for quests a bit and ensured one diamond ring.[/list]
|
||||
|
||||
[list]And we fixed some maps, added a long missed little map near Fallhaven, and actualized the translations.[/list]
|
||||
|
||||
[list]Also we tried to support older mobiles again.[/list]
|
||||
|
||||
[list]And last but not least: hopefully F-Droid supports our sources again.[/list]
|
||||
|
||||
There is no new content, but this list of fixes is enough reason to publish a new release.
|
||||
Here is is the link: [url]https://andorstrail.com/static/AndorsTrail_v0.8.2.apk[/url]
|
||||
|
||||
Google Play and Itch will follow soon, and hopefully F-Droid too.
|
||||
|
||||
Cheers!
|
||||
|
||||
|
||||
|
||||
|
||||
BIN
AndorsTrail/res/drawable/items_omgeeky.png
Normal file
BIN
AndorsTrail/res/drawable/items_omgeeky.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 123 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 106 KiB |
BIN
AndorsTrail/res/drawable/map_ratdom.png
Normal file
BIN
AndorsTrail/res/drawable/map_ratdom.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 435 KiB |
@@ -71,6 +71,29 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/dialog_button_container_vertical"
|
||||
style="@style/AndorsTrail_Style_StdFrame"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="0.8"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingTop="5dp"
|
||||
android:paddingRight="5dp"
|
||||
android:paddingBottom="5dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/dialog_template_button_vertical"
|
||||
style="@style/AndorsTrail_Style_TextButton"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
@@ -51,19 +51,45 @@
|
||||
</ScrollView>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/loadsave_save_to_new_slot_container"
|
||||
android:id="@+id/loadsave_save_to_new_slot_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
style="@style/AndorsTrail_Style_StdFrame"
|
||||
>
|
||||
<Button
|
||||
android:id="@+id/loadsave_save_to_new_slot"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
style="@style/AndorsTrail_Style_StdFrame"
|
||||
>
|
||||
<Button
|
||||
android:id="@+id/loadsave_save_to_new_slot"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/loadsave_save_to_new_slot"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
android:text="@string/loadsave_save_to_new_slot"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/loadsave_export_import_save_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
style="@style/AndorsTrail_Style_StdFrame"
|
||||
>
|
||||
<Button
|
||||
android:id="@+id/loadsave_export_save"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/loadsave_export"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/loadsave_import_save"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/loadsave_import_save"
|
||||
/>
|
||||
<Button
|
||||
android:id="@+id/loadsave_import_worldmap"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/loadsave_import_worldmap"
|
||||
/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
29
AndorsTrail/res/raw/actorconditions_haunted_forest.json
Normal file
29
AndorsTrail/res/raw/actorconditions_haunted_forest.json
Normal file
@@ -0,0 +1,29 @@
|
||||
[
|
||||
{
|
||||
"id":"death_plague",
|
||||
"iconID":"actorconditions_japozero:35",
|
||||
"name":"Death Plague",
|
||||
"category":"blood",
|
||||
"roundEffect":{
|
||||
"increaseCurrentHP":{
|
||||
"min":-2,
|
||||
"max":-2
|
||||
}
|
||||
},
|
||||
"abilityEffect":{
|
||||
"increaseBlockChance":-10
|
||||
}
|
||||
},
|
||||
{
|
||||
"id":"sleepwalking",
|
||||
"iconID":"actorconditions_1:29",
|
||||
"name":"Sleepwalking",
|
||||
"category":"physical",
|
||||
"roundEffect":{
|
||||
"increaseCurrentAP":{
|
||||
"min":-3,
|
||||
"max":-3
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
[
|
||||
{
|
||||
"id":"leonid1",
|
||||
"message":"Hello kid. You're Mikhail's son aren't you? With that brother of yours.\n\nI'm Leonid, steward of Crossglen village.",
|
||||
"message":"Hello kid. You're Mikhail's youngest child aren't you? With that brother of yours.\n\nI'm Leonid, steward of Crossglen village.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"Have you seen my brother Andor?",
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"vacor",
|
||||
"value":61
|
||||
"value":60
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
},
|
||||
{
|
||||
"id":"larcal_4",
|
||||
"message":"Good boy. Now run away."
|
||||
"message":"Good, now run away."
|
||||
},
|
||||
{
|
||||
"id":"larcal_5",
|
||||
|
||||
@@ -1453,7 +1453,7 @@
|
||||
"nextPhraseID":"nimael_pm_40",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"questLatestProgress",
|
||||
"requireType":"questProgress",
|
||||
"requireID":"sullengard_hidden",
|
||||
"value":20,
|
||||
"negate":false
|
||||
|
||||
649
AndorsTrail/res/raw/conversationlist_haunted_forest.json
Normal file
649
AndorsTrail/res/raw/conversationlist_haunted_forest.json
Normal file
@@ -0,0 +1,649 @@
|
||||
[
|
||||
{
|
||||
"id":"daw_haunted_enterance",
|
||||
"message":"As you approach, the hair stands up on the back of your neck and you get a sudden and intense fear sensation and decide that now is not your time to go any further."
|
||||
},
|
||||
{
|
||||
"id":"gabriel_shadow",
|
||||
"message":"Shadow be with you.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"Can you tell me more about the Shadow?",
|
||||
"nextPhraseID":"priest_shadow_1"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel",
|
||||
"replies":[
|
||||
{
|
||||
"nextPhraseID":"gabriel_shadow",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"dead_walking",
|
||||
"value":70
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"nextPhraseID":"gabriel_shh",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"dead_walking",
|
||||
"value":0,
|
||||
"negate":true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"nextPhraseID":"gabriel_daw_incomplete",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"dead_walking",
|
||||
"value":60,
|
||||
"negate":true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"nextPhraseID":"gabriel_daw_complete_0",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"questLatestProgress",
|
||||
"requireID":"dead_walking",
|
||||
"value":60
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_shh",
|
||||
"message":"Shh!",
|
||||
"replies":[
|
||||
{
|
||||
"text":"What? Why?",
|
||||
"nextPhraseID":"gabriel_shh"
|
||||
},
|
||||
{
|
||||
"text":"[You just nod up and down]",
|
||||
"nextPhraseID":"gabriel_daw_10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_10",
|
||||
"message":"Do you hear it?",
|
||||
"replies":[
|
||||
{
|
||||
"text":"[You just nod up and down]",
|
||||
"nextPhraseID":"gabriel_daw_10_rec"
|
||||
},
|
||||
{
|
||||
"text":"[Lie] Umm I sure do.",
|
||||
"nextPhraseID":"gabriel_daw_20"
|
||||
},
|
||||
{
|
||||
"text":"No, sir, I do not.",
|
||||
"nextPhraseID":"gabriel_daw_30"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_10_rec",
|
||||
"message":"Speak, child.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
"nextPhraseID":"gabriel_daw_10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_20",
|
||||
"message":"What do you hear?",
|
||||
"replies":[
|
||||
{
|
||||
"text":"The Shadow. It talks to me too.",
|
||||
"nextPhraseID":"gabriel_daw_20_lie"
|
||||
},
|
||||
{
|
||||
"text":"The birds are singing today. I also like to listen to them.",
|
||||
"nextPhraseID":"gabriel_daw_20_birds"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_20_lie",
|
||||
"message":"You lie!"
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_20_birds",
|
||||
"message":"No! Not that."
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_30",
|
||||
"message":"It's coming from over there. [He points east]",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
"nextPhraseID":"gabriel_daw_35"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_35",
|
||||
"message":"Clear your mind and you will hear it.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"You are crazy. I'm out of here.",
|
||||
"nextPhraseID":"X"
|
||||
},
|
||||
{
|
||||
"text":"How do I clear my mind?",
|
||||
"nextPhraseID":"gabriel_daw_40"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_40",
|
||||
"message":"Close your eyes.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"Yeah, you're scaring me. Maybe I'll come back later.",
|
||||
"nextPhraseID":"X"
|
||||
},
|
||||
{
|
||||
"text":"Sure. I'll close my eyes now, but don't try anything that you will regret.",
|
||||
"nextPhraseID":"gabriel_daw_50"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_50",
|
||||
"message":"Do you hear it now?",
|
||||
"replies":[
|
||||
{
|
||||
"text":"Yes, I think so. It sounds like moaning of some kind.",
|
||||
"nextPhraseID":"gabriel_daw_60"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_60",
|
||||
"message":"Yes! Finally. Someone else that can hear it.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"This is scaring me. I'm going home to father.",
|
||||
"nextPhraseID":"X"
|
||||
},
|
||||
{
|
||||
"text":"What is it?",
|
||||
"nextPhraseID":"gabriel_daw_70"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_70",
|
||||
"message":"I have no idea and the other villagers think I am crazy. Do you think I'm crazy?",
|
||||
"replies":[
|
||||
{
|
||||
"text":"Maybe, but I'm intrigued, so I will say 'no'.",
|
||||
"nextPhraseID":"gabriel_daw_80"
|
||||
},
|
||||
{
|
||||
"text":"Oh, absolutely.",
|
||||
"nextPhraseID":"X"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_80",
|
||||
"message":"OK. I fear that whatever it is, it is coming for this church and the village.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
"nextPhraseID":"gabriel_daw_85"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_85",
|
||||
"message":"I am not an adventurer, and I am certainly not a fighter.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"Obviously",
|
||||
"nextPhraseID":"gabriel_daw_90"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_90",
|
||||
"message":"I need someone willing and able. Will you go investigate the noise and stop it if it is a threat?",
|
||||
"replies":[
|
||||
{
|
||||
"text":"Of course. Anything for the Shadow.",
|
||||
"nextPhraseID":"gabriel_daw_100"
|
||||
},
|
||||
{
|
||||
"text":"If there is a reward, why not?",
|
||||
"nextPhraseID":"gabriel_daw_100"
|
||||
},
|
||||
{
|
||||
"text":"I don't think I am ready. ",
|
||||
"nextPhraseID":"X"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_100",
|
||||
"message":"Outstanding. Report back to me when you are done.",
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"questProgress",
|
||||
"rewardID":"dead_walking",
|
||||
"value":0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_incomplete",
|
||||
"message":"Why are you still here when the noises persist?",
|
||||
"replies":[
|
||||
{
|
||||
"text":"Can you explain to me again what it is that you want me to do?",
|
||||
"nextPhraseID":"gabriel_daw_incomplete_10"
|
||||
},
|
||||
{
|
||||
"text":"You're not the boss of me, Shadow man. I will address your problem when I am ready to do so.",
|
||||
"nextPhraseID":"X"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_incomplete_10",
|
||||
"message":"The noise, my child! It's coming from over there. [He points east]",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
"nextPhraseID":"gabriel_daw_incomplete_20"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_incomplete_20",
|
||||
"message":"I asked you to go investigate the noise and stop it if it is a threat",
|
||||
"replies":[
|
||||
{
|
||||
"text":"Oh yeah. Sorry. I will get on top of that right away.",
|
||||
"nextPhraseID":"X"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_complete_0",
|
||||
"message":"The noise, it's gone! Was it you? Did you stop it?",
|
||||
"replies":[
|
||||
{
|
||||
"text":"Yes. It was me.",
|
||||
"nextPhraseID":"gabriel_daw_complete_10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_complete_10",
|
||||
"message":"Well, for that, I am eternally grateful.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"How 'grateful' are you?",
|
||||
"nextPhraseID":"gabriel_daw_complete_15"
|
||||
},
|
||||
{
|
||||
"text":"I will do anything for the Shadow.",
|
||||
"nextPhraseID":"gabriel_daw_complete_13"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_complete_15",
|
||||
"message":"I will get to that momentarily.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
"nextPhraseID":"gabriel_daw_complete_20"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_complete_13",
|
||||
"message":"Thank you, my child.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
"nextPhraseID":"gabriel_daw_complete_20"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_complete_20",
|
||||
"message":"Please tell me what was causing the noise?",
|
||||
"replies":[
|
||||
{
|
||||
"text":"A demonic creature and its minions rose from their graves and were roaming the forest.",
|
||||
"nextPhraseID":"gabriel_daw_complete_30"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_complete_30",
|
||||
"message":"Anything else?",
|
||||
"replies":[
|
||||
{
|
||||
"text":"They inhabited this abandoned house in the forest and were doing some sort of ritual. I think that they were planning to make Vilegard their first victims",
|
||||
"nextPhraseID":"gabriel_daw_complete_40"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_complete_40",
|
||||
"message":"This is indeed alarming. But we are so grateful for your work here.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"How 'grateful' are you?",
|
||||
"nextPhraseID":"gabriel_daw_complete_50"
|
||||
},
|
||||
{
|
||||
"text":"I will do anything for the Shadow.",
|
||||
"nextPhraseID":"gabriel_daw_complete_49"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_complete_50",
|
||||
"message":"Very! In fact, here are 3000 gold pieces for all your trouble.",
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"dropList",
|
||||
"rewardID":"gabriel_dl"
|
||||
},
|
||||
{
|
||||
"rewardType":"questProgress",
|
||||
"rewardID":"dead_walking",
|
||||
"value":70
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"gabriel_daw_complete_49",
|
||||
"message":"Walk with the Shadow, my child.",
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"questProgress",
|
||||
"rewardID":"dead_walking",
|
||||
"value":70
|
||||
},
|
||||
{
|
||||
"rewardType":"alignmentSet",
|
||||
"rewardID":"factionCountShadow",
|
||||
"value":2
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"haunted_house_basement_script_selector",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
"nextPhraseID":"haunted_house_basement_script_10",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"dead_walking",
|
||||
"value":50,
|
||||
"negate":true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"haunted_house_basement_script_10",
|
||||
"message":"Just as you reach the bottom step, you look across the room to see this demonic creature. It does not see you as it's looking towards the ground.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
"nextPhraseID":"haunted_house_basement_script_20"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"haunted_house_basement_script_20",
|
||||
"message":"It begins to bring its arms and head straight up towards the ceiling while moaning and speaking in a language that you do not understand. When all of a sudden it notices your presence and begins to drop it's arm and points directly at you.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
"nextPhraseID":"haunted_house_basement_script_30"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"haunted_house_basement_script_30",
|
||||
"message":"Again, yelling in a language that you do not understand. You begin to tremble in fear.",
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"questProgress",
|
||||
"rewardID":"dead_walking",
|
||||
"value":50
|
||||
},
|
||||
{
|
||||
"rewardType":"actorCondition",
|
||||
"rewardID":"fear",
|
||||
"value":5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"haunted_forest_discovery_script",
|
||||
"replies":[
|
||||
{
|
||||
"nextPhraseID":"haunted_forest_discovery_script_10",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"dead_walking",
|
||||
"value":40,
|
||||
"negate":true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"haunted_forest_discovery_script_10",
|
||||
"message":"As you enter this dark place, you suspect that you are getting closer to the sounds heard by Gabriel as the moaning is much loader now.",
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"questProgress",
|
||||
"rewardID":"dead_walking",
|
||||
"value":40
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"road2_daw_selector",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
"nextPhraseID":"road2_daw_10",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"dead_walking",
|
||||
"value":0
|
||||
},
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"dead_walking",
|
||||
"value":40,
|
||||
"negate":true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"road2_daw_10",
|
||||
"message":"You stick your head between the trees.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"What an eerie sound ...",
|
||||
"nextPhraseID":"road2_daw_20"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"road2_daw_20",
|
||||
"message":"Now you notice that the moaning heard by Gabriel is a little louder here.",
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"questProgress",
|
||||
"rewardID":"dead_walking",
|
||||
"value":10
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"road5_daw_selector",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
"nextPhraseID":"road5_daw_10",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"dead_walking",
|
||||
"value":0
|
||||
},
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"dead_walking",
|
||||
"value":20,
|
||||
"negate":true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"road5_daw_10",
|
||||
"message":"As you stick your head between the trees, you feel a burst of cold air and a shiver goes down your body",
|
||||
"replies":[
|
||||
{
|
||||
"text":"This doesn't feel right! I should get out of here now.",
|
||||
"nextPhraseID":"X"
|
||||
},
|
||||
{
|
||||
"text":"I should stick around a little bit longer.",
|
||||
"nextPhraseID":"road5_daw_20"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"haunted_cemetery1_walkable_gp",
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"questProgress",
|
||||
"rewardID":"sullengard_hidden",
|
||||
"value":34
|
||||
},
|
||||
{
|
||||
"rewardType":"removeQuestProgress",
|
||||
"rewardID":"sullengard_hidden",
|
||||
"value":33
|
||||
},
|
||||
{
|
||||
"rewardType":"removeQuestProgress",
|
||||
"rewardID":"sullengard_hidden",
|
||||
"value":35
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"haunted_cemetery1_nonwalkable_hole",
|
||||
"message":"As you emerge from the hole, the rope tumbles to the ground.",
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"questProgress",
|
||||
"rewardID":"sullengard_hidden",
|
||||
"value":35
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"haunted_cemetery1_deafult_gp_inner",
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"questProgress",
|
||||
"rewardID":"sullengard_hidden",
|
||||
"value":33
|
||||
},
|
||||
{
|
||||
"rewardType":"removeQuestProgress",
|
||||
"rewardID":"sullengard_hidden",
|
||||
"value":34
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"road5_daw_20",
|
||||
"message":"Now you begin to notice that the moaning heard by Gabriel is a little loader here.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"I must be getting closer to the source. It's time to press on.",
|
||||
"nextPhraseID":"X"
|
||||
}
|
||||
],
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"questProgress",
|
||||
"rewardID":"dead_walking",
|
||||
"value":20
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"haunted_benzimos_death_selector",
|
||||
"replies":[
|
||||
{
|
||||
"nextPhraseID":"haunted_benzimos_death_10",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"killedMonster",
|
||||
"requireID":"haunted_benzimos",
|
||||
"value":1
|
||||
},
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"dead_walking",
|
||||
"value":60,
|
||||
"negate":true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"haunted_benzimos_death_10",
|
||||
"message":"Benzimos is now dead ... again.",
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"questProgress",
|
||||
"rewardID":"dead_walking",
|
||||
"value":60
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -57,7 +57,7 @@
|
||||
},
|
||||
{
|
||||
"id":"guard_pathway_2",
|
||||
"message":"You're really curious boy... Well our superior, the guard captain, only wants to pay the woodcutter when he has done his work.",
|
||||
"message":"You're really curious kid... Well our superior, the guard captain, only wants to pay the woodcutter when he has done his work.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"Maybe I could help?",
|
||||
|
||||
@@ -415,16 +415,6 @@
|
||||
{
|
||||
"id":"sullengard_mayor",
|
||||
"replies":[
|
||||
{
|
||||
"nextPhraseID":"sullengard_mayor_5",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"factionScore",
|
||||
"requireID":"gold_contribute",
|
||||
"value":50000
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"nextPhraseID":"sullengard_mayor_10",
|
||||
"requires":[
|
||||
@@ -471,6 +461,16 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"nextPhraseID":"sullengard_mayor_5",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"factionScore",
|
||||
"requireID":"gold_contribute",
|
||||
"value":50000
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"nextPhraseID":"sullengard_mayor_1"
|
||||
}
|
||||
@@ -838,6 +838,23 @@
|
||||
{
|
||||
"text":"I'm hungry. Do you have any food to sell?",
|
||||
"nextPhraseID":"sullengard_godrey_sell"
|
||||
},
|
||||
{
|
||||
"text":"Do you know by chance where this lost travelor is?",
|
||||
"nextPhraseID":"sullengard_godrey_10a",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"sullengard_recover_items",
|
||||
"value":40
|
||||
},
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"sullengard_recover_items",
|
||||
"value":50,
|
||||
"negate":true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -2136,18 +2153,18 @@
|
||||
"message":"Are you a farmer?",
|
||||
"replies":[
|
||||
{
|
||||
"text":"No. But I'm a son of an ordinary farmer in a small settlement called Crossglen.",
|
||||
"text":"No. But I'm a child of an ordinary farmer in a small settlement called Crossglen.",
|
||||
"nextPhraseID":"throthaus_5"
|
||||
},
|
||||
{
|
||||
"text":"Yes. I'm a son of an ordinary farmer in a small settlement called Crossglen.",
|
||||
"text":"Yes. I'm a child of an ordinary farmer in a small settlement called Crossglen.",
|
||||
"nextPhraseID":"throthaus_5"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"throthaus_5",
|
||||
"message":"If you are a son of an ordinary farmer. Then, pick up my pitchfork outside of my house southwest of here.",
|
||||
"message":"If you are the child of an ordinary farmer. Then, pick up my pitchfork outside of my house southwest of here.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"N",
|
||||
@@ -2177,11 +2194,11 @@
|
||||
"message":"Don't worry about me. I still have one. I bought them from buy-one take-one shop in Nor City. It's a limited shop though.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"I'll prove it to you that I'm a son of a farmer!",
|
||||
"text":"I'll prove it to you that I'm the child of a farmer!",
|
||||
"nextPhraseID":"X"
|
||||
},
|
||||
{
|
||||
"text":"You'll see that you are wrong about me. I'm a son of a farmer!",
|
||||
"text":"You'll see that you are wrong about me. I'm the child of a farmer!",
|
||||
"nextPhraseID":"X"
|
||||
}
|
||||
]
|
||||
@@ -2505,7 +2522,7 @@
|
||||
},
|
||||
{
|
||||
"id":"sullengard_ainsley_3",
|
||||
"message":"Thank you so much, kid. Tell my wife Ainsley I can come home on time today.",
|
||||
"message":"Thank you so much, kid. Tell my wife Hadena I can come home on time today.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"You're welcome.",
|
||||
@@ -3704,7 +3721,7 @@
|
||||
{
|
||||
"requireType":"inventoryKeep",
|
||||
"requireID":"zaccheria_inventory",
|
||||
"value":1,
|
||||
"value":0,
|
||||
"negate":false
|
||||
}
|
||||
]
|
||||
@@ -6505,6 +6522,23 @@
|
||||
{
|
||||
"text":"Can you tell me about your 'business agreement' with your beer 'distributors'?",
|
||||
"nextPhraseID":"sullengard_mayor_beer"
|
||||
},
|
||||
{
|
||||
"text":"We want to contribute gold coins for your financial loss.",
|
||||
"nextPhraseID":"sullengard_mayor_4",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"factionScore",
|
||||
"requireID":"gold_contribute",
|
||||
"value":50000,
|
||||
"negate":true
|
||||
},
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"Thieves04",
|
||||
"value":70
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -6515,16 +6549,50 @@
|
||||
{
|
||||
"text":"How did you know that?",
|
||||
"nextPhraseID":"sullengard_mayor_beer_letter_not_delivered_10"
|
||||
},
|
||||
{
|
||||
"text":"We want to contribute gold coins for your financial loss.",
|
||||
"nextPhraseID":"sullengard_mayor_4",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"factionScore",
|
||||
"requireID":"gold_contribute",
|
||||
"value":50000,
|
||||
"negate":true
|
||||
},
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"Thieves04",
|
||||
"value":70
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id":"sullengard_mayor_letter_delivered",
|
||||
"message":"Than you for delivering my letter to Kealwea.",
|
||||
"message":"Thank you for delivering my letter to Kealwea.",
|
||||
"replies":[
|
||||
{
|
||||
"text":"How did you know?",
|
||||
"nextPhraseID":"sullengard_mayor_beer_50"
|
||||
},
|
||||
{
|
||||
"text":"We want to contribute gold coins for your financial loss.",
|
||||
"nextPhraseID":"sullengard_mayor_4",
|
||||
"requires":[
|
||||
{
|
||||
"requireType":"factionScore",
|
||||
"requireID":"gold_contribute",
|
||||
"value":50000,
|
||||
"negate":true
|
||||
},
|
||||
{
|
||||
"requireType":"questProgress",
|
||||
"requireID":"Thieves04",
|
||||
"value":70
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -6736,5 +6804,16 @@
|
||||
{
|
||||
"id":"sullengard_town_clerk_10",
|
||||
"message":"If you are here about a tax complaint or a land dispute, then please sign in and I well get to you momentarily."
|
||||
},
|
||||
{
|
||||
"id":"sullengard_godrey_10a",
|
||||
"message":"Sure. Look at the table over there. He is my best customer at he moment.",
|
||||
"rewards":[
|
||||
{
|
||||
"rewardType":"spawnAll",
|
||||
"rewardID":"sullengard_inn_traveler_spawn",
|
||||
"mapName":"sullengard_inn"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user