Skip to content
Snippets Groups Projects
Commit a227b44c authored by Melledy's avatar Melledy
Browse files

Fixed quests not finishing their questline

parent f4770cf2
Branches
Tags
No related merge requests found
...@@ -15,6 +15,9 @@ public class QuestData extends GameResource { ...@@ -15,6 +15,9 @@ public class QuestData extends GameResource {
private int Order; private int Order;
private long DescTextMapHash; private long DescTextMapHash;
private boolean FinishParent;
private boolean IsRewind;
private LogicType AcceptCondComb; private LogicType AcceptCondComb;
private QuestCondition[] acceptConditons; private QuestCondition[] acceptConditons;
private LogicType FinishCondComb; private LogicType FinishCondComb;
...@@ -45,6 +48,14 @@ public class QuestData extends GameResource { ...@@ -45,6 +48,14 @@ public class QuestData extends GameResource {
return DescTextMapHash; return DescTextMapHash;
} }
public boolean finishParent() {
return FinishParent;
}
public boolean isRewind() {
return IsRewind;
}
public LogicType getAcceptCondComb() { public LogicType getAcceptCondComb() {
return AcceptCondComb; return AcceptCondComb;
} }
......
...@@ -91,6 +91,7 @@ public class GameMainQuest { ...@@ -91,6 +91,7 @@ public class GameMainQuest {
this.isFinished = true; this.isFinished = true;
this.state = ParentQuestState.PARENT_QUEST_STATE_FINISHED; this.state = ParentQuestState.PARENT_QUEST_STATE_FINISHED;
this.getOwner().getSession().send(new PacketFinishedParentQuestUpdateNotify(this)); this.getOwner().getSession().send(new PacketFinishedParentQuestUpdateNotify(this));
this.save();
} }
public void save() { public void save() {
......
...@@ -143,21 +143,28 @@ public class GameQuest { ...@@ -143,21 +143,28 @@ public class GameQuest {
this.getOwner().getSession().send(new PacketQuestProgressUpdateNotify(this)); this.getOwner().getSession().send(new PacketQuestProgressUpdateNotify(this));
this.getOwner().getSession().send(new PacketQuestListUpdateNotify(this)); this.getOwner().getSession().send(new PacketQuestListUpdateNotify(this));
this.save();
this.tryAcceptQuestLine(); if (this.getData().finishParent()) {
// This quest finishes the questline - the main quest will also save the quest to db so we dont have to call save() here
this.getMainQuest().finish();
} else {
// Try and accept other quests if possible
this.tryAcceptQuestLine();
this.save();
}
} }
public boolean tryAcceptQuestLine() { public boolean tryAcceptQuestLine() {
try { try {
MainQuestData questConfig = GameData.getMainQuestDataMap().get(this.getMainQuestId()); MainQuestData questConfig = GameData.getMainQuestDataMap().get(this.getMainQuestId());
for (SubQuestData subQuest : questConfig.getSubQuests()) { for (SubQuestData subQuest : questConfig.getSubQuests()) {
GameQuest quest = getMainQuest().getChildQuestById(subQuest.getSubId()); GameQuest quest = getMainQuest().getChildQuestById(subQuest.getSubId());
if (quest == null) { if (quest == null) {
QuestData questData = GameData.getQuestDataMap().get(subQuest.getSubId()); QuestData questData = GameData.getQuestDataMap().get(subQuest.getSubId());
if (questData == null) { if (questData == null || questData.getAcceptCond() == null) {
continue; continue;
} }
......
...@@ -128,7 +128,7 @@ public class QuestManager { ...@@ -128,7 +128,7 @@ public class QuestManager {
QuestData data = quest.getData(); QuestData data = quest.getData();
for (int i = 0; i < data.getFinishCond().length; i++) { for (int i = 0; i < data.getFinishCond().length; i++) {
if (quest.getFinishProgressList()[i] == 1) { if (quest.getFinishProgressList() == null || quest.getFinishProgressList()[i] == 1) {
continue; continue;
} }
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment