Implement bounty trials

This commit is contained in:
Melledy
2025-10-29 09:38:47 -07:00
parent e2ad0d5fe3
commit d024ab62a8
25 changed files with 986 additions and 4 deletions

View File

@@ -40,6 +40,12 @@ public class GameData {
@Getter private static DataTable<DictionaryTabDef> DictionaryTabDataTable = new DataTable<>();
@Getter private static DataTable<DictionaryEntryDef> DictionaryEntryDataTable = new DataTable<>();
@Getter private static DataTable<DailyInstanceDef> DailyInstanceDataTable = new DataTable<>();
@Getter private static DataTable<RegionBossLevelDef> RegionBossLevelDataTable = new DataTable<>();
@Getter private static DataTable<SkillInstanceDef> SkillInstanceDataTable = new DataTable<>();
@Getter private static DataTable<CharGemInstanceDef> CharGemInstanceDataTable = new DataTable<>();
@Getter private static DataTable<WeekBossLevelDef> WeekBossLevelDataTable = new DataTable<>();
@Getter private static DataTable<WorldClassDef> WorldClassDataTable = new DataTable<>();
@Getter private static DataTable<GuideGroupDef> GuideGroupDataTable = new DataTable<>();
@Getter private static DataTable<StoryDef> StoryDataTable = new DataTable<>();

View File

@@ -0,0 +1,52 @@
package emu.nebula.data.resources;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceData;
import emu.nebula.game.inventory.ItemParamMap;
import emu.nebula.util.JsonUtils;
import lombok.Getter;
@Getter
@ResourceType(name = "CharGemInstance.json")
public class CharGemInstanceDef extends BaseDef implements InstanceData {
private int Id;
private int PreLevelId;
private int PreLevelStar;
private int NeedWorldClass;
private int EnergyConsume;
private String BaseAwardPreview;
private transient ItemParamMap firstRewards;
private transient ItemParamMap rewards;
@Override
public int getId() {
return Id;
}
@Override
public void onLoad() {
// Init reward maps
this.firstRewards = new ItemParamMap();
this.rewards = new ItemParamMap();
// Parse rewards
var awards = JsonUtils.decodeList(this.BaseAwardPreview, int[].class);
if (awards == null) {
return;
}
for (int[] award : awards) {
int itemId = award[0];
int count = award[1];
boolean isFirst = award[2] == 1;
if (isFirst) {
this.firstRewards.put(itemId, count);
} else {
this.rewards.put(itemId, count);
}
}
}
}

View File

@@ -0,0 +1,57 @@
package emu.nebula.data.resources;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceData;
import emu.nebula.game.inventory.ItemParamMap;
import emu.nebula.util.JsonUtils;
import lombok.Getter;
@Getter
@ResourceType(name = "DailyInstance.json")
public class DailyInstanceDef extends BaseDef implements InstanceData {
private int Id;
private int PreLevelId;
private int PreLevelStar;
private int OneStarEnergyConsume;
private int NeedWorldClass;
private String BaseAwardPreview;
private transient ItemParamMap firstRewards;
private transient ItemParamMap rewards;
@Override
public int getId() {
return Id;
}
@Override
public int getEnergyConsume() {
return OneStarEnergyConsume;
}
@Override
public void onLoad() {
// Init reward maps
this.firstRewards = new ItemParamMap();
this.rewards = new ItemParamMap();
// Parse rewards
var awards = JsonUtils.decodeList(this.BaseAwardPreview, int[].class);
if (awards == null) {
return;
}
for (int[] award : awards) {
int itemId = award[0];
int count = award[1];
boolean isFirst = award[2] == 1;
if (isFirst) {
this.firstRewards.put(itemId, count);
} else {
this.rewards.put(itemId, count);
}
}
}
}

View File

@@ -0,0 +1,52 @@
package emu.nebula.data.resources;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceData;
import emu.nebula.game.inventory.ItemParamMap;
import emu.nebula.util.JsonUtils;
import lombok.Getter;
@Getter
@ResourceType(name = "RegionBossLevel.json")
public class RegionBossLevelDef extends BaseDef implements InstanceData {
private int Id;
private int PreLevelId;
private int PreLevelStar;
private int NeedWorldClass;
private int EnergyConsume;
private String BaseAwardPreview;
private transient ItemParamMap firstRewards;
private transient ItemParamMap rewards;
@Override
public int getId() {
return Id;
}
@Override
public void onLoad() {
// Init reward maps
this.firstRewards = new ItemParamMap();
this.rewards = new ItemParamMap();
// Parse rewards
var awards = JsonUtils.decodeList(this.BaseAwardPreview, int[].class);
if (awards == null) {
return;
}
for (int[] award : awards) {
int itemId = award[0];
int count = award[1];
boolean isFirst = award[2] == 1;
if (isFirst) {
this.firstRewards.put(itemId, count);
} else {
this.rewards.put(itemId, count);
}
}
}
}

View File

@@ -0,0 +1,52 @@
package emu.nebula.data.resources;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceData;
import emu.nebula.game.inventory.ItemParamMap;
import emu.nebula.util.JsonUtils;
import lombok.Getter;
@Getter
@ResourceType(name = "SkillInstance.json")
public class SkillInstanceDef extends BaseDef implements InstanceData {
private int Id;
private int PreLevelId;
private int PreLevelStar;
private int NeedWorldClass;
private int EnergyConsume;
private String BaseAwardPreview;
private transient ItemParamMap firstRewards;
private transient ItemParamMap rewards;
@Override
public int getId() {
return Id;
}
@Override
public void onLoad() {
// Init reward maps
this.firstRewards = new ItemParamMap();
this.rewards = new ItemParamMap();
// Parse rewards
var awards = JsonUtils.decodeList(this.BaseAwardPreview, int[].class);
if (awards == null) {
return;
}
for (int[] award : awards) {
int itemId = award[0];
int count = award[1];
boolean isFirst = award[2] == 1;
if (isFirst) {
this.firstRewards.put(itemId, count);
} else {
this.rewards.put(itemId, count);
}
}
}
}

View File

@@ -0,0 +1,54 @@
package emu.nebula.data.resources;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceData;
import emu.nebula.game.inventory.ItemParamMap;
import emu.nebula.util.JsonUtils;
import lombok.Getter;
@Getter
@ResourceType(name = "WeekBossLevel.json")
public class WeekBossLevelDef extends BaseDef implements InstanceData {
private int Id;
private int PreLevelId;
private int NeedWorldClass;
private String BaseAwardPreview;
private transient ItemParamMap firstRewards;
private transient ItemParamMap rewards;
@Override
public int getId() {
return Id;
}
public int getEnergyConsume() {
return 0;
}
@Override
public void onLoad() {
// Init reward maps
this.firstRewards = new ItemParamMap();
this.rewards = new ItemParamMap();
// Parse rewards
var awards = JsonUtils.decodeList(this.BaseAwardPreview, int[].class);
if (awards == null) {
return;
}
for (int[] award : awards) {
int itemId = award[0];
int count = award[1];
boolean isFirst = award[2] == 1;
if (isFirst) {
this.firstRewards.put(itemId, count);
} else {
this.rewards.put(itemId, count);
}
}
}
}