From 96440f27b0a0a76a6b618574b4d1ee4debd95645 Mon Sep 17 00:00:00 2001 From: LucasDelvallet Date: Mon, 9 Feb 2015 20:20:48 +0100 Subject: [PATCH 01/11] Old conversation are now grayed out Old conversation are now grayed out for a better lisibility. --- .../activity/ConversationActivity.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java index 8bc394546..dbeb0c423 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java @@ -46,6 +46,9 @@ public final class ConversationActivity private static final int playerPhraseColor = 0; private static final int NPCPhraseColor = 0; private static final int rewardColor = Color.argb(255, 0x99, 0x99, 0x55); + private static final int oldPhraseColor = Color.argb(255,0x5a,0x5a, 0x5a); + private static final int oldPlayerNameColor = Color.argb(255, 0x5d, 0x11, 0x11); + private static final int oldNPCNameColor = Color.argb(255, 0x5d, 0x5d, 0x11); private WorldContext world; private Player player; @@ -206,7 +209,19 @@ public final class ConversationActivity return null; // No reply was found. This is probably an error. } + private void greyAllConversationStatement(){ + for(ConversationStatement conversation : this.conversationHistory ){ + conversation.textColor = oldPhraseColor; + if(conversation.isPlayerActor){ + conversation.nameColor = oldPlayerNameColor; + } else { + conversation.nameColor = oldNPCNameColor; + } + } + } + private void nextButtonClicked() { + greyAllConversationStatement(); RadioButton rb = getSelectedReplyButton(); replyGroup.removeAllViews(); nextButton.setEnabled(false); From 31dc4f7ba8218c6dcecc995c78a3606ff3804c9c Mon Sep 17 00:00:00 2001 From: LucasDelvallet Date: Thu, 26 Feb 2015 13:19:26 +0100 Subject: [PATCH 02/11] Improved greyAllConvervationStatement I've improved this method, now reward text have they own color when greyed and it only iterate text that not have been greyed yet. --- .../activity/ConversationActivity.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java index dbeb0c423..7b6437b12 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java @@ -35,6 +35,7 @@ import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress; import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager; import java.util.ArrayList; +import java.util.ListIterator; public final class ConversationActivity extends Activity @@ -49,11 +50,13 @@ public final class ConversationActivity private static final int oldPhraseColor = Color.argb(255,0x5a,0x5a, 0x5a); private static final int oldPlayerNameColor = Color.argb(255, 0x5d, 0x11, 0x11); private static final int oldNPCNameColor = Color.argb(255, 0x5d, 0x5d, 0x11); + private static final int oldRewardColor = Color.argb(255, 0x4C, 0x4C, 0x2A); private WorldContext world; private Player player; private final ArrayList conversationHistory = new ArrayList(); private ConversationController.ConversationStatemachine conversationState; + private int numberOfNewMessage = 0; private StatementContainerAdapter listAdapter; private Button nextButton; @@ -210,12 +213,19 @@ public final class ConversationActivity } private void greyAllConversationStatement(){ - for(ConversationStatement conversation : this.conversationHistory ){ - conversation.textColor = oldPhraseColor; - if(conversation.isPlayerActor){ - conversation.nameColor = oldPlayerNameColor; - } else { - conversation.nameColor = oldNPCNameColor; + int numberOfMessage = this.conversationHistory.size(); + ListIterator conversations = this.conversationHistory.listIterator(numberOfMessage-this.numberOfNewMessage); + while(conversations.hasNext()){ + ConversationStatement conversation = conversations.next(); + if(conversation.hasActor()){ + conversation.textColor = oldPhraseColor; + if(conversation.isPlayerActor){ + conversation.nameColor = oldPlayerNameColor; + } else { + conversation.nameColor = oldNPCNameColor; + } + }else{ + conversation.textColor = oldRewardColor; } } } @@ -248,6 +258,7 @@ public final class ConversationActivity s.textColor = textColor; s.isPlayerActor = actor != null && actor == player; conversationHistory.add(s); + numberOfNewMessage++; statementList.clearFocus(); listAdapter.notifyDataSetChanged(); statementList.requestLayout(); From f8143c89572eaacc45911d7d7c9a93fc4f854c87 Mon Sep 17 00:00:00 2001 From: LucasDelvallet Date: Thu, 26 Feb 2015 13:51:53 +0100 Subject: [PATCH 03/11] Added missing line Added the missing line who put numberOfNewMessage to 0 --- .../com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java | 1 + 1 file changed, 1 insertion(+) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java index 7b6437b12..53b74dbca 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java @@ -228,6 +228,7 @@ public final class ConversationActivity conversation.textColor = oldRewardColor; } } + numberOfNewMessage = 0; } private void nextButtonClicked() { From f9e7455f14364fda32e39687cd2140f33b8cf4c5 Mon Sep 17 00:00:00 2001 From: LucasDelvallet Date: Mon, 2 Mar 2015 15:01:07 +0100 Subject: [PATCH 04/11] Modified the quest editor, in order to allow the creation of a removeQuestProgress reward in any stage of a quest. If the field is emmpty, the stage won't have a this reward. In order to work, the progress must exit in the quest. --- AndorsTrailEdit/js/legacyimport.js | 4 ++-- AndorsTrailEdit/partials/edit_quest.html | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/AndorsTrailEdit/js/legacyimport.js b/AndorsTrailEdit/js/legacyimport.js index 37aeea11d..d4b92eb75 100644 --- a/AndorsTrailEdit/js/legacyimport.js +++ b/AndorsTrailEdit/js/legacyimport.js @@ -7,7 +7,7 @@ var ATEditor = (function(ATEditor, model, FieldList, _) { + "hasAbilityEffect|boostMaxHP|boostMaxAP|moveCostPenalty|attackCost|attackChance|criticalChance|criticalMultiplier|attackDamage_Min|attackDamage_Max|blockChance|damageResistance|" + "];" ); - model.quests.legacyFieldList = new FieldList("[id|name|showInLog|stages[progress|logText|rewardExperience|finishesQuest|]|];"); + model.quests.legacyFieldList = new FieldList("[id|name|showInLog|stages[progress|logText|rewardExperience|removeQuestProgress|finishesQuest|]|];"); model.items.legacyFieldList = new FieldList("[id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|" + "hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|" + "hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|" @@ -94,7 +94,7 @@ var ATEditor = (function(ATEditor, model, FieldList, _) { function convertQuest(obj) { - // [id|name|showInLog|stages[progress|logText|rewardExperience|finishesQuest|]|]; + // [id|name|showInLog|stages[progress|logText|rewardExperience|removeQuestProgress|finishesQuest|]|]; return obj; } diff --git a/AndorsTrailEdit/partials/edit_quest.html b/AndorsTrailEdit/partials/edit_quest.html index 62d736965..85c5ef813 100644 --- a/AndorsTrailEdit/partials/edit_quest.html +++ b/AndorsTrailEdit/partials/edit_quest.html @@ -22,6 +22,7 @@ Progress Logtext Experience + Remove quest progress Finishes quest @@ -30,6 +31,7 @@ + From 4b406eb4f7f80e926dd4ff05b7bdc2c70c172481 Mon Sep 17 00:00:00 2001 From: FlorianDoublet Date: Fri, 13 Feb 2015 17:31:03 +0100 Subject: [PATCH 05/11] Added repeatable quest --- .../controller/ConversationController.java | 11 +++++++++++ .../com/gpl/rpg/AndorsTrail/model/actor/Player.java | 9 +++++++++ .../gpl/rpg/AndorsTrail/model/script/Requirement.java | 1 + .../rpg/AndorsTrail/model/script/ScriptEffect.java | 1 + 4 files changed, 22 insertions(+) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java index 79f1eae58..17218b434 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java @@ -18,6 +18,7 @@ import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap; import com.gpl.rpg.AndorsTrail.model.map.MapObject; import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea; import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap; +import com.gpl.rpg.AndorsTrail.model.quest.Quest; import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry; import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress; import com.gpl.rpg.AndorsTrail.model.script.Requirement; @@ -108,6 +109,9 @@ public final class ConversationController { case deactivateMapChangeArea: deactivateMapChangeArea(effect.mapName, effect.effectID); break; + case removeQuestProgress: + addRemoveQuestProgressReward(player, effect.effectID, effect.value); + break; } } @@ -156,14 +160,21 @@ public final class ConversationController { private void addQuestProgressReward(Player player, String questID, int questProgress, ScriptEffectResult result) { QuestProgress progress = new QuestProgress(questID, questProgress); boolean added = player.addQuestProgress(progress); + if (!added) return; // Only apply exp reward if the quest stage was reached just now (and not re-reached) QuestLogEntry stage = world.quests.getQuestLogEntry(progress); if (stage == null) return; + result.loot.exp += stage.rewardExperience; result.questProgress.add(progress); } + private void addRemoveQuestProgressReward(Player player, String questID, int questProgress) { + Quest currentQuest = world.quests.getQuest(questID); + player.removeQuestProgress(currentQuest,questProgress); + } + private void addDropListReward(Player player, String droplistID, ScriptEffectResult result) { world.dropLists.getDropList(droplistID).createRandomLoot(result.loot, player); } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java index c49f88868..d39dc0405 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java @@ -11,6 +11,8 @@ import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection; import com.gpl.rpg.AndorsTrail.model.item.DropListCollection; import com.gpl.rpg.AndorsTrail.model.item.Inventory; import com.gpl.rpg.AndorsTrail.model.item.Loot; +import com.gpl.rpg.AndorsTrail.model.quest.Quest; +import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry; import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress; import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager; import com.gpl.rpg.AndorsTrail.savegames.LegacySavegameFormatReaderForPlayer; @@ -21,8 +23,11 @@ import com.gpl.rpg.AndorsTrail.util.Size; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.Map.Entry; public final class Player extends Actor { @@ -154,6 +159,10 @@ public final class Player extends Actor { return true; //Progress was added. } + public void removeQuestProgress(Quest quest, int removeProgress){ + questProgress.get(quest.questID).remove(progress); + } + public void recalculateLevelExperience() { int experienceRequiredToReachThisLevel = getRequiredExperience(level); levelExperience.set(getRequiredExperienceForNextLevel(level), totalExperience - experienceRequiredToReachThisLevel); diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/Requirement.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/Requirement.java index e7d1399bd..f86d28679 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/Requirement.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/Requirement.java @@ -14,6 +14,7 @@ public final class Requirement { ,spentGold ,consumedBonemeals ,hasActorCondition + ,removeQuestProgress } public final RequirementType requireType; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/ScriptEffect.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/ScriptEffect.java index 0303b7606..096ac1e1c 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/ScriptEffect.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/ScriptEffect.java @@ -14,6 +14,7 @@ public final class ScriptEffect { , deactivateSpawnArea , activateMapChangeArea , deactivateMapChangeArea + , removeQuestProgress } public final ScriptEffectType type; From 00caf44ef1e9e037dae6e8d3b857bed97de9854f Mon Sep 17 00:00:00 2001 From: LucasDelvallet Date: Fri, 6 Mar 2015 14:28:33 +0100 Subject: [PATCH 06/11] Added removeQuestProgress Reward --- AndorsTrailEdit/js/legacyimport.js | 4 ++-- AndorsTrailEdit/partials/edit_dialogue.html | 11 +++++++++++ AndorsTrailEdit/partials/edit_quest.html | 2 -- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/AndorsTrailEdit/js/legacyimport.js b/AndorsTrailEdit/js/legacyimport.js index d4b92eb75..37aeea11d 100644 --- a/AndorsTrailEdit/js/legacyimport.js +++ b/AndorsTrailEdit/js/legacyimport.js @@ -7,7 +7,7 @@ var ATEditor = (function(ATEditor, model, FieldList, _) { + "hasAbilityEffect|boostMaxHP|boostMaxAP|moveCostPenalty|attackCost|attackChance|criticalChance|criticalMultiplier|attackDamage_Min|attackDamage_Max|blockChance|damageResistance|" + "];" ); - model.quests.legacyFieldList = new FieldList("[id|name|showInLog|stages[progress|logText|rewardExperience|removeQuestProgress|finishesQuest|]|];"); + model.quests.legacyFieldList = new FieldList("[id|name|showInLog|stages[progress|logText|rewardExperience|finishesQuest|]|];"); model.items.legacyFieldList = new FieldList("[id|iconID|name|category|displaytype|hasManualPrice|baseMarketCost|" + "hasEquipEffect|equip_boostMaxHP|equip_boostMaxAP|equip_moveCostPenalty|equip_attackCost|equip_attackChance|equip_criticalChance|equip_criticalMultiplier|equip_attackDamage_Min|equip_attackDamage_Max|equip_blockChance|equip_damageResistance|equip_conditions[condition|magnitude|]|" + "hasUseEffect|use_boostHP_Min|use_boostHP_Max|use_boostAP_Min|use_boostAP_Max|use_conditionsSource[condition|magnitude|duration|chance|]|" @@ -94,7 +94,7 @@ var ATEditor = (function(ATEditor, model, FieldList, _) { function convertQuest(obj) { - // [id|name|showInLog|stages[progress|logText|rewardExperience|removeQuestProgress|finishesQuest|]|]; + // [id|name|showInLog|stages[progress|logText|rewardExperience|finishesQuest|]|]; return obj; } diff --git a/AndorsTrailEdit/partials/edit_dialogue.html b/AndorsTrailEdit/partials/edit_dialogue.html index 45a9c49b3..8c0ddb895 100644 --- a/AndorsTrailEdit/partials/edit_dialogue.html +++ b/AndorsTrailEdit/partials/edit_dialogue.html @@ -31,6 +31,7 @@ +
+
+ + +
+
+ + +
+
diff --git a/AndorsTrailEdit/partials/edit_quest.html b/AndorsTrailEdit/partials/edit_quest.html index 85c5ef813..62d736965 100644 --- a/AndorsTrailEdit/partials/edit_quest.html +++ b/AndorsTrailEdit/partials/edit_quest.html @@ -22,7 +22,6 @@ Progress Logtext Experience - Remove quest progress Finishes quest @@ -31,7 +30,6 @@ - From 804d0feaa0e7096beb0c46d937a07d8bf31eadab Mon Sep 17 00:00:00 2001 From: LucasDelvallet Date: Fri, 6 Mar 2015 17:54:39 +0100 Subject: [PATCH 07/11] Method optimisation --- .../gpl/rpg/AndorsTrail/activity/ConversationActivity.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java index 53b74dbca..b8a336709 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/ConversationActivity.java @@ -214,9 +214,8 @@ public final class ConversationActivity private void greyAllConversationStatement(){ int numberOfMessage = this.conversationHistory.size(); - ListIterator conversations = this.conversationHistory.listIterator(numberOfMessage-this.numberOfNewMessage); - while(conversations.hasNext()){ - ConversationStatement conversation = conversations.next(); + while(numberOfNewMessage != 0){ + ConversationStatement conversation = conversationHistory.get(numberOfMessage - numberOfNewMessage); if(conversation.hasActor()){ conversation.textColor = oldPhraseColor; if(conversation.isPlayerActor){ @@ -227,8 +226,8 @@ public final class ConversationActivity }else{ conversation.textColor = oldRewardColor; } + numberOfNewMessage--; } - numberOfNewMessage = 0; } private void nextButtonClicked() { From 6124e074ec88d0bfb4b6d5ab0f2fd0ea2b302efc Mon Sep 17 00:00:00 2001 From: FlorianDoublet Date: Fri, 6 Mar 2015 18:26:13 +0100 Subject: [PATCH 08/11] repeatableQuest improvement repeatableQuest improvement add our name into authors file add our name into authors file --- AndorsTrail/res/values/authors.xml | 2 ++ .../rpg/AndorsTrail/controller/ConversationController.java | 6 ++++-- .../src/com/gpl/rpg/AndorsTrail/model/actor/Player.java | 6 ++++-- .../com/gpl/rpg/AndorsTrail/model/script/Requirement.java | 1 - 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/AndorsTrail/res/values/authors.xml b/AndorsTrail/res/values/authors.xml index 72d9e17eb..3078720ad 100644 --- a/AndorsTrail/res/values/authors.xml +++ b/AndorsTrail/res/values/authors.xml @@ -16,6 +16,8 @@ Additional programming by Ethan Wessel<br /> Additional programming by Scott Lund<br /> Additional programming by <a href="https://github.com/Zukero">Kevin Pochat</a><br /> + Additional programming by Lucas Delvallet<br /> + Additional programming by Florian Doublet<br /> Additional graphics by Karvis<br /> Russian translation by Dreamer..., e.solodookhin, shell.andor, konstmih, istasman, Aleksey Kabanov, Alexander Zubok, Paul Sulemenkov and dromoz<br /> Italian translation by k6blue, liogiu, Joker and Andrea Luciano Damico<br /> diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java index 17218b434..f6137d07b 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java @@ -1,6 +1,8 @@ package com.gpl.rpg.AndorsTrail.controller; import android.content.res.Resources; +import android.util.Log; + import com.gpl.rpg.AndorsTrail.AndorsTrailApplication; import com.gpl.rpg.AndorsTrail.context.ControllerContext; import com.gpl.rpg.AndorsTrail.context.WorldContext; @@ -171,8 +173,8 @@ public final class ConversationController { } private void addRemoveQuestProgressReward(Player player, String questID, int questProgress) { - Quest currentQuest = world.quests.getQuest(questID); - player.removeQuestProgress(currentQuest,questProgress); + QuestProgress progress = new QuestProgress(questID, questProgress); + boolean removed = player.removeQuestProgress(progress); } private void addDropListReward(Player player, String droplistID, ScriptEffectResult result) { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java index d39dc0405..12a66bea6 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java @@ -159,8 +159,10 @@ public final class Player extends Actor { return true; //Progress was added. } - public void removeQuestProgress(Quest quest, int removeProgress){ - questProgress.get(quest.questID).remove(progress); + public boolean removeQuestProgress(QuestProgress progress){ + if (!hasExactQuestProgress(progress.questID, progress.progress)) return false; + questProgress.get(progress.questID).remove(progress.progress); + return true; //Progress was removed. } public void recalculateLevelExperience() { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/Requirement.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/Requirement.java index f86d28679..e7d1399bd 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/Requirement.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/script/Requirement.java @@ -14,7 +14,6 @@ public final class Requirement { ,spentGold ,consumedBonemeals ,hasActorCondition - ,removeQuestProgress } public final RequirementType requireType; From ba58195f49120ffc7bbd4bacd466981bd575eb14 Mon Sep 17 00:00:00 2001 From: Zukero Date: Wed, 18 Mar 2015 23:14:56 +0100 Subject: [PATCH 09/11] Code cleanup: - Removed unused imports. - Removed useless variable --- .../AndorsTrail/activity/DebugInterface.java | 1 - .../controller/ConversationController.java | 14 +++++++------ .../rpg/AndorsTrail/model/actor/Player.java | 20 ++++++++----------- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java index 036e6e73c..9fb451a32 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/activity/DebugInterface.java @@ -13,7 +13,6 @@ import com.gpl.rpg.AndorsTrail.context.ControllerContext; import com.gpl.rpg.AndorsTrail.context.WorldContext; import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap; -@SuppressWarnings("unused") public final class DebugInterface { private final ControllerContext controllerContext; private final MainActivity mainActivity; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java index f6137d07b..b7acc4de6 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java @@ -1,13 +1,18 @@ package com.gpl.rpg.AndorsTrail.controller; +import java.util.ArrayList; + import android.content.res.Resources; -import android.util.Log; import com.gpl.rpg.AndorsTrail.AndorsTrailApplication; import com.gpl.rpg.AndorsTrail.context.ControllerContext; import com.gpl.rpg.AndorsTrail.context.WorldContext; import com.gpl.rpg.AndorsTrail.model.GameStatistics; -import com.gpl.rpg.AndorsTrail.model.ability.*; +import com.gpl.rpg.AndorsTrail.model.ability.ActorCondition; +import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionEffect; +import com.gpl.rpg.AndorsTrail.model.ability.ActorConditionType; +import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection; +import com.gpl.rpg.AndorsTrail.model.ability.SkillInfo; import com.gpl.rpg.AndorsTrail.model.actor.Actor; import com.gpl.rpg.AndorsTrail.model.actor.Monster; import com.gpl.rpg.AndorsTrail.model.actor.Player; @@ -20,7 +25,6 @@ import com.gpl.rpg.AndorsTrail.model.map.LayeredTileMap; import com.gpl.rpg.AndorsTrail.model.map.MapObject; import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea; import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap; -import com.gpl.rpg.AndorsTrail.model.quest.Quest; import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry; import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress; import com.gpl.rpg.AndorsTrail.model.script.Requirement; @@ -28,8 +32,6 @@ import com.gpl.rpg.AndorsTrail.model.script.ScriptEffect; import com.gpl.rpg.AndorsTrail.util.ConstRange; import com.gpl.rpg.AndorsTrail.util.L; -import java.util.ArrayList; - public final class ConversationController { private final ControllerContext controllers; @@ -174,7 +176,7 @@ public final class ConversationController { private void addRemoveQuestProgressReward(Player player, String questID, int questProgress) { QuestProgress progress = new QuestProgress(questID, questProgress); - boolean removed = player.removeQuestProgress(progress); + player.removeQuestProgress(progress); } private void addDropListReward(Player player, String droplistID, ScriptEffectResult result) { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java index 12a66bea6..b2cd16402 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/model/actor/Player.java @@ -1,7 +1,15 @@ package com.gpl.rpg.AndorsTrail.model.actor; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map.Entry; + import android.util.FloatMath; import android.util.SparseIntArray; + import com.gpl.rpg.AndorsTrail.AndorsTrailApplication; import com.gpl.rpg.AndorsTrail.context.ControllerContext; import com.gpl.rpg.AndorsTrail.context.WorldContext; @@ -11,8 +19,6 @@ import com.gpl.rpg.AndorsTrail.model.ability.SkillCollection; import com.gpl.rpg.AndorsTrail.model.item.DropListCollection; import com.gpl.rpg.AndorsTrail.model.item.Inventory; import com.gpl.rpg.AndorsTrail.model.item.Loot; -import com.gpl.rpg.AndorsTrail.model.quest.Quest; -import com.gpl.rpg.AndorsTrail.model.quest.QuestLogEntry; import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress; import com.gpl.rpg.AndorsTrail.resource.tiles.TileManager; import com.gpl.rpg.AndorsTrail.savegames.LegacySavegameFormatReaderForPlayer; @@ -20,16 +26,6 @@ import com.gpl.rpg.AndorsTrail.util.Coord; import com.gpl.rpg.AndorsTrail.util.Range; import com.gpl.rpg.AndorsTrail.util.Size; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map.Entry; - public final class Player extends Actor { public static final int DEFAULT_PLAYER_ATTACKCOST = 4; From c5cddf96ba653e47c37409c3d9f7de07a5a39b62 Mon Sep 17 00:00:00 2001 From: Zukero Date: Fri, 10 Apr 2015 11:40:17 +0200 Subject: [PATCH 10/11] Animated movements ! Enhancements in debug map graphics, and more monster to better test animations. Player slides from tile to tile in MIN_INPUT_DEPLAY / 2 ms. Mobs slide at a speed proportional to their Move cost / Max AP ratio. Animation refresh rate is 25ms. --- AndorsTrail/res/raw/monsterlist_debug.json | 2 +- AndorsTrail/res/xml/debugmap.tmx | 10 +-- .../rpg/AndorsTrail/controller/Constants.java | 2 +- .../controller/MonsterMovementController.java | 18 ++-- .../controller/MovementController.java | 23 +++-- .../controller/VisualEffectController.java | 65 ++++++++++++++ .../listeners/VisualEffectFrameListener.java | 3 + .../listeners/VisualEffectFrameListeners.java | 19 ++++ .../rpg/AndorsTrail/model/actor/Actor.java | 4 + .../rpg/AndorsTrail/model/actor/Player.java | 2 - .../gpl/rpg/AndorsTrail/util/CoordRect.java | 20 +++++ .../gpl/rpg/AndorsTrail/view/MainView.java | 89 +++++++++++++++++-- 12 files changed, 231 insertions(+), 26 deletions(-) diff --git a/AndorsTrail/res/raw/monsterlist_debug.json b/AndorsTrail/res/raw/monsterlist_debug.json index f1fa767a2..eb168b5aa 100644 --- a/AndorsTrail/res/raw/monsterlist_debug.json +++ b/AndorsTrail/res/raw/monsterlist_debug.json @@ -62,7 +62,7 @@ "monsterClass": "insect", "maxHP": 10, "maxAP": 10, - "moveCost": 10, + "moveCost": 5, "attackCost": 10, "attackChance": 50, "droplistID": "debuglist1", diff --git a/AndorsTrail/res/xml/debugmap.tmx b/AndorsTrail/res/xml/debugmap.tmx index 4d9b20e2c..1c7683509 100644 --- a/AndorsTrail/res/xml/debugmap.tmx +++ b/AndorsTrail/res/xml/debugmap.tmx @@ -122,12 +122,12 @@ - eJw7ysbAcHSQ4ydUNOsEEqalultkmgcAw35PpQ== + eJw7ysbAcHQQ4wYOBoYnVDTvBBKmpbpbZJoHAISsT2I= - eJxjYMAOktlxSNAYSFDRXlsm6plFLwAA6HwAyQ== + eJyby88AB7FI7JvMDBSDbDLMyOQnrIZYYMtEPbNIBfPI9AcAQ5QDxw== @@ -140,7 +140,7 @@ eJxjYBi+wFVgoF1AOgAAPUQAVg== - + @@ -181,10 +181,10 @@ - + - + diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/Constants.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/Constants.java index b5782ae34..57618f122 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/Constants.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/Constants.java @@ -32,7 +32,7 @@ public final class Constants { public static final int TICKS_PER_FULLROUND = FULLROUND_DURATION / TICK_DELAY; public static final int SPLATTER_DURATION_MS = 20000; - public static final ConstRange monsterWaitTurns = new ConstRange(30,4); + public static final ConstRange monsterWaitTurns = new ConstRange(5,1); public static final long MAP_UNVISITED_RESPAWN_DURATION_MS = 3 * 60 * 1000; // 3 min in milliseconds public static final String PREFERENCE_MODEL_LASTRUNVERSION = "lastversion"; diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java index 2a19631bc..b8b8f68ca 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MonsterMovementController.java @@ -74,7 +74,7 @@ public final class MonsterMovementController implements EvaluateWalkable { private void moveMonster(final Monster m, final MonsterSpawnArea area) { PredefinedMap map = world.model.currentMap; LayeredTileMap tileMap = world.model.currentTileMap; - m.nextActionTime += getMillisecondsPerMove(m); + m.nextActionTime = System.currentTimeMillis() + getMillisecondsPerMove(m); if (m.movementDestination == null) { // Monster has waited and should start to move again. m.movementDestination = new Coord(m.position); @@ -128,7 +128,7 @@ public final class MonsterMovementController implements EvaluateWalkable { private static void cancelCurrentMonsterMovement(final Monster m) { m.movementDestination = null; - m.nextActionTime += getMillisecondsPerMove(m) * Constants.rollValue(Constants.monsterWaitTurns); + m.nextActionTime = System.currentTimeMillis() + (getMillisecondsPerMove(m) * Constants.rollValue(Constants.monsterWaitTurns)); } private static int getMillisecondsPerMove(Monster m) { @@ -151,9 +151,17 @@ public final class MonsterMovementController implements EvaluateWalkable { return monsterCanMoveTo(world.model.currentMap, world.model.currentTileMap, r); } - public void moveMonsterToNextPosition(Monster m, PredefinedMap map) { - CoordRect previousPosition = new CoordRect(new Coord(m.position), m.rectPosition.size); + public void moveMonsterToNextPosition(final Monster m, final PredefinedMap map) { + final CoordRect previousPosition = new CoordRect(new Coord(m.position), m.rectPosition.size); + m.lastPosition.set(previousPosition.topLeft); m.position.set(m.nextPosition.topLeft); - monsterMovementListeners.onMonsterMoved(map, m, previousPosition); + controllers.effectController.startActorMoveEffect(m, previousPosition.topLeft, m.position, getMillisecondsPerMove(m) / 4, new VisualEffectController.VisualEffectCompletedCallback() { + + @Override + public void onVisualEffectCompleted(int callbackValue) { + + monsterMovementListeners.onMonsterMoved(map, m, previousPosition); + } + }, 0); } } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MovementController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MovementController.java index 66aa575b7..878d40c20 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MovementController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/MovementController.java @@ -228,15 +228,24 @@ public final class MovementController implements TimedMessageTask.Callback { player.lastPosition.set(player.position); player.position.set(newPosition); controllers.combatController.setCombatSelection(null, null); - playerMovementListeners.onPlayerMoved(newPosition, player.lastPosition); + + controllers.effectController.startActorMoveEffect(player, player.lastPosition, newPosition, (int) (Constants.MINIMUM_INPUT_INTERVAL / 2), new VisualEffectController.VisualEffectCompletedCallback() { + + @Override + public void onVisualEffectCompleted(int callbackValue) { + playerMovementListeners.onPlayerMoved(newPosition, player.lastPosition); - controllers.mapController.handleMapEventsAfterMovement(currentMap, newPosition, player.lastPosition); + controllers.mapController.handleMapEventsAfterMovement(currentMap, newPosition, player.lastPosition); - if (!world.model.uiSelections.isInCombat) { - //currentMap can be outdated due to mapchange events processed above. - Loot loot = world.model.currentMap.getBagAt(newPosition); - if (loot != null) controllers.itemController.playerSteppedOnLootBag(loot); - } + if (!world.model.uiSelections.isInCombat) { + //currentMap can be outdated due to mapchange events processed above. + Loot loot = world.model.currentMap.getBagAt(newPosition); + if (loot != null) controllers.itemController.playerSteppedOnLootBag(loot); + } + } + }, 0); + + } public void respawnPlayer(Resources res) { diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java index 63812e7ab..bd422491f 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/VisualEffectController.java @@ -4,9 +4,11 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Align; import android.os.Handler; + import com.gpl.rpg.AndorsTrail.context.ControllerContext; import com.gpl.rpg.AndorsTrail.context.WorldContext; import com.gpl.rpg.AndorsTrail.controller.listeners.VisualEffectFrameListeners; +import com.gpl.rpg.AndorsTrail.model.actor.Actor; import com.gpl.rpg.AndorsTrail.model.actor.Monster; import com.gpl.rpg.AndorsTrail.model.actor.MonsterType; import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap; @@ -54,7 +56,70 @@ public final class VisualEffectController { enqueuedEffectID = null; enqueuedEffectValue = 0; } + + public void startActorMoveEffect(Actor actor, Coord origin, Coord destination, int duration, VisualEffectCompletedCallback callback, int callbackValue) { + ++effectCount; + (new SpriteMoveAnimation(origin, destination, duration, actor, callback, callbackValue)) + .start(); + } + public final class SpriteMoveAnimation extends Handler implements Runnable { + + private static final int millisecondsPerFrame=25; + + private final VisualEffectCompletedCallback callback; + private final int callbackValue; + + public final int duration; + public final Actor actor; + public final Coord origin; + public final Coord destination; + + public int timeElapsed; + + @Override + public void run() { + update(); + if (System.currentTimeMillis() - actor.vfxStartTime >= duration) { + onCompleted(); + } else { + postDelayed(this, millisecondsPerFrame); + } + } + + public SpriteMoveAnimation(Coord origin, Coord destination, int duration, Actor actor, VisualEffectCompletedCallback callback, int callbackValue) { + this.callback = callback; + this.callbackValue = callbackValue; + this.duration = duration; + this.actor = actor; + this.origin = origin; + this.destination = destination; + this.timeElapsed = 0; + + } + + private void update() { + + visualEffectFrameListeners.onNewSpriteMoveFrame(this); + } + + private void onCompleted() { + --effectCount; + actor.hasVFXRunning = false; + if (callback != null) callback.onVisualEffectCompleted(callbackValue); + visualEffectFrameListeners.onSpriteMoveCompleted(this); + } + + + public void start() { + actor.hasVFXRunning = true; + actor.vfxDuration = duration; + actor.vfxStartTime = System.currentTimeMillis(); + postDelayed(this, 0); + } + + } + public final class VisualEffectAnimation extends Handler implements Runnable { @Override diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListener.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListener.java index 4fb6a7d96..c794c8624 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListener.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListener.java @@ -1,8 +1,11 @@ package com.gpl.rpg.AndorsTrail.controller.listeners; +import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.SpriteMoveAnimation; import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAnimation; public interface VisualEffectFrameListener { void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset); void onAnimationCompleted(VisualEffectAnimation animation); + void onNewSpriteMoveFrame(SpriteMoveAnimation animation); + void onSpriteMoveCompleted(SpriteMoveAnimation animation); } diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListeners.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListeners.java index 0801938c7..cec0fcdba 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListeners.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/listeners/VisualEffectFrameListeners.java @@ -1,5 +1,6 @@ package com.gpl.rpg.AndorsTrail.controller.listeners; +import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.SpriteMoveAnimation; import com.gpl.rpg.AndorsTrail.controller.VisualEffectController.VisualEffectAnimation; import com.gpl.rpg.AndorsTrail.util.ListOfListeners; @@ -12,6 +13,14 @@ public final class VisualEffectFrameListeners extends ListOfListeners onAnimationCompleted = new Function1() { @Override public void call(VisualEffectFrameListener listener, VisualEffectAnimation animation) { listener.onAnimationCompleted(animation); } }; + + private final Function1 onNewSpriteMoveFrame = new Function1() { + @Override public void call(VisualEffectFrameListener listener, SpriteMoveAnimation animation) { listener.onNewSpriteMoveFrame(animation); } + }; + + private final Function1 onSpriteMoveCompleted = new Function1() { + @Override public void call(VisualEffectFrameListener listener, SpriteMoveAnimation animation) { listener.onSpriteMoveCompleted(animation); } + }; @Override public void onNewAnimationFrame(VisualEffectAnimation animation, int tileID, int textYOffset) { @@ -22,4 +31,14 @@ public final class VisualEffectFrameListeners extends ListOfListeners model.player.vfxDuration) vfxElapsedTime = model.player.vfxDuration; + int x = ((model.player.position.x - mapViewArea.topLeft.x) * tileSize * vfxElapsedTime + ((model.player.lastPosition.x - mapViewArea.topLeft.x) * tileSize * (model.player.vfxDuration - vfxElapsedTime))) / model.player.vfxDuration; + int y = ((model.player.position.y - mapViewArea.topLeft.y) * tileSize * vfxElapsedTime + ((model.player.lastPosition.y - mapViewArea.topLeft.y) * tileSize * (model.player.vfxDuration - vfxElapsedTime))) / model.player.vfxDuration; + tiles.drawTile(canvas, model.player.iconID, x, y, mPaint); + } for (MonsterSpawnArea a : currentMap.spawnAreas) { for (Monster m : a.monsters) { - drawFromMapPosition(canvas, area, m.rectPosition, m.iconID); + if (!m.hasVFXRunning) { + drawFromMapPosition(canvas, area, m.rectPosition, m.iconID); + } else if (area.intersects(m.rectPosition) || area.contains(m.lastPosition)) { + int vfxElapsedTime = (int) (System.currentTimeMillis() - m.vfxStartTime); + if (vfxElapsedTime > m.vfxDuration) vfxElapsedTime = m.vfxDuration; + int x = ((m.position.x - mapViewArea.topLeft.x) * tileSize * vfxElapsedTime + ((m.lastPosition.x - mapViewArea.topLeft.x) * tileSize * (m.vfxDuration - vfxElapsedTime))) / m.vfxDuration; + int y = ((m.position.y - mapViewArea.topLeft.y) * tileSize * vfxElapsedTime + ((m.lastPosition.y - mapViewArea.topLeft.y) * tileSize * (m.vfxDuration - vfxElapsedTime))) / m.vfxDuration; + tiles.drawTile(canvas, m.iconID, x, y, mPaint); + } } } - + } + + private void doDrawRect_Above(Canvas canvas, CoordRect area) { tryDrawMapLayer(canvas, area, currentTileMap.currentLayout.layerAbove); if (model.uiSelections.selectedPosition != null) { @@ -342,6 +405,7 @@ public final class MainView extends SurfaceView ,Math.min(screenSizeTileCount.height, currentMap.size.height) ); mapViewArea = new CoordRect(mapTopLeft, visibleNumberOfTiles); + updateClip(); screenOffset.set( (surfaceSize.width - scaledTileSize * visibleNumberOfTiles.width) / 2 @@ -370,8 +434,13 @@ public final class MainView extends SurfaceView mapTopLeft.y = Math.max(0, playerPosition.y - mapViewArea.size.height/2); mapTopLeft.y = Math.min(mapTopLeft.y, currentMap.size.height - mapViewArea.size.height); } + updateClip(); } } + + private void updateClip() { + worldCoordsToScreenCords(mapViewArea, redrawClip); + } @Override public void onPlayerMoved(Coord newPosition, Coord previousPosition) { @@ -492,6 +561,16 @@ public final class MainView extends SurfaceView public void onAnimationCompleted(VisualEffectAnimation animation) { redrawArea(animation.area, RedrawAreaDebugReason.EffectCompleted); } + + @Override + public void onNewSpriteMoveFrame(SpriteMoveAnimation animation) { + redrawMoveArea_(CoordRect.getBoundingRect(animation.origin, animation.destination), animation); + } + + @Override + public void onSpriteMoveCompleted(SpriteMoveAnimation animation) { + redrawArea(CoordRect.getBoundingRect(animation.origin, animation.destination), RedrawAreaDebugReason.EffectCompleted); + } @Override public void onNewTick() { From 348c9d215dd6feeead7bc64958928f97bfaff42d Mon Sep 17 00:00:00 2001 From: Zukero Date: Mon, 13 Apr 2015 17:23:37 +0200 Subject: [PATCH 11/11] Fixed bugs introduced by new BWM maps. --- AndorsTrail/res/values/loadresources.xml | 3 +++ AndorsTrail/res/xml/blackwater_mountain5.tmx | 4 ++-- AndorsTrail/res/xml/blackwater_mountain9.tmx | 9 ++------- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/AndorsTrail/res/values/loadresources.xml b/AndorsTrail/res/values/loadresources.xml index 66244fbe8..660f592ad 100644 --- a/AndorsTrail/res/values/loadresources.xml +++ b/AndorsTrail/res/values/loadresources.xml @@ -355,8 +355,11 @@ @xml/blackwater_mountain3 @xml/blackwater_mountain4 @xml/blackwater_mountain5 + @xml/blackwater_mountain5a + @xml/blackwater_mountain5c @xml/blackwater_mountain6 @xml/blackwater_mountain7 + @xml/blackwater_mountain7a @xml/blackwater_mountain8 @xml/blackwater_mountain9 @xml/blackwater_mountain10 diff --git a/AndorsTrail/res/xml/blackwater_mountain5.tmx b/AndorsTrail/res/xml/blackwater_mountain5.tmx index 6750a72e3..cf19834f6 100644 --- a/AndorsTrail/res/xml/blackwater_mountain5.tmx +++ b/AndorsTrail/res/xml/blackwater_mountain5.tmx @@ -174,11 +174,11 @@ - + - + diff --git a/AndorsTrail/res/xml/blackwater_mountain9.tmx b/AndorsTrail/res/xml/blackwater_mountain9.tmx index b9dc72d34..287b86896 100644 --- a/AndorsTrail/res/xml/blackwater_mountain9.tmx +++ b/AndorsTrail/res/xml/blackwater_mountain9.tmx @@ -237,15 +237,10 @@ - + - - - - - - +