Fix talking not progressing quests & Add talk execution handlers

This commit is contained in:
KingRainbow44
2023-05-02 22:13:30 -04:00
Unverified
parent 3ffa0a7478
commit 1c2bdff9dc
9 changed files with 202 additions and 1 deletions
@@ -0,0 +1,27 @@
package emu.grasscutter.game.talk.exec;
import emu.grasscutter.data.excels.TalkConfigData;
import emu.grasscutter.data.excels.TalkConfigData.TalkExecParam;
import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.quest.GameMainQuest;
import emu.grasscutter.game.talk.TalkExec;
import emu.grasscutter.game.talk.TalkExecHandler;
import emu.grasscutter.game.talk.TalkValueExec;
@TalkValueExec(TalkExec.TALK_EXEC_SET_QUEST_VAR)
public final class ExecSetQuestVar extends TalkExecHandler {
@Override
public void execute(Player player, TalkConfigData talkData, TalkExecParam execParam) {
if (execParam.getParam().length < 3) return;
var mainQuest = player.getQuestManager().getMainQuestById(
Integer.parseInt(execParam.getParam()[2])
);
if (mainQuest == null) return;
mainQuest.setQuestVar(
Integer.parseInt(execParam.getParam()[0]),
Integer.parseInt(execParam.getParam()[1])
);
}
}