Implement commissions

This commit is contained in:
Melledy
2025-11-12 03:25:23 -08:00
parent d4a7aa0320
commit be4a006c66
19 changed files with 526 additions and 40 deletions
@@ -43,6 +43,7 @@ public class GameData {
@Getter private static DataTable<PlayerHeadDef> PlayerHeadDataTable = new DataTable<>();
@Getter private static DataTable<TitleDef> titleDataTable = new DataTable<>();
// Shops
@Getter private static DataTable<MallMonthlyCardDef> MallMonthlyCardDataTable = new DataTable<>();
@Getter private static DataTable<MallPackageDef> MallPackageDataTable = new DataTable<>();
@Getter private static DataTable<MallShopDef> MallShopDataTable = new DataTable<>();
@@ -51,6 +52,9 @@ public class GameData {
@Getter private static DataTable<ResidentShopDef> ResidentShopDataTable = new DataTable<>();
@Getter private static DataTable<ResidentGoodsDef> ResidentGoodsDataTable = new DataTable<>();
// Commissions
@Getter private static DataTable<AgentDef> AgentDataTable = new DataTable<>();
// Dictionary
@Getter private static DataTable<DictionaryTabDef> DictionaryTabDataTable = new DataTable<>();
@Getter private static DataTable<DictionaryEntryDef> DictionaryEntryDataTable = new DataTable<>();
@@ -0,0 +1,84 @@
package emu.nebula.data.resources;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.inventory.ItemRewardList;
import emu.nebula.game.inventory.ItemRewardParam;
import emu.nebula.util.JsonUtils;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import lombok.Getter;
@Getter
@ResourceType(name = "Agent.json")
public class AgentDef extends BaseDef {
private int Id;
private int Level;
private int MemberLimit;
private int[] Tags;
private int[] ExtraTags;
private int Time1;
private String RewardPreview1;
private String BonusPreview1;
private int Time2;
private String RewardPreview2;
private String BonusPreview2;
private int Time3;
private String RewardPreview3;
private String BonusPreview3;
private int Time4;
private String RewardPreview4;
private String BonusPreview4;
private transient Int2ObjectMap<AgentDurationDef> durations;
@Override
public int getId() {
return Id;
}
private void addDuration(AgentDurationDef duration) {
this.durations.put(duration.getTime(), duration);
}
@Override
public void onLoad() {
this.durations = new Int2ObjectOpenHashMap<>();
this.addDuration(new AgentDurationDef(this.Time1, this.RewardPreview1, this.BonusPreview1));
this.addDuration(new AgentDurationDef(this.Time2, this.RewardPreview2, this.BonusPreview2));
this.addDuration(new AgentDurationDef(this.Time3, this.RewardPreview3, this.BonusPreview3));
this.addDuration(new AgentDurationDef(this.Time4, this.RewardPreview4, this.BonusPreview4));
}
@Getter
public static class AgentDurationDef {
private int time;
private ItemRewardList rewards;
private ItemRewardList bonus;
public AgentDurationDef(int time, String rewardPreview, String bonusPreview) {
this.time = time;
this.rewards = new ItemRewardList();
this.bonus = new ItemRewardList();
var rewardArray = JsonUtils.decodeList(rewardPreview, int[].class);
if (rewardArray != null) {
for (int[] award : rewardArray) {
this.rewards.add(new ItemRewardParam(award[0], award[1], award[2]));
}
}
var bonusArray = JsonUtils.decodeList(bonusPreview, int[].class);
if (bonusArray != null) {
for (int[] award : bonusArray) {
this.bonus.add(new ItemRewardParam(award[0], award[1], award[2]));
}
}
}
}
}
@@ -6,7 +6,7 @@ import java.util.List;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceData;
import emu.nebula.game.instance.InstanceRewardParam;
import emu.nebula.game.inventory.ItemRewardParam;
import emu.nebula.util.JsonUtils;
import lombok.Getter;
@@ -21,8 +21,8 @@ public class CharGemInstanceDef extends BaseDef implements InstanceData {
private int EnergyConsume;
private String BaseAwardPreview;
private transient List<InstanceRewardParam> firstRewards;
private transient List<InstanceRewardParam> rewards;
private transient List<ItemRewardParam> firstRewards;
private transient List<ItemRewardParam> rewards;
@Override
public int getId() {
@@ -52,7 +52,7 @@ public class CharGemInstanceDef extends BaseDef implements InstanceData {
max = 1;
}
var reward = new InstanceRewardParam(itemId, min, max);
var reward = new ItemRewardParam(itemId, min, max);
if (isFirst) {
this.firstRewards.add(reward);
@@ -6,8 +6,7 @@ import emu.nebula.data.BaseDef;
import emu.nebula.data.GameData;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceData;
import emu.nebula.game.instance.InstanceRewardParam;
import emu.nebula.game.inventory.ItemRewardParam;
import lombok.Getter;
@Getter
@@ -37,18 +36,18 @@ public class DailyInstanceDef extends BaseDef implements InstanceData {
@Override
@Deprecated
public List<InstanceRewardParam> getFirstRewards() {
public List<ItemRewardParam> getFirstRewards() {
return null;
}
@Override
@Deprecated
public List<InstanceRewardParam> getRewards() {
public List<ItemRewardParam> getRewards() {
return null;
}
@Override
public List<InstanceRewardParam> getFirstRewards(int rewardType) {
public List<ItemRewardParam> getFirstRewards(int rewardType) {
var data = this.getRewardGroup(rewardType);
if (data != null) {
@@ -59,7 +58,7 @@ public class DailyInstanceDef extends BaseDef implements InstanceData {
}
@Override
public List<InstanceRewardParam> getRewards(int rewardType) {
public List<ItemRewardParam> getRewards(int rewardType) {
var data = this.getRewardGroup(rewardType);
if (data != null) {
@@ -5,7 +5,7 @@ import java.util.List;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceRewardParam;
import emu.nebula.game.inventory.ItemRewardParam;
import emu.nebula.util.JsonUtils;
import lombok.Getter;
@@ -16,8 +16,8 @@ public class DailyInstanceRewardGroupDef extends BaseDef {
private int DailyRewardType;
private String BaseAwardPreview;
private transient List<InstanceRewardParam> firstRewards;
private transient List<InstanceRewardParam> rewards;
private transient List<ItemRewardParam> firstRewards;
private transient List<ItemRewardParam> rewards;
@Override
public int getId() {
@@ -47,7 +47,7 @@ public class DailyInstanceRewardGroupDef extends BaseDef {
max = 1;
}
var reward = new InstanceRewardParam(itemId, min, max);
var reward = new ItemRewardParam(itemId, min, max);
if (isFirst) {
this.firstRewards.add(reward);
@@ -5,8 +5,8 @@ import java.util.List;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceRewardParam;
import emu.nebula.game.inventory.ItemParamMap;
import emu.nebula.game.inventory.ItemRewardParam;
import emu.nebula.util.JsonUtils;
import lombok.Getter;
@@ -18,7 +18,7 @@ public class InfinityTowerLevelDef extends BaseDef {
private int DifficultyId;
private String BaseAwardPreview;
private transient List<InstanceRewardParam> rewards;
private transient List<ItemRewardParam> rewards;
@Override
public int getId() {
@@ -61,7 +61,7 @@ public class InfinityTowerLevelDef extends BaseDef {
max = 1;
}
var reward = new InstanceRewardParam(itemId, min, max);
var reward = new ItemRewardParam(itemId, min, max);
if (isFirst) {
@@ -6,7 +6,7 @@ import java.util.List;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceData;
import emu.nebula.game.instance.InstanceRewardParam;
import emu.nebula.game.inventory.ItemRewardParam;
import emu.nebula.util.JsonUtils;
import lombok.Getter;
@@ -21,8 +21,8 @@ public class RegionBossLevelDef extends BaseDef implements InstanceData {
private int EnergyConsume;
private String BaseAwardPreview;
private transient List<InstanceRewardParam> firstRewards;
private transient List<InstanceRewardParam> rewards;
private transient List<ItemRewardParam> firstRewards;
private transient List<ItemRewardParam> rewards;
@Override
public int getId() {
@@ -52,7 +52,7 @@ public class RegionBossLevelDef extends BaseDef implements InstanceData {
max = 1;
}
var reward = new InstanceRewardParam(itemId, min, max);
var reward = new ItemRewardParam(itemId, min, max);
if (isFirst) {
this.firstRewards.add(reward);
@@ -6,7 +6,7 @@ import java.util.List;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceData;
import emu.nebula.game.instance.InstanceRewardParam;
import emu.nebula.game.inventory.ItemRewardParam;
import emu.nebula.util.JsonUtils;
import lombok.Getter;
@@ -20,8 +20,8 @@ public class SkillInstanceDef extends BaseDef implements InstanceData {
private int EnergyConsume;
private String BaseAwardPreview;
private transient List<InstanceRewardParam> firstRewards;
private transient List<InstanceRewardParam> rewards;
private transient List<ItemRewardParam> firstRewards;
private transient List<ItemRewardParam> rewards;
@Override
public int getId() {
@@ -51,7 +51,7 @@ public class SkillInstanceDef extends BaseDef implements InstanceData {
max = 1;
}
var reward = new InstanceRewardParam(itemId, min, max);
var reward = new ItemRewardParam(itemId, min, max);
if (isFirst) {
this.firstRewards.add(reward);
@@ -6,7 +6,7 @@ import java.util.List;
import emu.nebula.data.BaseDef;
import emu.nebula.data.ResourceType;
import emu.nebula.game.instance.InstanceData;
import emu.nebula.game.instance.InstanceRewardParam;
import emu.nebula.game.inventory.ItemRewardParam;
import emu.nebula.util.JsonUtils;
import lombok.Getter;
@@ -19,8 +19,8 @@ public class WeekBossLevelDef extends BaseDef implements InstanceData {
private int NeedWorldClass;
private String BaseAwardPreview;
private transient List<InstanceRewardParam> firstRewards;
private transient List<InstanceRewardParam> rewards;
private transient List<ItemRewardParam> firstRewards;
private transient List<ItemRewardParam> rewards;
@Override
public int getId() {
@@ -54,7 +54,7 @@ public class WeekBossLevelDef extends BaseDef implements InstanceData {
max = 1;
}
var reward = new InstanceRewardParam(itemId, min, max);
var reward = new ItemRewardParam(itemId, min, max);
if (isFirst) {
this.firstRewards.add(reward);