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/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 79f1eae58..b7acc4de6 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/controller/ConversationController.java @@ -1,11 +1,18 @@ package com.gpl.rpg.AndorsTrail.controller; +import java.util.ArrayList; + import android.content.res.Resources; + 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; @@ -25,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; @@ -108,6 +113,9 @@ public final class ConversationController { case deactivateMapChangeArea: deactivateMapChangeArea(effect.mapName, effect.effectID); break; + case removeQuestProgress: + addRemoveQuestProgressReward(player, effect.effectID, effect.value); + break; } } @@ -156,14 +164,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) { + QuestProgress progress = new QuestProgress(questID, questProgress); + player.removeQuestProgress(progress); + } + 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..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; @@ -18,13 +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.HashMap; -import java.util.HashSet; -import java.util.Map.Entry; - public final class Player extends Actor { public static final int DEFAULT_PLAYER_ATTACKCOST = 4; @@ -154,6 +155,12 @@ public final class Player extends Actor { return true; //Progress was added. } + 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() { int experienceRequiredToReachThisLevel = getRequiredExperience(level); levelExperience.set(getRequiredExperienceForNextLevel(level), totalExperience - experienceRequiredToReachThisLevel); 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;