Add additional stuff for handling rogue npc dialogues

This commit is contained in:
Melledy
2023-10-29 13:13:53 -07:00
parent 3f6d83a052
commit 4e65fd6a7d
7 changed files with 821 additions and 82 deletions

View File

@@ -213,6 +213,14 @@ public class RogueInstance {
return nextRoom;
}
// Dialogue stuff
public void selectDialogue(int dialogueEventId) {
}
// Battle
public synchronized void onBattleStart(Battle battle) {
for (var buff : this.getBuffs().values()) {
battle.addBuff(buff.toMazeBuff());

View File

@@ -38,7 +38,8 @@ public class EntityNpc implements GameEntity {
// Rogue data
if (this.rogueNpcId > 0) {
var rogue = NpcRogueInfo.newInstance()
.setRogueNpcId(this.rogueNpcId);
.setRogueNpcId(this.rogueNpcId)
.setDialogueGroupId(1);
npc.getMutableExtraInfo().setRogueInfo(rogue);
}

View File

@@ -0,0 +1,24 @@
package emu.lunarcore.server.packet.recv;
import emu.lunarcore.proto.SelectRogueDialogueEventCsReqOuterClass.SelectRogueDialogueEventCsReq;
import emu.lunarcore.server.game.GameSession;
import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.server.packet.Opcodes;
import emu.lunarcore.server.packet.PacketHandler;
import emu.lunarcore.server.packet.send.PacketSelectRogueDialogueEventScRsp;
@Opcodes(CmdId.SelectRogueDialogueEventCsReq)
public class HandlerSelectRogueDialogueEventCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] data) throws Exception {
var req = SelectRogueDialogueEventCsReq.parseFrom(data);
if (session.getPlayer().getRogueInstance() != null) {
session.getPlayer().getRogueInstance().selectDialogue(req.getDialogueEventId());
}
session.send(new PacketSelectRogueDialogueEventScRsp(req.getDialogueEventId()));
}
}

View File

@@ -0,0 +1,17 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.proto.SelectRogueDialogueEventScRspOuterClass.SelectRogueDialogueEventScRsp;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.server.packet.CmdId;
public class PacketSelectRogueDialogueEventScRsp extends BasePacket {
public PacketSelectRogueDialogueEventScRsp(int dialogueEventId) {
super(CmdId.SelectRogueDialogueEventScRsp);
var data = SelectRogueDialogueEventScRsp.newInstance()
.setDialogueEventId(dialogueEventId);
this.setData(data);
}
}