Merge branch 'AT_Source_Next_Release'
@@ -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"
|
||||
>
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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[] {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
|
||||
BIN
AndorsTrail/assets/translation/mg.mo
Normal file
82890
AndorsTrail/assets/translation/mg.po
Normal 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
|
||||
|
||||
BIN
AndorsTrail/res/drawable/actorconditions_newb.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 847 KiB After Width: | Height: | Size: 839 KiB |
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 905 KiB After Width: | Height: | Size: 968 KiB |
|
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 137 KiB |
@@ -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"
|
||||
|
||||
@@ -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.",
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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?",
|
||||
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||