From c079e1707053d23b9a8348445a760e627ebb15dd Mon Sep 17 00:00:00 2001 From: Somebody Date: Fri, 2 Feb 2024 19:35:23 +0800 Subject: [PATCH] fix some events (most events are available) --- .../EnhanceRogueBuffCsReqOuterClass.java | 260 ++++++++++ .../EnhanceRogueBuffScRspOuterClass.java | 442 ++++++++++++++++ ...etRogueBuffEnhanceInfoScRspOuterClass.java | 364 +++++++++++++ .../proto/MEMPJPLINCNOuterClass.java | 480 ++++++++++++++++++ .../RogueActionResultDataOuterClass.java | 284 +++++++++-- .../proto/RogueBuffEnhanceInfoOuterClass.java | 443 ++++++++++++++++ .../RogueBuffEnhanceShopInfoOuterClass.java | 297 +++++++++++ .../proto/RogueDialogueEventOuterClass.java | 83 +-- .../proto/RogueVirtualItemDataOuterClass.java | 339 +++++++++++++ ...lectRogueDialogueEventScRspOuterClass.java | 142 +++++- .../java/emu/lunarcore/data/GameResource.java | 4 + .../emu/lunarcore/data/ResourceLoader.java | 48 +- .../data/config/RogueDialogueEventInfo.java | 39 ++ .../data/excel/DialogueEventExcel.java | 14 +- .../data/excel/RogueBuffGroupExcel.java | 26 +- .../game/rogue/RogueBuffSelectMenu.java | 23 +- .../game/rogue/RogueEntityLoader.java | 28 +- .../game/rogue/RogueEventManager.java | 40 +- .../lunarcore/game/rogue/RogueInstance.java | 159 +++++- .../game/scene/entity/EntityNpc.java | 4 +- .../recv/HandlerEnhanceRogueBuffCsReq.java | 20 + .../HandlerGetRogueBuffEnhanceInfoCsReq.java | 15 + ...ava => HandlerRogueNpcDisappearCsReq.java} | 2 +- .../HandlerSelectRogueDialogueEventCsReq.java | 17 +- .../send/PacketEnhanceRogueBuffScRsp.java | 18 + .../PacketGetRogueBuffEnhanceInfoScRsp.java | 42 ++ .../PacketSelectRogueDialogueEventScRsp.java | 38 +- ...etSyncRogueCommonActionResultScNotify.java | 10 +- ...tSyncRogueCommonPendingActionScNotify.java | 4 + ...ketSyncRogueDialogueEventDataScNotify.java | 6 +- 30 files changed, 3480 insertions(+), 211 deletions(-) create mode 100644 src/generated/main/emu/lunarcore/proto/EnhanceRogueBuffCsReqOuterClass.java create mode 100644 src/generated/main/emu/lunarcore/proto/EnhanceRogueBuffScRspOuterClass.java create mode 100644 src/generated/main/emu/lunarcore/proto/GetRogueBuffEnhanceInfoScRspOuterClass.java create mode 100644 src/generated/main/emu/lunarcore/proto/MEMPJPLINCNOuterClass.java create mode 100644 src/generated/main/emu/lunarcore/proto/RogueBuffEnhanceInfoOuterClass.java create mode 100644 src/generated/main/emu/lunarcore/proto/RogueBuffEnhanceShopInfoOuterClass.java create mode 100644 src/generated/main/emu/lunarcore/proto/RogueVirtualItemDataOuterClass.java create mode 100644 src/main/java/emu/lunarcore/data/config/RogueDialogueEventInfo.java create mode 100644 src/main/java/emu/lunarcore/server/packet/recv/HandlerEnhanceRogueBuffCsReq.java create mode 100644 src/main/java/emu/lunarcore/server/packet/recv/HandlerGetRogueBuffEnhanceInfoCsReq.java rename src/main/java/emu/lunarcore/server/packet/recv/{HandleRogueNpcDisappearCsReq.java => HandlerRogueNpcDisappearCsReq.java} (93%) create mode 100644 src/main/java/emu/lunarcore/server/packet/send/PacketEnhanceRogueBuffScRsp.java create mode 100644 src/main/java/emu/lunarcore/server/packet/send/PacketGetRogueBuffEnhanceInfoScRsp.java diff --git a/src/generated/main/emu/lunarcore/proto/EnhanceRogueBuffCsReqOuterClass.java b/src/generated/main/emu/lunarcore/proto/EnhanceRogueBuffCsReqOuterClass.java new file mode 100644 index 0000000..66e3fc1 --- /dev/null +++ b/src/generated/main/emu/lunarcore/proto/EnhanceRogueBuffCsReqOuterClass.java @@ -0,0 +1,260 @@ +// Code generated by protocol buffer compiler. Do not edit! +package emu.lunarcore.proto; + +import java.io.IOException; +import us.hebi.quickbuf.FieldName; +import us.hebi.quickbuf.InvalidProtocolBufferException; +import us.hebi.quickbuf.JsonSink; +import us.hebi.quickbuf.JsonSource; +import us.hebi.quickbuf.MessageFactory; +import us.hebi.quickbuf.ProtoMessage; +import us.hebi.quickbuf.ProtoSink; +import us.hebi.quickbuf.ProtoSource; + +public final class EnhanceRogueBuffCsReqOuterClass { + /** + * Protobuf type {@code EnhanceRogueBuffCsReq} + */ + public static final class EnhanceRogueBuffCsReq extends ProtoMessage implements Cloneable { + private static final long serialVersionUID = 0L; + + /** + * optional uint32 buff_id = 10; + */ + private int buffId; + + private EnhanceRogueBuffCsReq() { + } + + /** + * @return a new empty instance of {@code EnhanceRogueBuffCsReq} + */ + public static EnhanceRogueBuffCsReq newInstance() { + return new EnhanceRogueBuffCsReq(); + } + + /** + * optional uint32 buff_id = 10; + * @return whether the buffId field is set + */ + public boolean hasBuffId() { + return (bitField0_ & 0x00000001) != 0; + } + + /** + * optional uint32 buff_id = 10; + * @return this + */ + public EnhanceRogueBuffCsReq clearBuffId() { + bitField0_ &= ~0x00000001; + buffId = 0; + return this; + } + + /** + * optional uint32 buff_id = 10; + * @return the buffId + */ + public int getBuffId() { + return buffId; + } + + /** + * optional uint32 buff_id = 10; + * @param value the buffId to set + * @return this + */ + public EnhanceRogueBuffCsReq setBuffId(final int value) { + bitField0_ |= 0x00000001; + buffId = value; + return this; + } + + @Override + public EnhanceRogueBuffCsReq copyFrom(final EnhanceRogueBuffCsReq other) { + cachedSize = other.cachedSize; + if ((bitField0_ | other.bitField0_) != 0) { + bitField0_ = other.bitField0_; + buffId = other.buffId; + } + return this; + } + + @Override + public EnhanceRogueBuffCsReq mergeFrom(final EnhanceRogueBuffCsReq other) { + if (other.isEmpty()) { + return this; + } + cachedSize = -1; + if (other.hasBuffId()) { + setBuffId(other.buffId); + } + return this; + } + + @Override + public EnhanceRogueBuffCsReq clear() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + buffId = 0; + return this; + } + + @Override + public EnhanceRogueBuffCsReq clearQuick() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + return this; + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (!(o instanceof EnhanceRogueBuffCsReq)) { + return false; + } + EnhanceRogueBuffCsReq other = (EnhanceRogueBuffCsReq) o; + return bitField0_ == other.bitField0_ + && (!hasBuffId() || buffId == other.buffId); + } + + @Override + public void writeTo(final ProtoSink output) throws IOException { + if ((bitField0_ & 0x00000001) != 0) { + output.writeRawByte((byte) 80); + output.writeUInt32NoTag(buffId); + } + } + + @Override + protected int computeSerializedSize() { + int size = 0; + if ((bitField0_ & 0x00000001) != 0) { + size += 1 + ProtoSink.computeUInt32SizeNoTag(buffId); + } + return size; + } + + @Override + @SuppressWarnings("fallthrough") + public EnhanceRogueBuffCsReq mergeFrom(final ProtoSource input) throws IOException { + // Enabled Fall-Through Optimization (QuickBuffers) + int tag = input.readTag(); + while (true) { + switch (tag) { + case 80: { + // buffId + buffId = input.readUInt32(); + bitField0_ |= 0x00000001; + tag = input.readTag(); + if (tag != 0) { + break; + } + } + case 0: { + return this; + } + default: { + if (!input.skipField(tag)) { + return this; + } + tag = input.readTag(); + break; + } + } + } + } + + @Override + public void writeTo(final JsonSink output) throws IOException { + output.beginObject(); + if ((bitField0_ & 0x00000001) != 0) { + output.writeUInt32(FieldNames.buffId, buffId); + } + output.endObject(); + } + + @Override + public EnhanceRogueBuffCsReq mergeFrom(final JsonSource input) throws IOException { + if (!input.beginObject()) { + return this; + } + while (!input.isAtEnd()) { + switch (input.readFieldHash()) { + case -1378119474: + case 227990663: { + if (input.isAtField(FieldNames.buffId)) { + if (!input.trySkipNullValue()) { + buffId = input.readUInt32(); + bitField0_ |= 0x00000001; + } + } else { + input.skipUnknownField(); + } + break; + } + default: { + input.skipUnknownField(); + break; + } + } + } + input.endObject(); + return this; + } + + @Override + public EnhanceRogueBuffCsReq clone() { + return new EnhanceRogueBuffCsReq().copyFrom(this); + } + + @Override + public boolean isEmpty() { + return ((bitField0_) == 0); + } + + public static EnhanceRogueBuffCsReq parseFrom(final byte[] data) throws + InvalidProtocolBufferException { + return ProtoMessage.mergeFrom(new EnhanceRogueBuffCsReq(), data).checkInitialized(); + } + + public static EnhanceRogueBuffCsReq parseFrom(final ProtoSource input) throws IOException { + return ProtoMessage.mergeFrom(new EnhanceRogueBuffCsReq(), input).checkInitialized(); + } + + public static EnhanceRogueBuffCsReq parseFrom(final JsonSource input) throws IOException { + return ProtoMessage.mergeFrom(new EnhanceRogueBuffCsReq(), input).checkInitialized(); + } + + /** + * @return factory for creating EnhanceRogueBuffCsReq messages + */ + public static MessageFactory getFactory() { + return EnhanceRogueBuffCsReqFactory.INSTANCE; + } + + private enum EnhanceRogueBuffCsReqFactory implements MessageFactory { + INSTANCE; + + @Override + public EnhanceRogueBuffCsReq create() { + return EnhanceRogueBuffCsReq.newInstance(); + } + } + + /** + * Contains name constants used for serializing JSON + */ + static class FieldNames { + static final FieldName buffId = FieldName.forField("buffId", "buff_id"); + } + } +} diff --git a/src/generated/main/emu/lunarcore/proto/EnhanceRogueBuffScRspOuterClass.java b/src/generated/main/emu/lunarcore/proto/EnhanceRogueBuffScRspOuterClass.java new file mode 100644 index 0000000..64f5a2b --- /dev/null +++ b/src/generated/main/emu/lunarcore/proto/EnhanceRogueBuffScRspOuterClass.java @@ -0,0 +1,442 @@ +// Code generated by protocol buffer compiler. Do not edit! +package emu.lunarcore.proto; + +import java.io.IOException; +import us.hebi.quickbuf.FieldName; +import us.hebi.quickbuf.InvalidProtocolBufferException; +import us.hebi.quickbuf.JsonSink; +import us.hebi.quickbuf.JsonSource; +import us.hebi.quickbuf.MessageFactory; +import us.hebi.quickbuf.ProtoMessage; +import us.hebi.quickbuf.ProtoSink; +import us.hebi.quickbuf.ProtoSource; + +public final class EnhanceRogueBuffScRspOuterClass { + /** + * Protobuf type {@code EnhanceRogueBuffScRsp} + */ + public static final class EnhanceRogueBuffScRsp extends ProtoMessage implements Cloneable { + private static final long serialVersionUID = 0L; + + /** + * optional uint32 retcode = 15; + */ + private int retcode; + + /** + * optional bool is_success = 12; + */ + private boolean isSuccess; + + /** + * optional .RogueBuff rogue_buff = 6; + */ + private final RogueBuffOuterClass.RogueBuff rogueBuff = RogueBuffOuterClass.RogueBuff.newInstance(); + + private EnhanceRogueBuffScRsp() { + } + + /** + * @return a new empty instance of {@code EnhanceRogueBuffScRsp} + */ + public static EnhanceRogueBuffScRsp newInstance() { + return new EnhanceRogueBuffScRsp(); + } + + /** + * optional uint32 retcode = 15; + * @return whether the retcode field is set + */ + public boolean hasRetcode() { + return (bitField0_ & 0x00000001) != 0; + } + + /** + * optional uint32 retcode = 15; + * @return this + */ + public EnhanceRogueBuffScRsp clearRetcode() { + bitField0_ &= ~0x00000001; + retcode = 0; + return this; + } + + /** + * optional uint32 retcode = 15; + * @return the retcode + */ + public int getRetcode() { + return retcode; + } + + /** + * optional uint32 retcode = 15; + * @param value the retcode to set + * @return this + */ + public EnhanceRogueBuffScRsp setRetcode(final int value) { + bitField0_ |= 0x00000001; + retcode = value; + return this; + } + + /** + * optional bool is_success = 12; + * @return whether the isSuccess field is set + */ + public boolean hasIsSuccess() { + return (bitField0_ & 0x00000002) != 0; + } + + /** + * optional bool is_success = 12; + * @return this + */ + public EnhanceRogueBuffScRsp clearIsSuccess() { + bitField0_ &= ~0x00000002; + isSuccess = false; + return this; + } + + /** + * optional bool is_success = 12; + * @return the isSuccess + */ + public boolean getIsSuccess() { + return isSuccess; + } + + /** + * optional bool is_success = 12; + * @param value the isSuccess to set + * @return this + */ + public EnhanceRogueBuffScRsp setIsSuccess(final boolean value) { + bitField0_ |= 0x00000002; + isSuccess = value; + return this; + } + + /** + * optional .RogueBuff rogue_buff = 6; + * @return whether the rogueBuff field is set + */ + public boolean hasRogueBuff() { + return (bitField0_ & 0x00000004) != 0; + } + + /** + * optional .RogueBuff rogue_buff = 6; + * @return this + */ + public EnhanceRogueBuffScRsp clearRogueBuff() { + bitField0_ &= ~0x00000004; + rogueBuff.clear(); + return this; + } + + /** + * optional .RogueBuff rogue_buff = 6; + * + * This method returns the internal storage object without modifying any has state. + * The returned object should not be modified and be treated as read-only. + * + * Use {@link #getMutableRogueBuff()} if you want to modify it. + * + * @return internal storage object for reading + */ + public RogueBuffOuterClass.RogueBuff getRogueBuff() { + return rogueBuff; + } + + /** + * optional .RogueBuff rogue_buff = 6; + * + * This method returns the internal storage object and sets the corresponding + * has state. The returned object will become part of this message and its + * contents may be modified as long as the has state is not cleared. + * + * @return internal storage object for modifications + */ + public RogueBuffOuterClass.RogueBuff getMutableRogueBuff() { + bitField0_ |= 0x00000004; + return rogueBuff; + } + + /** + * optional .RogueBuff rogue_buff = 6; + * @param value the rogueBuff to set + * @return this + */ + public EnhanceRogueBuffScRsp setRogueBuff(final RogueBuffOuterClass.RogueBuff value) { + bitField0_ |= 0x00000004; + rogueBuff.copyFrom(value); + return this; + } + + @Override + public EnhanceRogueBuffScRsp copyFrom(final EnhanceRogueBuffScRsp other) { + cachedSize = other.cachedSize; + if ((bitField0_ | other.bitField0_) != 0) { + bitField0_ = other.bitField0_; + retcode = other.retcode; + isSuccess = other.isSuccess; + rogueBuff.copyFrom(other.rogueBuff); + } + return this; + } + + @Override + public EnhanceRogueBuffScRsp mergeFrom(final EnhanceRogueBuffScRsp other) { + if (other.isEmpty()) { + return this; + } + cachedSize = -1; + if (other.hasRetcode()) { + setRetcode(other.retcode); + } + if (other.hasIsSuccess()) { + setIsSuccess(other.isSuccess); + } + if (other.hasRogueBuff()) { + getMutableRogueBuff().mergeFrom(other.rogueBuff); + } + return this; + } + + @Override + public EnhanceRogueBuffScRsp clear() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + retcode = 0; + isSuccess = false; + rogueBuff.clear(); + return this; + } + + @Override + public EnhanceRogueBuffScRsp clearQuick() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + rogueBuff.clearQuick(); + return this; + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (!(o instanceof EnhanceRogueBuffScRsp)) { + return false; + } + EnhanceRogueBuffScRsp other = (EnhanceRogueBuffScRsp) o; + return bitField0_ == other.bitField0_ + && (!hasRetcode() || retcode == other.retcode) + && (!hasIsSuccess() || isSuccess == other.isSuccess) + && (!hasRogueBuff() || rogueBuff.equals(other.rogueBuff)); + } + + @Override + public void writeTo(final ProtoSink output) throws IOException { + if ((bitField0_ & 0x00000001) != 0) { + output.writeRawByte((byte) 120); + output.writeUInt32NoTag(retcode); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeRawByte((byte) 96); + output.writeBoolNoTag(isSuccess); + } + if ((bitField0_ & 0x00000004) != 0) { + output.writeRawByte((byte) 50); + output.writeMessageNoTag(rogueBuff); + } + } + + @Override + protected int computeSerializedSize() { + int size = 0; + if ((bitField0_ & 0x00000001) != 0) { + size += 1 + ProtoSink.computeUInt32SizeNoTag(retcode); + } + if ((bitField0_ & 0x00000002) != 0) { + size += 2; + } + if ((bitField0_ & 0x00000004) != 0) { + size += 1 + ProtoSink.computeMessageSizeNoTag(rogueBuff); + } + return size; + } + + @Override + @SuppressWarnings("fallthrough") + public EnhanceRogueBuffScRsp mergeFrom(final ProtoSource input) throws IOException { + // Enabled Fall-Through Optimization (QuickBuffers) + int tag = input.readTag(); + while (true) { + switch (tag) { + case 120: { + // retcode + retcode = input.readUInt32(); + bitField0_ |= 0x00000001; + tag = input.readTag(); + if (tag != 96) { + break; + } + } + case 96: { + // isSuccess + isSuccess = input.readBool(); + bitField0_ |= 0x00000002; + tag = input.readTag(); + if (tag != 50) { + break; + } + } + case 50: { + // rogueBuff + input.readMessage(rogueBuff); + bitField0_ |= 0x00000004; + tag = input.readTag(); + if (tag != 0) { + break; + } + } + case 0: { + return this; + } + default: { + if (!input.skipField(tag)) { + return this; + } + tag = input.readTag(); + break; + } + } + } + } + + @Override + public void writeTo(final JsonSink output) throws IOException { + output.beginObject(); + if ((bitField0_ & 0x00000001) != 0) { + output.writeUInt32(FieldNames.retcode, retcode); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeBool(FieldNames.isSuccess, isSuccess); + } + if ((bitField0_ & 0x00000004) != 0) { + output.writeMessage(FieldNames.rogueBuff, rogueBuff); + } + output.endObject(); + } + + @Override + public EnhanceRogueBuffScRsp mergeFrom(final JsonSource input) throws IOException { + if (!input.beginObject()) { + return this; + } + while (!input.isAtEnd()) { + switch (input.readFieldHash()) { + case 1097936398: { + if (input.isAtField(FieldNames.retcode)) { + if (!input.trySkipNullValue()) { + retcode = input.readUInt32(); + bitField0_ |= 0x00000001; + } + } else { + input.skipUnknownField(); + } + break; + } + case 1848018809: + case -366859794: { + if (input.isAtField(FieldNames.isSuccess)) { + if (!input.trySkipNullValue()) { + isSuccess = input.readBool(); + bitField0_ |= 0x00000002; + } + } else { + input.skipUnknownField(); + } + break; + } + case 655607117: + case -1124785256: { + if (input.isAtField(FieldNames.rogueBuff)) { + if (!input.trySkipNullValue()) { + input.readMessage(rogueBuff); + bitField0_ |= 0x00000004; + } + } else { + input.skipUnknownField(); + } + break; + } + default: { + input.skipUnknownField(); + break; + } + } + } + input.endObject(); + return this; + } + + @Override + public EnhanceRogueBuffScRsp clone() { + return new EnhanceRogueBuffScRsp().copyFrom(this); + } + + @Override + public boolean isEmpty() { + return ((bitField0_) == 0); + } + + public static EnhanceRogueBuffScRsp parseFrom(final byte[] data) throws + InvalidProtocolBufferException { + return ProtoMessage.mergeFrom(new EnhanceRogueBuffScRsp(), data).checkInitialized(); + } + + public static EnhanceRogueBuffScRsp parseFrom(final ProtoSource input) throws IOException { + return ProtoMessage.mergeFrom(new EnhanceRogueBuffScRsp(), input).checkInitialized(); + } + + public static EnhanceRogueBuffScRsp parseFrom(final JsonSource input) throws IOException { + return ProtoMessage.mergeFrom(new EnhanceRogueBuffScRsp(), input).checkInitialized(); + } + + /** + * @return factory for creating EnhanceRogueBuffScRsp messages + */ + public static MessageFactory getFactory() { + return EnhanceRogueBuffScRspFactory.INSTANCE; + } + + private enum EnhanceRogueBuffScRspFactory implements MessageFactory { + INSTANCE; + + @Override + public EnhanceRogueBuffScRsp create() { + return EnhanceRogueBuffScRsp.newInstance(); + } + } + + /** + * Contains name constants used for serializing JSON + */ + static class FieldNames { + static final FieldName retcode = FieldName.forField("retcode"); + + static final FieldName isSuccess = FieldName.forField("isSuccess", "is_success"); + + static final FieldName rogueBuff = FieldName.forField("rogueBuff", "rogue_buff"); + } + } +} diff --git a/src/generated/main/emu/lunarcore/proto/GetRogueBuffEnhanceInfoScRspOuterClass.java b/src/generated/main/emu/lunarcore/proto/GetRogueBuffEnhanceInfoScRspOuterClass.java new file mode 100644 index 0000000..aed652a --- /dev/null +++ b/src/generated/main/emu/lunarcore/proto/GetRogueBuffEnhanceInfoScRspOuterClass.java @@ -0,0 +1,364 @@ +// Code generated by protocol buffer compiler. Do not edit! +package emu.lunarcore.proto; + +import java.io.IOException; +import us.hebi.quickbuf.FieldName; +import us.hebi.quickbuf.InvalidProtocolBufferException; +import us.hebi.quickbuf.JsonSink; +import us.hebi.quickbuf.JsonSource; +import us.hebi.quickbuf.MessageFactory; +import us.hebi.quickbuf.ProtoMessage; +import us.hebi.quickbuf.ProtoSink; +import us.hebi.quickbuf.ProtoSource; + +public final class GetRogueBuffEnhanceInfoScRspOuterClass { + /** + * Protobuf type {@code GetRogueBuffEnhanceInfoScRsp} + */ + public static final class GetRogueBuffEnhanceInfoScRsp extends ProtoMessage implements Cloneable { + private static final long serialVersionUID = 0L; + + /** + * optional uint32 retcode = 10; + */ + private int retcode; + + /** + * optional .RogueBuffEnhanceShopInfo shop_info = 4; + */ + private final RogueBuffEnhanceShopInfoOuterClass.RogueBuffEnhanceShopInfo shopInfo = RogueBuffEnhanceShopInfoOuterClass.RogueBuffEnhanceShopInfo.newInstance(); + + private GetRogueBuffEnhanceInfoScRsp() { + } + + /** + * @return a new empty instance of {@code GetRogueBuffEnhanceInfoScRsp} + */ + public static GetRogueBuffEnhanceInfoScRsp newInstance() { + return new GetRogueBuffEnhanceInfoScRsp(); + } + + /** + * optional uint32 retcode = 10; + * @return whether the retcode field is set + */ + public boolean hasRetcode() { + return (bitField0_ & 0x00000001) != 0; + } + + /** + * optional uint32 retcode = 10; + * @return this + */ + public GetRogueBuffEnhanceInfoScRsp clearRetcode() { + bitField0_ &= ~0x00000001; + retcode = 0; + return this; + } + + /** + * optional uint32 retcode = 10; + * @return the retcode + */ + public int getRetcode() { + return retcode; + } + + /** + * optional uint32 retcode = 10; + * @param value the retcode to set + * @return this + */ + public GetRogueBuffEnhanceInfoScRsp setRetcode(final int value) { + bitField0_ |= 0x00000001; + retcode = value; + return this; + } + + /** + * optional .RogueBuffEnhanceShopInfo shop_info = 4; + * @return whether the shopInfo field is set + */ + public boolean hasShopInfo() { + return (bitField0_ & 0x00000002) != 0; + } + + /** + * optional .RogueBuffEnhanceShopInfo shop_info = 4; + * @return this + */ + public GetRogueBuffEnhanceInfoScRsp clearShopInfo() { + bitField0_ &= ~0x00000002; + shopInfo.clear(); + return this; + } + + /** + * optional .RogueBuffEnhanceShopInfo shop_info = 4; + * + * This method returns the internal storage object without modifying any has state. + * The returned object should not be modified and be treated as read-only. + * + * Use {@link #getMutableShopInfo()} if you want to modify it. + * + * @return internal storage object for reading + */ + public RogueBuffEnhanceShopInfoOuterClass.RogueBuffEnhanceShopInfo getShopInfo() { + return shopInfo; + } + + /** + * optional .RogueBuffEnhanceShopInfo shop_info = 4; + * + * This method returns the internal storage object and sets the corresponding + * has state. The returned object will become part of this message and its + * contents may be modified as long as the has state is not cleared. + * + * @return internal storage object for modifications + */ + public RogueBuffEnhanceShopInfoOuterClass.RogueBuffEnhanceShopInfo getMutableShopInfo() { + bitField0_ |= 0x00000002; + return shopInfo; + } + + /** + * optional .RogueBuffEnhanceShopInfo shop_info = 4; + * @param value the shopInfo to set + * @return this + */ + public GetRogueBuffEnhanceInfoScRsp setShopInfo( + final RogueBuffEnhanceShopInfoOuterClass.RogueBuffEnhanceShopInfo value) { + bitField0_ |= 0x00000002; + shopInfo.copyFrom(value); + return this; + } + + @Override + public GetRogueBuffEnhanceInfoScRsp copyFrom(final GetRogueBuffEnhanceInfoScRsp other) { + cachedSize = other.cachedSize; + if ((bitField0_ | other.bitField0_) != 0) { + bitField0_ = other.bitField0_; + retcode = other.retcode; + shopInfo.copyFrom(other.shopInfo); + } + return this; + } + + @Override + public GetRogueBuffEnhanceInfoScRsp mergeFrom(final GetRogueBuffEnhanceInfoScRsp other) { + if (other.isEmpty()) { + return this; + } + cachedSize = -1; + if (other.hasRetcode()) { + setRetcode(other.retcode); + } + if (other.hasShopInfo()) { + getMutableShopInfo().mergeFrom(other.shopInfo); + } + return this; + } + + @Override + public GetRogueBuffEnhanceInfoScRsp clear() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + retcode = 0; + shopInfo.clear(); + return this; + } + + @Override + public GetRogueBuffEnhanceInfoScRsp clearQuick() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + shopInfo.clearQuick(); + return this; + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (!(o instanceof GetRogueBuffEnhanceInfoScRsp)) { + return false; + } + GetRogueBuffEnhanceInfoScRsp other = (GetRogueBuffEnhanceInfoScRsp) o; + return bitField0_ == other.bitField0_ + && (!hasRetcode() || retcode == other.retcode) + && (!hasShopInfo() || shopInfo.equals(other.shopInfo)); + } + + @Override + public void writeTo(final ProtoSink output) throws IOException { + if ((bitField0_ & 0x00000001) != 0) { + output.writeRawByte((byte) 80); + output.writeUInt32NoTag(retcode); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeRawByte((byte) 34); + output.writeMessageNoTag(shopInfo); + } + } + + @Override + protected int computeSerializedSize() { + int size = 0; + if ((bitField0_ & 0x00000001) != 0) { + size += 1 + ProtoSink.computeUInt32SizeNoTag(retcode); + } + if ((bitField0_ & 0x00000002) != 0) { + size += 1 + ProtoSink.computeMessageSizeNoTag(shopInfo); + } + return size; + } + + @Override + @SuppressWarnings("fallthrough") + public GetRogueBuffEnhanceInfoScRsp mergeFrom(final ProtoSource input) throws IOException { + // Enabled Fall-Through Optimization (QuickBuffers) + int tag = input.readTag(); + while (true) { + switch (tag) { + case 80: { + // retcode + retcode = input.readUInt32(); + bitField0_ |= 0x00000001; + tag = input.readTag(); + if (tag != 34) { + break; + } + } + case 34: { + // shopInfo + input.readMessage(shopInfo); + bitField0_ |= 0x00000002; + tag = input.readTag(); + if (tag != 0) { + break; + } + } + case 0: { + return this; + } + default: { + if (!input.skipField(tag)) { + return this; + } + tag = input.readTag(); + break; + } + } + } + } + + @Override + public void writeTo(final JsonSink output) throws IOException { + output.beginObject(); + if ((bitField0_ & 0x00000001) != 0) { + output.writeUInt32(FieldNames.retcode, retcode); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeMessage(FieldNames.shopInfo, shopInfo); + } + output.endObject(); + } + + @Override + public GetRogueBuffEnhanceInfoScRsp mergeFrom(final JsonSource input) throws IOException { + if (!input.beginObject()) { + return this; + } + while (!input.isAtEnd()) { + switch (input.readFieldHash()) { + case 1097936398: { + if (input.isAtField(FieldNames.retcode)) { + if (!input.trySkipNullValue()) { + retcode = input.readUInt32(); + bitField0_ |= 0x00000001; + } + } else { + input.skipUnknownField(); + } + break; + } + case -345618236: + case -2104054697: { + if (input.isAtField(FieldNames.shopInfo)) { + if (!input.trySkipNullValue()) { + input.readMessage(shopInfo); + bitField0_ |= 0x00000002; + } + } else { + input.skipUnknownField(); + } + break; + } + default: { + input.skipUnknownField(); + break; + } + } + } + input.endObject(); + return this; + } + + @Override + public GetRogueBuffEnhanceInfoScRsp clone() { + return new GetRogueBuffEnhanceInfoScRsp().copyFrom(this); + } + + @Override + public boolean isEmpty() { + return ((bitField0_) == 0); + } + + public static GetRogueBuffEnhanceInfoScRsp parseFrom(final byte[] data) throws + InvalidProtocolBufferException { + return ProtoMessage.mergeFrom(new GetRogueBuffEnhanceInfoScRsp(), data).checkInitialized(); + } + + public static GetRogueBuffEnhanceInfoScRsp parseFrom(final ProtoSource input) throws + IOException { + return ProtoMessage.mergeFrom(new GetRogueBuffEnhanceInfoScRsp(), input).checkInitialized(); + } + + public static GetRogueBuffEnhanceInfoScRsp parseFrom(final JsonSource input) throws + IOException { + return ProtoMessage.mergeFrom(new GetRogueBuffEnhanceInfoScRsp(), input).checkInitialized(); + } + + /** + * @return factory for creating GetRogueBuffEnhanceInfoScRsp messages + */ + public static MessageFactory getFactory() { + return GetRogueBuffEnhanceInfoScRspFactory.INSTANCE; + } + + private enum GetRogueBuffEnhanceInfoScRspFactory implements MessageFactory { + INSTANCE; + + @Override + public GetRogueBuffEnhanceInfoScRsp create() { + return GetRogueBuffEnhanceInfoScRsp.newInstance(); + } + } + + /** + * Contains name constants used for serializing JSON + */ + static class FieldNames { + static final FieldName retcode = FieldName.forField("retcode"); + + static final FieldName shopInfo = FieldName.forField("shopInfo", "shop_info"); + } + } +} diff --git a/src/generated/main/emu/lunarcore/proto/MEMPJPLINCNOuterClass.java b/src/generated/main/emu/lunarcore/proto/MEMPJPLINCNOuterClass.java new file mode 100644 index 0000000..7bcaed2 --- /dev/null +++ b/src/generated/main/emu/lunarcore/proto/MEMPJPLINCNOuterClass.java @@ -0,0 +1,480 @@ +// Code generated by protocol buffer compiler. Do not edit! +package emu.lunarcore.proto; + +import java.io.IOException; +import us.hebi.quickbuf.FieldName; +import us.hebi.quickbuf.InvalidProtocolBufferException; +import us.hebi.quickbuf.JsonSink; +import us.hebi.quickbuf.JsonSource; +import us.hebi.quickbuf.MessageFactory; +import us.hebi.quickbuf.ProtoMessage; +import us.hebi.quickbuf.ProtoSink; +import us.hebi.quickbuf.ProtoSource; +import us.hebi.quickbuf.RepeatedInt; + +public final class MEMPJPLINCNOuterClass { + /** + * Protobuf type {@code MEMPJPLINCN} + */ + public static final class MEMPJPLINCN extends ProtoMessage implements Cloneable { + private static final long serialVersionUID = 0L; + + /** + * optional uint32 HFHKBMGBJAN = 15; + */ + private int hFHKBMGBJAN; + + /** + * optional .ItemList NHCHCBBLKBK = 6; + */ + private final ItemListOuterClass.ItemList nHCHCBBLKBK = ItemListOuterClass.ItemList.newInstance(); + + /** + * repeated uint32 BLGIMDCNDHJ = 5; + */ + private final RepeatedInt bLGIMDCNDHJ = RepeatedInt.newEmptyInstance(); + + private MEMPJPLINCN() { + } + + /** + * @return a new empty instance of {@code MEMPJPLINCN} + */ + public static MEMPJPLINCN newInstance() { + return new MEMPJPLINCN(); + } + + /** + * optional uint32 HFHKBMGBJAN = 15; + * @return whether the hFHKBMGBJAN field is set + */ + public boolean hasHFHKBMGBJAN() { + return (bitField0_ & 0x00000001) != 0; + } + + /** + * optional uint32 HFHKBMGBJAN = 15; + * @return this + */ + public MEMPJPLINCN clearHFHKBMGBJAN() { + bitField0_ &= ~0x00000001; + hFHKBMGBJAN = 0; + return this; + } + + /** + * optional uint32 HFHKBMGBJAN = 15; + * @return the hFHKBMGBJAN + */ + public int getHFHKBMGBJAN() { + return hFHKBMGBJAN; + } + + /** + * optional uint32 HFHKBMGBJAN = 15; + * @param value the hFHKBMGBJAN to set + * @return this + */ + public MEMPJPLINCN setHFHKBMGBJAN(final int value) { + bitField0_ |= 0x00000001; + hFHKBMGBJAN = value; + return this; + } + + /** + * optional .ItemList NHCHCBBLKBK = 6; + * @return whether the nHCHCBBLKBK field is set + */ + public boolean hasNHCHCBBLKBK() { + return (bitField0_ & 0x00000002) != 0; + } + + /** + * optional .ItemList NHCHCBBLKBK = 6; + * @return this + */ + public MEMPJPLINCN clearNHCHCBBLKBK() { + bitField0_ &= ~0x00000002; + nHCHCBBLKBK.clear(); + return this; + } + + /** + * optional .ItemList NHCHCBBLKBK = 6; + * + * This method returns the internal storage object without modifying any has state. + * The returned object should not be modified and be treated as read-only. + * + * Use {@link #getMutableNHCHCBBLKBK()} if you want to modify it. + * + * @return internal storage object for reading + */ + public ItemListOuterClass.ItemList getNHCHCBBLKBK() { + return nHCHCBBLKBK; + } + + /** + * optional .ItemList NHCHCBBLKBK = 6; + * + * This method returns the internal storage object and sets the corresponding + * has state. The returned object will become part of this message and its + * contents may be modified as long as the has state is not cleared. + * + * @return internal storage object for modifications + */ + public ItemListOuterClass.ItemList getMutableNHCHCBBLKBK() { + bitField0_ |= 0x00000002; + return nHCHCBBLKBK; + } + + /** + * optional .ItemList NHCHCBBLKBK = 6; + * @param value the nHCHCBBLKBK to set + * @return this + */ + public MEMPJPLINCN setNHCHCBBLKBK(final ItemListOuterClass.ItemList value) { + bitField0_ |= 0x00000002; + nHCHCBBLKBK.copyFrom(value); + return this; + } + + /** + * repeated uint32 BLGIMDCNDHJ = 5; + * @return whether the bLGIMDCNDHJ field is set + */ + public boolean hasBLGIMDCNDHJ() { + return (bitField0_ & 0x00000004) != 0; + } + + /** + * repeated uint32 BLGIMDCNDHJ = 5; + * @return this + */ + public MEMPJPLINCN clearBLGIMDCNDHJ() { + bitField0_ &= ~0x00000004; + bLGIMDCNDHJ.clear(); + return this; + } + + /** + * repeated uint32 BLGIMDCNDHJ = 5; + * + * This method returns the internal storage object without modifying any has state. + * The returned object should not be modified and be treated as read-only. + * + * Use {@link #getMutableBLGIMDCNDHJ()} if you want to modify it. + * + * @return internal storage object for reading + */ + public RepeatedInt getBLGIMDCNDHJ() { + return bLGIMDCNDHJ; + } + + /** + * repeated uint32 BLGIMDCNDHJ = 5; + * + * This method returns the internal storage object and sets the corresponding + * has state. The returned object will become part of this message and its + * contents may be modified as long as the has state is not cleared. + * + * @return internal storage object for modifications + */ + public RepeatedInt getMutableBLGIMDCNDHJ() { + bitField0_ |= 0x00000004; + return bLGIMDCNDHJ; + } + + /** + * repeated uint32 BLGIMDCNDHJ = 5; + * @param value the bLGIMDCNDHJ to add + * @return this + */ + public MEMPJPLINCN addBLGIMDCNDHJ(final int value) { + bitField0_ |= 0x00000004; + bLGIMDCNDHJ.add(value); + return this; + } + + /** + * repeated uint32 BLGIMDCNDHJ = 5; + * @param values the bLGIMDCNDHJ to add + * @return this + */ + public MEMPJPLINCN addAllBLGIMDCNDHJ(final int... values) { + bitField0_ |= 0x00000004; + bLGIMDCNDHJ.addAll(values); + return this; + } + + @Override + public MEMPJPLINCN copyFrom(final MEMPJPLINCN other) { + cachedSize = other.cachedSize; + if ((bitField0_ | other.bitField0_) != 0) { + bitField0_ = other.bitField0_; + hFHKBMGBJAN = other.hFHKBMGBJAN; + nHCHCBBLKBK.copyFrom(other.nHCHCBBLKBK); + bLGIMDCNDHJ.copyFrom(other.bLGIMDCNDHJ); + } + return this; + } + + @Override + public MEMPJPLINCN mergeFrom(final MEMPJPLINCN other) { + if (other.isEmpty()) { + return this; + } + cachedSize = -1; + if (other.hasHFHKBMGBJAN()) { + setHFHKBMGBJAN(other.hFHKBMGBJAN); + } + if (other.hasNHCHCBBLKBK()) { + getMutableNHCHCBBLKBK().mergeFrom(other.nHCHCBBLKBK); + } + if (other.hasBLGIMDCNDHJ()) { + getMutableBLGIMDCNDHJ().addAll(other.bLGIMDCNDHJ); + } + return this; + } + + @Override + public MEMPJPLINCN clear() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + hFHKBMGBJAN = 0; + nHCHCBBLKBK.clear(); + bLGIMDCNDHJ.clear(); + return this; + } + + @Override + public MEMPJPLINCN clearQuick() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + nHCHCBBLKBK.clearQuick(); + bLGIMDCNDHJ.clear(); + return this; + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (!(o instanceof MEMPJPLINCN)) { + return false; + } + MEMPJPLINCN other = (MEMPJPLINCN) o; + return bitField0_ == other.bitField0_ + && (!hasHFHKBMGBJAN() || hFHKBMGBJAN == other.hFHKBMGBJAN) + && (!hasNHCHCBBLKBK() || nHCHCBBLKBK.equals(other.nHCHCBBLKBK)) + && (!hasBLGIMDCNDHJ() || bLGIMDCNDHJ.equals(other.bLGIMDCNDHJ)); + } + + @Override + public void writeTo(final ProtoSink output) throws IOException { + if ((bitField0_ & 0x00000001) != 0) { + output.writeRawByte((byte) 120); + output.writeUInt32NoTag(hFHKBMGBJAN); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeRawByte((byte) 50); + output.writeMessageNoTag(nHCHCBBLKBK); + } + if ((bitField0_ & 0x00000004) != 0) { + for (int i = 0; i < bLGIMDCNDHJ.length(); i++) { + output.writeRawByte((byte) 40); + output.writeUInt32NoTag(bLGIMDCNDHJ.array()[i]); + } + } + } + + @Override + protected int computeSerializedSize() { + int size = 0; + if ((bitField0_ & 0x00000001) != 0) { + size += 1 + ProtoSink.computeUInt32SizeNoTag(hFHKBMGBJAN); + } + if ((bitField0_ & 0x00000002) != 0) { + size += 1 + ProtoSink.computeMessageSizeNoTag(nHCHCBBLKBK); + } + if ((bitField0_ & 0x00000004) != 0) { + size += (1 * bLGIMDCNDHJ.length()) + ProtoSink.computeRepeatedUInt32SizeNoTag(bLGIMDCNDHJ); + } + return size; + } + + @Override + @SuppressWarnings("fallthrough") + public MEMPJPLINCN mergeFrom(final ProtoSource input) throws IOException { + // Enabled Fall-Through Optimization (QuickBuffers) + int tag = input.readTag(); + while (true) { + switch (tag) { + case 120: { + // hFHKBMGBJAN + hFHKBMGBJAN = input.readUInt32(); + bitField0_ |= 0x00000001; + tag = input.readTag(); + if (tag != 50) { + break; + } + } + case 50: { + // nHCHCBBLKBK + input.readMessage(nHCHCBBLKBK); + bitField0_ |= 0x00000002; + tag = input.readTag(); + if (tag != 42) { + break; + } + } + case 42: { + // bLGIMDCNDHJ [packed=true] + input.readPackedUInt32(bLGIMDCNDHJ, tag); + bitField0_ |= 0x00000004; + tag = input.readTag(); + if (tag != 0) { + break; + } + } + case 0: { + return this; + } + default: { + if (!input.skipField(tag)) { + return this; + } + tag = input.readTag(); + break; + } + case 40: { + // bLGIMDCNDHJ [packed=false] + tag = input.readRepeatedUInt32(bLGIMDCNDHJ, tag); + bitField0_ |= 0x00000004; + break; + } + } + } + } + + @Override + public void writeTo(final JsonSink output) throws IOException { + output.beginObject(); + if ((bitField0_ & 0x00000001) != 0) { + output.writeUInt32(FieldNames.hFHKBMGBJAN, hFHKBMGBJAN); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeMessage(FieldNames.nHCHCBBLKBK, nHCHCBBLKBK); + } + if ((bitField0_ & 0x00000004) != 0) { + output.writeRepeatedUInt32(FieldNames.bLGIMDCNDHJ, bLGIMDCNDHJ); + } + output.endObject(); + } + + @Override + public MEMPJPLINCN mergeFrom(final JsonSource input) throws IOException { + if (!input.beginObject()) { + return this; + } + while (!input.isAtEnd()) { + switch (input.readFieldHash()) { + case -110713808: { + if (input.isAtField(FieldNames.hFHKBMGBJAN)) { + if (!input.trySkipNullValue()) { + hFHKBMGBJAN = input.readUInt32(); + bitField0_ |= 0x00000001; + } + } else { + input.skipUnknownField(); + } + break; + } + case 1681591244: { + if (input.isAtField(FieldNames.nHCHCBBLKBK)) { + if (!input.trySkipNullValue()) { + input.readMessage(nHCHCBBLKBK); + bitField0_ |= 0x00000002; + } + } else { + input.skipUnknownField(); + } + break; + } + case 135413912: { + if (input.isAtField(FieldNames.bLGIMDCNDHJ)) { + if (!input.trySkipNullValue()) { + input.readRepeatedUInt32(bLGIMDCNDHJ); + bitField0_ |= 0x00000004; + } + } else { + input.skipUnknownField(); + } + break; + } + default: { + input.skipUnknownField(); + break; + } + } + } + input.endObject(); + return this; + } + + @Override + public MEMPJPLINCN clone() { + return new MEMPJPLINCN().copyFrom(this); + } + + @Override + public boolean isEmpty() { + return ((bitField0_) == 0); + } + + public static MEMPJPLINCN parseFrom(final byte[] data) throws InvalidProtocolBufferException { + return ProtoMessage.mergeFrom(new MEMPJPLINCN(), data).checkInitialized(); + } + + public static MEMPJPLINCN parseFrom(final ProtoSource input) throws IOException { + return ProtoMessage.mergeFrom(new MEMPJPLINCN(), input).checkInitialized(); + } + + public static MEMPJPLINCN parseFrom(final JsonSource input) throws IOException { + return ProtoMessage.mergeFrom(new MEMPJPLINCN(), input).checkInitialized(); + } + + /** + * @return factory for creating MEMPJPLINCN messages + */ + public static MessageFactory getFactory() { + return MEMPJPLINCNFactory.INSTANCE; + } + + private enum MEMPJPLINCNFactory implements MessageFactory { + INSTANCE; + + @Override + public MEMPJPLINCN create() { + return MEMPJPLINCN.newInstance(); + } + } + + /** + * Contains name constants used for serializing JSON + */ + static class FieldNames { + static final FieldName hFHKBMGBJAN = FieldName.forField("HFHKBMGBJAN"); + + static final FieldName nHCHCBBLKBK = FieldName.forField("NHCHCBBLKBK"); + + static final FieldName bLGIMDCNDHJ = FieldName.forField("BLGIMDCNDHJ"); + } + } +} diff --git a/src/generated/main/emu/lunarcore/proto/RogueActionResultDataOuterClass.java b/src/generated/main/emu/lunarcore/proto/RogueActionResultDataOuterClass.java index b9e0e13..22b7c21 100644 --- a/src/generated/main/emu/lunarcore/proto/RogueActionResultDataOuterClass.java +++ b/src/generated/main/emu/lunarcore/proto/RogueActionResultDataOuterClass.java @@ -18,6 +18,16 @@ public final class RogueActionResultDataOuterClass { public static final class RogueActionResultData extends ProtoMessage implements Cloneable { private static final long serialVersionUID = 0L; + /** + * optional .RogueVirtualItemData remove_item_list = 11; + */ + private final RogueVirtualItemDataOuterClass.RogueVirtualItemData removeItemList = RogueVirtualItemDataOuterClass.RogueVirtualItemData.newInstance(); + + /** + * optional .RogueVirtualItemData add_item_list = 12; + */ + private final RogueVirtualItemDataOuterClass.RogueVirtualItemData addItemList = RogueVirtualItemDataOuterClass.RogueVirtualItemData.newInstance(); + /** *
      * MCFPILGOKJL LBHBDGKKJIJ = 167;
@@ -33,11 +43,6 @@ public final class RogueActionResultDataOuterClass {
     private final RogueMiracleDataOuterClass.RogueMiracleData addMiracleList = RogueMiracleDataOuterClass.RogueMiracleData.newInstance();
 
     /**
-     * 
-     * EMDFCFEMMKJ NMEKCEBDBLP = 12;
-     * EMDFCFEMMKJ DMBEFNHGHDG = 11;
-     * 
- * * optional .RogueBuffData add_buff_list = 319; */ private final RogueBuffDataOuterClass.RogueBuffData addBuffList = RogueBuffDataOuterClass.RogueBuffData.newInstance(); @@ -57,6 +62,122 @@ public final class RogueActionResultDataOuterClass { return new RogueActionResultData(); } + /** + * optional .RogueVirtualItemData remove_item_list = 11; + * @return whether the removeItemList field is set + */ + public boolean hasRemoveItemList() { + return (bitField0_ & 0x00000001) != 0; + } + + /** + * optional .RogueVirtualItemData remove_item_list = 11; + * @return this + */ + public RogueActionResultData clearRemoveItemList() { + bitField0_ &= ~0x00000001; + removeItemList.clear(); + return this; + } + + /** + * optional .RogueVirtualItemData remove_item_list = 11; + * + * This method returns the internal storage object without modifying any has state. + * The returned object should not be modified and be treated as read-only. + * + * Use {@link #getMutableRemoveItemList()} if you want to modify it. + * + * @return internal storage object for reading + */ + public RogueVirtualItemDataOuterClass.RogueVirtualItemData getRemoveItemList() { + return removeItemList; + } + + /** + * optional .RogueVirtualItemData remove_item_list = 11; + * + * This method returns the internal storage object and sets the corresponding + * has state. The returned object will become part of this message and its + * contents may be modified as long as the has state is not cleared. + * + * @return internal storage object for modifications + */ + public RogueVirtualItemDataOuterClass.RogueVirtualItemData getMutableRemoveItemList() { + bitField0_ |= 0x00000001; + return removeItemList; + } + + /** + * optional .RogueVirtualItemData remove_item_list = 11; + * @param value the removeItemList to set + * @return this + */ + public RogueActionResultData setRemoveItemList( + final RogueVirtualItemDataOuterClass.RogueVirtualItemData value) { + bitField0_ |= 0x00000001; + removeItemList.copyFrom(value); + return this; + } + + /** + * optional .RogueVirtualItemData add_item_list = 12; + * @return whether the addItemList field is set + */ + public boolean hasAddItemList() { + return (bitField0_ & 0x00000002) != 0; + } + + /** + * optional .RogueVirtualItemData add_item_list = 12; + * @return this + */ + public RogueActionResultData clearAddItemList() { + bitField0_ &= ~0x00000002; + addItemList.clear(); + return this; + } + + /** + * optional .RogueVirtualItemData add_item_list = 12; + * + * This method returns the internal storage object without modifying any has state. + * The returned object should not be modified and be treated as read-only. + * + * Use {@link #getMutableAddItemList()} if you want to modify it. + * + * @return internal storage object for reading + */ + public RogueVirtualItemDataOuterClass.RogueVirtualItemData getAddItemList() { + return addItemList; + } + + /** + * optional .RogueVirtualItemData add_item_list = 12; + * + * This method returns the internal storage object and sets the corresponding + * has state. The returned object will become part of this message and its + * contents may be modified as long as the has state is not cleared. + * + * @return internal storage object for modifications + */ + public RogueVirtualItemDataOuterClass.RogueVirtualItemData getMutableAddItemList() { + bitField0_ |= 0x00000002; + return addItemList; + } + + /** + * optional .RogueVirtualItemData add_item_list = 12; + * @param value the addItemList to set + * @return this + */ + public RogueActionResultData setAddItemList( + final RogueVirtualItemDataOuterClass.RogueVirtualItemData value) { + bitField0_ |= 0x00000002; + addItemList.copyFrom(value); + return this; + } + /** *
      * MCFPILGOKJL LBHBDGKKJIJ = 167;
@@ -71,7 +192,7 @@ public final class RogueActionResultDataOuterClass {
      * @return whether the addMiracleList field is set
      */
     public boolean hasAddMiracleList() {
-      return (bitField0_ & 0x00000001) != 0;
+      return (bitField0_ & 0x00000004) != 0;
     }
 
     /**
@@ -88,7 +209,7 @@ public final class RogueActionResultDataOuterClass {
      * @return this
      */
     public RogueActionResultData clearAddMiracleList() {
-      bitField0_ &= ~0x00000001;
+      bitField0_ &= ~0x00000004;
       addMiracleList.clear();
       return this;
     }
@@ -135,7 +256,7 @@ public final class RogueActionResultDataOuterClass {
      * @return internal storage object for modifications
      */
     public RogueMiracleDataOuterClass.RogueMiracleData getMutableAddMiracleList() {
-      bitField0_ |= 0x00000001;
+      bitField0_ |= 0x00000004;
       return addMiracleList;
     }
 
@@ -155,45 +276,30 @@ public final class RogueActionResultDataOuterClass {
      */
     public RogueActionResultData setAddMiracleList(
         final RogueMiracleDataOuterClass.RogueMiracleData value) {
-      bitField0_ |= 0x00000001;
+      bitField0_ |= 0x00000004;
       addMiracleList.copyFrom(value);
       return this;
     }
 
     /**
-     * 
-     * EMDFCFEMMKJ NMEKCEBDBLP = 12;
-     * EMDFCFEMMKJ DMBEFNHGHDG = 11;
-     * 
- * * optional .RogueBuffData add_buff_list = 319; * @return whether the addBuffList field is set */ public boolean hasAddBuffList() { - return (bitField0_ & 0x00000002) != 0; + return (bitField0_ & 0x00000008) != 0; } /** - *
-     * EMDFCFEMMKJ NMEKCEBDBLP = 12;
-     * EMDFCFEMMKJ DMBEFNHGHDG = 11;
-     * 
- * * optional .RogueBuffData add_buff_list = 319; * @return this */ public RogueActionResultData clearAddBuffList() { - bitField0_ &= ~0x00000002; + bitField0_ &= ~0x00000008; addBuffList.clear(); return this; } /** - *
-     * EMDFCFEMMKJ NMEKCEBDBLP = 12;
-     * EMDFCFEMMKJ DMBEFNHGHDG = 11;
-     * 
- * * optional .RogueBuffData add_buff_list = 319; * * This method returns the internal storage object without modifying any has state. @@ -208,11 +314,6 @@ public final class RogueActionResultDataOuterClass { } /** - *
-     * EMDFCFEMMKJ NMEKCEBDBLP = 12;
-     * EMDFCFEMMKJ DMBEFNHGHDG = 11;
-     * 
- * * optional .RogueBuffData add_buff_list = 319; * * This method returns the internal storage object and sets the corresponding @@ -222,22 +323,17 @@ public final class RogueActionResultDataOuterClass { * @return internal storage object for modifications */ public RogueBuffDataOuterClass.RogueBuffData getMutableAddBuffList() { - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000008; return addBuffList; } /** - *
-     * EMDFCFEMMKJ NMEKCEBDBLP = 12;
-     * EMDFCFEMMKJ DMBEFNHGHDG = 11;
-     * 
- * * optional .RogueBuffData add_buff_list = 319; * @param value the addBuffList to set * @return this */ public RogueActionResultData setAddBuffList(final RogueBuffDataOuterClass.RogueBuffData value) { - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000008; addBuffList.copyFrom(value); return this; } @@ -247,7 +343,7 @@ public final class RogueActionResultDataOuterClass { * @return whether the removeBuffList field is set */ public boolean hasRemoveBuffList() { - return (bitField0_ & 0x00000004) != 0; + return (bitField0_ & 0x00000010) != 0; } /** @@ -255,7 +351,7 @@ public final class RogueActionResultDataOuterClass { * @return this */ public RogueActionResultData clearRemoveBuffList() { - bitField0_ &= ~0x00000004; + bitField0_ &= ~0x00000010; removeBuffList.clear(); return this; } @@ -284,7 +380,7 @@ public final class RogueActionResultDataOuterClass { * @return internal storage object for modifications */ public RogueBuffDataOuterClass.RogueBuffData getMutableRemoveBuffList() { - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000010; return removeBuffList; } @@ -295,7 +391,7 @@ public final class RogueActionResultDataOuterClass { */ public RogueActionResultData setRemoveBuffList( final RogueBuffDataOuterClass.RogueBuffData value) { - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000010; removeBuffList.copyFrom(value); return this; } @@ -305,6 +401,8 @@ public final class RogueActionResultDataOuterClass { cachedSize = other.cachedSize; if ((bitField0_ | other.bitField0_) != 0) { bitField0_ = other.bitField0_; + removeItemList.copyFrom(other.removeItemList); + addItemList.copyFrom(other.addItemList); addMiracleList.copyFrom(other.addMiracleList); addBuffList.copyFrom(other.addBuffList); removeBuffList.copyFrom(other.removeBuffList); @@ -318,6 +416,12 @@ public final class RogueActionResultDataOuterClass { return this; } cachedSize = -1; + if (other.hasRemoveItemList()) { + getMutableRemoveItemList().mergeFrom(other.removeItemList); + } + if (other.hasAddItemList()) { + getMutableAddItemList().mergeFrom(other.addItemList); + } if (other.hasAddMiracleList()) { getMutableAddMiracleList().mergeFrom(other.addMiracleList); } @@ -337,6 +441,8 @@ public final class RogueActionResultDataOuterClass { } cachedSize = -1; bitField0_ = 0; + removeItemList.clear(); + addItemList.clear(); addMiracleList.clear(); addBuffList.clear(); removeBuffList.clear(); @@ -350,6 +456,8 @@ public final class RogueActionResultDataOuterClass { } cachedSize = -1; bitField0_ = 0; + removeItemList.clearQuick(); + addItemList.clearQuick(); addMiracleList.clearQuick(); addBuffList.clearQuick(); removeBuffList.clearQuick(); @@ -366,6 +474,8 @@ public final class RogueActionResultDataOuterClass { } RogueActionResultData other = (RogueActionResultData) o; return bitField0_ == other.bitField0_ + && (!hasRemoveItemList() || removeItemList.equals(other.removeItemList)) + && (!hasAddItemList() || addItemList.equals(other.addItemList)) && (!hasAddMiracleList() || addMiracleList.equals(other.addMiracleList)) && (!hasAddBuffList() || addBuffList.equals(other.addBuffList)) && (!hasRemoveBuffList() || removeBuffList.equals(other.removeBuffList)); @@ -374,14 +484,22 @@ public final class RogueActionResultDataOuterClass { @Override public void writeTo(final ProtoSink output) throws IOException { if ((bitField0_ & 0x00000001) != 0) { + output.writeRawByte((byte) 90); + output.writeMessageNoTag(removeItemList); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeRawByte((byte) 98); + output.writeMessageNoTag(addItemList); + } + if ((bitField0_ & 0x00000004) != 0) { output.writeRawLittleEndian16((short) 2754); output.writeMessageNoTag(addMiracleList); } - if ((bitField0_ & 0x00000002) != 0) { + if ((bitField0_ & 0x00000008) != 0) { output.writeRawLittleEndian16((short) 5114); output.writeMessageNoTag(addBuffList); } - if ((bitField0_ & 0x00000004) != 0) { + if ((bitField0_ & 0x00000010) != 0) { output.writeRawLittleEndian16((short) 7098); output.writeMessageNoTag(removeBuffList); } @@ -391,12 +509,18 @@ public final class RogueActionResultDataOuterClass { protected int computeSerializedSize() { int size = 0; if ((bitField0_ & 0x00000001) != 0) { - size += 2 + ProtoSink.computeMessageSizeNoTag(addMiracleList); + size += 1 + ProtoSink.computeMessageSizeNoTag(removeItemList); } if ((bitField0_ & 0x00000002) != 0) { - size += 2 + ProtoSink.computeMessageSizeNoTag(addBuffList); + size += 1 + ProtoSink.computeMessageSizeNoTag(addItemList); } if ((bitField0_ & 0x00000004) != 0) { + size += 2 + ProtoSink.computeMessageSizeNoTag(addMiracleList); + } + if ((bitField0_ & 0x00000008) != 0) { + size += 2 + ProtoSink.computeMessageSizeNoTag(addBuffList); + } + if ((bitField0_ & 0x00000010) != 0) { size += 2 + ProtoSink.computeMessageSizeNoTag(removeBuffList); } return size; @@ -409,10 +533,28 @@ public final class RogueActionResultDataOuterClass { int tag = input.readTag(); while (true) { switch (tag) { + case 90: { + // removeItemList + input.readMessage(removeItemList); + bitField0_ |= 0x00000001; + tag = input.readTag(); + if (tag != 98) { + break; + } + } + case 98: { + // addItemList + input.readMessage(addItemList); + bitField0_ |= 0x00000002; + tag = input.readTag(); + if (tag != 1346) { + break; + } + } case 1346: { // addMiracleList input.readMessage(addMiracleList); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000004; tag = input.readTag(); if (tag != 2554) { break; @@ -421,7 +563,7 @@ public final class RogueActionResultDataOuterClass { case 2554: { // addBuffList input.readMessage(addBuffList); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000008; tag = input.readTag(); if (tag != 3514) { break; @@ -430,7 +572,7 @@ public final class RogueActionResultDataOuterClass { case 3514: { // removeBuffList input.readMessage(removeBuffList); - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000010; tag = input.readTag(); if (tag != 0) { break; @@ -454,12 +596,18 @@ public final class RogueActionResultDataOuterClass { public void writeTo(final JsonSink output) throws IOException { output.beginObject(); if ((bitField0_ & 0x00000001) != 0) { - output.writeMessage(FieldNames.addMiracleList, addMiracleList); + output.writeMessage(FieldNames.removeItemList, removeItemList); } if ((bitField0_ & 0x00000002) != 0) { - output.writeMessage(FieldNames.addBuffList, addBuffList); + output.writeMessage(FieldNames.addItemList, addItemList); } if ((bitField0_ & 0x00000004) != 0) { + output.writeMessage(FieldNames.addMiracleList, addMiracleList); + } + if ((bitField0_ & 0x00000008) != 0) { + output.writeMessage(FieldNames.addBuffList, addBuffList); + } + if ((bitField0_ & 0x00000010) != 0) { output.writeMessage(FieldNames.removeBuffList, removeBuffList); } output.endObject(); @@ -472,12 +620,36 @@ public final class RogueActionResultDataOuterClass { } while (!input.isAtEnd()) { switch (input.readFieldHash()) { + case -417171723: + case -293666737: { + if (input.isAtField(FieldNames.removeItemList)) { + if (!input.trySkipNullValue()) { + input.readMessage(removeItemList); + bitField0_ |= 0x00000001; + } + } else { + input.skipUnknownField(); + } + break; + } + case 203000338: + case -1308770260: { + if (input.isAtField(FieldNames.addItemList)) { + if (!input.trySkipNullValue()) { + input.readMessage(addItemList); + bitField0_ |= 0x00000002; + } + } else { + input.skipUnknownField(); + } + break; + } case 1381554510: case -850648438: { if (input.isAtField(FieldNames.addMiracleList)) { if (!input.trySkipNullValue()) { input.readMessage(addMiracleList); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000004; } } else { input.skipUnknownField(); @@ -489,7 +661,7 @@ public final class RogueActionResultDataOuterClass { if (input.isAtField(FieldNames.addBuffList)) { if (!input.trySkipNullValue()) { input.readMessage(addBuffList); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000008; } } else { input.skipUnknownField(); @@ -501,7 +673,7 @@ public final class RogueActionResultDataOuterClass { if (input.isAtField(FieldNames.removeBuffList)) { if (!input.trySkipNullValue()) { input.readMessage(removeBuffList); - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000010; } } else { input.skipUnknownField(); @@ -561,6 +733,10 @@ public final class RogueActionResultDataOuterClass { * Contains name constants used for serializing JSON */ static class FieldNames { + static final FieldName removeItemList = FieldName.forField("removeItemList", "remove_item_list"); + + static final FieldName addItemList = FieldName.forField("addItemList", "add_item_list"); + static final FieldName addMiracleList = FieldName.forField("addMiracleList", "add_miracle_list"); static final FieldName addBuffList = FieldName.forField("addBuffList", "add_buff_list"); diff --git a/src/generated/main/emu/lunarcore/proto/RogueBuffEnhanceInfoOuterClass.java b/src/generated/main/emu/lunarcore/proto/RogueBuffEnhanceInfoOuterClass.java new file mode 100644 index 0000000..3b5915f --- /dev/null +++ b/src/generated/main/emu/lunarcore/proto/RogueBuffEnhanceInfoOuterClass.java @@ -0,0 +1,443 @@ +// Code generated by protocol buffer compiler. Do not edit! +package emu.lunarcore.proto; + +import java.io.IOException; +import us.hebi.quickbuf.FieldName; +import us.hebi.quickbuf.InvalidProtocolBufferException; +import us.hebi.quickbuf.JsonSink; +import us.hebi.quickbuf.JsonSource; +import us.hebi.quickbuf.MessageFactory; +import us.hebi.quickbuf.ProtoMessage; +import us.hebi.quickbuf.ProtoSink; +import us.hebi.quickbuf.ProtoSource; +import us.hebi.quickbuf.ProtoUtil; + +public final class RogueBuffEnhanceInfoOuterClass { + /** + * Protobuf type {@code RogueBuffEnhanceInfo} + */ + public static final class RogueBuffEnhanceInfo extends ProtoMessage implements Cloneable { + private static final long serialVersionUID = 0L; + + /** + * optional float HNHFMFCDCOC = 7; + */ + private float hNHFMFCDCOC; + + /** + * optional uint32 buff_id = 11; + */ + private int buffId; + + /** + * optional .ItemCostList item_cost_list = 4; + */ + private final ItemCostListOuterClass.ItemCostList itemCostList = ItemCostListOuterClass.ItemCostList.newInstance(); + + private RogueBuffEnhanceInfo() { + } + + /** + * @return a new empty instance of {@code RogueBuffEnhanceInfo} + */ + public static RogueBuffEnhanceInfo newInstance() { + return new RogueBuffEnhanceInfo(); + } + + /** + * optional float HNHFMFCDCOC = 7; + * @return whether the hNHFMFCDCOC field is set + */ + public boolean hasHNHFMFCDCOC() { + return (bitField0_ & 0x00000001) != 0; + } + + /** + * optional float HNHFMFCDCOC = 7; + * @return this + */ + public RogueBuffEnhanceInfo clearHNHFMFCDCOC() { + bitField0_ &= ~0x00000001; + hNHFMFCDCOC = 0F; + return this; + } + + /** + * optional float HNHFMFCDCOC = 7; + * @return the hNHFMFCDCOC + */ + public float getHNHFMFCDCOC() { + return hNHFMFCDCOC; + } + + /** + * optional float HNHFMFCDCOC = 7; + * @param value the hNHFMFCDCOC to set + * @return this + */ + public RogueBuffEnhanceInfo setHNHFMFCDCOC(final float value) { + bitField0_ |= 0x00000001; + hNHFMFCDCOC = value; + return this; + } + + /** + * optional uint32 buff_id = 11; + * @return whether the buffId field is set + */ + public boolean hasBuffId() { + return (bitField0_ & 0x00000002) != 0; + } + + /** + * optional uint32 buff_id = 11; + * @return this + */ + public RogueBuffEnhanceInfo clearBuffId() { + bitField0_ &= ~0x00000002; + buffId = 0; + return this; + } + + /** + * optional uint32 buff_id = 11; + * @return the buffId + */ + public int getBuffId() { + return buffId; + } + + /** + * optional uint32 buff_id = 11; + * @param value the buffId to set + * @return this + */ + public RogueBuffEnhanceInfo setBuffId(final int value) { + bitField0_ |= 0x00000002; + buffId = value; + return this; + } + + /** + * optional .ItemCostList item_cost_list = 4; + * @return whether the itemCostList field is set + */ + public boolean hasItemCostList() { + return (bitField0_ & 0x00000004) != 0; + } + + /** + * optional .ItemCostList item_cost_list = 4; + * @return this + */ + public RogueBuffEnhanceInfo clearItemCostList() { + bitField0_ &= ~0x00000004; + itemCostList.clear(); + return this; + } + + /** + * optional .ItemCostList item_cost_list = 4; + * + * This method returns the internal storage object without modifying any has state. + * The returned object should not be modified and be treated as read-only. + * + * Use {@link #getMutableItemCostList()} if you want to modify it. + * + * @return internal storage object for reading + */ + public ItemCostListOuterClass.ItemCostList getItemCostList() { + return itemCostList; + } + + /** + * optional .ItemCostList item_cost_list = 4; + * + * This method returns the internal storage object and sets the corresponding + * has state. The returned object will become part of this message and its + * contents may be modified as long as the has state is not cleared. + * + * @return internal storage object for modifications + */ + public ItemCostListOuterClass.ItemCostList getMutableItemCostList() { + bitField0_ |= 0x00000004; + return itemCostList; + } + + /** + * optional .ItemCostList item_cost_list = 4; + * @param value the itemCostList to set + * @return this + */ + public RogueBuffEnhanceInfo setItemCostList(final ItemCostListOuterClass.ItemCostList value) { + bitField0_ |= 0x00000004; + itemCostList.copyFrom(value); + return this; + } + + @Override + public RogueBuffEnhanceInfo copyFrom(final RogueBuffEnhanceInfo other) { + cachedSize = other.cachedSize; + if ((bitField0_ | other.bitField0_) != 0) { + bitField0_ = other.bitField0_; + hNHFMFCDCOC = other.hNHFMFCDCOC; + buffId = other.buffId; + itemCostList.copyFrom(other.itemCostList); + } + return this; + } + + @Override + public RogueBuffEnhanceInfo mergeFrom(final RogueBuffEnhanceInfo other) { + if (other.isEmpty()) { + return this; + } + cachedSize = -1; + if (other.hasHNHFMFCDCOC()) { + setHNHFMFCDCOC(other.hNHFMFCDCOC); + } + if (other.hasBuffId()) { + setBuffId(other.buffId); + } + if (other.hasItemCostList()) { + getMutableItemCostList().mergeFrom(other.itemCostList); + } + return this; + } + + @Override + public RogueBuffEnhanceInfo clear() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + hNHFMFCDCOC = 0F; + buffId = 0; + itemCostList.clear(); + return this; + } + + @Override + public RogueBuffEnhanceInfo clearQuick() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + itemCostList.clearQuick(); + return this; + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (!(o instanceof RogueBuffEnhanceInfo)) { + return false; + } + RogueBuffEnhanceInfo other = (RogueBuffEnhanceInfo) o; + return bitField0_ == other.bitField0_ + && (!hasHNHFMFCDCOC() || ProtoUtil.isEqual(hNHFMFCDCOC, other.hNHFMFCDCOC)) + && (!hasBuffId() || buffId == other.buffId) + && (!hasItemCostList() || itemCostList.equals(other.itemCostList)); + } + + @Override + public void writeTo(final ProtoSink output) throws IOException { + if ((bitField0_ & 0x00000001) != 0) { + output.writeRawByte((byte) 61); + output.writeFloatNoTag(hNHFMFCDCOC); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeRawByte((byte) 88); + output.writeUInt32NoTag(buffId); + } + if ((bitField0_ & 0x00000004) != 0) { + output.writeRawByte((byte) 34); + output.writeMessageNoTag(itemCostList); + } + } + + @Override + protected int computeSerializedSize() { + int size = 0; + if ((bitField0_ & 0x00000001) != 0) { + size += 5; + } + if ((bitField0_ & 0x00000002) != 0) { + size += 1 + ProtoSink.computeUInt32SizeNoTag(buffId); + } + if ((bitField0_ & 0x00000004) != 0) { + size += 1 + ProtoSink.computeMessageSizeNoTag(itemCostList); + } + return size; + } + + @Override + @SuppressWarnings("fallthrough") + public RogueBuffEnhanceInfo mergeFrom(final ProtoSource input) throws IOException { + // Enabled Fall-Through Optimization (QuickBuffers) + int tag = input.readTag(); + while (true) { + switch (tag) { + case 61: { + // hNHFMFCDCOC + hNHFMFCDCOC = input.readFloat(); + bitField0_ |= 0x00000001; + tag = input.readTag(); + if (tag != 88) { + break; + } + } + case 88: { + // buffId + buffId = input.readUInt32(); + bitField0_ |= 0x00000002; + tag = input.readTag(); + if (tag != 34) { + break; + } + } + case 34: { + // itemCostList + input.readMessage(itemCostList); + bitField0_ |= 0x00000004; + tag = input.readTag(); + if (tag != 0) { + break; + } + } + case 0: { + return this; + } + default: { + if (!input.skipField(tag)) { + return this; + } + tag = input.readTag(); + break; + } + } + } + } + + @Override + public void writeTo(final JsonSink output) throws IOException { + output.beginObject(); + if ((bitField0_ & 0x00000001) != 0) { + output.writeFloat(FieldNames.hNHFMFCDCOC, hNHFMFCDCOC); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeUInt32(FieldNames.buffId, buffId); + } + if ((bitField0_ & 0x00000004) != 0) { + output.writeMessage(FieldNames.itemCostList, itemCostList); + } + output.endObject(); + } + + @Override + public RogueBuffEnhanceInfo mergeFrom(final JsonSource input) throws IOException { + if (!input.beginObject()) { + return this; + } + while (!input.isAtEnd()) { + switch (input.readFieldHash()) { + case -838377895: { + if (input.isAtField(FieldNames.hNHFMFCDCOC)) { + if (!input.trySkipNullValue()) { + hNHFMFCDCOC = input.readFloat(); + bitField0_ |= 0x00000001; + } + } else { + input.skipUnknownField(); + } + break; + } + case -1378119474: + case 227990663: { + if (input.isAtField(FieldNames.buffId)) { + if (!input.trySkipNullValue()) { + buffId = input.readUInt32(); + bitField0_ |= 0x00000002; + } + } else { + input.skipUnknownField(); + } + break; + } + case 203506238: + case -1124889692: { + if (input.isAtField(FieldNames.itemCostList)) { + if (!input.trySkipNullValue()) { + input.readMessage(itemCostList); + bitField0_ |= 0x00000004; + } + } else { + input.skipUnknownField(); + } + break; + } + default: { + input.skipUnknownField(); + break; + } + } + } + input.endObject(); + return this; + } + + @Override + public RogueBuffEnhanceInfo clone() { + return new RogueBuffEnhanceInfo().copyFrom(this); + } + + @Override + public boolean isEmpty() { + return ((bitField0_) == 0); + } + + public static RogueBuffEnhanceInfo parseFrom(final byte[] data) throws + InvalidProtocolBufferException { + return ProtoMessage.mergeFrom(new RogueBuffEnhanceInfo(), data).checkInitialized(); + } + + public static RogueBuffEnhanceInfo parseFrom(final ProtoSource input) throws IOException { + return ProtoMessage.mergeFrom(new RogueBuffEnhanceInfo(), input).checkInitialized(); + } + + public static RogueBuffEnhanceInfo parseFrom(final JsonSource input) throws IOException { + return ProtoMessage.mergeFrom(new RogueBuffEnhanceInfo(), input).checkInitialized(); + } + + /** + * @return factory for creating RogueBuffEnhanceInfo messages + */ + public static MessageFactory getFactory() { + return RogueBuffEnhanceInfoFactory.INSTANCE; + } + + private enum RogueBuffEnhanceInfoFactory implements MessageFactory { + INSTANCE; + + @Override + public RogueBuffEnhanceInfo create() { + return RogueBuffEnhanceInfo.newInstance(); + } + } + + /** + * Contains name constants used for serializing JSON + */ + static class FieldNames { + static final FieldName hNHFMFCDCOC = FieldName.forField("HNHFMFCDCOC"); + + static final FieldName buffId = FieldName.forField("buffId", "buff_id"); + + static final FieldName itemCostList = FieldName.forField("itemCostList", "item_cost_list"); + } + } +} diff --git a/src/generated/main/emu/lunarcore/proto/RogueBuffEnhanceShopInfoOuterClass.java b/src/generated/main/emu/lunarcore/proto/RogueBuffEnhanceShopInfoOuterClass.java new file mode 100644 index 0000000..a134a3d --- /dev/null +++ b/src/generated/main/emu/lunarcore/proto/RogueBuffEnhanceShopInfoOuterClass.java @@ -0,0 +1,297 @@ +// Code generated by protocol buffer compiler. Do not edit! +package emu.lunarcore.proto; + +import java.io.IOException; +import us.hebi.quickbuf.FieldName; +import us.hebi.quickbuf.InvalidProtocolBufferException; +import us.hebi.quickbuf.JsonSink; +import us.hebi.quickbuf.JsonSource; +import us.hebi.quickbuf.MessageFactory; +import us.hebi.quickbuf.ProtoMessage; +import us.hebi.quickbuf.ProtoSink; +import us.hebi.quickbuf.ProtoSource; +import us.hebi.quickbuf.RepeatedMessage; + +public final class RogueBuffEnhanceShopInfoOuterClass { + /** + * Protobuf type {@code RogueBuffEnhanceShopInfo} + */ + public static final class RogueBuffEnhanceShopInfo extends ProtoMessage implements Cloneable { + private static final long serialVersionUID = 0L; + + /** + * repeated .RogueBuffEnhanceInfo buff_info = 2; + */ + private final RepeatedMessage buffInfo = RepeatedMessage.newEmptyInstance(RogueBuffEnhanceInfoOuterClass.RogueBuffEnhanceInfo.getFactory()); + + private RogueBuffEnhanceShopInfo() { + } + + /** + * @return a new empty instance of {@code RogueBuffEnhanceShopInfo} + */ + public static RogueBuffEnhanceShopInfo newInstance() { + return new RogueBuffEnhanceShopInfo(); + } + + /** + * repeated .RogueBuffEnhanceInfo buff_info = 2; + * @return whether the buffInfo field is set + */ + public boolean hasBuffInfo() { + return (bitField0_ & 0x00000001) != 0; + } + + /** + * repeated .RogueBuffEnhanceInfo buff_info = 2; + * @return this + */ + public RogueBuffEnhanceShopInfo clearBuffInfo() { + bitField0_ &= ~0x00000001; + buffInfo.clear(); + return this; + } + + /** + * repeated .RogueBuffEnhanceInfo buff_info = 2; + * + * This method returns the internal storage object without modifying any has state. + * The returned object should not be modified and be treated as read-only. + * + * Use {@link #getMutableBuffInfo()} if you want to modify it. + * + * @return internal storage object for reading + */ + public RepeatedMessage getBuffInfo() { + return buffInfo; + } + + /** + * repeated .RogueBuffEnhanceInfo buff_info = 2; + * + * This method returns the internal storage object and sets the corresponding + * has state. The returned object will become part of this message and its + * contents may be modified as long as the has state is not cleared. + * + * @return internal storage object for modifications + */ + public RepeatedMessage getMutableBuffInfo( + ) { + bitField0_ |= 0x00000001; + return buffInfo; + } + + /** + * repeated .RogueBuffEnhanceInfo buff_info = 2; + * @param value the buffInfo to add + * @return this + */ + public RogueBuffEnhanceShopInfo addBuffInfo( + final RogueBuffEnhanceInfoOuterClass.RogueBuffEnhanceInfo value) { + bitField0_ |= 0x00000001; + buffInfo.add(value); + return this; + } + + /** + * repeated .RogueBuffEnhanceInfo buff_info = 2; + * @param values the buffInfo to add + * @return this + */ + public RogueBuffEnhanceShopInfo addAllBuffInfo( + final RogueBuffEnhanceInfoOuterClass.RogueBuffEnhanceInfo... values) { + bitField0_ |= 0x00000001; + buffInfo.addAll(values); + return this; + } + + @Override + public RogueBuffEnhanceShopInfo copyFrom(final RogueBuffEnhanceShopInfo other) { + cachedSize = other.cachedSize; + if ((bitField0_ | other.bitField0_) != 0) { + bitField0_ = other.bitField0_; + buffInfo.copyFrom(other.buffInfo); + } + return this; + } + + @Override + public RogueBuffEnhanceShopInfo mergeFrom(final RogueBuffEnhanceShopInfo other) { + if (other.isEmpty()) { + return this; + } + cachedSize = -1; + if (other.hasBuffInfo()) { + getMutableBuffInfo().addAll(other.buffInfo); + } + return this; + } + + @Override + public RogueBuffEnhanceShopInfo clear() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + buffInfo.clear(); + return this; + } + + @Override + public RogueBuffEnhanceShopInfo clearQuick() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + buffInfo.clearQuick(); + return this; + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (!(o instanceof RogueBuffEnhanceShopInfo)) { + return false; + } + RogueBuffEnhanceShopInfo other = (RogueBuffEnhanceShopInfo) o; + return bitField0_ == other.bitField0_ + && (!hasBuffInfo() || buffInfo.equals(other.buffInfo)); + } + + @Override + public void writeTo(final ProtoSink output) throws IOException { + if ((bitField0_ & 0x00000001) != 0) { + for (int i = 0; i < buffInfo.length(); i++) { + output.writeRawByte((byte) 18); + output.writeMessageNoTag(buffInfo.get(i)); + } + } + } + + @Override + protected int computeSerializedSize() { + int size = 0; + if ((bitField0_ & 0x00000001) != 0) { + size += (1 * buffInfo.length()) + ProtoSink.computeRepeatedMessageSizeNoTag(buffInfo); + } + return size; + } + + @Override + @SuppressWarnings("fallthrough") + public RogueBuffEnhanceShopInfo mergeFrom(final ProtoSource input) throws IOException { + // Enabled Fall-Through Optimization (QuickBuffers) + int tag = input.readTag(); + while (true) { + switch (tag) { + case 18: { + // buffInfo + tag = input.readRepeatedMessage(buffInfo, tag); + bitField0_ |= 0x00000001; + if (tag != 0) { + break; + } + } + case 0: { + return this; + } + default: { + if (!input.skipField(tag)) { + return this; + } + tag = input.readTag(); + break; + } + } + } + } + + @Override + public void writeTo(final JsonSink output) throws IOException { + output.beginObject(); + if ((bitField0_ & 0x00000001) != 0) { + output.writeRepeatedMessage(FieldNames.buffInfo, buffInfo); + } + output.endObject(); + } + + @Override + public RogueBuffEnhanceShopInfo mergeFrom(final JsonSource input) throws IOException { + if (!input.beginObject()) { + return this; + } + while (!input.isAtEnd()) { + switch (input.readFieldHash()) { + case -1522874463: + case 55707930: { + if (input.isAtField(FieldNames.buffInfo)) { + if (!input.trySkipNullValue()) { + input.readRepeatedMessage(buffInfo); + bitField0_ |= 0x00000001; + } + } else { + input.skipUnknownField(); + } + break; + } + default: { + input.skipUnknownField(); + break; + } + } + } + input.endObject(); + return this; + } + + @Override + public RogueBuffEnhanceShopInfo clone() { + return new RogueBuffEnhanceShopInfo().copyFrom(this); + } + + @Override + public boolean isEmpty() { + return ((bitField0_) == 0); + } + + public static RogueBuffEnhanceShopInfo parseFrom(final byte[] data) throws + InvalidProtocolBufferException { + return ProtoMessage.mergeFrom(new RogueBuffEnhanceShopInfo(), data).checkInitialized(); + } + + public static RogueBuffEnhanceShopInfo parseFrom(final ProtoSource input) throws IOException { + return ProtoMessage.mergeFrom(new RogueBuffEnhanceShopInfo(), input).checkInitialized(); + } + + public static RogueBuffEnhanceShopInfo parseFrom(final JsonSource input) throws IOException { + return ProtoMessage.mergeFrom(new RogueBuffEnhanceShopInfo(), input).checkInitialized(); + } + + /** + * @return factory for creating RogueBuffEnhanceShopInfo messages + */ + public static MessageFactory getFactory() { + return RogueBuffEnhanceShopInfoFactory.INSTANCE; + } + + private enum RogueBuffEnhanceShopInfoFactory implements MessageFactory { + INSTANCE; + + @Override + public RogueBuffEnhanceShopInfo create() { + return RogueBuffEnhanceShopInfo.newInstance(); + } + } + + /** + * Contains name constants used for serializing JSON + */ + static class FieldNames { + static final FieldName buffInfo = FieldName.forField("buffInfo", "buff_info"); + } + } +} diff --git a/src/generated/main/emu/lunarcore/proto/RogueDialogueEventOuterClass.java b/src/generated/main/emu/lunarcore/proto/RogueDialogueEventOuterClass.java index 17bd8ee..7685a4d 100644 --- a/src/generated/main/emu/lunarcore/proto/RogueDialogueEventOuterClass.java +++ b/src/generated/main/emu/lunarcore/proto/RogueDialogueEventOuterClass.java @@ -41,9 +41,9 @@ public final class RogueDialogueEventOuterClass { private int gameModeType; /** - * repeated uint32 NNOHLEAOJPP = 8; + * repeated uint32 select_event_id = 8; */ - private final RepeatedInt nNOHLEAOJPP = RepeatedInt.newEmptyInstance(); + private final RepeatedInt selectEventId = RepeatedInt.newEmptyInstance(); /** * repeated .RogueDialogueEventParam rogue_dialogue_event_param = 15; @@ -209,39 +209,39 @@ public final class RogueDialogueEventOuterClass { } /** - * repeated uint32 NNOHLEAOJPP = 8; - * @return whether the nNOHLEAOJPP field is set + * repeated uint32 select_event_id = 8; + * @return whether the selectEventId field is set */ - public boolean hasNNOHLEAOJPP() { + public boolean hasSelectEventId() { return (bitField0_ & 0x00000010) != 0; } /** - * repeated uint32 NNOHLEAOJPP = 8; + * repeated uint32 select_event_id = 8; * @return this */ - public RogueDialogueEvent clearNNOHLEAOJPP() { + public RogueDialogueEvent clearSelectEventId() { bitField0_ &= ~0x00000010; - nNOHLEAOJPP.clear(); + selectEventId.clear(); return this; } /** - * repeated uint32 NNOHLEAOJPP = 8; + * repeated uint32 select_event_id = 8; * * This method returns the internal storage object without modifying any has state. * The returned object should not be modified and be treated as read-only. * - * Use {@link #getMutableNNOHLEAOJPP()} if you want to modify it. + * Use {@link #getMutableSelectEventId()} if you want to modify it. * * @return internal storage object for reading */ - public RepeatedInt getNNOHLEAOJPP() { - return nNOHLEAOJPP; + public RepeatedInt getSelectEventId() { + return selectEventId; } /** - * repeated uint32 NNOHLEAOJPP = 8; + * repeated uint32 select_event_id = 8; * * This method returns the internal storage object and sets the corresponding * has state. The returned object will become part of this message and its @@ -249,30 +249,30 @@ public final class RogueDialogueEventOuterClass { * * @return internal storage object for modifications */ - public RepeatedInt getMutableNNOHLEAOJPP() { + public RepeatedInt getMutableSelectEventId() { bitField0_ |= 0x00000010; - return nNOHLEAOJPP; + return selectEventId; } /** - * repeated uint32 NNOHLEAOJPP = 8; - * @param value the nNOHLEAOJPP to add + * repeated uint32 select_event_id = 8; + * @param value the selectEventId to add * @return this */ - public RogueDialogueEvent addNNOHLEAOJPP(final int value) { + public RogueDialogueEvent addSelectEventId(final int value) { bitField0_ |= 0x00000010; - nNOHLEAOJPP.add(value); + selectEventId.add(value); return this; } /** - * repeated uint32 NNOHLEAOJPP = 8; - * @param values the nNOHLEAOJPP to add + * repeated uint32 select_event_id = 8; + * @param values the selectEventId to add * @return this */ - public RogueDialogueEvent addAllNNOHLEAOJPP(final int... values) { + public RogueDialogueEvent addAllSelectEventId(final int... values) { bitField0_ |= 0x00000010; - nNOHLEAOJPP.addAll(values); + selectEventId.addAll(values); return this; } @@ -357,7 +357,7 @@ public final class RogueDialogueEventOuterClass { gBMDBBBMBEJ = other.gBMDBBBMBEJ; iNJPFALMDHJ = other.iNJPFALMDHJ; gameModeType = other.gameModeType; - nNOHLEAOJPP.copyFrom(other.nNOHLEAOJPP); + selectEventId.copyFrom(other.selectEventId); rogueDialogueEventParam.copyFrom(other.rogueDialogueEventParam); } return this; @@ -381,8 +381,8 @@ public final class RogueDialogueEventOuterClass { if (other.hasGameModeType()) { setGameModeType(other.gameModeType); } - if (other.hasNNOHLEAOJPP()) { - getMutableNNOHLEAOJPP().addAll(other.nNOHLEAOJPP); + if (other.hasSelectEventId()) { + getMutableSelectEventId().addAll(other.selectEventId); } if (other.hasRogueDialogueEventParam()) { getMutableRogueDialogueEventParam().addAll(other.rogueDialogueEventParam); @@ -401,7 +401,7 @@ public final class RogueDialogueEventOuterClass { gBMDBBBMBEJ = 0; iNJPFALMDHJ = 0; gameModeType = 0; - nNOHLEAOJPP.clear(); + selectEventId.clear(); rogueDialogueEventParam.clear(); return this; } @@ -413,7 +413,7 @@ public final class RogueDialogueEventOuterClass { } cachedSize = -1; bitField0_ = 0; - nNOHLEAOJPP.clear(); + selectEventId.clear(); rogueDialogueEventParam.clearQuick(); return this; } @@ -432,7 +432,7 @@ public final class RogueDialogueEventOuterClass { && (!hasGBMDBBBMBEJ() || gBMDBBBMBEJ == other.gBMDBBBMBEJ) && (!hasINJPFALMDHJ() || iNJPFALMDHJ == other.iNJPFALMDHJ) && (!hasGameModeType() || gameModeType == other.gameModeType) - && (!hasNNOHLEAOJPP() || nNOHLEAOJPP.equals(other.nNOHLEAOJPP)) + && (!hasSelectEventId() || selectEventId.equals(other.selectEventId)) && (!hasRogueDialogueEventParam() || rogueDialogueEventParam.equals(other.rogueDialogueEventParam)); } @@ -455,9 +455,9 @@ public final class RogueDialogueEventOuterClass { output.writeUInt32NoTag(gameModeType); } if ((bitField0_ & 0x00000010) != 0) { - for (int i = 0; i < nNOHLEAOJPP.length(); i++) { + for (int i = 0; i < selectEventId.length(); i++) { output.writeRawByte((byte) 64); - output.writeUInt32NoTag(nNOHLEAOJPP.array()[i]); + output.writeUInt32NoTag(selectEventId.array()[i]); } } if ((bitField0_ & 0x00000020) != 0) { @@ -484,7 +484,7 @@ public final class RogueDialogueEventOuterClass { size += 1 + ProtoSink.computeUInt32SizeNoTag(gameModeType); } if ((bitField0_ & 0x00000010) != 0) { - size += (1 * nNOHLEAOJPP.length()) + ProtoSink.computeRepeatedUInt32SizeNoTag(nNOHLEAOJPP); + size += (1 * selectEventId.length()) + ProtoSink.computeRepeatedUInt32SizeNoTag(selectEventId); } if ((bitField0_ & 0x00000020) != 0) { size += (1 * rogueDialogueEventParam.length()) + ProtoSink.computeRepeatedMessageSizeNoTag(rogueDialogueEventParam); @@ -536,8 +536,8 @@ public final class RogueDialogueEventOuterClass { } } case 66: { - // nNOHLEAOJPP [packed=true] - input.readPackedUInt32(nNOHLEAOJPP, tag); + // selectEventId [packed=true] + input.readPackedUInt32(selectEventId, tag); bitField0_ |= 0x00000010; tag = input.readTag(); if (tag != 122) { @@ -563,8 +563,8 @@ public final class RogueDialogueEventOuterClass { break; } case 64: { - // nNOHLEAOJPP [packed=false] - tag = input.readRepeatedUInt32(nNOHLEAOJPP, tag); + // selectEventId [packed=false] + tag = input.readRepeatedUInt32(selectEventId, tag); bitField0_ |= 0x00000010; break; } @@ -588,7 +588,7 @@ public final class RogueDialogueEventOuterClass { output.writeUInt32(FieldNames.gameModeType, gameModeType); } if ((bitField0_ & 0x00000010) != 0) { - output.writeRepeatedUInt32(FieldNames.nNOHLEAOJPP, nNOHLEAOJPP); + output.writeRepeatedUInt32(FieldNames.selectEventId, selectEventId); } if ((bitField0_ & 0x00000020) != 0) { output.writeRepeatedMessage(FieldNames.rogueDialogueEventParam, rogueDialogueEventParam); @@ -649,10 +649,11 @@ public final class RogueDialogueEventOuterClass { } break; } - case -229455542: { - if (input.isAtField(FieldNames.nNOHLEAOJPP)) { + case -653046599: + case 2115999939: { + if (input.isAtField(FieldNames.selectEventId)) { if (!input.trySkipNullValue()) { - input.readRepeatedUInt32(nNOHLEAOJPP); + input.readRepeatedUInt32(selectEventId); bitField0_ |= 0x00000010; } } else { @@ -733,7 +734,7 @@ public final class RogueDialogueEventOuterClass { static final FieldName gameModeType = FieldName.forField("gameModeType", "game_mode_type"); - static final FieldName nNOHLEAOJPP = FieldName.forField("NNOHLEAOJPP"); + static final FieldName selectEventId = FieldName.forField("selectEventId", "select_event_id"); static final FieldName rogueDialogueEventParam = FieldName.forField("rogueDialogueEventParam", "rogue_dialogue_event_param"); } diff --git a/src/generated/main/emu/lunarcore/proto/RogueVirtualItemDataOuterClass.java b/src/generated/main/emu/lunarcore/proto/RogueVirtualItemDataOuterClass.java new file mode 100644 index 0000000..78e5477 --- /dev/null +++ b/src/generated/main/emu/lunarcore/proto/RogueVirtualItemDataOuterClass.java @@ -0,0 +1,339 @@ +// Code generated by protocol buffer compiler. Do not edit! +package emu.lunarcore.proto; + +import java.io.IOException; +import us.hebi.quickbuf.FieldName; +import us.hebi.quickbuf.InvalidProtocolBufferException; +import us.hebi.quickbuf.JsonSink; +import us.hebi.quickbuf.JsonSource; +import us.hebi.quickbuf.MessageFactory; +import us.hebi.quickbuf.ProtoMessage; +import us.hebi.quickbuf.ProtoSink; +import us.hebi.quickbuf.ProtoSource; + +public final class RogueVirtualItemDataOuterClass { + /** + * Protobuf type {@code RogueVirtualItemData} + */ + public static final class RogueVirtualItemData extends ProtoMessage implements Cloneable { + private static final long serialVersionUID = 0L; + + /** + * optional uint32 num = 5; + */ + private int num; + + /** + * optional uint32 MDBPDPDDHBC = 6; + */ + private int mDBPDPDDHBC; + + private RogueVirtualItemData() { + } + + /** + * @return a new empty instance of {@code RogueVirtualItemData} + */ + public static RogueVirtualItemData newInstance() { + return new RogueVirtualItemData(); + } + + /** + * optional uint32 num = 5; + * @return whether the num field is set + */ + public boolean hasNum() { + return (bitField0_ & 0x00000001) != 0; + } + + /** + * optional uint32 num = 5; + * @return this + */ + public RogueVirtualItemData clearNum() { + bitField0_ &= ~0x00000001; + num = 0; + return this; + } + + /** + * optional uint32 num = 5; + * @return the num + */ + public int getNum() { + return num; + } + + /** + * optional uint32 num = 5; + * @param value the num to set + * @return this + */ + public RogueVirtualItemData setNum(final int value) { + bitField0_ |= 0x00000001; + num = value; + return this; + } + + /** + * optional uint32 MDBPDPDDHBC = 6; + * @return whether the mDBPDPDDHBC field is set + */ + public boolean hasMDBPDPDDHBC() { + return (bitField0_ & 0x00000002) != 0; + } + + /** + * optional uint32 MDBPDPDDHBC = 6; + * @return this + */ + public RogueVirtualItemData clearMDBPDPDDHBC() { + bitField0_ &= ~0x00000002; + mDBPDPDDHBC = 0; + return this; + } + + /** + * optional uint32 MDBPDPDDHBC = 6; + * @return the mDBPDPDDHBC + */ + public int getMDBPDPDDHBC() { + return mDBPDPDDHBC; + } + + /** + * optional uint32 MDBPDPDDHBC = 6; + * @param value the mDBPDPDDHBC to set + * @return this + */ + public RogueVirtualItemData setMDBPDPDDHBC(final int value) { + bitField0_ |= 0x00000002; + mDBPDPDDHBC = value; + return this; + } + + @Override + public RogueVirtualItemData copyFrom(final RogueVirtualItemData other) { + cachedSize = other.cachedSize; + if ((bitField0_ | other.bitField0_) != 0) { + bitField0_ = other.bitField0_; + num = other.num; + mDBPDPDDHBC = other.mDBPDPDDHBC; + } + return this; + } + + @Override + public RogueVirtualItemData mergeFrom(final RogueVirtualItemData other) { + if (other.isEmpty()) { + return this; + } + cachedSize = -1; + if (other.hasNum()) { + setNum(other.num); + } + if (other.hasMDBPDPDDHBC()) { + setMDBPDPDDHBC(other.mDBPDPDDHBC); + } + return this; + } + + @Override + public RogueVirtualItemData clear() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + num = 0; + mDBPDPDDHBC = 0; + return this; + } + + @Override + public RogueVirtualItemData clearQuick() { + if (isEmpty()) { + return this; + } + cachedSize = -1; + bitField0_ = 0; + return this; + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (!(o instanceof RogueVirtualItemData)) { + return false; + } + RogueVirtualItemData other = (RogueVirtualItemData) o; + return bitField0_ == other.bitField0_ + && (!hasNum() || num == other.num) + && (!hasMDBPDPDDHBC() || mDBPDPDDHBC == other.mDBPDPDDHBC); + } + + @Override + public void writeTo(final ProtoSink output) throws IOException { + if ((bitField0_ & 0x00000001) != 0) { + output.writeRawByte((byte) 40); + output.writeUInt32NoTag(num); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeRawByte((byte) 48); + output.writeUInt32NoTag(mDBPDPDDHBC); + } + } + + @Override + protected int computeSerializedSize() { + int size = 0; + if ((bitField0_ & 0x00000001) != 0) { + size += 1 + ProtoSink.computeUInt32SizeNoTag(num); + } + if ((bitField0_ & 0x00000002) != 0) { + size += 1 + ProtoSink.computeUInt32SizeNoTag(mDBPDPDDHBC); + } + return size; + } + + @Override + @SuppressWarnings("fallthrough") + public RogueVirtualItemData mergeFrom(final ProtoSource input) throws IOException { + // Enabled Fall-Through Optimization (QuickBuffers) + int tag = input.readTag(); + while (true) { + switch (tag) { + case 40: { + // num + num = input.readUInt32(); + bitField0_ |= 0x00000001; + tag = input.readTag(); + if (tag != 48) { + break; + } + } + case 48: { + // mDBPDPDDHBC + mDBPDPDDHBC = input.readUInt32(); + bitField0_ |= 0x00000002; + tag = input.readTag(); + if (tag != 0) { + break; + } + } + case 0: { + return this; + } + default: { + if (!input.skipField(tag)) { + return this; + } + tag = input.readTag(); + break; + } + } + } + } + + @Override + public void writeTo(final JsonSink output) throws IOException { + output.beginObject(); + if ((bitField0_ & 0x00000001) != 0) { + output.writeUInt32(FieldNames.num, num); + } + if ((bitField0_ & 0x00000002) != 0) { + output.writeUInt32(FieldNames.mDBPDPDDHBC, mDBPDPDDHBC); + } + output.endObject(); + } + + @Override + public RogueVirtualItemData mergeFrom(final JsonSource input) throws IOException { + if (!input.beginObject()) { + return this; + } + while (!input.isAtEnd()) { + switch (input.readFieldHash()) { + case 109446: { + if (input.isAtField(FieldNames.num)) { + if (!input.trySkipNullValue()) { + num = input.readUInt32(); + bitField0_ |= 0x00000001; + } + } else { + input.skipUnknownField(); + } + break; + } + case -170385096: { + if (input.isAtField(FieldNames.mDBPDPDDHBC)) { + if (!input.trySkipNullValue()) { + mDBPDPDDHBC = input.readUInt32(); + bitField0_ |= 0x00000002; + } + } else { + input.skipUnknownField(); + } + break; + } + default: { + input.skipUnknownField(); + break; + } + } + } + input.endObject(); + return this; + } + + @Override + public RogueVirtualItemData clone() { + return new RogueVirtualItemData().copyFrom(this); + } + + @Override + public boolean isEmpty() { + return ((bitField0_) == 0); + } + + public static RogueVirtualItemData parseFrom(final byte[] data) throws + InvalidProtocolBufferException { + return ProtoMessage.mergeFrom(new RogueVirtualItemData(), data).checkInitialized(); + } + + public static RogueVirtualItemData parseFrom(final ProtoSource input) throws IOException { + return ProtoMessage.mergeFrom(new RogueVirtualItemData(), input).checkInitialized(); + } + + public static RogueVirtualItemData parseFrom(final JsonSource input) throws IOException { + return ProtoMessage.mergeFrom(new RogueVirtualItemData(), input).checkInitialized(); + } + + /** + * @return factory for creating RogueVirtualItemData messages + */ + public static MessageFactory getFactory() { + return RogueVirtualItemDataFactory.INSTANCE; + } + + private enum RogueVirtualItemDataFactory implements MessageFactory { + INSTANCE; + + @Override + public RogueVirtualItemData create() { + return RogueVirtualItemData.newInstance(); + } + } + + /** + * Contains name constants used for serializing JSON + */ + static class FieldNames { + static final FieldName num = FieldName.forField("num"); + + static final FieldName mDBPDPDDHBC = FieldName.forField("MDBPDPDDHBC"); + } + } +} diff --git a/src/generated/main/emu/lunarcore/proto/SelectRogueDialogueEventScRspOuterClass.java b/src/generated/main/emu/lunarcore/proto/SelectRogueDialogueEventScRspOuterClass.java index 8b7e4d0..831d45e 100644 --- a/src/generated/main/emu/lunarcore/proto/SelectRogueDialogueEventScRspOuterClass.java +++ b/src/generated/main/emu/lunarcore/proto/SelectRogueDialogueEventScRspOuterClass.java @@ -10,6 +10,7 @@ import us.hebi.quickbuf.MessageFactory; import us.hebi.quickbuf.ProtoMessage; import us.hebi.quickbuf.ProtoSink; import us.hebi.quickbuf.ProtoSource; +import us.hebi.quickbuf.RepeatedMessage; public final class SelectRogueDialogueEventScRspOuterClass { /** @@ -29,14 +30,15 @@ public final class SelectRogueDialogueEventScRspOuterClass { private int retcode; /** - *
-     * MEMPJPLINCN LELKNNDCGJM = 6;
-     * 
- * * optional .RogueDialogueEvent event_data = 14; */ private final RogueDialogueEventOuterClass.RogueDialogueEvent eventData = RogueDialogueEventOuterClass.RogueDialogueEvent.newInstance(); + /** + * repeated .MEMPJPLINCN LELKNNDCGJM = 6; + */ + private final RepeatedMessage lELKNNDCGJM = RepeatedMessage.newEmptyInstance(MEMPJPLINCNOuterClass.MEMPJPLINCN.getFactory()); + private SelectRogueDialogueEventScRsp() { } @@ -122,10 +124,6 @@ public final class SelectRogueDialogueEventScRspOuterClass { } /** - *
-     * MEMPJPLINCN LELKNNDCGJM = 6;
-     * 
- * * optional .RogueDialogueEvent event_data = 14; * @return whether the eventData field is set */ @@ -134,10 +132,6 @@ public final class SelectRogueDialogueEventScRspOuterClass { } /** - *
-     * MEMPJPLINCN LELKNNDCGJM = 6;
-     * 
- * * optional .RogueDialogueEvent event_data = 14; * @return this */ @@ -148,10 +142,6 @@ public final class SelectRogueDialogueEventScRspOuterClass { } /** - *
-     * MEMPJPLINCN LELKNNDCGJM = 6;
-     * 
- * * optional .RogueDialogueEvent event_data = 14; * * This method returns the internal storage object without modifying any has state. @@ -166,10 +156,6 @@ public final class SelectRogueDialogueEventScRspOuterClass { } /** - *
-     * MEMPJPLINCN LELKNNDCGJM = 6;
-     * 
- * * optional .RogueDialogueEvent event_data = 14; * * This method returns the internal storage object and sets the corresponding @@ -184,10 +170,6 @@ public final class SelectRogueDialogueEventScRspOuterClass { } /** - *
-     * MEMPJPLINCN LELKNNDCGJM = 6;
-     * 
- * * optional .RogueDialogueEvent event_data = 14; * @param value the eventData to set * @return this @@ -199,6 +181,76 @@ public final class SelectRogueDialogueEventScRspOuterClass { return this; } + /** + * repeated .MEMPJPLINCN LELKNNDCGJM = 6; + * @return whether the lELKNNDCGJM field is set + */ + public boolean hasLELKNNDCGJM() { + return (bitField0_ & 0x00000008) != 0; + } + + /** + * repeated .MEMPJPLINCN LELKNNDCGJM = 6; + * @return this + */ + public SelectRogueDialogueEventScRsp clearLELKNNDCGJM() { + bitField0_ &= ~0x00000008; + lELKNNDCGJM.clear(); + return this; + } + + /** + * repeated .MEMPJPLINCN LELKNNDCGJM = 6; + * + * This method returns the internal storage object without modifying any has state. + * The returned object should not be modified and be treated as read-only. + * + * Use {@link #getMutableLELKNNDCGJM()} if you want to modify it. + * + * @return internal storage object for reading + */ + public RepeatedMessage getLELKNNDCGJM() { + return lELKNNDCGJM; + } + + /** + * repeated .MEMPJPLINCN LELKNNDCGJM = 6; + * + * This method returns the internal storage object and sets the corresponding + * has state. The returned object will become part of this message and its + * contents may be modified as long as the has state is not cleared. + * + * @return internal storage object for modifications + */ + public RepeatedMessage getMutableLELKNNDCGJM() { + bitField0_ |= 0x00000008; + return lELKNNDCGJM; + } + + /** + * repeated .MEMPJPLINCN LELKNNDCGJM = 6; + * @param value the lELKNNDCGJM to add + * @return this + */ + public SelectRogueDialogueEventScRsp addLELKNNDCGJM( + final MEMPJPLINCNOuterClass.MEMPJPLINCN value) { + bitField0_ |= 0x00000008; + lELKNNDCGJM.add(value); + return this; + } + + /** + * repeated .MEMPJPLINCN LELKNNDCGJM = 6; + * @param values the lELKNNDCGJM to add + * @return this + */ + public SelectRogueDialogueEventScRsp addAllLELKNNDCGJM( + final MEMPJPLINCNOuterClass.MEMPJPLINCN... values) { + bitField0_ |= 0x00000008; + lELKNNDCGJM.addAll(values); + return this; + } + @Override public SelectRogueDialogueEventScRsp copyFrom(final SelectRogueDialogueEventScRsp other) { cachedSize = other.cachedSize; @@ -207,6 +259,7 @@ public final class SelectRogueDialogueEventScRspOuterClass { dialogueEventId = other.dialogueEventId; retcode = other.retcode; eventData.copyFrom(other.eventData); + lELKNNDCGJM.copyFrom(other.lELKNNDCGJM); } return this; } @@ -226,6 +279,9 @@ public final class SelectRogueDialogueEventScRspOuterClass { if (other.hasEventData()) { getMutableEventData().mergeFrom(other.eventData); } + if (other.hasLELKNNDCGJM()) { + getMutableLELKNNDCGJM().addAll(other.lELKNNDCGJM); + } return this; } @@ -239,6 +295,7 @@ public final class SelectRogueDialogueEventScRspOuterClass { dialogueEventId = 0; retcode = 0; eventData.clear(); + lELKNNDCGJM.clear(); return this; } @@ -250,6 +307,7 @@ public final class SelectRogueDialogueEventScRspOuterClass { cachedSize = -1; bitField0_ = 0; eventData.clearQuick(); + lELKNNDCGJM.clearQuick(); return this; } @@ -265,7 +323,8 @@ public final class SelectRogueDialogueEventScRspOuterClass { return bitField0_ == other.bitField0_ && (!hasDialogueEventId() || dialogueEventId == other.dialogueEventId) && (!hasRetcode() || retcode == other.retcode) - && (!hasEventData() || eventData.equals(other.eventData)); + && (!hasEventData() || eventData.equals(other.eventData)) + && (!hasLELKNNDCGJM() || lELKNNDCGJM.equals(other.lELKNNDCGJM)); } @Override @@ -282,6 +341,12 @@ public final class SelectRogueDialogueEventScRspOuterClass { output.writeRawByte((byte) 114); output.writeMessageNoTag(eventData); } + if ((bitField0_ & 0x00000008) != 0) { + for (int i = 0; i < lELKNNDCGJM.length(); i++) { + output.writeRawByte((byte) 50); + output.writeMessageNoTag(lELKNNDCGJM.get(i)); + } + } } @Override @@ -296,6 +361,9 @@ public final class SelectRogueDialogueEventScRspOuterClass { if ((bitField0_ & 0x00000004) != 0) { size += 1 + ProtoSink.computeMessageSizeNoTag(eventData); } + if ((bitField0_ & 0x00000008) != 0) { + size += (1 * lELKNNDCGJM.length()) + ProtoSink.computeRepeatedMessageSizeNoTag(lELKNNDCGJM); + } return size; } @@ -329,6 +397,14 @@ public final class SelectRogueDialogueEventScRspOuterClass { input.readMessage(eventData); bitField0_ |= 0x00000004; tag = input.readTag(); + if (tag != 50) { + break; + } + } + case 50: { + // lELKNNDCGJM + tag = input.readRepeatedMessage(lELKNNDCGJM, tag); + bitField0_ |= 0x00000008; if (tag != 0) { break; } @@ -359,6 +435,9 @@ public final class SelectRogueDialogueEventScRspOuterClass { if ((bitField0_ & 0x00000004) != 0) { output.writeMessage(FieldNames.eventData, eventData); } + if ((bitField0_ & 0x00000008) != 0) { + output.writeRepeatedMessage(FieldNames.lELKNNDCGJM, lELKNNDCGJM); + } output.endObject(); } @@ -404,6 +483,17 @@ public final class SelectRogueDialogueEventScRspOuterClass { } break; } + case 639073651: { + if (input.isAtField(FieldNames.lELKNNDCGJM)) { + if (!input.trySkipNullValue()) { + input.readRepeatedMessage(lELKNNDCGJM); + bitField0_ |= 0x00000008; + } + } else { + input.skipUnknownField(); + } + break; + } default: { input.skipUnknownField(); break; @@ -464,6 +554,8 @@ public final class SelectRogueDialogueEventScRspOuterClass { static final FieldName retcode = FieldName.forField("retcode"); static final FieldName eventData = FieldName.forField("eventData", "event_data"); + + static final FieldName lELKNNDCGJM = FieldName.forField("LELKNNDCGJM"); } } } diff --git a/src/main/java/emu/lunarcore/data/GameResource.java b/src/main/java/emu/lunarcore/data/GameResource.java index 40fb2ab..fb0fc63 100644 --- a/src/main/java/emu/lunarcore/data/GameResource.java +++ b/src/main/java/emu/lunarcore/data/GameResource.java @@ -6,6 +6,10 @@ public abstract class GameResource implements Comparable { public void onLoad() { + } + + public void onFinalize() { + } @Override diff --git a/src/main/java/emu/lunarcore/data/ResourceLoader.java b/src/main/java/emu/lunarcore/data/ResourceLoader.java index 731dc34..6f1f99a 100644 --- a/src/main/java/emu/lunarcore/data/ResourceLoader.java +++ b/src/main/java/emu/lunarcore/data/ResourceLoader.java @@ -6,6 +6,7 @@ import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Stream; +import emu.lunarcore.data.config.*; import org.reflections.Reflections; import com.google.gson.Gson; @@ -17,11 +18,7 @@ import com.google.gson.reflect.TypeToken; import emu.lunarcore.LunarCore; import emu.lunarcore.data.ResourceDeserializers.LunarCoreDoubleDeserializer; import emu.lunarcore.data.ResourceDeserializers.LunarCoreHashDeserializer; -import emu.lunarcore.data.config.FloorInfo; import emu.lunarcore.data.config.FloorInfo.FloorGroupSimpleInfo; -import emu.lunarcore.data.config.GroupInfo; -import emu.lunarcore.data.config.SkillAbilityInfo; -import emu.lunarcore.data.config.SummonUnitInfo; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; public class ResourceLoader { @@ -46,7 +43,9 @@ public class ResourceLoader { loadMazeAbilities(); // Load rogue maps loadRogueMapGen(); - + // Load rogue dialogue events + loadRogueDialogueEvent(); + // Done loaded = true; LunarCore.getLogger().info("Resource loading complete"); @@ -164,6 +163,14 @@ public class ResourceLoader { } }); + if (map != null) { + map.forEach((k, v) -> { + if (v instanceof GameResource) { + ((GameResource) v).onFinalize(); + } + }); + } + return count.get(); } } @@ -286,6 +293,37 @@ public class ResourceLoader { // Done LunarCore.getLogger().info("Loaded " + count + " maze abilities for avatars."); } + + // Might be better to cache + private static void loadRogueDialogueEvent() { + // Loaded configs count + int count = 0; + // Load dialogue event configs + for (var dialogueEventExcel : GameData.getRogueDialogueEventList().values()) { + + // Get file + File file = new File(LunarCore.getConfig().getResourceDir() + "/" + dialogueEventExcel.getJsonPath()); + if (!file.exists()) { + file = new File(LunarCore.getConfig().getResourceDir() + "/" + dialogueEventExcel.getSecondPath()); + if (!file.exists()) continue; + } + + try (FileReader reader = new FileReader(file)) { + RogueDialogueEventInfo info = gson.fromJson(reader, RogueDialogueEventInfo.class); + dialogueEventExcel.setInfo(info); + count++; + } catch (Exception e) { + e.printStackTrace(); + } + } + + // Notify the server owner if we are missing any files + if (count < GameData.getRogueDialogueEventList().size()) { + //LunarCore.getLogger().warn("Rogue dialogue event configs are missing, please check your resources folder: {resources}/Config/Level/RogueDialogue/RogueDialogueEvent/Act. Rogue event may not work!"); + } + // Done + LunarCore.getLogger().info("Loaded " + count + " rogue events."); + } private static void loadRogueMapGen() { File file = new File(LunarCore.getConfig().getDataDir() + "/RogueMapGen.json"); diff --git a/src/main/java/emu/lunarcore/data/config/RogueDialogueEventInfo.java b/src/main/java/emu/lunarcore/data/config/RogueDialogueEventInfo.java new file mode 100644 index 0000000..c96e5cb --- /dev/null +++ b/src/main/java/emu/lunarcore/data/config/RogueDialogueEventInfo.java @@ -0,0 +1,39 @@ +package emu.lunarcore.data.config; + +import com.google.gson.annotations.SerializedName; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.List; + +/** + * Original name: LevelRogueDialogueEvent + */ +@Getter +public class RogueDialogueEventInfo { + private List OnInitSequece = new ArrayList<>(); + private List OnStartSequece = new ArrayList<>(); + + @Getter + public static class RogueDialogueEvent { + private List TaskList = new ArrayList<>(); + } + + @Getter + public static class TaskListInfo { + @SerializedName("$type") public String Type = ""; + private List OptionList = new ArrayList<>(); + private CustomStringInfo CustomString = new CustomStringInfo(); + } + + @Getter + public static class OptionListInfo { + private String TriggerCustomString; + private int DialogueEventID; + } + + @Getter + public static class CustomStringInfo { + private String Value; + } +} diff --git a/src/main/java/emu/lunarcore/data/excel/DialogueEventExcel.java b/src/main/java/emu/lunarcore/data/excel/DialogueEventExcel.java index 07f8311..03a563c 100644 --- a/src/main/java/emu/lunarcore/data/excel/DialogueEventExcel.java +++ b/src/main/java/emu/lunarcore/data/excel/DialogueEventExcel.java @@ -4,15 +4,17 @@ import emu.lunarcore.data.GameData; import emu.lunarcore.data.GameResource; import emu.lunarcore.data.ResourceType; import emu.lunarcore.data.ResourceType.LoadPriority; +import emu.lunarcore.data.config.RogueDialogueEventInfo; import emu.lunarcore.game.enums.DialogueEventCostType; import emu.lunarcore.game.enums.DialogueEventType; import emu.lunarcore.game.rogue.RogueBuffType; import lombok.Getter; +import lombok.Setter; import java.util.List; @Getter -@ResourceType(name = {"DialogueEvent.json"}, loadPriority = LoadPriority.LOW) +@ResourceType(name = {"DialogueEvent.json"}) public class DialogueEventExcel extends GameResource { public int EventID; public DialogueEventType RogueEffectType; @@ -21,6 +23,8 @@ public class DialogueEventExcel extends GameResource { public List CostParamList; public List ConditionIDList; public RogueBuffType AeonOption; + + @Setter private RogueDialogueEventInfo info; @Override public int getId() { return EventID; @@ -30,4 +34,12 @@ public class DialogueEventExcel extends GameResource { public void onLoad() { GameData.getRogueDialogueEventList().put(EventID, this); } + + public String getJsonPath() { + return "Config/Level/RogueDialogue/RogueDialogueEvent/Act/Act00" + this.getId() + ".json"; + } + + public String getSecondPath() { + return "Config/Level/RogueDialogue/RogueDialogueEvent/Act/Act4038" + this.getId() + ".json"; + } } diff --git a/src/main/java/emu/lunarcore/data/excel/RogueBuffGroupExcel.java b/src/main/java/emu/lunarcore/data/excel/RogueBuffGroupExcel.java index 5a2bcc8..9bb8bed 100644 --- a/src/main/java/emu/lunarcore/data/excel/RogueBuffGroupExcel.java +++ b/src/main/java/emu/lunarcore/data/excel/RogueBuffGroupExcel.java @@ -1,5 +1,6 @@ package emu.lunarcore.data.excel; +import emu.lunarcore.LunarCore; import emu.lunarcore.data.GameData; import emu.lunarcore.data.GameResource; import emu.lunarcore.data.ResourceType; @@ -8,7 +9,9 @@ import emu.lunarcore.game.rogue.RogueBuffData; import lombok.Getter; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; @Getter @ResourceType(name = {"RogueBuffGroup.json"}, loadPriority = LoadPriority.LOW) @@ -16,7 +19,7 @@ public class RogueBuffGroupExcel extends GameResource { private int JHOKDPADHFM; // RogueBuffGroupID private List ADJICNNJFEM; // RogueBuffTagList or RogueBuffGroupList - private List rogueBuffList = new ArrayList<>(); + private transient Set rogueBuffList = new HashSet<>(); @Override public int getId() { @@ -35,7 +38,26 @@ public class RogueBuffGroupExcel extends GameResource { if (rogueBuffGroup != null) rogueBuffList.addAll(rogueBuffGroup.getRogueBuffList()); } } - GameData.getRogueBuffGroupExcelMap().put(JHOKDPADHFM, this); } + + @Override + public void onFinalize() { + for (int rogueTagId : ADJICNNJFEM) { + if (rogueTagId >= 1000000 && rogueTagId <= 9999999) { + var rogueBuff = GameData.getRogueBuffTagExcelMap().get(rogueTagId); + if (rogueBuff != null) rogueBuffList.add(new RogueBuffData(rogueBuff.getMazeBuffID(), rogueBuff.getMazeBuffLevel())); + } else { + // RogueBuffGroup + var rogueBuffGroup = GameData.getRogueBuffGroupExcelMap().get(rogueTagId); + if (rogueBuffGroup == null) + continue; + + if(rogueBuffGroup.getRogueBuffList().isEmpty()) { + rogueBuffGroup.onFinalize(); + } + rogueBuffList.addAll(rogueBuffGroup.getRogueBuffList()); + } + } + } } diff --git a/src/main/java/emu/lunarcore/game/rogue/RogueBuffSelectMenu.java b/src/main/java/emu/lunarcore/game/rogue/RogueBuffSelectMenu.java index d8f42ab..94db2e5 100644 --- a/src/main/java/emu/lunarcore/game/rogue/RogueBuffSelectMenu.java +++ b/src/main/java/emu/lunarcore/game/rogue/RogueBuffSelectMenu.java @@ -1,8 +1,11 @@ package emu.lunarcore.game.rogue; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import emu.lunarcore.data.GameData; import emu.lunarcore.data.GameDepot; import emu.lunarcore.data.excel.RogueBuffExcel; import emu.lunarcore.proto.ItemCostListOuterClass.ItemCostList; @@ -24,19 +27,21 @@ public class RogueBuffSelectMenu { // Cache private transient WeightedList randomBuffs; + private transient Set allRandomBuffs; @Deprecated // Morphia only! public RogueBuffSelectMenu() {} public RogueBuffSelectMenu(RogueInstance rogue) { - this(rogue, false); + this(rogue, false, GameData.getRogueBuffGroupExcelMap().get(110002).getRogueBuffList()); } - public RogueBuffSelectMenu(RogueInstance rogue, boolean generateAeonBuffs) { + public RogueBuffSelectMenu(RogueInstance rogue, boolean generateAeonBuffs, Set buffs) { this.rogue = rogue; this.maxBuffs = 3; this.maxRerolls = rogue.getBaseRerolls(); this.buffs = new ArrayList<>(); + this.allRandomBuffs = buffs; if (generateAeonBuffs) { this.generateAeonBuffs(); @@ -45,6 +50,10 @@ public class RogueBuffSelectMenu { } } + public RogueBuffSelectMenu(RogueInstance rogue, boolean generateAeonBuffs) { + this(rogue, generateAeonBuffs, new HashSet<>()); + } + public void setMaxRerolls(int i) { this.maxBuffs = i; } @@ -62,19 +71,19 @@ public class RogueBuffSelectMenu { if (this.randomBuffs == null) { this.randomBuffs = new WeightedList<>(); - for (var excel : GameDepot.getRogueRandomBuffList()) { - if (rogue.getBuffs().containsKey(excel.getMazeBuffID())) { + for (var excel : this.getAllRandomBuffs()) { + if (rogue.getBuffs().containsKey(excel.getExcel().getMazeBuffID())) { continue; } // Calculate buff weights - double weight = 10.0 / excel.getRogueBuffRarity(); + double weight = 10.0 / excel.getExcel().getRogueBuffRarity(); - if (getRogue().getAeonBuffType() == excel.getRogueBuffType()) { + if (getRogue().getAeonBuffType() == excel.getExcel().getRogueBuffType()) { weight *= 2; } - this.randomBuffs.add(weight, excel); + this.randomBuffs.add(weight, excel.getExcel()); }; } diff --git a/src/main/java/emu/lunarcore/game/rogue/RogueEntityLoader.java b/src/main/java/emu/lunarcore/game/rogue/RogueEntityLoader.java index de9e21f..9c7fb32 100644 --- a/src/main/java/emu/lunarcore/game/rogue/RogueEntityLoader.java +++ b/src/main/java/emu/lunarcore/game/rogue/RogueEntityLoader.java @@ -17,12 +17,9 @@ import emu.lunarcore.game.scene.entity.EntityMonster; import emu.lunarcore.game.scene.entity.EntityNpc; import emu.lunarcore.game.scene.entity.EntityProp; import emu.lunarcore.game.scene.entity.extra.PropRogueData; -import emu.lunarcore.proto.RogueDialogueEventParamOuterClass.RogueDialogueEventParam; import emu.lunarcore.server.packet.send.PacketSyncRogueDialogueEventDataScNotify; import emu.lunarcore.util.Utils; -import java.util.ArrayList; - public class RogueEntityLoader extends SceneEntityLoader { @Override @@ -136,19 +133,18 @@ public class RogueEntityLoader extends SceneEntityLoader { // Add rogue dialogue if (npc.getNpcId() == 3013) { - RogueNPCExcel rogueNpcExcel = Utils.randomElement(GameDepot.getRogueRandomNpcList()); - npc.setRogueNpcId(rogueNpcExcel.getId()); - var params = new ArrayList(); - var start = rogueNpcExcel.getId(); - while (true) { - var event = GameData.getRogueDialogueEventList().get(start); - if (event == null) break; - params.add(RogueDialogueEventParam.newInstance() - .setDialogueEventId(start) - .setIsValid(true)); - start++; - } - scene.getPlayer().sendPacket(new PacketSyncRogueDialogueEventDataScNotify(rogueNpcExcel.getId(), params)); + int npcId; + RogueInstance instance; + do { + RogueNPCExcel rogueNpcExcel = Utils.randomElement(GameDepot.getRogueRandomNpcList()); + npcId = rogueNpcExcel.getId(); + instance = scene.getPlayer().getRogueInstance(); + } while (instance.setDialogueParams(npcId) == null); + + npc.setRogueNpcId(npcId); + npc.setEventId(++instance.eventId); + scene.getPlayer().sendPacket(new PacketSyncRogueDialogueEventDataScNotify(npcId, instance.curDialogueParams.get(npcId), + instance.eventId)); } return npc; diff --git a/src/main/java/emu/lunarcore/game/rogue/RogueEventManager.java b/src/main/java/emu/lunarcore/game/rogue/RogueEventManager.java index 9d4d108..b9df5c4 100644 --- a/src/main/java/emu/lunarcore/game/rogue/RogueEventManager.java +++ b/src/main/java/emu/lunarcore/game/rogue/RogueEventManager.java @@ -1,7 +1,14 @@ package emu.lunarcore.game.rogue; +import emu.lunarcore.LunarCore; import emu.lunarcore.data.GameData; import emu.lunarcore.game.player.Player; +import emu.lunarcore.game.scene.entity.EntityNpc; +import emu.lunarcore.proto.FinishRogueDialogueGroupCsReqOuterClass; +import emu.lunarcore.server.packet.BasePacket; +import emu.lunarcore.server.packet.CmdId; +import emu.lunarcore.server.packet.recv.HandlerFinishRogueDialogueGroupCsReq; +import emu.lunarcore.server.packet.send.PacketSyncRogueCommonPendingActionScNotify; import emu.lunarcore.util.WeightedList; import lombok.Getter; @@ -17,15 +24,19 @@ public class RogueEventManager { this.player = rogueInstance.getPlayer(); } - public void handleEvent(int eventId) { + public int handleEvent(int eventId) { var event = GameData.getRogueDialogueEventList().get(eventId); - if (event == null || event.getRogueEffectType() == null) return; + if (event == null || event.getRogueEffectType() == null) return 0; List param = event.getRogueEffectParamList(); switch (event.getRogueEffectType()) { - case GetItem -> rogueInstance.setMoney(rogueInstance.getMoney() + param.get(1)); - case TriggerBattle -> this.getPlayer().getServer().getBattleService().startBattle(player, param.get(0)); + case GetItem -> rogueInstance.addDialogueMoney(param.get(1)); + case TriggerBattle -> { + //this.getPlayer().getServer().getBattleService().startBattle(player, param.get(0)); + } case TriggerRogueMiracleSelect -> this.getRogueInstance().createMiracleSelect(1); - case TriggerRogueBuffSelect -> this.getRogueInstance().createBuffSelect(1); + case TriggerRogueBuffSelect -> { + this.getRogueInstance().createBuffSelect(param.get(2), param.get(0)); + } case GetRogueBuff -> { var rogueBuff = GameData.getRogueBuffGroupExcelMap().get(param.get(0)); if (rogueBuff != null) { @@ -48,8 +59,27 @@ public class RogueEventManager { var rogueBuff = GameData.getRogueBuffGroupExcelMap().get(param.get(0)); this.getRogueInstance().addBuff(rogueBuff.getRogueBuffList()); } + case TriggerDialogueEventList -> { + for (var id : param) { + this.handleEvent(id); + } + } + case TriggerRandomEventList -> { + this.handleEvent(11604); // temp + handleCost(eventId); + return 0; + } + case GetAllRogueBuffInGroupAndGetItem -> { + var rogueBuff = GameData.getRogueBuffGroupExcelMap().get(param.get(0)); + this.getRogueInstance().addBuff(rogueBuff.getRogueBuffList()); + this.getRogueInstance().addDialogueMoney(param.get(2)); + } + default -> { + LunarCore.getLogger().info("RogueEventManager: unhandled event type: " + event.getRogueEffectType()); // DEBUG + } } handleCost(eventId); + return 0; } public void handleCost(int eventId) { diff --git a/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java b/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java index 8341aa1..4388a7e 100644 --- a/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java +++ b/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java @@ -4,9 +4,7 @@ import java.util.*; import emu.lunarcore.data.GameData; import emu.lunarcore.data.config.AnchorInfo; -import emu.lunarcore.data.excel.RogueAeonExcel; -import emu.lunarcore.data.excel.RogueAreaExcel; -import emu.lunarcore.data.excel.RogueMapExcel; +import emu.lunarcore.data.excel.*; import emu.lunarcore.game.battle.Battle; import emu.lunarcore.game.enums.RogueBuffAeonType; import emu.lunarcore.game.inventory.GameItem; @@ -20,9 +18,11 @@ import emu.lunarcore.proto.HandleRogueCommonPendingActionScRspOuterClass.HandleR import emu.lunarcore.proto.RogueAeonOuterClass.RogueAeon; import emu.lunarcore.proto.RogueAvatarInfoOuterClass.RogueAvatarInfo; import emu.lunarcore.proto.RogueBuffInfoOuterClass.RogueBuffInfo; +import emu.lunarcore.proto.RogueBuffOuterClass.RogueBuff; import emu.lunarcore.proto.RogueBuffSourceOuterClass.RogueBuffSource; import emu.lunarcore.proto.RogueCommonPendingActionOuterClass.RogueCommonPendingAction; import emu.lunarcore.proto.RogueCurrentInfoOuterClass.RogueCurrentInfo; +import emu.lunarcore.proto.RogueDialogueEventParamOuterClass.RogueDialogueEventParam; import emu.lunarcore.proto.RogueFinishInfoOuterClass.RogueFinishInfo; import emu.lunarcore.proto.RogueMapInfoOuterClass.RogueMapInfo; import emu.lunarcore.proto.RogueMiracleInfoOuterClass.RogueMiracleInfo; @@ -33,6 +33,8 @@ import emu.lunarcore.proto.RogueStatusOuterClass.RogueStatus; import emu.lunarcore.proto.RogueVirtualItemOuterClass.RogueVirtualItem; import emu.lunarcore.server.packet.send.*; import emu.lunarcore.util.Utils; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import lombok.Getter; import us.hebi.quickbuf.RepeatedInt; @@ -52,20 +54,25 @@ public class RogueInstance { private Map buffs; private Map miracles; - private int pendingBuffSelects; + //private int pendingBuffSelects; + private List> pendingBuffSelects = new ArrayList<>(); private RogueBuffSelectMenu buffSelect; private int pendingMiracleSelects; private RogueMiracleSelectMenu miracleSelect; private int pendingBonusSelects; private RogueBonusSelectMenu bonusSelect; - private RogueCommonPendingAction pendingAction; + public RogueCommonPendingAction pendingAction; private int baseRerolls; private int aeonId; private int aeonBuffType; private int maxAeonBuffs; private int money; // universal debris - private int id = 2; // idk what this is for, but it's needed for the packet + public int id = 2; // idk what this is for, but it's needed for the packet + public int eventId = 690; + public Int2ObjectMap> curDialogueParams = new Int2ObjectOpenHashMap<>(); + private final Set normalBuff = GameData.getRogueBuffGroupExcelMap().get(100005).getRogueBuffList(); + private final Set uncommonBuff = GameData.getRogueBuffGroupExcelMap().get(100003).getRogueBuffList(); private int roomScore; private int earnedTalentCoin; @@ -121,7 +128,7 @@ public class RogueInstance { } // Extra blessings if (player.getRogueManager().hasTalent(21)) { - this.pendingBuffSelects += 1; + this.pendingBuffSelects.add(normalBuff); } } @@ -169,22 +176,46 @@ public class RogueInstance { } } - public synchronized void createBuffSelect(int amount) { - this.pendingBuffSelects += amount; + public synchronized void createBuffSelect(int amount, int groupId) { + var buffs = GameData.getRogueBuffGroupExcelMap().get(groupId).getRogueBuffList(); + if (!buffs.isEmpty()) { + for (int i = 0; i < amount; i++) { + this.pendingBuffSelects.add(buffs); + } + RogueBuffSelectMenu buffSelect = this.updateBuffSelect(); + } - RogueBuffSelectMenu buffSelect = this.updateBuffSelect(); // if (buffSelect != null) { // getPlayer().sendPacket(new PacketSyncRogueBuffSelectInfoScNotify(buffSelect)); // } } + public synchronized void createBuffSelect(int amount, Set buffs) { + if (!buffs.isEmpty()) { + for (int i = 0; i < amount; i++) { + this.pendingBuffSelects.add(buffs); + } + RogueBuffSelectMenu buffSelect = this.updateBuffSelect(); + } +// if (buffSelect != null) { +// getPlayer().sendPacket(new PacketSyncRogueBuffSelectInfoScNotify(buffSelect)); +// } + } + + public synchronized void createBuffSelect(int amount) { + for (int i = 0; i < amount; i++) { + this.pendingBuffSelects.add(normalBuff); + } + RogueBuffSelectMenu buffSelect = this.updateBuffSelect(); + } + public synchronized RogueBuffSelectMenu updateBuffSelect() { if (this.getBuffSelect() == null) { // Creates a new blessing selection menu if we have any pending buff selects - if (this.pendingBuffSelects > 0) { + if (!this.pendingBuffSelects.isEmpty()) { // Regular blessing selection with 3 random blessings - this.buffSelect = new RogueBuffSelectMenu(this, false); - this.pendingBuffSelects--; + this.buffSelect = new RogueBuffSelectMenu(this, false, this.pendingBuffSelects.get(0)); + this.pendingBuffSelects.remove(0); } else if (this.getAeonId() != 0) { // Check if we should add aeon blessings if (shouldAddAeonBuff()) { @@ -257,18 +288,34 @@ public class RogueInstance { return buff; } - public synchronized void addBuff(List buffs) { + public synchronized void addBuff(Set buffs) { for (var buff : buffs) { this.addBuff(buff); } } public synchronized void addBuff(RogueBuffData buff) { + this.addBuff(buff, RogueBuffSource.ROGUE_BUFF_SOURCE_TYPE_DIALOGUE); + } + public synchronized void addBuff(RogueBuffData buff, RogueBuffSource source) { this.getBuffs().put(buff.getId(), buff); - getPlayer().sendPacket(new PacketSyncRogueCommonActionResultScNotify(RogueBuffSource.ROGUE_BUFF_SOURCE_TYPE_DIALOGUE, buff.toDataProto())); + getPlayer().sendPacket(new PacketSyncRogueCommonActionResultScNotify(source, buff.toDataProto())); this.updateBuffSelect(); } + public synchronized RogueBuff enhanceBuff(int buffId) { + var buff = this.getBuffs().get(buffId); + if (buff == null) return null; + var cost = 100 + (buff.getExcel().getRogueBuffRarity() - 1) * 30; + if (this.getMoney() < cost) return null; + this.setMoney(this.getMoney() - cost); + this.getBuffs().remove(buffId); + this.addBuff(new RogueBuffData(buff.getId(), buff.getLevel() + 1), RogueBuffSource.ROGUE_BUFF_SOURCE_TYPE_ENHANCE); + return RogueBuff.newInstance() + .setBuffId(buffId) + .setLevel(buff.getLevel() + 1); + } + public synchronized void createMiracleSelect(int amount) { this.pendingMiracleSelects += amount; @@ -368,16 +415,25 @@ public class RogueInstance { data.getMutableBonusSelect(); data.setTimes(this.id - 2); this.getPlayer().sendPacket(new PacketHandleRogueCommonPendingActionScRsp(data)); - this.onSelectDialogue(bonus.getEventId()); + try { + this.onSelectDialogue(bonus.getEventId()); + } catch (Exception ignored) { + } return bonus; } public synchronized void setMoney(int money) { if (this.money <= money) { - getPlayer().sendPacket(new PacketScenePlaneEventScNotify(new GameItem(31, money - this.money))); + this.getPlayer().sendPacket(new PacketScenePlaneEventScNotify(new GameItem(31, money - this.money))); } this.money = money; - getPlayer().sendPacket(new PacketSyncRogueVirtualItemInfoScNotify(this.getPlayer())); + this.getPlayer().sendPacket(new PacketSyncRogueVirtualItemInfoScNotify(this.getPlayer())); + } + + public synchronized void addDialogueMoney(int money) { + this.money += money; + this.getPlayer().sendPacket(new PacketSyncRogueVirtualItemInfoScNotify(this.getPlayer())); + this.getPlayer().sendPacket(new PacketSyncRogueCommonActionResultScNotify(RogueBuffSource.ROGUE_BUFF_SOURCE_TYPE_DIALOGUE, money)); } public synchronized void pickAvatar(RepeatedInt avatarId) { @@ -390,6 +446,62 @@ public class RogueInstance { this.getPlayer().sendPacket(new PacketPickRogueAvatarScRsp(newAvatarIds)); } + public synchronized List setDialogueParams(int npcId) { + try { + this.curDialogueParams.clear(); + + DialogueEventExcel event = GameData.getRogueDialogueEventList().get(npcId); + var sequence = event.getInfo().getOnStartSequece(); + + ArrayList params = new ArrayList<>(); + Int2ObjectMap map = new Int2ObjectOpenHashMap<>(); + Map argMap = new HashMap<>(); + for (var e : sequence) { + var talkList = e.getTaskList(); + var tempName = ""; + + for (var talk : talkList) { + if (talk.getOptionList() != null && !talk.getOptionList().isEmpty()){ + for (var option : talk.getOptionList()) { + if (option.getDialogueEventID() != 0) { + map.put(option.getDialogueEventID(), option.getTriggerCustomString()); + } + } + continue; + } + + if (talk.Type.equals("RPG.GameCore.WaitCustomString")) { + tempName = talk.getCustomString().getValue(); + continue; + } + + if (!Objects.equals(tempName, "") && talk.Type.equals("RPG.GameCore.TriggerCustomString")) { + argMap.put(tempName, talk.getCustomString().getValue()); + tempName = ""; + } + } + } + + map.forEach((k, v) -> { + var param = RogueDialogueEventParam.newInstance() + .setDialogueEventId(k) + .setIsValid(true); + + if (argMap.containsKey(v) && argMap.get(v).equals("RelateToBuff")) { + param.setArgId(this.getAeonId()); + } + + params.add(param); + }); + + this.getCurDialogueParams().put(npcId, params); + + return params; + } catch (Exception e) { + return null; + } + } + public synchronized RogueRoomData enterRoom(int siteId) { // Set status on previous room RogueRoomData prevRoom = this.getCurrentRoom(); @@ -448,8 +560,8 @@ public class RogueInstance { // Dialogue stuff - public void onSelectDialogue(int dialogueEventId) { - this.eventManager.handleEvent(dialogueEventId); + public int onSelectDialogue(int dialogueEventId) { + return this.eventManager.handleEvent(dialogueEventId); } // Battle @@ -483,7 +595,12 @@ public class RogueInstance { } else { // Give blessings to player int amount = battle.getNpcMonsters().size(); - this.createBuffSelect(amount); + if (this.getCurrentRoom().getExcel().getRogueRoomType() == 6) { // area boss + this.createBuffSelect(amount, this.getUncommonBuff()); + } else { + this.createBuffSelect(amount); + } + this.setMoney(this.getMoney() + Utils.randomRange(20, 80) * amount); } } else { this.getPlayer().getRogueManager().quitRogue(); diff --git a/src/main/java/emu/lunarcore/game/scene/entity/EntityNpc.java b/src/main/java/emu/lunarcore/game/scene/entity/EntityNpc.java index f877a1a..9e3e102 100644 --- a/src/main/java/emu/lunarcore/game/scene/entity/EntityNpc.java +++ b/src/main/java/emu/lunarcore/game/scene/entity/EntityNpc.java @@ -24,6 +24,7 @@ public class EntityNpc implements GameEntity { @Setter private int rogueNpcId; @Setter private boolean isDialogueFinished = false; + @Setter private int eventId = 0; public EntityNpc(Scene scene, GroupInfo group, NpcInfo npcInfo) { this.scene = scene; @@ -44,7 +45,8 @@ public class EntityNpc implements GameEntity { if (this.rogueNpcId > 0) { var rogue = NpcRogueInfo.newInstance() .setRogueNpcId(this.rogueNpcId) - .setFinishDialogue(isDialogueFinished); + .setFinishDialogue(isDialogueFinished) + .setGBMDBBBMBEJ(eventId); npc.getMutableExtraInfo().setRogueInfo(rogue); } diff --git a/src/main/java/emu/lunarcore/server/packet/recv/HandlerEnhanceRogueBuffCsReq.java b/src/main/java/emu/lunarcore/server/packet/recv/HandlerEnhanceRogueBuffCsReq.java new file mode 100644 index 0000000..35aefd1 --- /dev/null +++ b/src/main/java/emu/lunarcore/server/packet/recv/HandlerEnhanceRogueBuffCsReq.java @@ -0,0 +1,20 @@ +package emu.lunarcore.server.packet.recv; + +import emu.lunarcore.proto.EnhanceRogueBuffCsReqOuterClass.EnhanceRogueBuffCsReq; +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.PacketEnhanceRogueBuffScRsp; + +@Opcodes(CmdId.EnhanceRogueBuffCsReq) +public class HandlerEnhanceRogueBuffCsReq extends PacketHandler { + @Override + public void handle(GameSession session, byte[] data) throws Exception { + var proto = EnhanceRogueBuffCsReq.parseFrom(data); + var buffId = proto.getBuffId(); + + var buff = session.getPlayer().getRogueInstance().enhanceBuff(buffId); + session.send(new PacketEnhanceRogueBuffScRsp(buff)); + } +} diff --git a/src/main/java/emu/lunarcore/server/packet/recv/HandlerGetRogueBuffEnhanceInfoCsReq.java b/src/main/java/emu/lunarcore/server/packet/recv/HandlerGetRogueBuffEnhanceInfoCsReq.java new file mode 100644 index 0000000..672c9d7 --- /dev/null +++ b/src/main/java/emu/lunarcore/server/packet/recv/HandlerGetRogueBuffEnhanceInfoCsReq.java @@ -0,0 +1,15 @@ +package emu.lunarcore.server.packet.recv; + +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.PacketGetRogueBuffEnhanceInfoScRsp; + +@Opcodes(CmdId.GetRogueBuffEnhanceInfoCsReq) +public class HandlerGetRogueBuffEnhanceInfoCsReq extends PacketHandler { + @Override + public void handle(GameSession session, byte[] data) throws Exception { + session.send(new PacketGetRogueBuffEnhanceInfoScRsp(session.getPlayer())); + } +} diff --git a/src/main/java/emu/lunarcore/server/packet/recv/HandleRogueNpcDisappearCsReq.java b/src/main/java/emu/lunarcore/server/packet/recv/HandlerRogueNpcDisappearCsReq.java similarity index 93% rename from src/main/java/emu/lunarcore/server/packet/recv/HandleRogueNpcDisappearCsReq.java rename to src/main/java/emu/lunarcore/server/packet/recv/HandlerRogueNpcDisappearCsReq.java index ccc1a5f..7b0f85c 100644 --- a/src/main/java/emu/lunarcore/server/packet/recv/HandleRogueNpcDisappearCsReq.java +++ b/src/main/java/emu/lunarcore/server/packet/recv/HandlerRogueNpcDisappearCsReq.java @@ -9,7 +9,7 @@ import emu.lunarcore.server.packet.PacketHandler; import emu.lunarcore.server.packet.send.PacketSceneGroupRefreshScNotify; @Opcodes(CmdId.RogueNpcDisappearCsReq) -public class HandleRogueNpcDisappearCsReq extends PacketHandler { +public class HandlerRogueNpcDisappearCsReq extends PacketHandler { @Override public void handle(GameSession session, byte[] data) throws Exception { var req = RogueNpcDisappearCsReq.parseFrom(data); diff --git a/src/main/java/emu/lunarcore/server/packet/recv/HandlerSelectRogueDialogueEventCsReq.java b/src/main/java/emu/lunarcore/server/packet/recv/HandlerSelectRogueDialogueEventCsReq.java index 1be4b14..8d2475b 100644 --- a/src/main/java/emu/lunarcore/server/packet/recv/HandlerSelectRogueDialogueEventCsReq.java +++ b/src/main/java/emu/lunarcore/server/packet/recv/HandlerSelectRogueDialogueEventCsReq.java @@ -1,7 +1,6 @@ package emu.lunarcore.server.packet.recv; import emu.lunarcore.game.scene.entity.EntityNpc; -import emu.lunarcore.proto.FinishRogueDialogueGroupCsReqOuterClass.FinishRogueDialogueGroupCsReq; import emu.lunarcore.proto.SelectRogueDialogueEventCsReqOuterClass.SelectRogueDialogueEventCsReq; import emu.lunarcore.server.game.GameSession; import emu.lunarcore.server.packet.CmdId; @@ -15,17 +14,17 @@ public class HandlerSelectRogueDialogueEventCsReq extends PacketHandler { @Override public void handle(GameSession session, byte[] data) throws Exception { var req = SelectRogueDialogueEventCsReq.parseFrom(data); - - if (session.getPlayer().getRogueInstance() != null) { - session.getPlayer().getRogueInstance().onSelectDialogue(req.getDialogueEventId()); - } EntityNpc npc = (EntityNpc)session.getPlayer().getScene().getEntityById(req.getEntityId()); - session.send(new PacketSelectRogueDialogueEventScRsp(req.getDialogueEventId(), npc)); - new HandlerFinishRogueDialogueGroupCsReq().handle(session, FinishRogueDialogueGroupCsReq.newInstance() // using it before the event is implemented - .setEntityId(req.getEntityId()) - .toByteArray()); + if (npc == null) return; + + int callback = 0; + if (session.getPlayer().getRogueInstance() != null) { + callback = session.getPlayer().getRogueInstance().onSelectDialogue(req.getDialogueEventId()); + } + + session.send(new PacketSelectRogueDialogueEventScRsp(req.getDialogueEventId(), npc, callback)); } } diff --git a/src/main/java/emu/lunarcore/server/packet/send/PacketEnhanceRogueBuffScRsp.java b/src/main/java/emu/lunarcore/server/packet/send/PacketEnhanceRogueBuffScRsp.java new file mode 100644 index 0000000..88cea75 --- /dev/null +++ b/src/main/java/emu/lunarcore/server/packet/send/PacketEnhanceRogueBuffScRsp.java @@ -0,0 +1,18 @@ +package emu.lunarcore.server.packet.send; + +import emu.lunarcore.proto.EnhanceRogueBuffScRspOuterClass.EnhanceRogueBuffScRsp; +import emu.lunarcore.proto.RogueBuffOuterClass.RogueBuff; +import emu.lunarcore.server.packet.BasePacket; +import emu.lunarcore.server.packet.CmdId; + +public class PacketEnhanceRogueBuffScRsp extends BasePacket { + public PacketEnhanceRogueBuffScRsp(RogueBuff buff) { + super(CmdId.EnhanceRogueBuffScRsp); + + var proto = EnhanceRogueBuffScRsp.newInstance() + .setIsSuccess(true) + .setRogueBuff(buff); + + this.setData(proto); + } +} diff --git a/src/main/java/emu/lunarcore/server/packet/send/PacketGetRogueBuffEnhanceInfoScRsp.java b/src/main/java/emu/lunarcore/server/packet/send/PacketGetRogueBuffEnhanceInfoScRsp.java new file mode 100644 index 0000000..7924701 --- /dev/null +++ b/src/main/java/emu/lunarcore/server/packet/send/PacketGetRogueBuffEnhanceInfoScRsp.java @@ -0,0 +1,42 @@ +package emu.lunarcore.server.packet.send; + +import emu.lunarcore.data.excel.RogueBuffExcel; +import emu.lunarcore.game.player.Player; +import emu.lunarcore.proto.GetRogueBuffEnhanceInfoScRspOuterClass.GetRogueBuffEnhanceInfoScRsp; +import emu.lunarcore.proto.ItemCostListOuterClass.ItemCostList; +import emu.lunarcore.proto.ItemCostOuterClass.ItemCost; +import emu.lunarcore.proto.ItemCostOuterClass.PileItem; +import emu.lunarcore.proto.RogueBuffEnhanceInfoOuterClass.RogueBuffEnhanceInfo; +import emu.lunarcore.proto.RogueBuffEnhanceShopInfoOuterClass.RogueBuffEnhanceShopInfo; +import emu.lunarcore.server.packet.BasePacket; +import emu.lunarcore.server.packet.CmdId; + +public class PacketGetRogueBuffEnhanceInfoScRsp extends BasePacket { + public PacketGetRogueBuffEnhanceInfoScRsp(Player player) { + super(CmdId.GetRogueBuffEnhanceInfoScRsp); + + var buffs = player.getRogueInstance().getBuffs(); + var proto = GetRogueBuffEnhanceInfoScRsp.newInstance(); + var shop = RogueBuffEnhanceShopInfo.newInstance(); + + for (var buff : buffs.values()) { + if (buff.getLevel() > 1) continue; + shop.addBuffInfo(RogueBuffEnhanceInfo.newInstance() + .setBuffId(buff.getId()) + .setItemCostList(this.getItemCostList(buff.getExcel())) + .setHNHFMFCDCOC(1)); + } + proto.setShopInfo(shop); + + this.setData(proto); + } + + public ItemCostList getItemCostList(RogueBuffExcel excel) { + int cost = 100 + (excel.getRogueBuffRarity() - 1) * 30; + return ItemCostList.newInstance() + .addItemList(ItemCost.newInstance() + .setPileItem(PileItem.newInstance() + .setItemId(31) + .setItemNum(cost))); + } +} diff --git a/src/main/java/emu/lunarcore/server/packet/send/PacketSelectRogueDialogueEventScRsp.java b/src/main/java/emu/lunarcore/server/packet/send/PacketSelectRogueDialogueEventScRsp.java index d08e020..69d3392 100644 --- a/src/main/java/emu/lunarcore/server/packet/send/PacketSelectRogueDialogueEventScRsp.java +++ b/src/main/java/emu/lunarcore/server/packet/send/PacketSelectRogueDialogueEventScRsp.java @@ -1,47 +1,45 @@ package emu.lunarcore.server.packet.send; -import emu.lunarcore.data.GameData; -import emu.lunarcore.data.GameDepot; -import emu.lunarcore.data.excel.RogueNPCExcel; -import emu.lunarcore.game.player.Player; import emu.lunarcore.game.scene.entity.EntityNpc; +import emu.lunarcore.proto.MEMPJPLINCNOuterClass.MEMPJPLINCN; import emu.lunarcore.proto.RogueDialogueEventOuterClass.RogueDialogueEvent; import emu.lunarcore.proto.RogueDialogueEventParamOuterClass.RogueDialogueEventParam; import emu.lunarcore.proto.SelectRogueDialogueEventScRspOuterClass.SelectRogueDialogueEventScRsp; import emu.lunarcore.server.packet.BasePacket; import emu.lunarcore.server.packet.CmdId; -import emu.lunarcore.util.Utils; - -import java.util.ArrayList; public class PacketSelectRogueDialogueEventScRsp extends BasePacket { - public PacketSelectRogueDialogueEventScRsp(int dialogueEventId, EntityNpc npc) { + public PacketSelectRogueDialogueEventScRsp(int dialogueEventId, EntityNpc npc, int nextEventId) { super(CmdId.SelectRogueDialogueEventScRsp); var data = SelectRogueDialogueEventScRsp.newInstance() .setDialogueEventId(dialogueEventId); - - RogueNPCExcel rogueNpcExcel = Utils.randomElement(GameDepot.getRogueRandomNpcList()); - var params = new ArrayList(); - var start = rogueNpcExcel.getId(); - while (true) { - var event = GameData.getRogueDialogueEventList().get(start); - if (event == null) break; - params.add(RogueDialogueEventParam.newInstance() - .setDialogueEventId(start) - .setIsValid(true)); - start++; + var instance = npc.getScene().getPlayer().getRogueInstance(); + + var params = instance.curDialogueParams.get(npc.getRogueNpcId()); + if (params == null) { + params = instance.setDialogueParams(npc.getRogueNpcId()); } var event = RogueDialogueEvent.newInstance() .setNpcId(npc.getRogueNpcId()) .setGameModeType(5) - .addAllNNOHLEAOJPP(dialogueEventId) + .addSelectEventId(dialogueEventId) + .setGBMDBBBMBEJ(instance.getEventId()) .addAllRogueDialogueEventParam(params.toArray(RogueDialogueEventParam[]::new)); + var l = MEMPJPLINCN.newInstance(); + for (var param : params) { + l.addBLGIMDCNDHJ(param.getDialogueEventId()); + } + if (nextEventId != 0) { + l.addBLGIMDCNDHJ(nextEventId); + } + data.addLELKNNDCGJM(l); data.setEventData(event); + this.setData(data); } } diff --git a/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueCommonActionResultScNotify.java b/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueCommonActionResultScNotify.java index d624b82..48023c2 100644 --- a/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueCommonActionResultScNotify.java +++ b/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueCommonActionResultScNotify.java @@ -5,6 +5,7 @@ import emu.lunarcore.proto.RogueMiracleDataOuterClass.RogueMiracleData; import emu.lunarcore.proto.RogueActionResultDataOuterClass.RogueActionResultData; import emu.lunarcore.proto.RogueActionResultOuterClass.RogueActionResult; import emu.lunarcore.proto.RogueBuffSourceOuterClass.RogueBuffSource; +import emu.lunarcore.proto.RogueVirtualItemDataOuterClass.RogueVirtualItemData; import emu.lunarcore.proto.SyncRogueCommonActionResultScNotifyOuterClass.SyncRogueCommonActionResultScNotify; import emu.lunarcore.server.packet.BasePacket; import emu.lunarcore.server.packet.CmdId; @@ -13,7 +14,8 @@ public class PacketSyncRogueCommonActionResultScNotify extends BasePacket { public PacketSyncRogueCommonActionResultScNotify(RogueActionResult action) { super(CmdId.SyncRogueCommonActionResultScNotify); - var proto = SyncRogueCommonActionResultScNotify.newInstance(); + var proto = SyncRogueCommonActionResultScNotify.newInstance() + .setOCPBNBPAMEN(101); proto.setAction(action); @@ -35,4 +37,10 @@ public class PacketSyncRogueCommonActionResultScNotify extends BasePacket { this(source, RogueActionResultData.newInstance() .setAddBuffList(buff)); } + + public PacketSyncRogueCommonActionResultScNotify(RogueBuffSource source, int addMoneyNum) { + this(source, RogueActionResultData.newInstance() + .setAddItemList(RogueVirtualItemData.newInstance() + .setNum(addMoneyNum))); + } } diff --git a/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueCommonPendingActionScNotify.java b/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueCommonPendingActionScNotify.java index 4253a6c..fabb0a9 100644 --- a/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueCommonPendingActionScNotify.java +++ b/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueCommonPendingActionScNotify.java @@ -27,6 +27,10 @@ public class PacketSyncRogueCommonPendingActionScNotify extends BasePacket { .setRogueAction(action)); } + public PacketSyncRogueCommonPendingActionScNotify(int id) { + this(RogueAction.newInstance(), id); + } + public PacketSyncRogueCommonPendingActionScNotify(RogueCommonBuffSelectInfo info, int id) { this(RogueAction.newInstance() .setBuffSelectInfo(info), id); diff --git a/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueDialogueEventDataScNotify.java b/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueDialogueEventDataScNotify.java index 3cecd65..b4197be 100644 --- a/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueDialogueEventDataScNotify.java +++ b/src/main/java/emu/lunarcore/server/packet/send/PacketSyncRogueDialogueEventDataScNotify.java @@ -1,5 +1,6 @@ package emu.lunarcore.server.packet.send; +import emu.lunarcore.LunarCore; import emu.lunarcore.proto.RogueDialogueEventOuterClass.RogueDialogueEvent; import emu.lunarcore.proto.RogueDialogueEventParamOuterClass.RogueDialogueEventParam; import emu.lunarcore.proto.SyncRogueDialogueEventDataScNotifyOuterClass.SyncRogueDialogueEventDataScNotify; @@ -14,14 +15,15 @@ public class PacketSyncRogueDialogueEventDataScNotify extends BasePacket { var proto = SyncRogueDialogueEventDataScNotify.newInstance() .addRogueDialogueEvent(event); - + this.setData(proto); } - public PacketSyncRogueDialogueEventDataScNotify(int rogueNpcId, List params) { + public PacketSyncRogueDialogueEventDataScNotify(int rogueNpcId, List params, int eventId) { this(RogueDialogueEvent.newInstance() .setGameModeType(5) // rogue explore .setNpcId(rogueNpcId) + .setGBMDBBBMBEJ(eventId) .addAllRogueDialogueEventParam(params.toArray(RogueDialogueEventParam[]::new))); } }