mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-17 17:34:39 +01:00
quest fix & personal line impl
This commit is contained in:
@@ -3,31 +3,36 @@ package emu.grasscutter.data.excels;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import emu.grasscutter.data.GameResource;
|
||||
import emu.grasscutter.data.ResourceType;
|
||||
import emu.grasscutter.game.quest.enums.LogicType;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.FieldDefaults;
|
||||
|
||||
@ResourceType(name = "QuestExcelConfigData.json")
|
||||
@Getter
|
||||
@ToString
|
||||
public class QuestData extends GameResource {
|
||||
private int subId;
|
||||
private int mainId;
|
||||
private int order;
|
||||
private long descTextMapHash;
|
||||
|
||||
|
||||
private boolean finishParent;
|
||||
private boolean isRewind;
|
||||
|
||||
|
||||
private LogicType acceptCondComb;
|
||||
private QuestCondition[] acceptConditons;
|
||||
private LogicType finishCondComb;
|
||||
private QuestCondition[] finishConditons;
|
||||
private LogicType failCondComb;
|
||||
private QuestCondition[] failConditons;
|
||||
|
||||
private List<QuestParam> acceptCond;
|
||||
private List<QuestParam> finishCond;
|
||||
private List<QuestParam> failCond;
|
||||
|
||||
private List<QuestCondition> acceptCond;
|
||||
private List<QuestCondition> finishCond;
|
||||
private List<QuestCondition> failCond;
|
||||
private List<QuestExecParam> beginExec;
|
||||
private List<QuestExecParam> finishExec;
|
||||
private List<QuestExecParam> failExec;
|
||||
@@ -60,67 +65,57 @@ public class QuestData extends GameResource {
|
||||
return acceptCondComb;
|
||||
}
|
||||
|
||||
public QuestCondition[] getAcceptCond() {
|
||||
return acceptConditons;
|
||||
public List<QuestCondition> getAcceptCond() {
|
||||
return acceptCond;
|
||||
}
|
||||
|
||||
public LogicType getFinishCondComb() {
|
||||
return finishCondComb;
|
||||
}
|
||||
|
||||
public QuestCondition[] getFinishCond() {
|
||||
return finishConditons;
|
||||
public List<QuestCondition> getFinishCond() {
|
||||
return finishCond;
|
||||
}
|
||||
|
||||
public LogicType getFailCondComb() {
|
||||
return failCondComb;
|
||||
}
|
||||
|
||||
public QuestCondition[] getFailCond() {
|
||||
return failConditons;
|
||||
public List<QuestCondition> getFailCond() {
|
||||
return failCond;
|
||||
}
|
||||
|
||||
public void onLoad() {
|
||||
this.acceptConditons = acceptCond.stream().filter(p -> p._type != null).map(QuestCondition::new).toArray(QuestCondition[]::new);
|
||||
acceptCond = null;
|
||||
this.finishConditons = finishCond.stream().filter(p -> p._type != null).map(QuestCondition::new).toArray(QuestCondition[]::new);
|
||||
finishCond = null;
|
||||
this.failConditons = failCond.stream().filter(p -> p._type != null).map(QuestCondition::new).toArray(QuestCondition[]::new);
|
||||
failCond = null;
|
||||
}
|
||||
|
||||
public class QuestParam {
|
||||
QuestTrigger _type;
|
||||
int[] _param;
|
||||
String _count;
|
||||
}
|
||||
|
||||
public class QuestExecParam {
|
||||
QuestTrigger _type;
|
||||
String[] _param;
|
||||
String _count;
|
||||
}
|
||||
|
||||
public static class QuestCondition {
|
||||
private QuestTrigger type;
|
||||
private int[] param;
|
||||
private String count;
|
||||
|
||||
public QuestCondition(QuestParam param) {
|
||||
this.type = param._type;
|
||||
this.param = param._param;
|
||||
}
|
||||
|
||||
public QuestTrigger getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public int[] getParam() {
|
||||
return param;
|
||||
}
|
||||
this.acceptCond = acceptCond.stream().filter(p -> p.type != null).toList();
|
||||
this.finishCond = finishCond.stream().filter(p -> p.type != null).toList();
|
||||
this.failCond = failCond.stream().filter(p -> p.type != null).toList();
|
||||
|
||||
this.beginExec = beginExec.stream().filter(p -> p.type != null).toList();
|
||||
this.finishExec = finishExec.stream().filter(p -> p.type != null).toList();
|
||||
this.failExec = failExec.stream().filter(p -> p.type != null).toList();
|
||||
}
|
||||
|
||||
@Data
|
||||
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||
public class QuestExecParam {
|
||||
@SerializedName("_type")
|
||||
QuestTrigger type;
|
||||
@SerializedName("_param")
|
||||
String[] param;
|
||||
@SerializedName("_count")
|
||||
String count;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class QuestCondition {
|
||||
@SerializedName("_type")
|
||||
private QuestTrigger type;
|
||||
@SerializedName("_param")
|
||||
private int[] param;
|
||||
@SerializedName("_param_str")
|
||||
private String paramStr;
|
||||
@SerializedName("_count")
|
||||
private String count;
|
||||
|
||||
public String getCount() {
|
||||
return count;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user