mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-03-28 02:23:31 +01:00
Copy some files from Grasscutter-Quests
NOT completely finished, nor is it completely done. Protocol issues remain! (including lack of packet IDs)
This commit is contained in:
@@ -1,18 +1,20 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData.QuestCondition;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_UNKNOWN;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_CONTENT_NONE)
|
||||
public class BaseCondition extends QuestBaseHandler {
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
|
||||
@QuestValueCond(QUEST_COND_UNKNOWN)
|
||||
public class BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestCondition condition, String paramStr, int... params) {
|
||||
// TODO Auto-generated method stub
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,40 +1,49 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import lombok.val;
|
||||
|
||||
public abstract class BaseConditionQuestVar extends BaseCondition {
|
||||
|
||||
protected abstract boolean doCompare(int variable, int cond);
|
||||
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val index = condition.getParam()[0];
|
||||
val targetValue = condition.getParam()[1];
|
||||
val questVarValue = getQuestVar(owner, questData, index);
|
||||
|
||||
Grasscutter.getLogger().debug("questVar {} : {}", index, questVarValue);
|
||||
|
||||
if (questVarValue < 0) {
|
||||
return false;
|
||||
}
|
||||
return doCompare(questVarValue, targetValue);
|
||||
}
|
||||
|
||||
protected int getQuestVar(Player owner, QuestData questData, int index) {
|
||||
val mainQuest = owner.getQuestManager().getMainQuestById(questData.getMainId());
|
||||
if (mainQuest == null) {
|
||||
Grasscutter.getLogger().debug("mainQuest for quest var not available yet");
|
||||
return -1;
|
||||
}
|
||||
val questVars = mainQuest.getQuestVars();
|
||||
if (index >= questVars.length) {
|
||||
Grasscutter.getLogger().error("questVar out of bounds for {} index {} size {}", questData.getSubId(), index, questVars.length);
|
||||
return -2;
|
||||
}
|
||||
return questVars[index];
|
||||
}
|
||||
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import lombok.val;
|
||||
|
||||
public abstract class BaseConditionQuestVar extends BaseCondition {
|
||||
|
||||
protected abstract boolean doCompare(int variable, int cond);
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val index = condition.getParam()[0];
|
||||
val targetValue = condition.getParam()[1];
|
||||
val questVarValue = getQuestVar(owner, questData, index);
|
||||
|
||||
Grasscutter.getLogger().debug("questVar {} : {}", index, questVarValue);
|
||||
|
||||
if (questVarValue < 0) {
|
||||
return false;
|
||||
}
|
||||
return doCompare(questVarValue, targetValue);
|
||||
}
|
||||
|
||||
protected int getQuestVar(Player owner, QuestData questData, int index) {
|
||||
val mainQuest = owner.getQuestManager().getMainQuestById(questData.getMainId());
|
||||
if (mainQuest == null) {
|
||||
Grasscutter.getLogger().debug("mainQuest for quest var not available yet");
|
||||
return -1;
|
||||
}
|
||||
val questVars = mainQuest.getQuestVars();
|
||||
if (index >= questVars.length) {
|
||||
Grasscutter.getLogger()
|
||||
.error(
|
||||
"questVar out of bounds for {} index {} size {}",
|
||||
questData.getSubId(),
|
||||
index,
|
||||
questVars.length);
|
||||
return -2;
|
||||
}
|
||||
return questVars[index];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,24 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_ACTIVITY_COND;
|
||||
|
||||
@QuestValueCond(QUEST_COND_ACTIVITY_COND)
|
||||
public class ConditionActivityCond extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val activityCondId = condition.getParam()[0];
|
||||
val targetState = condition.getParam()[1]; // only 1 for now
|
||||
return owner.getActivityManager().meetsCondition(activityCondId) == (targetState == 1);
|
||||
}
|
||||
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_ACTIVITY_COND;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QUEST_COND_ACTIVITY_COND)
|
||||
public class ConditionActivityCond extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val activityCondId = condition.getParam()[0];
|
||||
val targetState = condition.getParam()[1]; // only 1 for now
|
||||
return owner.getActivityManager().meetsCondition(activityCondId) == (targetState == 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,23 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_ACTIVITY_END;
|
||||
|
||||
@QuestValueCond(QUEST_COND_ACTIVITY_END)
|
||||
public class ConditionActivityEnd extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val activityId = condition.getParam()[0];
|
||||
return owner.getActivityManager().hasActivityEnded(activityId);
|
||||
}
|
||||
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_ACTIVITY_END;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QUEST_COND_ACTIVITY_END)
|
||||
public class ConditionActivityEnd extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val activityId = condition.getParam()[0];
|
||||
return owner.getActivityManager().hasActivityEnded(activityId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,23 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_ACTIVITY_OPEN;
|
||||
|
||||
@QuestValueCond(QUEST_COND_ACTIVITY_OPEN)
|
||||
public class ConditionActivityOpen extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val activityId = condition.getParam()[0];
|
||||
return owner.getActivityManager().isActivityActive(activityId);
|
||||
}
|
||||
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_ACTIVITY_OPEN;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QUEST_COND_ACTIVITY_OPEN)
|
||||
public class ConditionActivityOpen extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val activityId = condition.getParam()[0];
|
||||
return owner.getActivityManager().isActivityActive(activityId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,33 +1,35 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_COMPLETE_TALK;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.data.GameData;
|
||||
import emu.grasscutter.data.binout.MainQuestData;
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.quest.GameMainQuest;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_COND_COMPLETE_TALK)
|
||||
public class ConditionCompleteTalk extends QuestBaseHandler {
|
||||
@QuestValueCond(QUEST_COND_COMPLETE_TALK)
|
||||
public class ConditionCompleteTalk extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestData.QuestCondition condition, String paramStr, int... params) {
|
||||
GameMainQuest checkMainQuest =
|
||||
quest.getOwner().getQuestManager().getMainQuestById(condition.getParam()[0] / 100);
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val talkId = condition.getParam()[0];
|
||||
val unknownParam = condition.getParam()[1]; // e.g. 3 for 7081601
|
||||
val checkMainQuest = owner.getQuestManager().getMainQuestByTalkId(talkId);
|
||||
if (checkMainQuest == null
|
||||
|| GameData.getMainQuestDataMap().get(checkMainQuest.getParentQuestId()).getTalks()
|
||||
== null) {
|
||||
Grasscutter.getLogger()
|
||||
.debug(
|
||||
"Warning: mainQuest {} hasn't been started yet, or has no talks",
|
||||
condition.getParam()[0] / 100);
|
||||
.debug("Warning: mainQuest {} hasn't been started yet, or has no talks", talkId / 100);
|
||||
return false;
|
||||
}
|
||||
MainQuestData.TalkData talkData = checkMainQuest.getTalks().get(Integer.valueOf(params[0]));
|
||||
return talkData != null || checkMainQuest.getChildQuestById(params[0]) != null;
|
||||
val talkData = checkMainQuest.getTalks().get(talkId);
|
||||
return talkData != null || checkMainQuest.getChildQuestById(talkId) != null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_HISTORY_GOT_ANY_ITEM)
|
||||
public class ConditionHistoryGotAnyItem extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val itemId = condition.getParam()[0];
|
||||
return owner.getPlayerProgress().hasPlayerObtainedItemHistorically(itemId);
|
||||
}
|
||||
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_HISTORY_GOT_ANY_ITEM)
|
||||
public class ConditionHistoryGotAnyItem extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val itemId = condition.getParam()[0];
|
||||
return owner.getPlayerProgress().hasPlayerObtainedItemHistorically(itemId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,24 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_IS_DAYTIME)
|
||||
public class ConditionIsDaytime extends BaseCondition{
|
||||
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val daytime = condition.getParam()[0] == 1;
|
||||
val currentTime = owner.getWorld().getGameTimeHours();
|
||||
// TODO is this the real timeframe?
|
||||
return (currentTime >=6 && currentTime<=18) == daytime;
|
||||
}
|
||||
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_IS_DAYTIME)
|
||||
public class ConditionIsDaytime extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val daytime = condition.getParam()[0] == 1;
|
||||
val currentTime = owner.getWorld().getGameTimeHours();
|
||||
// TODO is this the real timeframe?
|
||||
return (currentTime >= 6 && currentTime <= 18) == daytime;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,25 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_ITEM_NUM_LESS_THAN;
|
||||
|
||||
@QuestValueCond(QUEST_COND_ITEM_NUM_LESS_THAN)
|
||||
public class ConditionItemNumLessThan extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val itemId = condition.getParam()[0];
|
||||
val amount = condition.getParam()[1];
|
||||
val checkItem = owner.getInventory().getItemByGuid(itemId);
|
||||
return checkItem == null || checkItem.getCount() < amount;
|
||||
}
|
||||
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_ITEM_NUM_LESS_THAN;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QUEST_COND_ITEM_NUM_LESS_THAN)
|
||||
public class ConditionItemNumLessThan extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val itemId = condition.getParam()[0];
|
||||
val amount = condition.getParam()[1];
|
||||
val checkItem = owner.getInventory().getItemByGuid(itemId);
|
||||
return checkItem == null || checkItem.getCount() < amount;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,24 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData.QuestCondition;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_LUA_NOTIFY;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QUEST_COND_LUA_NOTIFY)
|
||||
public class ConditionLuaNotify extends BaseCondition {
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_COND_LUA_NOTIFY)
|
||||
public class ConditionLuaNotify extends QuestBaseHandler {
|
||||
// Wrong implementation. Example: 7010226 has no paramStr
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestCondition condition, String paramStr, int... params) {
|
||||
return condition.getParam()[0] == Integer.parseInt(paramStr);
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val triggerId = Integer.parseInt(paramStr);
|
||||
val targetTrigger = condition.getParam()[0];
|
||||
return targetTrigger == triggerId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_NONE)
|
||||
public class ConditionNone extends BaseCondition{
|
||||
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_NONE)
|
||||
public class ConditionNone extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,23 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_OPEN_STATE_EQUAL)
|
||||
public class ConditionOpenStateEqual extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val openStateId = condition.getParam()[0];
|
||||
val requiredState = condition.getParam()[1];
|
||||
return owner.getProgressManager().getOpenState(openStateId) == requiredState;
|
||||
}
|
||||
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_OPEN_STATE_EQUAL)
|
||||
public class ConditionOpenStateEqual extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val openStateId = condition.getParam()[0];
|
||||
val requiredState = condition.getParam()[1];
|
||||
return owner.getProgressManager().getOpenState(openStateId) == requiredState;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,25 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_PACK_HAVE_ITEM;
|
||||
|
||||
@QuestValueCond(QUEST_COND_PACK_HAVE_ITEM)
|
||||
public class ConditionPackHaveItem extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val itemId = condition.getParam()[0];
|
||||
val targetAmount = condition.getParam()[1];
|
||||
val checkItem = owner.getInventory().getItemByGuid(itemId);
|
||||
return checkItem != null && checkItem.getCount() >= targetAmount;
|
||||
}
|
||||
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_PACK_HAVE_ITEM;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QUEST_COND_PACK_HAVE_ITEM)
|
||||
public class ConditionPackHaveItem extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val itemId = condition.getParam()[0];
|
||||
val targetAmount = condition.getParam()[1];
|
||||
val checkItem = owner.getInventory().getItemByGuid(itemId);
|
||||
return checkItem != null && checkItem.getCount() >= targetAmount;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_PERSONAL_LINE_UNLOCK)
|
||||
public class ConditionPersonalLineUnlock extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val personalLineId = condition.getParam()[0];
|
||||
return owner.getPersonalLineList().contains(personalLineId);
|
||||
}
|
||||
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_PERSONAL_LINE_UNLOCK)
|
||||
public class ConditionPersonalLineUnlock extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val personalLineId = condition.getParam()[0];
|
||||
return owner.getPersonalLineList().contains(personalLineId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,23 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData.QuestCondition;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_PLAYER_LEVEL_EQUAL_GREATER;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_COND_PLAYER_LEVEL_EQUAL_GREATER)
|
||||
public class ConditionPlayerLevelEqualGreater extends QuestBaseHandler {
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QUEST_COND_PLAYER_LEVEL_EQUAL_GREATER)
|
||||
public class ConditionPlayerLevelEqualGreater extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestCondition condition, String paramStr, int... params) {
|
||||
return quest.getOwner().getLevel() >= params[0];
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val minLevel = condition.getParam()[0];
|
||||
return owner.getLevel() >= minLevel;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,28 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_QUEST_GLOBAL_VAR_EQUAL;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_COND_QUEST_GLOBAL_VAR_EQUAL)
|
||||
public class ConditionQuestGlobalVarEqual extends QuestBaseHandler {
|
||||
@QuestValueCond(QUEST_COND_QUEST_GLOBAL_VAR_EQUAL)
|
||||
public class ConditionQuestGlobalVarEqual extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestData.QuestCondition condition, String paramStr, int... params) {
|
||||
Integer questGlobalVarValue =
|
||||
quest.getMainQuest().getQuestManager().getQuestGlobalVarValue(Integer.valueOf(params[0]));
|
||||
Grasscutter.getLogger().debug("questGlobarVar {} : {}", params[0], questGlobalVarValue);
|
||||
return questGlobalVarValue.intValue() == params[1];
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val questId = condition.getParam()[0];
|
||||
val targetValue = condition.getParam()[1];
|
||||
Integer questGlobalVarValue = owner.getQuestManager().getQuestGlobalVarValue(questId);
|
||||
Grasscutter.getLogger()
|
||||
.debug("questGlobarVar {} {} : {}", questId, targetValue, questGlobalVarValue);
|
||||
return questGlobalVarValue == targetValue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,28 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_QUEST_GLOBAL_VAR_GREATER;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_COND_QUEST_GLOBAL_VAR_GREATER)
|
||||
public class ConditionQuestGlobalVarGreater extends QuestBaseHandler {
|
||||
@QuestValueCond(QUEST_COND_QUEST_GLOBAL_VAR_GREATER)
|
||||
public class ConditionQuestGlobalVarGreater extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestData.QuestCondition condition, String paramStr, int... params) {
|
||||
Integer questGlobalVarValue =
|
||||
quest.getMainQuest().getQuestManager().getQuestGlobalVarValue(Integer.valueOf(params[0]));
|
||||
Grasscutter.getLogger().debug("questGlobarVar {} : {}", params[0], questGlobalVarValue);
|
||||
return questGlobalVarValue.intValue() > params[1];
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val questId = condition.getParam()[0];
|
||||
val minValue = condition.getParam()[1];
|
||||
Integer questGlobalVarValue = owner.getQuestManager().getQuestGlobalVarValue(questId);
|
||||
Grasscutter.getLogger()
|
||||
.debug("questGlobarVar {} {} : {}", questId, minValue, questGlobalVarValue);
|
||||
return questGlobalVarValue > minValue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,28 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_QUEST_GLOBAL_VAR_LESS;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_COND_QUEST_GLOBAL_VAR_LESS)
|
||||
public class ConditionQuestGlobalVarLess extends QuestBaseHandler {
|
||||
@QuestValueCond(QUEST_COND_QUEST_GLOBAL_VAR_LESS)
|
||||
public class ConditionQuestGlobalVarLess extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestData.QuestCondition condition, String paramStr, int... params) {
|
||||
Integer questGlobalVarValue =
|
||||
quest.getMainQuest().getQuestManager().getQuestGlobalVarValue(Integer.valueOf(params[0]));
|
||||
Grasscutter.getLogger().debug("questGlobarVar {} : {}", params[0], questGlobalVarValue);
|
||||
return questGlobalVarValue.intValue() < params[1];
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val questId = condition.getParam()[0];
|
||||
val maxValue = condition.getParam()[1];
|
||||
Integer questGlobalVarValue = owner.getQuestManager().getQuestGlobalVarValue(questId);
|
||||
Grasscutter.getLogger()
|
||||
.debug("questGlobarVar {} {} : {}", questId, maxValue, questGlobalVarValue);
|
||||
return questGlobalVarValue < maxValue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,14 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_QUEST_VAR_EQUAL;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_COND_QUEST_VAR_EQUAL)
|
||||
public class ConditionQuestVarEqual extends QuestBaseHandler {
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
|
||||
@QuestValueCond(QUEST_COND_QUEST_VAR_EQUAL)
|
||||
public class ConditionQuestVarEqual extends BaseConditionQuestVar {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestData.QuestCondition condition, String paramStr, int... params) {
|
||||
int questVarValue = quest.getMainQuest().getQuestVars()[params[0]];
|
||||
Grasscutter.getLogger().debug("questVar {} : {}", params[0], questVarValue);
|
||||
return questVarValue == params[1];
|
||||
protected boolean doCompare(int variable, int cond) {
|
||||
return variable == cond;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,14 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_QUEST_VAR_GREATER;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_COND_QUEST_VAR_GREATER)
|
||||
public class ConditionQuestVarGreater extends QuestBaseHandler {
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
|
||||
@QuestValueCond(QUEST_COND_QUEST_VAR_GREATER)
|
||||
public class ConditionQuestVarGreater extends BaseConditionQuestVar {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestData.QuestCondition condition, String paramStr, int... params) {
|
||||
int questVarValue = quest.getMainQuest().getQuestVars()[params[0]];
|
||||
Grasscutter.getLogger().debug("questVar {} : {}", params[0], questVarValue);
|
||||
return questVarValue > params[1];
|
||||
protected boolean doCompare(int variable, int cond) {
|
||||
return variable > cond;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,14 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_QUEST_VAR_LESS;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_COND_QUEST_VAR_LESS)
|
||||
public class ConditionQuestVarLess extends QuestBaseHandler {
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
|
||||
@QuestValueCond(QUEST_COND_QUEST_VAR_LESS)
|
||||
public class ConditionQuestVarLess extends BaseConditionQuestVar {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestData.QuestCondition condition, String paramStr, int... params) {
|
||||
int questVarValue = quest.getMainQuest().getQuestVars()[params[0]];
|
||||
Grasscutter.getLogger().debug("questVar {} : {}", params[0], questVarValue);
|
||||
return questVarValue < params[1];
|
||||
protected boolean doCompare(int variable, int cond) {
|
||||
return variable < cond;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,26 +1,34 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData.QuestCondition;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_STATE_EQUAL;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_COND_STATE_EQUAL)
|
||||
public class ConditionStateEqual extends QuestBaseHandler {
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QUEST_COND_STATE_EQUAL)
|
||||
public class ConditionStateEqual extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestCondition condition, String paramStr, int... params) {
|
||||
GameQuest checkQuest = quest.getOwner().getQuestManager().getQuestById(condition.getParam()[0]);
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val questId = condition.getParam()[0];
|
||||
val questStateValue = condition.getParam()[1];
|
||||
GameQuest checkQuest = owner.getQuestManager().getQuestById(questId);
|
||||
if (checkQuest == null) {
|
||||
/*
|
||||
Will spam the console
|
||||
//Grasscutter.getLogger().debug("Warning: quest {} hasn't been started yet!", condition.getParam()[0]);
|
||||
|
||||
*/
|
||||
// Grasscutter.getLogger().debug("Warning: quest {} hasn't been started yet!",
|
||||
// condition.getParam()[0]);
|
||||
return false;
|
||||
}
|
||||
return checkQuest.getState().getValue() == condition.getParam()[1];
|
||||
return checkQuest.getState().getValue() == questStateValue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,26 +1,35 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValue;
|
||||
import emu.grasscutter.game.quest.enums.QuestTrigger;
|
||||
import emu.grasscutter.game.quest.handlers.QuestBaseHandler;
|
||||
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_STATE_NOT_EQUAL;
|
||||
|
||||
@QuestValue(QuestTrigger.QUEST_COND_STATE_NOT_EQUAL)
|
||||
public class ConditionStateNotEqual extends QuestBaseHandler {
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.GameQuest;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QUEST_COND_STATE_NOT_EQUAL)
|
||||
public class ConditionStateNotEqual extends BaseCondition {
|
||||
|
||||
@Override
|
||||
public boolean execute(
|
||||
GameQuest quest, QuestData.QuestCondition condition, String paramStr, int... params) {
|
||||
GameQuest checkQuest = quest.getOwner().getQuestManager().getQuestById(condition.getParam()[0]);
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val questId = condition.getParam()[0];
|
||||
val questStateValue = condition.getParam()[1];
|
||||
GameQuest checkQuest = owner.getQuestManager().getQuestById(questId);
|
||||
if (checkQuest == null) {
|
||||
/*
|
||||
Will spam the console
|
||||
//Grasscutter.getLogger().debug("Warning: quest {} hasn't been started yet!", condition.getParam()[0]);
|
||||
|
||||
*/
|
||||
// Grasscutter.getLogger().debug("Warning: quest {} hasn't been started yet!",
|
||||
// condition.getParam()[0]);
|
||||
|
||||
return false;
|
||||
}
|
||||
return checkQuest.getState().getValue() != condition.getParam()[1];
|
||||
return checkQuest.getState().getValue() != questStateValue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +1,30 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_TIME_VAR_GT_EQ)
|
||||
public class ConditionTimeVarGreaterOrEqual extends BaseCondition{
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val mainQuestId = condition.getParam()[0];
|
||||
val timeVarIndex = condition.getParam()[1];
|
||||
val minTime = condition.getParam()[2];
|
||||
|
||||
val mainQuest = owner.getQuestManager().getMainQuestById(mainQuestId);
|
||||
|
||||
if(mainQuest == null){
|
||||
return false;
|
||||
}
|
||||
|
||||
return mainQuest.getHoursSinceTimeVar(timeVarIndex) >= minTime;
|
||||
}
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_TIME_VAR_GT_EQ)
|
||||
public class ConditionTimeVarGreaterOrEqual extends BaseCondition {
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val mainQuestId = condition.getParam()[0];
|
||||
val timeVarIndex = condition.getParam()[1];
|
||||
val minTime = condition.getParam()[2];
|
||||
|
||||
val mainQuest = owner.getQuestManager().getMainQuestById(mainQuestId);
|
||||
|
||||
if (mainQuest == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return mainQuest.getHoursSinceTimeVar(timeVarIndex) >= minTime;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +1,35 @@
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_TIME_VAR_PASS_DAY)
|
||||
public class ConditionTimeVarPassDay extends BaseCondition{
|
||||
@Override
|
||||
public boolean execute(Player owner, QuestData questData, QuestData.QuestAcceptCondition condition, String paramStr, int... params) {
|
||||
val mainQuestId = condition.getParam()[0];
|
||||
val timeVarIndex = condition.getParam()[1];
|
||||
val minDays = condition.getParam()[2];
|
||||
|
||||
val mainQuest = owner.getQuestManager().getMainQuestById(mainQuestId);
|
||||
|
||||
if(mainQuest == null){
|
||||
return false;
|
||||
}
|
||||
|
||||
val daysSinceTimeVar = mainQuest.getDaysSinceTimeVar(timeVarIndex);
|
||||
if(daysSinceTimeVar == -1){
|
||||
return false;
|
||||
}
|
||||
|
||||
return daysSinceTimeVar >= minDays;
|
||||
}
|
||||
}
|
||||
package emu.grasscutter.game.quest.conditions;
|
||||
|
||||
import emu.grasscutter.data.excels.QuestData;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.quest.QuestValueCond;
|
||||
import emu.grasscutter.game.quest.enums.QuestCond;
|
||||
import lombok.val;
|
||||
|
||||
@QuestValueCond(QuestCond.QUEST_COND_TIME_VAR_PASS_DAY)
|
||||
public class ConditionTimeVarPassDay extends BaseCondition {
|
||||
@Override
|
||||
public boolean execute(
|
||||
Player owner,
|
||||
QuestData questData,
|
||||
QuestData.QuestAcceptCondition condition,
|
||||
String paramStr,
|
||||
int... params) {
|
||||
val mainQuestId = condition.getParam()[0];
|
||||
val timeVarIndex = condition.getParam()[1];
|
||||
val minDays = condition.getParam()[2];
|
||||
|
||||
val mainQuest = owner.getQuestManager().getMainQuestById(mainQuestId);
|
||||
|
||||
if (mainQuest == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
val daysSinceTimeVar = mainQuest.getDaysSinceTimeVar(timeVarIndex);
|
||||
if (daysSinceTimeVar == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return daysSinceTimeVar >= minDays;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user