Implement quest data field: gainItems

This commit is contained in:
KingRainbow44 2023-04-13 20:33:31 -04:00
parent 29501bcd81
commit c71386c69e
No known key found for this signature in database
GPG Key ID: FC2CB64B00D257BE
3 changed files with 24 additions and 23 deletions

View File

@ -5,6 +5,7 @@ import emu.grasscutter.Grasscutter;
import emu.grasscutter.data.GameData;
import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType;
import emu.grasscutter.data.common.ItemParamData;
import emu.grasscutter.game.quest.enums.*;
import java.util.ArrayList;
import java.util.List;
@ -36,7 +37,9 @@ public class QuestData extends GameResource {
@Getter private List<QuestExecParam> finishExec;
@Getter private List<QuestExecParam> failExec;
@Getter private Guide guide;
@Getter private List<Integer> trialAvatarList;
@Getter private List<ItemParamData> gainItems;
public static String questConditionKey(
@Nonnull Enum<?> type, int firstParam, @Nullable String paramsStr) {

View File

@ -226,14 +226,12 @@ public class GameQuest {
ChapterStateOuterClass.ChapterState.CHAPTER_STATE_END));
}
// hard coding to give amber
if (getQuestData().getSubId() == 35402) {
getOwner().getInventory().addItem(1021, 1, ActionReason.QuestItem); // amber item id
}
// Give items for completing the quest.
this.getQuestData().getGainItems().forEach(item ->
this.getOwner().getInventory().addItem(item, ActionReason.QuestItem));
this.save();
Grasscutter.getLogger().debug("Quest {} is finished", subQuestId);
Grasscutter.getLogger().debug("Quest {} was completed.", subQuestId);
}
// TODO

View File

@ -1,17 +1,17 @@
package emu.grasscutter.game.quest.enums;
public enum ShowQuestGuideType {
QUEST_GUIDE_ITEM_ENABLE(0),
QUEST_GUIDE_ITEM_DISABLE(1),
QUEST_GUIDE_ITEM_MOVE_HIDE(2);
private final int value;
ShowQuestGuideType(int id) {
this.value = id;
}
public int getValue() {
return value;
}
}
package emu.grasscutter.game.quest.enums;
public enum ShowQuestGuideType {
QUEST_GUIDE_ITEM_ENABLE(0),
QUEST_GUIDE_ITEM_DISABLE(1),
QUEST_GUIDE_ITEM_MOVE_HIDE(2);
private final int value;
ShowQuestGuideType(int id) {
this.value = id;
}
public int getValue() {
return value;
}
}