Merge branch 'v0.8.10'

This commit is contained in:
Nut.andor
2024-04-28 03:07:59 +02:00
139 changed files with 53984 additions and 6036 deletions

View File

@@ -1,8 +1,8 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 34
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.gpl.rpg.AndorsTrail"
@@ -63,11 +63,18 @@ task cleanup(type: Delete) {
afterEvaluate {
project.tasks.copyRes.dependsOn project.tasks.copyResValuesIn
mapReleaseSourceSetPaths.dependsOn project.tasks.copyRes
generateReleaseResources.dependsOn project.tasks.copyRes
generateDebugResources.dependsOn project.tasks.copyRes
mapDebugSourceSetPaths.dependsOn project.tasks.copyRes
mergeDebugResources.dependsOn project.tasks.copyRes
extractDeepLinksDebug.dependsOn project.tasks.copyRes
mergeReleaseResources.dependsOn project.tasks.copyRes
extractDeepLinksRelease.dependsOn project.tasks.copyRes
generateDebugResources.dependsOn project.tasks.copyTranslation
mapDebugSourceSetPaths.dependsOn project.tasks.copyTranslation
mergeDebugAssets.dependsOn project.tasks.copyTranslation
mergeReleaseAssets.dependsOn project.tasks.copyTranslation
extractDeepLinksDebug.dependsOn project.tasks.copyTranslation

View File

@@ -3,8 +3,8 @@
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gpl.rpg.AndorsTrail"
android:versionCode="75"
android:versionName="0.8.9"
android:versionCode="76"
android:versionName="0.8.10"
android:installLocation="auto"
>

View File

@@ -28,11 +28,11 @@ public final class AndorsTrailApplication extends Application {
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.9";
public static final String CURRENT_VERSION_DISPLAY = "0.8.10";
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 : 75;
public static final int CURRENT_VERSION = DEVELOPMENT_INCOMPATIBLE_SAVEGAMES ? DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION : 76;
private final AndorsTrailPreferences preferences = new AndorsTrailPreferences();
private WorldContext world = new WorldContext();

View File

@@ -66,14 +66,6 @@ public final class Dialogs {
CustomDialogFactory.show(d);
}
public static void showKeyArea(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
showConversation(currentActivity, context, phraseID, null);
}
public static void showMapSign(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
showConversation(currentActivity, context, phraseID, null);
}
public static void showMapScriptMessage(final MainActivity currentActivity, final ControllerContext context, String phraseID) {
showConversation(currentActivity, context, phraseID, null, false);
}

View File

@@ -31,6 +31,7 @@ public final class DebugInterface {
private DebugButton[] buttons;
private List<DebugButton> tpButtons = new ArrayList<DebugButton>();
private List<DebugButton> tpButtons2 = new ArrayList<DebugButton>();
private List<DebugButton> tpButtons3 = new ArrayList<DebugButton>();
public DebugInterface(ControllerContext controllers, WorldContext world, MainActivity mainActivity) {
this.controllerContext = controllers;
@@ -58,6 +59,9 @@ public final class DebugInterface {
for (DebugButton b : tpButtons2) {
b.b.setVisibility(View.GONE);
}
for (DebugButton b : tpButtons3) {
b.b.setVisibility(View.GONE);
}
}
})
,new DebugButton("teleport", new OnClickListener() {
@@ -178,7 +182,7 @@ public final class DebugInterface {
,new DebugButton("cr", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "houseatcrossroads4", "down", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "crossroads", "middle", 0, 0);
}
})
,new DebugButton("lf", new OnClickListener() {
@@ -242,11 +246,8 @@ public final class DebugInterface {
new DebugButton("teleport", new OnClickListener() {
@Override
public void onClick(View arg0) {
for (int i = 0; i < buttons.length; i++) {
buttons[i].b.setVisibility(View.VISIBLE);
}
for (DebugButton tpButton : tpButtons) {
tpButton.b.setVisibility(View.GONE);
for (DebugButton tpButton : tpButtons3) {
tpButton.b.setVisibility(View.VISIBLE);
}
for (DebugButton tpButton : tpButtons2) {
tpButton.b.setVisibility(View.GONE);
@@ -301,7 +302,7 @@ public final class DebugInterface {
,new DebugButton("la1", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "laerothisland1", "west", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "laerothisland2", "south2", 0, 0);
}
})
@@ -312,6 +313,35 @@ public final class DebugInterface {
}
})
,new DebugButton("fey", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "guynmart_wood_17", "north", 0, 0);
}
})
}));
buttonList.addAll(tpButtons2);
tpButtons3.addAll(Arrays.asList(new DebugButton[] {
new DebugButton("teleport", new OnClickListener() {
@Override
public void onClick(View arg0) {
for (int i = 0; i < buttons.length; i++) {
buttons[i].b.setVisibility(View.VISIBLE);
}
for (DebugButton tpButton : tpButtons) {
tpButton.b.setVisibility(View.GONE);
}
for (DebugButton tpButton : tpButtons2) {
tpButton.b.setVisibility(View.GONE);
}
for (DebugButton tpButton : tpButtons3) {
tpButton.b.setVisibility(View.GONE);
}
}
})
,new DebugButton("#1", new OnClickListener() {
@Override
public void onClick(View arg0) {
@@ -321,13 +351,63 @@ public final class DebugInterface {
,new DebugButton("#2", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "laerothtomb1", "north", 0, 0);
}
})
,new DebugButton("#3", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "mountainlake8", "north", 0, 0);
}
})
,new DebugButton("#4", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "waterway5", "south", 0, 0);
}
})
,new DebugButton("#5", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "island1", "south2", 0, 0);
}
})
,new DebugButton("#6", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "blackwater_mountain54", "east4", 0, 0);
}
})
,new DebugButton("#7", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "blackwater_mountain30", "east", 0, 0);
}
})
,new DebugButton("#8", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "bwmfill3", "north2", 0, 0);
}
})
,new DebugButton("#9", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "island1", "south2", 0, 0);
}
})
}));
buttonList.addAll(tpButtons2);
buttonList.addAll(tpButtons3);
buttons = buttonList.toArray(new DebugButton[buttonList.size()]);
addDebugButtons(buttons);
@@ -338,6 +418,9 @@ public final class DebugInterface {
for (DebugButton b : tpButtons2) {
b.b.setVisibility(View.GONE);
}
for (DebugButton b : tpButtons3) {
b.b.setVisibility(View.GONE);
}
}
private void showToast(Context context, String msg, int duration) {

View File

@@ -397,12 +397,10 @@ public final class MainActivity
@Override
public void onPlayerSteppedOnMapSignArea(MapObject area) {
Dialogs.showMapSign(this, controllers, area.id);
}
@Override
public void onPlayerSteppedOnKeyArea(MapObject area) {
Dialogs.showKeyArea(this, controllers, area.id);
}
@Override

View File

@@ -68,6 +68,7 @@ public final class MapController {
case sign:
if (o.id == null || o.id.length() <= 0) return;
worldEventListeners.onPlayerSteppedOnMapSignArea(o);
runScriptInArea(o);
break;
case newmap:
if (o.map == null || o.place == null) return;
@@ -79,7 +80,7 @@ public final class MapController {
steppedOnRestArea(o);
break;
case script:
runScriptArea(o);
runScriptInArea(o);
break;
}
}
@@ -93,7 +94,7 @@ public final class MapController {
return true;
}
private void runScriptArea(MapObject o) {
private void runScriptInArea(MapObject o) {
Resources res = controllers.getResources();
mapScriptExecutor.proceedToPhrase(res, o.id, true, true);
controllers.mapController.applyCurrentMapReplacements(res, true);
@@ -164,6 +165,7 @@ public final class MapController {
return true;
}
worldEventListeners.onPlayerSteppedOnKeyArea(area);
runScriptInArea(area);
return false;
}

View File

@@ -341,9 +341,9 @@ public final class ResourceLoader {
loader.prepareTileset(R.drawable.monsters_men2, "monsters_men2", new Size(10, 1), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_misc, "monsters_misc", new Size(13, 1), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_newb_1, "monsters_newb_1", new Size(40, 34), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_newb_2, "monsters_newb_2", new Size(16, 2), sz1x2, mTileSize);
loader.prepareTileset(R.drawable.monsters_newb_3, "monsters_newb_3", new Size(20, 4), sz2x2, mTileSize);
loader.prepareTileset(R.drawable.monsters_newb_4, "monsters_newb_4", new Size(4, 2), sz2x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_newb_2, "monsters_newb_2", new Size(8, 2), sz1x2, mTileSize);
loader.prepareTileset(R.drawable.monsters_newb_3, "monsters_newb_3", new Size(10, 2), sz2x2, mTileSize);
loader.prepareTileset(R.drawable.monsters_newb_4, "monsters_newb_4", new Size(4, 1), sz2x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_rats, "monsters_rats", new Size(5, 1), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_redshrike1, "monsters_redshrike1", sz7x1, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_rltiles1, "monsters_rltiles1", new Size(20, 8), sz1x1, mTileSize);
@@ -454,12 +454,14 @@ public final class ResourceLoader {
loader.prepareTileset(R.drawable.map_tree_1, "map_tree_1", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_tree_2, "map_tree_2", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_tree_3, "map_tree_3", new Size(32, 17), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_tree_4, "map_tree_4", new Size(16, 8), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_wall_1, "map_wall_1", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_wall_2, "map_wall_2", new Size(15, 8), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_wall_3, "map_wall_3", new Size(15, 8), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_wall_4, "map_wall_4", new Size(15, 8), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_window_1, "map_window_1", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_window_2, "map_window_2", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_items_japozero, "map_items_japozero", new Size(16, 37), sz1x1, mTileSize);
/*INSERT_MAP_TILESETS_HERE*/
loader.prepareTileset(R.drawable.effect_blood4, "effect_blood4", new Size(7, 2), sz1x1, mTileSize);

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,17 +1,17 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.4.0'
classpath 'com.android.tools.build:gradle:8.3.1'
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
google()
}
}

View File

@@ -1 +1,4 @@
android.defaults.buildfeatures.buildconfig=true
android.nonFinalResIds=false
android.nonTransitiveRClass=false
android.useAndroidX=true

View File

@@ -1,6 +1,6 @@
#Mon Jan 30 18:12:43 CET 2023
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

View File

@@ -1,6 +1,48 @@
I put both (release notes + forum announcement) into this source, so it will be easier to maintain them parallel:
APK 76 (0.8.10) BWM Fill
Release notes
=============
* 9 new maps that helps to cover the hole in the worldmap at Blackwater Mountain
* New quest "It makes no fence"
* Again a skeleton for "Stoutford's old castle" could have been out of reach. We hope this is the last one
* Some minor map fixes
* Translations
Forum announcement //2024-04-28
==================
Hello fellow adventurers,
a few weeks ago Raphi had surprised us with a bunch of maps that helps to cover the hole in the worldmap at Blackwater Mountain 8)
Thank you for the fiddly work in this area of the mountains, lovers of complete maps will appreciate it!
Mountains are among the most difficult maps, especially if there already exist maps around them, because the different heights have to match each other exactly.
Raphi has also placed a new quest there for the early midgame level, involving some of Dhayavar's existing residents.
We have fine-tuned the project and are publishing it here now:
[list]Find 9 new maps filling up the Blackwater Mountain area.[/list]
[list]Help a shepherd in the Mountains above Prim in the new quest "It makes no fence".[/list]
[list]Again a skeleton for "Stoutford's old castle" could have been out of reach. We hope this is the last one.[/list]
[list]New translations[/list]
[list]And as always we've fixed some minor bugs and typos, and have embellished a few little things here and there.[/list]
Here is is the link on our server: [url]https://andorstrail.com/static/AndorsTrail_v0.8.10.apk[/url]
Happy playing!
APK 75 (0.8.9) Bugfix + translations
Release notes

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 706 KiB

After

Width:  |  Height:  |  Size: 693 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 950 KiB

After

Width:  |  Height:  |  Size: 905 KiB

View File

@@ -0,0 +1,15 @@
[
{
"id":"thirst",
"iconID":"actorconditions_1:18",
"name":"Thirst",
"category":"physical",
"roundEffect":{
"visualEffectID":"redSplash",
"increaseCurrentHP":{
"min":-2,
"max":-2
}
}
}
]

View File

@@ -50,6 +50,77 @@
]
},
{
"id":"passive_achievement_check_2"
"id":"passive_achievement_check_2",
"replies":[
{
"nextPhraseID":"passive_achievement_grant_2",
"requires":[
{
"requireType":"questProgress",
"requireID":"achievements",
"value":130,
"negate":true
},
{
"requireType":"killedMonster",
"requireID":"guynmart_mare",
"value":2
}
]
},
{
"nextPhraseID":"passive_achievement_check_3"
}
]
},
{
"id":"passive_achievement_grant_2",
"message":"Phew, I dreamed about nightmares in a castle dungeon - although maybe it wasn't a nightmare at all! I never want to go through something like that again - neither in my dream nor in reality!",
"rewards":[
{
"rewardType":"questProgress",
"rewardID":"achievements",
"value":130
}
]
},
{
"id":"passive_achievement_check_3"
},
{
"id":"passive_achievement_grant_3"
},
{
"id":"passive_achievement_check_4"
},
{
"id":"passive_achievement_grant_4"
},
{
"id":"passive_achievement_check_5"
},
{
"id":"passive_achievement_grant_5"
},
{
"id":"passive_achievement_check_6"
},
{
"id":"passive_achievement_grant_6"
},
{
"id":"passive_achievement_check_7"
},
{
"id":"passive_achievement_grant_7"
},
{
"id":"passive_achievement_check_8"
},
{
"id":"passive_achievement_grant_8"
},
{
"id":"passive_achievement_check_9"
}
]

View File

@@ -3416,6 +3416,62 @@
{
"text":"I am looking for my brother, Andor. He looks a bit like me.",
"nextPhraseID":"brv_woodcraftsman_1"
},
{
"text":"Hello. The woodcutter in Loneford said that you can make me fences for a sheperd. Is that true?",
"nextPhraseID":"brv_woodcraftsman_fence1",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":210
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":220,
"negate":true
}
]
},
{
"text":"Here is your wood.",
"nextPhraseID":"brv_woodcraftsman_fence2",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":230
},
{
"requireType":"inventoryRemove",
"requireID":"tunlon_wood",
"value":1
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":240,
"negate":true
}
]
},
{
"text":"Ah, you are back.",
"nextPhraseID":"brv_woodcraftsman_fence3",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":235
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":240,
"negate":true
}
]
}
]
},
@@ -7390,6 +7446,47 @@
}
]
},
{
"nextPhraseID":"brv_patrol_stop_hero_bur",
"requires":[
{
"requireType":"questProgress",
"requireID":"bwmfill_nondisplay",
"value":41,
"negate":true
},
{
"requireType":"questProgress",
"requireID":"quest_burhczyd",
"value":80
}
]
},
{
"nextPhraseID":"brv_patrol_stop_hero_box1",
"requires":[
{
"requireType":"inventoryKeep",
"requireID":"bonemeal_potion",
"value":1
},
{
"requireType":"inventoryKeep",
"requireID":"guynmart_bonemealbox",
"value":1
}
]
},
{
"nextPhraseID":"brv_patrol_stop_hero_box2",
"requires":[
{
"requireType":"inventoryKeep",
"requireID":"guynmart_bonemealbox",
"value":1
}
]
},
{
"nextPhraseID":"brv_patrol_remove_all_bonemeals"
}
@@ -7399,6 +7496,21 @@
"rewardType":"removeQuestProgress",
"rewardID":"brv_nondisplay",
"value":142
},
{
"rewardType":"removeQuestProgress",
"rewardID":"bwmfill_nondisplay",
"value":40
},
{
"rewardType":"removeQuestProgress",
"rewardID":"bwmfill_nondisplay",
"value":42
},
{
"rewardType":"removeQuestProgress",
"rewardID":"bwmfill_nondisplay",
"value":43
}
]
},
@@ -7486,13 +7598,55 @@
]
},
{
"nextPhraseID":"brv_patrol_stop_hero"
"nextPhraseID":"brv_patrol_remove_all_bonemeals_lodar_x"
}
]
},
{
"id":"brv_patrol_bonemeals_removed",
"message":"What's this? Smells like Bonemeal!\n\nBonemeal is illegal and forbidden by the law of Feygard. I will have to confiscate it.\n[He gives you back all your belongings but keeps the Bonemeals]\n\nKeep away from illegal stuff. Now go on your way.",
"replies":[
{
"text":"Hey, what the ...?",
"nextPhraseID":"brv_patrol_bonemeals_removed_bur",
"requires":[
{
"requireType":"questProgress",
"requireID":"bwmfill_nondisplay",
"value":40
}
]
},
{
"text":"Phew, at least they didn't find my iron reserve in the bonemeal box.",
"nextPhraseID":"X",
"requires":[
{
"requireType":"questProgress",
"requireID":"bwmfill_nondisplay",
"value":42
}
]
},
{
"text":"Phew, at least they had let me go.",
"nextPhraseID":"X",
"requires":[
{
"requireType":"questProgress",
"requireID":"bwmfill_nondisplay",
"value":40,
"negate":true
},
{
"requireType":"questProgress",
"requireID":"bwmfill_nondisplay",
"value":42,
"negate":true
}
]
}
],
"rewards":[
{
"rewardType":"questProgress",
@@ -9835,5 +9989,148 @@
"nextPhraseID":"R"
}
]
},
{
"id":"brv_patrol_remove_all_bonemeals_lodar_x",
"replies":[
{
"nextPhraseID":"brv_patrol_remove_all_bonemeals_lodar_x_1",
"requires":[
{
"requireType":"questProgress",
"requireID":"bwmfill_nondisplay",
"value":43
}
]
},
{
"nextPhraseID":"brv_patrol_remove_all_bonemeals_lodar_x_2",
"requires":[
{
"requireType":"questProgress",
"requireID":"bwmfill_nondisplay",
"value":42
}
]
},
{
"nextPhraseID":"brv_patrol_stop_hero"
}
]
},
{
"id":"brv_patrol_remove_all_bonemeals_lodar_x_1",
"replies":[
{
"nextPhraseID":"brv_patrol_stop_hero"
}
],
"rewards":[
{
"rewardType":"giveItem",
"rewardID":"bonemeal_potion",
"value":1
}
]
},
{
"id":"brv_patrol_remove_all_bonemeals_lodar_x_2",
"replies":[
{
"nextPhraseID":"brv_patrol_stop_hero"
}
],
"rewards":[
{
"rewardType":"giveItem",
"rewardID":"pot_bm_lodar",
"value":1
}
]
},
{
"id":"brv_patrol_stop_hero_bur",
"replies":[
{
"nextPhraseID":"brv_patrol_stop_hero"
}
],
"rewards":[
{
"rewardType":"questProgress",
"rewardID":"brv_nondisplay",
"value":142
},
{
"rewardType":"questProgress",
"rewardID":"bwmfill_nondisplay",
"value":40
},
{
"rewardType":"questProgress",
"rewardID":"bwmfill_nondisplay",
"value":41
}
]
},
{
"id":"brv_patrol_stop_hero_box1",
"replies":[
{
"nextPhraseID":"brv_patrol_remove_all_bonemeals"
}
],
"rewards":[
{
"rewardType":"questProgress",
"rewardID":"bwmfill_nondisplay",
"value":42
},
{
"rewardType":"questProgress",
"rewardID":"bwmfill_nondisplay",
"value":43
}
]
},
{
"id":"brv_patrol_stop_hero_box2",
"replies":[
{
"nextPhraseID":"brv_patrol_remove_all_bonemeals"
}
],
"rewards":[
{
"rewardType":"questProgress",
"rewardID":"bwmfill_nondisplay",
"value":42
}
]
},
{
"id":"brv_patrol_bonemeals_removed_bur",
"message":"One of the guards winks at you while putting the confiscated bonemeal potions back in your pouch.",
"switchToNPC":"none",
"replies":[
{
"text":"???",
"nextPhraseID":"brv_patrol_bonemeals_removed_bur_10"
}
]
},
{
"id":"brv_patrol_bonemeals_removed_bur_10",
"message":"You'll be speechless - the guard is Burhczyd in the uniform of the Feygard Guard!",
"replies":[
{
"text":"N",
"nextPhraseID":"brv_patrol_bonemeals_removed_bur_20"
}
]
},
{
"id":"brv_patrol_bonemeals_removed_bur_20",
"message":"Before you react, the guards have moved on."
}
]

File diff suppressed because it is too large Load Diff

View File

@@ -54,6 +54,23 @@
{
"text":"Are you a woodcutter?",
"nextPhraseID":"fallhaven_lumberjack_2"
},
{
"text":"Tunlon has sent me to ask for some wood for fences.",
"nextPhraseID":"fallhaven_lumberjack_17",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":10
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":20,
"negate":true
}
]
}
]
},
@@ -359,6 +376,23 @@
{
"text":"Never mind. I don't need your services for now.",
"nextPhraseID":"X"
},
{
"text":"Tunlon has sent me to ask for some wood for fences.",
"nextPhraseID":"fallhaven_lumberjack_17",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":10
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":20,
"negate":true
}
]
}
]
},

View File

@@ -88,6 +88,40 @@
{
"text":"Have you seen my brother Andor around here? Looks somewhat like me.",
"nextPhraseID":"hadracor_andor_1"
},
{
"text":"Do you by any chance have some spare wood to make fences out of?",
"nextPhraseID":"hadracor_fence_1",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":20
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":30,
"negate":true
}
]
},
{
"text":"I'm $playername, running up and down Blackwater mountain for errands.",
"nextPhraseID":"hadracor_fence_2",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":30
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":32,
"negate":true
}
]
}
]
},
@@ -349,6 +383,40 @@
"value":5
}
]
},
{
"text":"No, but I wanted to ask if you have some spare wood to make fences out of.",
"nextPhraseID":"hadracor_fence_1",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":20
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":30,
"negate":true
}
]
},
{
"text":"No, I'm too busy running up and down Blackwater mountain.",
"nextPhraseID":"hadracor_fence_2",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":30
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":32,
"negate":true
}
]
}
]
},
@@ -438,6 +506,40 @@
{
"text":"OK, let me see what you have.",
"nextPhraseID":"S"
},
{
"text":"Do you by any chance have some spare wood to make fences out of?",
"nextPhraseID":"hadracor_fence_1",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":20
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":30,
"negate":true
}
]
},
{
"text":"No, thanks. I'm too busy running up and down Blackwater mountain.",
"nextPhraseID":"hadracor_fence_2",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":30
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":32,
"negate":true
}
]
}
]
}

View File

@@ -25,7 +25,77 @@
},
{
"id":"loneford_villager2",
"message":"Don't disturb me, I need to finish chopping this wood. Go bother someone else."
"message":"Don't disturb me, I need to finish chopping this wood. Go bother someone else.",
"replies":[
{
"text":"Do you by any chance have some fences?",
"nextPhraseID":"loneford_villager2_fence",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":100
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":150,
"negate":true
}
]
},
{
"text":"Do you by any chance have some fences?",
"nextPhraseID":"loneford_villager2_fence",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":110
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":150,
"negate":true
}
]
},
{
"text":"Unfortunately the fences you gave me are not tall enough. Do you have others?",
"nextPhraseID":"loneford_villager2_fence2",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":200
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":210,
"negate":true
}
]
},
{
"text":"The Craftsman told me that I should get some wood from you.",
"nextPhraseID":"loneford_villager2_fence4",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":220
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":230,
"negate":true
}
]
}
]
},
{
"id":"loneford_villager3",

View File

@@ -1146,7 +1146,7 @@
},
{
"id":"troublemaker_wm_report_40",
"message":"You can find the empty house just south east of here. Enter it and you will find your way.",
"message":"You can find the empty house just southwest of here. Enter it and you will find your way.",
"replies":[
{
"text":"I'll be there. Thank you.",
@@ -1525,11 +1525,6 @@
"rewardID":"wild6_house_thief_spawn",
"mapName":"wild6_house"
},
{
"rewardType":"giveItem",
"rewardID":"thieves_vault_key_fake",
"value":1
},
{
"rewardType":"removeSpawnArea",
"rewardID":"aidem_base_defy_spawn",
@@ -1795,6 +1790,12 @@
"requireID":"thieves_vault_key",
"value":1,
"negate":true
},
{
"requireType":"questProgress",
"requireID":"wanted_men",
"value":80,
"negate":true
}
]
},
@@ -3643,5 +3644,25 @@
"mapName":"waytogalmore0"
}
]
},
{
"id":"fix_stn_skeletons_50",
"rewards":[
{
"rewardType":"activateMapObjectGroup",
"rewardID":"Keys_fix_stn_skeletons",
"mapName":"waytogalmore0"
}
]
},
{
"id":"fix_stn_skeletons_60",
"rewards":[
{
"rewardType":"deactivateMapObjectGroup",
"rewardID":"Keys_fix_stn_skeletons",
"mapName":"waytogalmore0"
}
]
}
]

View File

@@ -92,7 +92,32 @@
},
{
"id":"tinlyn_killedsheep_1",
"message":"You attacked my sheep! Get away from me you filthy murderer!"
"message":"You attacked my sheep! Get away from me you filthy murderer!",
"replies":[
{
"text":"I am sorry. But your brother sent me to ask if you knew where I could get fences for his sheep.",
"nextPhraseID":"tinlyn_fence_2",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":40
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":100,
"negate":true
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":110,
"negate":true
}
]
}
]
},
{
"id":"tinlyn_complete_1",
@@ -108,6 +133,29 @@
"value":10
}
]
},
{
"text":"Your brother has sent me to ask where I could get fences from. Do you maybe know?",
"nextPhraseID":"tinlyn_fence_1",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":40
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":100,
"negate":true
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":110,
"negate":true
}
]
}
]
},
@@ -118,6 +166,29 @@
{
"text":"What's the problem?",
"nextPhraseID":"tinlyn_story_2"
},
{
"text":"Your brother has sent me to ask where I could get fences from. Do you maybe know?",
"nextPhraseID":"tinlyn_fence_1",
"requires":[
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":40
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":100,
"negate":true
},
{
"requireType":"questProgress",
"requireID":"tunlon_fence",
"value":110,
"negate":true
}
]
}
]
},

View File

@@ -0,0 +1,284 @@
[
{
"id":"bwmfill2_container",
"items":[
{
"itemID":"green_pepper",
"chance":"100",
"quantity":{
"min":0,
"max":4
}
},
{
"itemID":"yellow_pepper",
"chance":"100",
"quantity":{
"min":0,
"max":2
}
},
{
"itemID":"red_pepper",
"chance":"100",
"quantity":{
"min":0,
"max":1
}
},
{
"itemID":"gold",
"chance":"100",
"quantity":{
"min":5,
"max":15
}
}
]
},
{
"id":"bwmfill6_container",
"items":[
{
"itemID":"gold",
"chance":"100",
"quantity":{
"min":70,
"max":180
}
},
{
"itemID":"bwm_longsword",
"chance":"100",
"quantity":{
"min":1,
"max":1
}
},
{
"itemID":"bwm_claws",
"chance":"50",
"quantity":{
"min":1,
"max":2
}
},
{
"itemID":"bone",
"chance":"15",
"quantity":{
"min":0,
"max":3
}
}
]
},
{
"id":"tunlon",
"items":[
{
"itemID":"green_pepper",
"chance":"70",
"quantity":{
"min":1,
"max":5
}
},
{
"itemID":"yellow_pepper",
"chance":"60",
"quantity":{
"min":1,
"max":5
}
},
{
"itemID":"red_pepper",
"chance":"50",
"quantity":{
"min":1,
"max":5
}
},
{
"itemID":"lamb_meat_raw",
"chance":"100",
"quantity":{
"min":5,
"max":10
}
},
{
"itemID":"lamb_meat",
"chance":"100",
"quantity":{
"min":2,
"max":5
}
}
]
},
{
"id":"tunlon2",
"items":[
{
"itemID":"gold",
"chance":"100",
"quantity":{
"min":1000,
"max":2000
}
},
{
"itemID":"qtrstaff",
"chance":"100",
"quantity":{
"min":1,
"max":1
}
},
{
"itemID":"green_pepper",
"chance":"70",
"quantity":{
"min":1,
"max":2
}
},
{
"itemID":"yellow_pepper",
"chance":"60",
"quantity":{
"min":1,
"max":2
}
},
{
"itemID":"red_pepper",
"chance":"50",
"quantity":{
"min":1,
"max":2
}
}
]
},
{
"id":"tunlon_quest",
"items":[
{
"itemID":"gold",
"chance":"100",
"quantity":{
"min":150,
"max":350
}
},
{
"itemID":"lamb_meat2",
"chance":"100",
"quantity":{
"min":3,
"max":5
}
},
{
"itemID":"red_pepper",
"chance":"50",
"quantity":{
"min":1,
"max":1
}
}
]
},
{
"id":"tunlon_fence1",
"items":[
{
"itemID":"tunlon_fence1",
"chance":"100",
"quantity":{
"min":10,
"max":10
}
}
]
},
{
"id":"tunlon_fence2",
"items":[
{
"itemID":"tunlon_wood",
"chance":"100",
"quantity":{
"min":1,
"max":1
}
}
]
},
{
"id":"tunlon_fence3",
"items":[
{
"itemID":"tunlon_fence2",
"chance":"100",
"quantity":{
"min":10,
"max":10
}
}
]
},
{
"id":"gornaud_boss",
"items":[
{
"itemID":"gold",
"chance":"100",
"quantity":{
"min":10,
"max":30
}
},
{
"itemID":"nor_gold",
"chance":"100",
"quantity":{
"min":50,
"max":150
}
},
{
"itemID":"meat",
"chance":"100",
"quantity":{
"min":1,
"max":3
}
},
{
"itemID":"stone_mace",
"chance":"100",
"quantity":{
"min":1,
"max":1
}
}
]
},
{
"id":"bwm_sheep",
"items":[
{
"itemID":"lamb_meat_raw",
"chance":"20",
"quantity":{
"min":1,
"max":1
}
}
]
}
]

View File

@@ -0,0 +1,272 @@
[
{
"id":"green_pepper",
"iconID":"items_consumables:16",
"name":"Green Pepper",
"displaytype":"ordinary",
"hasManualPrice":1,
"baseMarketCost":16,
"category":"food",
"useEffect":{
"increaseCurrentHP":{
"min":1,
"max":2
},
"conditionsSource":[
{
"condition":"food",
"magnitude":3,
"duration":4,
"chance":"100"
},
{
"condition":"thirst",
"magnitude":1,
"duration":5,
"chance":"100"
}
]
}
},
{
"id":"yellow_pepper",
"iconID":"items_consumables:17",
"name":"Yellow Pepper",
"displaytype":"ordinary",
"hasManualPrice":1,
"baseMarketCost":22,
"category":"food",
"useEffect":{
"increaseCurrentHP":{
"min":2,
"max":3
},
"conditionsSource":[
{
"condition":"food",
"magnitude":3,
"duration":6,
"chance":"100"
},
{
"condition":"thirst",
"magnitude":1,
"duration":7,
"chance":"100"
}
]
}
},
{
"id":"red_pepper",
"iconID":"items_consumables:18",
"name":"Red Pepper",
"displaytype":"ordinary",
"hasManualPrice":1,
"baseMarketCost":34,
"category":"food",
"useEffect":{
"increaseCurrentHP":{
"min":3,
"max":5
},
"conditionsSource":[
{
"condition":"food",
"magnitude":4,
"duration":6,
"chance":"100"
},
{
"condition":"thirst",
"magnitude":1,
"duration":8,
"chance":"100"
}
]
}
},
{
"id":"bwm_longsword",
"iconID":"items_weapons:7",
"name":"Blackwater iron longsword",
"displaytype":"rare",
"hasManualPrice":1,
"baseMarketCost":1699,
"category":"lsword",
"equipEffect":{
"increaseAttackDamage":{
"min":4,
"max":9
},
"increaseAttackCost":4,
"increaseAttackChance":55,
"increaseBlockChance":0,
"setNonWeaponDamageModifier":122,
"addedConditions":[
{
"condition":"blackwater_misery",
"magnitude":1
}
]
}
},
{
"id":"lamb_meat_raw",
"iconID":"items_japozero:519",
"name":"Raw lamb meat",
"displaytype":"ordinary",
"hasManualPrice":1,
"baseMarketCost":32,
"category":"food",
"useEffect":{
"increaseCurrentHP":{
"min":5,
"max":5
},
"conditionsSource":[
{
"condition":"food",
"magnitude":2,
"duration":10,
"chance":"100"
},
{
"condition":"foodp",
"magnitude":2,
"duration":12,
"chance":"25"
}
]
}
},
{
"id":"lamb_meat",
"iconID":"items_japozero:517",
"name":"Cooked lamb meat",
"displaytype":"ordinary",
"hasManualPrice":1,
"baseMarketCost":65,
"category":"food",
"useEffect":{
"increaseCurrentHP":{
"min":7,
"max":7
},
"conditionsSource":[
{
"condition":"food",
"magnitude":3,
"duration":10,
"chance":"100"
}
]
}
},
{
"id":"lamb_meat2",
"iconID":"items_japozero:517",
"name":"Specially peppered lamb meat",
"displaytype":"extraordinary",
"hasManualPrice":1,
"baseMarketCost":310,
"category":"food",
"useEffect":{
"increaseCurrentHP":{
"min":10,
"max":10
},
"conditionsSource":[
{
"condition":"food",
"magnitude":6,
"duration":10,
"chance":"100"
},
{
"condition":"thirst",
"magnitude":1,
"duration":12,
"chance":"100"
},
{
"condition":"rage_minor",
"magnitude":2,
"duration":11,
"chance":"100"
}
]
}
},
{
"id":"tunlon_wood",
"iconID":"items_japozero:577",
"name":"Pile of wood",
"displaytype":"quest",
"category":"other",
"description":"This pile of wood is quite heavy."
},
{
"id":"tunlon_fence1",
"iconID":"items_japozero:576",
"name":"Sturdy fence",
"displaytype":"quest",
"category":"other",
"description":"This fence looks like it stood around for years."
},
{
"id":"tunlon_fence2",
"iconID":"items_japozero:576",
"name":"New fence",
"displaytype":"quest",
"category":"other",
"description":"This looks like some fine woodcraft."
},
{
"id":"stone_mace",
"iconID":"items_newb:462",
"name":"Gornaud's stone mace",
"displaytype":"extraordinary",
"hasManualPrice":1,
"baseMarketCost":639,
"category":"mace",
"equipEffect":{
"increaseAttackDamage":{
"min":5,
"max":13
},
"increaseAttackCost":7,
"increaseAttackChance":10,
"increaseBlockChance":0,
"setNonWeaponDamageModifier":160
},
"hitEffect":{
"conditionsTarget":[
{
"condition":"stunned",
"magnitude":1,
"duration":3,
"chance":"5"
}
]
}
},
{
"id":"feygard_gold",
"iconID":"items_misc:10",
"name":"Feygard gold coins",
"hasManualPrice":1,
"baseMarketCost":1,
"category":"money",
"description":"A gold goin with the face of Lord Geomyr on it."
},
{
"id":"nor_gold",
"iconID":"items_misc:10",
"name":"Nor gold coins",
"hasManualPrice":1,
"baseMarketCost":1,
"category":"money",
"description":"A gold goin from Nor City."
}
]

View File

@@ -12,7 +12,8 @@
"iconID":"items_japozero:396",
"name":"Fake Thieve's Guild vault key",
"displaytype":"quest",
"category":"other"
"category":"other",
"description":"The fake key made by the Thieves Guild to trick Aidem."
},
{
"id":"aidem_fake_vault_key",

View File

@@ -1015,6 +1015,6 @@
"iconID":"items_necklaces_1:20",
"name":"Lutarc's medallion",
"displaytype":"quest",
"category":"other"
"category":"neck"
}
]

View File

@@ -0,0 +1,131 @@
[
{
"id":"bwm_sheep1",
"name":"Mountain Sheep",
"iconID":"monsters_rltiles2:55",
"maxHP":30,
"maxAP":10,
"moveCost":3,
"monsterClass":"animal",
"movementAggressionType":"none",
"attackDamage":{
"min":1,
"max":5
},
"spawnGroup":"bwm_sheep",
"phraseID":"bwm_sheep_dialogue",
"droplistID":"bwm_sheep",
"attackCost":5,
"attackChance":60,
"blockChance":20,
"damageResistance":0
},
{
"id":"tunlon",
"name":"Tunlon",
"iconID":"monsters_rltiles1:83",
"monsterClass":"humanoid",
"spawnGroup":"tunlon",
"phraseID":"tunlon_start",
"droplistID":"tunlon"
},
{
"id":"tunlon2",
"name":"Tunlon",
"iconID":"monsters_rltiles1:83",
"maxHP":73,
"maxAP":10,
"moveCost":4,
"unique":1,
"monsterClass":"humanoid",
"movementAggressionType":"wholeMap",
"attackDamage":{
"min":9,
"max":17
},
"spawnGroup":"tunlon2",
"droplistID":"tunlon2",
"attackCost":5,
"attackChance":200,
"criticalSkill":10,
"criticalMultiplier":2.0,
"blockChance":90,
"damageResistance":10
},
{
"id":"mountain_wolf_3",
"name":"Strong mountain wolf",
"iconID":"monsters_rltiles2:107",
"maxHP":73,
"maxAP":10,
"moveCost":4,
"monsterClass":"animal",
"attackDamage":{
"min":9,
"max":17
},
"spawnGroup":"primwolf3",
"attackCost":4,
"attackChance":160,
"blockChance":80,
"damageResistance":4,
"hitEffect":{
"conditionsSource":[
{
"condition":"haste",
"magnitude":1,
"duration":2,
"chance":"15"
}
]
}
},
{
"id":"mountain_wolf_4",
"name":"Reckless mountain wolf",
"iconID":"monsters_rltiles2:107",
"maxHP":68,
"maxAP":10,
"moveCost":4,
"monsterClass":"animal",
"attackDamage":{
"min":6,
"max":14
},
"spawnGroup":"primwolf3",
"attackCost":3,
"attackChance":175,
"blockChance":60,
"damageResistance":2
},
{
"id":"gornaud_boss",
"name":"Gornaud leader",
"iconID":"monsters_rltiles2:30",
"maxHP":165,
"maxAP":12,
"moveCost":5,
"unique":1,
"monsterClass":"giant",
"attackDamage":{
"min":10,
"max":30
},
"spawnGroup":"gornaud_boss",
"droplistID":"gornaud_boss",
"attackCost":5,
"attackChance":100,
"blockChance":70,
"damageResistance":5,
"hitEffect":{
"conditionsTarget":[
{
"condition":"dazed",
"magnitude":3,
"duration":3,
"chance":"50"
}
]
}
}
]

View File

@@ -0,0 +1,104 @@
[
{
"id":"tunlon_fence",
"name":"It makes no fence",
"showInLog":1,
"stages":[
{
"progress":10,
"logText":"I found Tunlon, a sheep farmer, on the hill next to Crossglen. He asked me to help him get some wood for new fences. Since Crossglen doesn't have a lumberjack, I should go to Fallhaven and ask there."
},
{
"progress":12,
"logText":"Tunlon got furious when he saw that you killed his sheep.",
"rewardExperience":5,
"finishesQuest":1
},
{
"progress":20,
"logText":"I talked to Fallhaven's woodcutter. He told me that he had done a lot of work lately and therefore can't get any more wood for me. However, I should ask the woodcutters near Crossroads Guardhouse if they can help me."
},
{
"progress":30,
"logText":"The woodcutters told me that they have a lot of wood after clearing out the field around them, however all they have is firewood. Apparently this is not suitable for making fences. I should explain this to Tunlon."
},
{
"progress":32,
"logText":"Hadracor opened up a passage to the south, so I wouldn't have to take the long way up to Tunlon any more."
},
{
"progress":40,
"logText":"I talked to Tunlon again and he told me to talk to his brother Tinlyn if he knew any person who could help me out."
},
{
"progress":100,
"logText":"Tinlyn was glad to meet me. He said that Loneford had a woodcutter who could maybe help me out."
},
{
"progress":110,
"logText":"Tinlyn wasn't really happy to see me. However, he told me to go to Loneford."
},
{
"progress":150,
"logText":"In Loneford, I met a villager who told me he had some spare fences made. I should bring them to Tunlon."
},
{
"progress":200,
"logText":"Tunlon took a close look at the fences I brought him, but he didn't like them a lot. The fence posts were too short he said. I should go back and ask for taller ones.",
"rewardExperience":2000
},
{
"progress":210,
"logText":"The woodcutter in Loneford however said he couldn't make any fences, as he just cuts the wood. He recommended giving Brimhaven's woodcutter a visit, as he thinks that he can do some basic woodwork."
},
{
"progress":220,
"logText":"I gave the woodcutter in Brimhaven a visit and he told me to bring some wood, so the craftsman can make fences out of it. Loneford's woodcutter should have plenty, so I should go back and ask him for wood."
},
{
"progress":230,
"logText":"I got a pile of wood for the fences."
},
{
"progress":235,
"logText":"I gave the wood to the woodcraftsman in Brimhaven."
},
{
"progress":240,
"logText":"Brimhaven's wood craftsman sold me some nice looking fences."
},
{
"progress":250,
"logText":"Tunlon was happy to see the fences I brought him. These should be just fine, he said.",
"rewardExperience":5000,
"finishesQuest":1
}
]
},
{
"id":"bwmfill_nondisplay",
"name":"bwmfill_nondisplay",
"stages":[
{
"progress":40,
"logText":"Guard Burhczyd active"
},
{
"progress":41,
"logText":"Guard Burhczyd used"
},
{
"progress":42,
"logText":"BMP box"
},
{
"progress":43,
"logText":"BMP box with normal BMP"
},
{
"progress":44,
"logText":"Killed Tunlon's sheep detected"
}
]
}
]

View File

@@ -260,6 +260,11 @@
"progress":125,
"logText":"Uniform blue lighting: I solved a difficult logic riddle.",
"rewardExperience":1000
},
{
"progress":130,
"logText":"Nightmare Survived: I survived the most intense nightmares ever",
"rewardExperience":1000
}
]
}

View File

@@ -58,12 +58,13 @@
• Moritz Arendt-Roth (Moerit)<br/>
• Draze<br/>
• Antison<br/>
• Raphi<br/>
<br/>
<b>Translations</b><br/>
• Russian translation by Dreamer..., e.solodookhin, shell.andor, konstmih, istasman, Aleksey Kabanov, Alexander Zubok, Paul Sulemenkov, dromoz, avatar232 and Mingun<br/>
• Italian translation by k6blue, liogiu, Joker, Andrea Luciano Damico, NeoAugustus and Premoli Roberto<br/>
• French translation by LeSanglier, Misty Soul, zorun.42, Marwane K., Olivier, Sekhmet, Thomas Degave, Éfrit, Zeiko, Arliantir, Lacrom and yannubuntu<br/>
• German translation by Bomber, Samuel Plentz, cngunners14, Phoenixor, Tutar, Mütze, Moerit, Mayweed, Christian Berlage, Firefly84 and Blackmore<br/>
• German translation by Bomber, Samuel Plentz, cngunners14, Phoenixor, Tutar, Mütze, Moerit, Mayweed, Christian Berlage, Firefly84, Blackmore and Raphi<br/>
• Hungarian translation by <a href="https://urbalazs.hu">Balázs Úr and Vala</a><br/>
• Hebrew translation by eitanbm<br/>
• Portuguese(PT) translation by mira<br/>

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