mirror of
https://github.com/Melledy/Nebula.git
synced 2026-09-19 17:19:58 +02:00
Handle randomized daily instance rewards
This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
package emu.nebula.data.resources;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
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.game.instance.InstanceRewardParam;
|
||||
import emu.nebula.util.JsonUtils;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@@ -17,8 +21,8 @@ public class CharGemInstanceDef extends BaseDef implements InstanceData {
|
||||
private int EnergyConsume;
|
||||
private String BaseAwardPreview;
|
||||
|
||||
private transient ItemParamMap firstRewards;
|
||||
private transient ItemParamMap rewards;
|
||||
private transient List<InstanceRewardParam> firstRewards;
|
||||
private transient List<InstanceRewardParam> rewards;
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
@@ -27,9 +31,9 @@ public class CharGemInstanceDef extends BaseDef implements InstanceData {
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
// Init reward maps
|
||||
this.firstRewards = new ItemParamMap();
|
||||
this.rewards = new ItemParamMap();
|
||||
// Init reward lists
|
||||
this.firstRewards = new ArrayList<>();
|
||||
this.rewards = new ArrayList<>();
|
||||
|
||||
// Parse rewards
|
||||
var awards = JsonUtils.decodeList(this.BaseAwardPreview, int[].class);
|
||||
@@ -39,13 +43,21 @@ public class CharGemInstanceDef extends BaseDef implements InstanceData {
|
||||
|
||||
for (int[] award : awards) {
|
||||
int itemId = award[0];
|
||||
int count = award[1];
|
||||
boolean isFirst = award[2] == 1;
|
||||
int min = award[1];
|
||||
int max = award.length >= 4 ? award[2] : min;
|
||||
boolean isFirst = award[award.length - 1] == 1;
|
||||
|
||||
if (min == -1) {
|
||||
min = 0;
|
||||
max = 1;
|
||||
}
|
||||
|
||||
var reward = new InstanceRewardParam(itemId, min, max);
|
||||
|
||||
if (isFirst) {
|
||||
this.firstRewards.put(itemId, count);
|
||||
this.firstRewards.add(reward);
|
||||
} else {
|
||||
this.rewards.put(itemId, count);
|
||||
this.rewards.add(reward);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package emu.nebula.data.resources;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
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.inventory.ItemParamMap;
|
||||
import emu.nebula.game.instance.InstanceRewardParam;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@@ -33,17 +36,19 @@ public class DailyInstanceDef extends BaseDef implements InstanceData {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemParamMap getFirstRewards() {
|
||||
@Deprecated
|
||||
public List<InstanceRewardParam> getFirstRewards() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemParamMap getRewards() {
|
||||
@Deprecated
|
||||
public List<InstanceRewardParam> getRewards() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemParamMap getFirstRewards(int rewardType) {
|
||||
public List<InstanceRewardParam> getFirstRewards(int rewardType) {
|
||||
var data = this.getRewardGroup(rewardType);
|
||||
|
||||
if (data != null) {
|
||||
@@ -54,7 +59,7 @@ public class DailyInstanceDef extends BaseDef implements InstanceData {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemParamMap getRewards(int rewardType) {
|
||||
public List<InstanceRewardParam> getRewards(int rewardType) {
|
||||
var data = this.getRewardGroup(rewardType);
|
||||
|
||||
if (data != null) {
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package emu.nebula.data.resources;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import emu.nebula.data.BaseDef;
|
||||
import emu.nebula.data.ResourceType;
|
||||
import emu.nebula.game.inventory.ItemParamMap;
|
||||
import emu.nebula.game.instance.InstanceRewardParam;
|
||||
import emu.nebula.util.JsonUtils;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -13,8 +16,8 @@ public class DailyInstanceRewardGroupDef extends BaseDef {
|
||||
private int DailyRewardType;
|
||||
private String BaseAwardPreview;
|
||||
|
||||
private transient ItemParamMap firstRewards;
|
||||
private transient ItemParamMap rewards;
|
||||
private transient List<InstanceRewardParam> firstRewards;
|
||||
private transient List<InstanceRewardParam> rewards;
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
@@ -23,9 +26,9 @@ public class DailyInstanceRewardGroupDef extends BaseDef {
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
// Init reward maps
|
||||
this.firstRewards = new ItemParamMap();
|
||||
this.rewards = new ItemParamMap();
|
||||
// Init reward lists
|
||||
this.firstRewards = new ArrayList<>();
|
||||
this.rewards = new ArrayList<>();
|
||||
|
||||
// Parse rewards
|
||||
var awards = JsonUtils.decodeList(this.BaseAwardPreview, int[].class);
|
||||
@@ -35,13 +38,21 @@ public class DailyInstanceRewardGroupDef extends BaseDef {
|
||||
|
||||
for (int[] award : awards) {
|
||||
int itemId = award[0];
|
||||
int count = award[1];
|
||||
boolean isFirst = award[2] == 1;
|
||||
int min = award[1];
|
||||
int max = award.length >= 4 ? award[2] : min;
|
||||
boolean isFirst = award[award.length - 1] == 1;
|
||||
|
||||
if (min == -1) {
|
||||
min = 0;
|
||||
max = 1;
|
||||
}
|
||||
|
||||
var reward = new InstanceRewardParam(itemId, min, max);
|
||||
|
||||
if (isFirst) {
|
||||
this.firstRewards.put(itemId, count);
|
||||
this.firstRewards.add(reward);
|
||||
} else {
|
||||
this.rewards.put(itemId, count);
|
||||
this.rewards.add(reward);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
package emu.nebula.data.resources;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
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.game.instance.InstanceRewardParam;
|
||||
import emu.nebula.util.JsonUtils;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@@ -17,8 +21,8 @@ public class RegionBossLevelDef extends BaseDef implements InstanceData {
|
||||
private int EnergyConsume;
|
||||
private String BaseAwardPreview;
|
||||
|
||||
private transient ItemParamMap firstRewards;
|
||||
private transient ItemParamMap rewards;
|
||||
private transient List<InstanceRewardParam> firstRewards;
|
||||
private transient List<InstanceRewardParam> rewards;
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
@@ -27,9 +31,9 @@ public class RegionBossLevelDef extends BaseDef implements InstanceData {
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
// Init reward maps
|
||||
this.firstRewards = new ItemParamMap();
|
||||
this.rewards = new ItemParamMap();
|
||||
// Init reward lists
|
||||
this.firstRewards = new ArrayList<>();
|
||||
this.rewards = new ArrayList<>();
|
||||
|
||||
// Parse rewards
|
||||
var awards = JsonUtils.decodeList(this.BaseAwardPreview, int[].class);
|
||||
@@ -39,13 +43,21 @@ public class RegionBossLevelDef extends BaseDef implements InstanceData {
|
||||
|
||||
for (int[] award : awards) {
|
||||
int itemId = award[0];
|
||||
int count = award[1];
|
||||
boolean isFirst = award[2] == 1;
|
||||
int min = award[1];
|
||||
int max = award.length >= 4 ? award[2] : min;
|
||||
boolean isFirst = award[award.length - 1] == 1;
|
||||
|
||||
if (min == -1) {
|
||||
min = 0;
|
||||
max = 1;
|
||||
}
|
||||
|
||||
var reward = new InstanceRewardParam(itemId, min, max);
|
||||
|
||||
if (isFirst) {
|
||||
this.firstRewards.put(itemId, count);
|
||||
this.firstRewards.add(reward);
|
||||
} else {
|
||||
this.rewards.put(itemId, count);
|
||||
this.rewards.add(reward);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package emu.nebula.data.resources;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
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.game.instance.InstanceRewardParam;
|
||||
import emu.nebula.util.JsonUtils;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -17,8 +20,8 @@ public class SkillInstanceDef extends BaseDef implements InstanceData {
|
||||
private int EnergyConsume;
|
||||
private String BaseAwardPreview;
|
||||
|
||||
private transient ItemParamMap firstRewards;
|
||||
private transient ItemParamMap rewards;
|
||||
private transient List<InstanceRewardParam> firstRewards;
|
||||
private transient List<InstanceRewardParam> rewards;
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
@@ -27,9 +30,9 @@ public class SkillInstanceDef extends BaseDef implements InstanceData {
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
// Init reward maps
|
||||
this.firstRewards = new ItemParamMap();
|
||||
this.rewards = new ItemParamMap();
|
||||
// Init reward lists
|
||||
this.firstRewards = new ArrayList<>();
|
||||
this.rewards = new ArrayList<>();
|
||||
|
||||
// Parse rewards
|
||||
var awards = JsonUtils.decodeList(this.BaseAwardPreview, int[].class);
|
||||
@@ -39,13 +42,21 @@ public class SkillInstanceDef extends BaseDef implements InstanceData {
|
||||
|
||||
for (int[] award : awards) {
|
||||
int itemId = award[0];
|
||||
int count = award[1];
|
||||
boolean isFirst = award[2] == 1;
|
||||
int min = award[1];
|
||||
int max = award.length >= 4 ? award[2] : min;
|
||||
boolean isFirst = award[award.length - 1] == 1;
|
||||
|
||||
if (min == -1) {
|
||||
min = 0;
|
||||
max = 1;
|
||||
}
|
||||
|
||||
var reward = new InstanceRewardParam(itemId, min, max);
|
||||
|
||||
if (isFirst) {
|
||||
this.firstRewards.put(itemId, count);
|
||||
this.firstRewards.add(reward);
|
||||
} else {
|
||||
this.rewards.put(itemId, count);
|
||||
this.rewards.add(reward);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
package emu.nebula.data.resources;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
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.game.instance.InstanceRewardParam;
|
||||
import emu.nebula.util.JsonUtils;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@@ -15,8 +19,8 @@ public class WeekBossLevelDef extends BaseDef implements InstanceData {
|
||||
private int NeedWorldClass;
|
||||
private String BaseAwardPreview;
|
||||
|
||||
private transient ItemParamMap firstRewards;
|
||||
private transient ItemParamMap rewards;
|
||||
private transient List<InstanceRewardParam> firstRewards;
|
||||
private transient List<InstanceRewardParam> rewards;
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
@@ -29,9 +33,9 @@ public class WeekBossLevelDef extends BaseDef implements InstanceData {
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
// Init reward maps
|
||||
this.firstRewards = new ItemParamMap();
|
||||
this.rewards = new ItemParamMap();
|
||||
// Init reward lists
|
||||
this.firstRewards = new ArrayList<>();
|
||||
this.rewards = new ArrayList<>();
|
||||
|
||||
// Parse rewards
|
||||
var awards = JsonUtils.decodeList(this.BaseAwardPreview, int[].class);
|
||||
@@ -41,13 +45,21 @@ public class WeekBossLevelDef extends BaseDef implements InstanceData {
|
||||
|
||||
for (int[] award : awards) {
|
||||
int itemId = award[0];
|
||||
int count = award[1];
|
||||
boolean isFirst = award[2] == 1;
|
||||
int min = award[1];
|
||||
int max = award.length >= 4 ? award[2] : min;
|
||||
boolean isFirst = award[award.length - 1] == 1;
|
||||
|
||||
if (min == -1) {
|
||||
min = 0;
|
||||
max = 1;
|
||||
}
|
||||
|
||||
var reward = new InstanceRewardParam(itemId, min, max);
|
||||
|
||||
if (isFirst) {
|
||||
this.firstRewards.put(itemId, count);
|
||||
this.firstRewards.add(reward);
|
||||
} else {
|
||||
this.rewards.put(itemId, count);
|
||||
this.rewards.add(reward);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user