mirror of
https://github.com/OMGeeky/andors-trail.git
synced 2026-01-21 10:58:12 +01:00
Merge branch 'remotes/contrib/repeatableQuest'
This commit is contained in:
@@ -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 />
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -14,6 +14,7 @@ public final class ScriptEffect {
|
||||
, deactivateSpawnArea
|
||||
, activateMapChangeArea
|
||||
, deactivateMapChangeArea
|
||||
, removeQuestProgress
|
||||
}
|
||||
|
||||
public final ScriptEffectType type;
|
||||
|
||||
Reference in New Issue
Block a user