mirror of
https://github.com/Melledy/Nebula.git
synced 2026-09-20 01:29:54 +02:00
Implement new weekly quests
This commit is contained in:
@@ -97,9 +97,11 @@ public class GameData {
|
||||
|
||||
@Getter private static DataTable<MainScreenCGDef> MainScreenCGDataTable = new DataTable<>();
|
||||
|
||||
// ===== Daily Quests =====
|
||||
// ===== Daily/Weekly Quests =====
|
||||
@Getter private static DataTable<DailyQuestDef> DailyQuestDataTable = new DataTable<>();
|
||||
@Getter private static DataTable<DailyQuestActiveDef> DailyQuestActiveDataTable = new DataTable<>();
|
||||
@Getter private static DataTable<WeeklyQuestDef> WeeklyQuestDataTable = new DataTable<>();
|
||||
@Getter private static DataTable<WeeklyQuestActiveDef> WeeklyQuestActiveDataTable = new DataTable<>();
|
||||
|
||||
// ===== Achievements =====
|
||||
@Getter private static DataTable<AchievementDef> AchievementDataTable = new DataTable<>();
|
||||
|
||||
@@ -23,6 +23,11 @@ public class BattlePassQuestDef extends BaseDef implements QuestData {
|
||||
return Id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getQuestKey() {
|
||||
return Id;
|
||||
}
|
||||
|
||||
public boolean isDaily() {
|
||||
return this.Type == 1;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package emu.nebula.data.resources;
|
||||
|
||||
import emu.nebula.data.BaseDef;
|
||||
import emu.nebula.data.ResourceType;
|
||||
import emu.nebula.game.inventory.ItemParamMap;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@ResourceType(name = "WeeklyQuestActive.json")
|
||||
public class WeeklyQuestActiveDef extends BaseDef {
|
||||
private int Id;
|
||||
private int Active;
|
||||
|
||||
private int ItemTid1;
|
||||
private int Number1;
|
||||
private int ItemTid2;
|
||||
private int Number2;
|
||||
|
||||
private transient ItemParamMap rewards;
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return Id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
this.rewards = new ItemParamMap();
|
||||
|
||||
if (this.ItemTid1 > 0 && this.Number1 > 0) {
|
||||
this.rewards.add(this.ItemTid1, this.Number1);
|
||||
}
|
||||
if (this.ItemTid2 > 0 && this.Number2 > 0) {
|
||||
this.rewards.add(this.ItemTid2, this.Number2);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package emu.nebula.data.resources;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import emu.nebula.data.BaseDef;
|
||||
import emu.nebula.data.ResourceType;
|
||||
import emu.nebula.game.quest.QuestData;
|
||||
import emu.nebula.game.quest.QuestType;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@ResourceType(name = "WeeklyQuest.json")
|
||||
public class WeeklyQuestDef extends BaseDef implements QuestData {
|
||||
private int Id;
|
||||
private boolean Apear;
|
||||
private int Active;
|
||||
private int ItemTid;
|
||||
private int ItemQty;
|
||||
|
||||
private int CompleteCond;
|
||||
private int CompleteCondClient;
|
||||
private String CompleteCondParams;
|
||||
|
||||
private transient int[] condParams;
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return Id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getQuestType() {
|
||||
return QuestType.Weekly;
|
||||
}
|
||||
|
||||
public int[] getCompleteCondParams() {
|
||||
return this.condParams;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
this.condParams = Arrays.stream(this.CompleteCondParams.split("[\\[,\\]]"))
|
||||
.filter(s -> !s.isEmpty())
|
||||
.mapToInt(Integer::parseInt)
|
||||
.toArray();
|
||||
|
||||
this.CompleteCondParams = null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user