Merge branch 'AT_Source_Next_Release'

This commit is contained in:
Nut.andor
2025-05-04 20:40:36 +02:00
171 changed files with 211107 additions and 28666 deletions

View File

@@ -3,8 +3,8 @@
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gpl.rpg.AndorsTrail"
android:versionCode="79"
android:versionName="0.8.12.1"
android:versionCode="80"
android:versionName="0.8.13"
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.12.1";
public static final String CURRENT_VERSION_DISPLAY = "0.8.13";
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 : 79;
public static final int CURRENT_VERSION = DEVELOPMENT_INCOMPATIBLE_SAVEGAMES ? DEVELOPMENT_INCOMPATIBLE_SAVEGAME_VERSION : 80;
private final AndorsTrailPreferences preferences = new AndorsTrailPreferences();
private WorldContext world = new WorldContext();

View File

@@ -38,6 +38,10 @@ public final class ActorConditionInfoActivity extends AndorsTrailBaseActivity {
tv.setText(conditionType.name);
world.tileManager.setImageViewTile(getResources(), tv, conditionType);
TextView descriptionTv = (TextView) findViewById(R.id.actorconditioninfo_description);
if(conditionType.description != null && !conditionType.description.isEmpty()) descriptionTv.setText(conditionType.description);
else descriptionTv.setVisibility(View.GONE);
Button b = (Button) findViewById(R.id.actorconditioninfo_close);
b.setOnClickListener(new OnClickListener() {
@Override

View File

@@ -358,14 +358,14 @@ public final class DebugInterface {
,new DebugButton("#1", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "swamp3", "north", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "lake_shore_road_9", "north", 5, 0);
}
})
,new DebugButton("#2", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "beekeeper1", "south", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "crackshot_hideout3", "South", 0, 0);
}
})
@@ -373,49 +373,49 @@ public final class DebugInterface {
,new DebugButton("#3", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "guynmart", "west2", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "fallhaven_derelict2", "up", 0, 0);
}
})
,new DebugButton("#4", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "waterway5", "south", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "loneford4", "south", 0, 0);
}
})
,new DebugButton("#5", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "island1", "south2", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "waytogalmore1", "entrance2", 0, 0);
}
})
,new DebugButton("#6", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "laerothmanor1", "down2", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_32", "south", 19, 0);
}
})
,new DebugButton("#7", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "final_cave1", "up", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "cabin_norcity_road1", "north", 5, 0);
}
})
,new DebugButton("#8", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "bwmfill3", "north2", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_86", "west", 0, 5);
}
})
,new DebugButton("#9", new OnClickListener() {
@Override
public void onClick(View arg0) {
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "island2", "down", 0, 0);
controllerContext.movementController.placePlayerAsyncAt(MapObject.MapObjectType.newmap, "galmore_58", "north", 0, 0);
}
})

View File

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

View File

@@ -187,12 +187,12 @@ public final class SkillCollection {
initializeSkill(new SkillInfo(SkillID.resistanceBlood, MAX_LEVEL_RESISTANCE, SkillInfo.LevelUpType.alwaysShown, SkillCategory.immunity, null, position++));
initializeSkill(new SkillInfo(SkillID.shadowBless, 1, SkillInfo.LevelUpType.onlyByQuests, SkillCategory.immunity, null, position++));
initializeSkill(new SkillInfo(SkillID.crit1, 1, SkillInfo.LevelUpType.alwaysShown, SkillCategory.criticals, new SkillLevelRequirement[] {
SkillLevelRequirement.requireOtherSkill(SkillID.moreCriticals, 3)
,SkillLevelRequirement.requireOtherSkill(SkillID.betterCriticals, 3)
SkillLevelRequirement.requireOtherSkill(SkillID.moreCriticals, 2)
,SkillLevelRequirement.requireOtherSkill(SkillID.betterCriticals, 2)
}, position++));
initializeSkill(new SkillInfo(SkillID.crit2, 1, SkillInfo.LevelUpType.alwaysShown, SkillCategory.criticals, new SkillLevelRequirement[] {
SkillLevelRequirement.requireOtherSkill(SkillID.moreCriticals, 6)
,SkillLevelRequirement.requireOtherSkill(SkillID.betterCriticals, 6)
SkillLevelRequirement.requireOtherSkill(SkillID.moreCriticals, 4)
,SkillLevelRequirement.requireOtherSkill(SkillID.betterCriticals, 4)
,SkillLevelRequirement.requireOtherSkill(SkillID.crit1, 1)
}, position++));
initializeSkill(new SkillInfo(SkillID.rejuvenation, 1, SkillInfo.LevelUpType.alwaysShown, SkillCategory.immunity, new SkillLevelRequirement[] {

View File

@@ -263,6 +263,7 @@ public final class ResourceLoader {
final Size sz7x4 = new Size(7, 4);
final Size sz8x3 = new Size(8, 3);
final Size sz16x8 = new Size(16, 8);
final Size sz16x10 = new Size(16, 10);
final Size sz20x12 = new Size(20, 12);
final Size mapTileSize = new Size(16, 8);
final Size sz8x8 = new Size(8, 8);
@@ -282,6 +283,7 @@ public final class ResourceLoader {
loader.prepareTileset(R.drawable.actorconditions_1, "actorconditions_1", new Size(14, 8), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.actorconditions_2, "actorconditions_2", sz3x1, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.actorconditions_japozero, "actorconditions_japozero", new Size(16, 4), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.actorconditions_newb, "actorconditions_newb", new Size(20, 1), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.actorconditions_omi1, "actorconditions_omi1", sz2x1, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.actorconditions_omi2, "actorconditions_omi2", sz5x1, sz1x1, mTileSize);
/*INSERT_ACTORCONDITIONS_TILESETS_HERE*/
@@ -330,7 +332,7 @@ public final class ResourceLoader {
loader.prepareTileset(R.drawable.monsters_eye4, "monsters_eye4", sz1x1, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_ghost1, "monsters_ghost1", sz1x1, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_hydra1, "monsters_hydra1", sz1x1, sz2x2, mTileSize);
loader.prepareTileset(R.drawable.monsters_insects, "monsters_insects", sz6x1, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_insects, "monsters_insects", sz16x8, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_johny, "monsters_johny", sz20x12, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_karvis1, "monsters_karvis1", sz2x1, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.monsters_karvis2, "monsters_karvis2", new Size(9, 1), sz1x1, mTileSize);
@@ -345,7 +347,7 @@ public final class ResourceLoader {
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(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_3, "monsters_newb_3", new Size(10, 10), 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);
@@ -385,7 +387,7 @@ public final class ResourceLoader {
loader.prepareTileset(R.drawable.monsters_cats, "monsters_cats", new Size(10, 2), sz1x1, mTileSize);
/*INSERT_NPCS_TILESETS_HERE*/
loader.prepareTileset(R.drawable.map_bed_1, "map_bed_1", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_bed_1, "map_bed_1", sz16x10, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_boats_1, "map_boats_1", new Size(16, 9), sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_border_1, "map_border_1", mapTileSize, sz1x1, mTileSize);
loader.prepareTileset(R.drawable.map_bridge_1, "map_bridge_1", mapTileSize, sz1x1, mTileSize);

View File

@@ -26,6 +26,7 @@ public final class ActorConditionsTypeParser extends JsonCollectionParserFor<Act
ActorConditionType result = new ActorConditionType(
conditionTypeID
,translationLoader.translateActorConditionName(o.getString(JsonFieldNames.ActorCondition.name))
,translationLoader.translateActorConditionName(o.optString(JsonFieldNames.ActorCondition.description))
,ResourceParserUtils.parseImageID(tileLoader, o.getString(JsonFieldNames.ActorCondition.iconID))
,ActorConditionType.ConditionCategory.valueOf(o.getString(JsonFieldNames.ActorCondition.category))
,o.optInt(JsonFieldNames.ActorCondition.isStacking) > 0

View File

@@ -4,6 +4,7 @@ public final class JsonFieldNames {
public static final class ActorCondition {
public static final String conditionTypeID = "id";
public static final String name = "name";
public static final String description = "description";
public static final String iconID = "iconID";
public static final String category = "category";
public static final String isStacking = "isStacking";

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

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

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

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,6 +1,39 @@
I put both (release notes + forum announcement) into this source, so it will be easier to maintain them parallel:
APK 80 (0.8.13)
Release notes
=============
* New quest "Troubling Times" (from RaptorNXT)
* 3 new maps (2 of which don't even have any connection to the new quest)
* Many minor map fixes, typos and other little things
* Translations
Forum announcement //2025-05-04
==================
Hey fellow adventurers - we have a new release now!
There have been many requests for a sequel to quests in the Thieves' World. Now here it is!
This is essentially a co-production between RaptorNXT and me. RaptorNXT created and formulated the quest log and dialogue, and I translated it into the game. It's a good division of labor, since a good story requires a surprising amount of detail work.
The quest starts in the Thieves' Guild. You will find it easily when you have completed all Thieves Guild quests up to, and including, The Ruthless Crackshot and Wanted Men.
[list]A new quest "Troubling Times"[/list]
[list]3 new maps (2 of which don't even have any connection to the new quest)[/list]
[list]Many minor map fixes, typos and other little things[/list]
[list]Translations[/list]
Here is is the link on our server: [url]https://andorstrail.com/static/AndorsTrail_v0.8.13.apk[/url]
Google Play, F-droid, Github and Itch will follow soon.
Note: The first start might take long, maybe even minutes. Be patient, world map files are generated. This is only on first start.
And now: Happy playing! :D
APK 79 (0.8.12.1) Bugfix + translations
Release notes

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 847 KiB

After

Width:  |  Height:  |  Size: 839 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 905 KiB

After

Width:  |  Height:  |  Size: 968 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 137 KiB

View File

@@ -24,6 +24,13 @@
android:orientation="vertical"
android:padding="@dimen/dialog_margin" >
<TextView
android:id="@+id/actorconditioninfo_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/section_margin"
android:textStyle="italic" />
<TextView
android:id="@+id/actorconditioninfo_category"
android:layout_width="match_parent"

View File

@@ -194,7 +194,7 @@
},
{
"id":"lookout_down",
"message":"You see the montain top you are standing on.",
"message":"You see the mountain top you are standing on.",
"replies":[
{
"text":"Look closer at the rocks.",

View File

@@ -4785,6 +4785,44 @@
"requireID":"echoes_of_enchantment",
"value":13,
"negate":true
},
{
"requireType":"questProgress",
"requireID":"echoes_of_enchantment",
"value":9,
"negate":true
}
]
},
{
"nextPhraseID":"wexlow_well_ask_to_jump_10",
"requires":[
{
"requireType":"questProgress",
"requireID":"echoes_of_enchantment",
"value":13,
"negate":true
},
{
"requireType":"questProgress",
"requireID":"echoes_of_enchantment",
"value":9
}
]
},
{
"nextPhraseID":"wexlow_well_ask_to_jump_10",
"requires":[
{
"requireType":"questProgress",
"requireID":"echoes_of_enchantment",
"value":13,
"negate":true
},
{
"requireType":"questProgress",
"requireID":"echoes_of_enchantment",
"value":11
}
]
}
@@ -7921,5 +7959,40 @@
"value":13
}
]
},
{
"id":"wexlow_well_ask_to_jump_10",
"message":"Do you want to jump inside?",
"replies":[
{
"text":"No way! I remember How badly I was hurt the last time.",
"nextPhraseID":"X"
},
{
"text":"Yes. What choice do I have?",
"nextPhraseID":"wexlow_well_ask_to_jump_20"
}
]
},
{
"id":"wexlow_well_ask_to_jump_20",
"message":"You jumped down into the darkness of the well. At the bottom of the well, you find yourself dazed and bleeding from what feels like every part of your body.",
"rewards":[
{
"rewardType":"actorCondition",
"rewardID":"concussion",
"value":10
},
{
"rewardType":"actorCondition",
"rewardID":"bleeding_wound",
"value":15
},
{
"rewardType":"mapchange",
"rewardID":"down",
"mapName":"gamjee_well_1"
}
]
}
]

View File

@@ -77,6 +77,23 @@
{
"text":"I require healing. Can I see what items you have available?",
"nextPhraseID":"jolnor_shop_1"
},
{
"text":"I need some help finding out who is responsible for casting a Shadow spell that causes a person to become noticeable.",
"nextPhraseID":"tt_jolnor_10",
"requires":[
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":50
},
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":70,
"negate":true
}
]
}
]
},

View File

@@ -10630,7 +10630,7 @@
},
{
"id":"coin_collector_thief_coins_35",
"message":"These bronze pieces bear the mark of the Lunar Whispe, an infamous thieves' guild that once ruled the underground markets. Legend has it, these coins were minted in secret, their alloy infused with fragments of moonstone to enhance the guild's stealthy endeavors",
"message":"These bronze pieces bear the mark of the Lunar Whisper, an infamous thieves' guild that once ruled the underground markets. Legend has it, these coins were minted in secret, their alloy infused with fragments of moonstone to enhance the guild's stealthy endeavors",
"replies":[
{
"text":"N",

View File

@@ -229,6 +229,17 @@
}
]
},
{
"text":"N",
"nextPhraseID":"thief_seraphina_bridge_fixed",
"requires":[
{
"requireType":"questProgress",
"requireID":"Thieves04",
"value":75
}
]
},
{
"text":"N",
"nextPhraseID":"thief_seraphina_80",
@@ -239,10 +250,6 @@
"value":38
}
]
},
{
"text":"N",
"nextPhraseID":"thief_seraphina_bridge_fixed"
}
]
},
@@ -289,6 +296,40 @@
{
"text":"Yes, ma'am.",
"nextPhraseID":"X"
},
{
"text":"The Guild needs you. Umar ...",
"nextPhraseID":"tt_sly_10",
"requires":[
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":100
},
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":140,
"negate":true
}
]
},
{
"text":"Hi Seraphina, you were away so quickly after you gave me Luthor's ring.",
"nextPhraseID":"tt_sly_300",
"requires":[
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":270
},
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":320,
"negate":true
}
]
}
]
},
@@ -735,7 +776,7 @@
"nextPhraseID":"aidem_camp_defy_76"
},
{
"text":"The Thieves Guild?",
"text":"The Thieves' Guild?",
"nextPhraseID":"aidem_camp_defy_77"
}
]
@@ -752,7 +793,7 @@
},
{
"id":"aidem_camp_defy_76a",
"message":"I'm talking about the Thieves Guild.",
"message":"I'm talking about the Thieves' Guild.",
"replies":[
{
"text":"Why would you want to do that?",
@@ -1952,12 +1993,29 @@
{
"text":"Oh, you want to play dumb? Umar will hear about this!",
"nextPhraseID":"X"
},
{
"text":"No time to joke - the Guild needs you. Umar ...",
"nextPhraseID":"tt_sly_10",
"requires":[
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":100
},
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":140,
"negate":true
}
]
}
]
},
{
"id":"wild6_house_hatch_defy_killed_no_key",
"message":"I should come back with the Thieves Guild key."
"message":"I should come back with the Thieves' Guild key."
},
{
"id":"troublemaker_wm_return_real_key_10",
@@ -3603,65 +3661,5 @@
"mapName":"waytogalmore0"
}
]
},
{
"id":"gal_chk_h3",
"rewards":[
{
"rewardType":"questProgress",
"rewardID":"sutdover_hidden",
"value":7
},
{
"rewardType":"removeQuestProgress",
"rewardID":"sutdover_hidden",
"value":8
},
{
"rewardType":"removeSpawnArea",
"rewardID":"reindeer",
"mapName":"crossglen"
}
]
},
{
"id":"gal_chk_h4",
"rewards":[
{
"rewardType":"removeQuestProgress",
"rewardID":"sutdover_hidden",
"value":7
},
{
"rewardType":"questProgress",
"rewardID":"sutdover_hidden",
"value":8
},
{
"rewardType":"spawnAll",
"rewardID":"reindeer",
"mapName":"crossglen"
}
]
},
{
"id":"gal_chk_h9",
"rewards":[
{
"rewardType":"removeQuestProgress",
"rewardID":"sutdover_hidden",
"value":7
},
{
"rewardType":"removeQuestProgress",
"rewardID":"sutdover_hidden",
"value":8
},
{
"rewardType":"removeSpawnArea",
"rewardID":"reindeer",
"mapName":"crossglen"
}
]
}
]

View File

@@ -7804,8 +7804,13 @@
"value":33
},
{
"rewardType":"spawnAll",
"rewardID":"elm2f2_chest",
"rewardType":"activateMapObjectGroup",
"rewardID":"Chest",
"mapName":"elm_2f_2"
},
{
"rewardType":"deactivateMapObjectGroup",
"rewardID":"Chest",
"mapName":"elm_2f_2"
}
]

View File

@@ -1231,6 +1231,23 @@
{
"text":"It's my job. Nice to see you survived those anklebiters ...",
"nextPhraseID":"X"
},
{
"text":"Hmm, maybe you can help me?",
"nextPhraseID":"fanamor_tt",
"requires":[
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":150
},
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":180,
"negate":true
}
]
}
]
},
@@ -1328,7 +1345,7 @@
},
{
"id":"umar_guild02_5a",
"message":"But first I have to clarify something. You need to be more careful not to give information to outsiders about the Thieves Guild.",
"message":"But first I have to clarify something. You need to be more careful not to give information to outsiders about the Thieves' Guild.",
"replies":[
{
"text":"Did I?",
@@ -4314,7 +4331,7 @@
},
{
"id":"umar_guild03_30",
"message":"Take 4000 gold coins, and some bottles of my favorite mead.\nNow you deserve a good rest, my friend. You have earned the trust of the Thieves Guild.",
"message":"Take 4000 gold coins, and some bottles of my favorite mead.\nNow you deserve a good rest, my friend. You have earned the trust of the Thieves' Guild.",
"replies":[
{
"text":"I'll be back soon.",
@@ -5276,7 +5293,7 @@
},
{
"id":"umar_guild04_22",
"message":"He said that they will no longer be a part of the thieves guild. They are now referring to themselves as 'Aidem'.",
"message":"He said that they will no longer be a part of the Thieves' Guild. They are now referring to themselves as 'Aidem'.",
"replies":[
{
"text":"What a weird name. For what reason?",

View File

@@ -522,6 +522,23 @@
"value":190
}
]
},
{
"text":"I need some help finding out who is responsible for casting a Shadow spell that causes a person to become noticeable.",
"nextPhraseID":"tt_yolgen_10",
"requires":[
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":50
},
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":70,
"negate":true
}
]
}
]
},
@@ -1479,6 +1496,23 @@
{
"text":"Do you have anything to trade?",
"nextPhraseID":"tahalendor_rumblings10x_1"
},
{
"text":"I need some help finding out who is responsible for casting a Shadow spell that causes a person to become noticeable.",
"nextPhraseID":"tt_tahalendor_10",
"requires":[
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":50
},
{
"requireType":"questProgress",
"requireID":"troubling_times",
"value":70,
"negate":true
}
]
}
]
},

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