Merge branch 'remotes/contrib/repeatableQuest'

This commit is contained in:
Zukero
2015-03-18 23:15:40 +01:00
5 changed files with 35 additions and 11 deletions

View File

@@ -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 />

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -14,6 +14,7 @@ public final class ScriptEffect {
, deactivateSpawnArea
, activateMapChangeArea
, deactivateMapChangeArea
, removeQuestProgress
}
public final ScriptEffectType type;