Allow the player to finish dungeons

This commit is contained in:
Melledy
2022-04-29 00:49:05 -07:00
parent 8ab2b446cd
commit 72e9a21ce3
6 changed files with 40 additions and 3 deletions

View File

@@ -12,6 +12,7 @@ import emu.grasscutter.net.proto.VisionTypeOuterClass.VisionType;
import emu.grasscutter.scripts.constants.EventType;
import emu.grasscutter.scripts.data.SceneGroup;
import emu.grasscutter.scripts.data.SceneMonster;
import emu.grasscutter.server.packet.send.PacketChallengeDataNotify;
import emu.grasscutter.server.packet.send.PacketDungeonChallengeBeginNotify;
import emu.grasscutter.server.packet.send.PacketDungeonChallengeFinishNotify;
import emu.grasscutter.server.packet.send.PacketSceneEntityAppearNotify;
@@ -66,6 +67,10 @@ public class DungeonChallenge {
this.isSuccess = isSuccess;
}
public int getScore() {
return score;
}
public void start() {
getScene().broadcastPacket(new PacketDungeonChallengeBeginNotify(this));
}
@@ -81,9 +86,11 @@ public class DungeonChallenge {
}
public void onMonsterDie(EntityMonster entity) {
score++;
score = getScore() + 1;
if (score >= objective) {
getScene().broadcastPacket(new PacketChallengeDataNotify(this, 1, getScore()));
if (getScore() >= objective) {
this.setSuccess(true);
finish();
}

View File

@@ -44,6 +44,8 @@ public class DungeonManager {
return;
}
Grasscutter.getLogger().info(player.getNickname() + " is trying to enter dungeon " + dungeonId);
int sceneId = data.getSceneId();
player.getScene().setPrevScene(sceneId);