From b40edc90bb0936faa7e3707295e985fe8aa79884 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Mon, 17 Aug 2026 20:42:09 -0700 Subject: [PATCH] Update to support game version `1.14.0.*` --- .../main/emu/nebula/proto/Public.java | 207 +++++++++++++++++- src/main/java/emu/nebula/GameConstants.java | 2 +- .../nebula/game/activity/ActivityModule.java | 15 +- .../game/tracehunt/TraceHuntManager.java | 2 +- src/main/java/emu/nebula/net/NetMsgId.java | 1 + src/main/resources/versions.json | 10 +- 6 files changed, 216 insertions(+), 21 deletions(-) diff --git a/src/generated/main/emu/nebula/proto/Public.java b/src/generated/main/emu/nebula/proto/Public.java index 23ce4ff..20be4dd 100644 --- a/src/generated/main/emu/nebula/proto/Public.java +++ b/src/generated/main/emu/nebula/proto/Public.java @@ -53533,11 +53533,21 @@ public final class Public { */ private int score; + /** + * optional uint32 Difficulty = 4; + */ + private int difficulty; + /** * optional bytes NextPackage = 2047; */ private final RepeatedByte nextPackage = RepeatedByte.newEmptyInstance(); + /** + * optional string Data = 5; + */ + private final Utf8String data = Utf8String.newEmptyInstance(); + private ActivityPenguinCardLevel() { } @@ -53659,12 +53669,49 @@ public final class Public { return this; } + /** + * optional uint32 Difficulty = 4; + * @return whether the difficulty field is set + */ + public boolean hasDifficulty() { + return (bitField0_ & 0x00000008) != 0; + } + + /** + * optional uint32 Difficulty = 4; + * @return this + */ + public ActivityPenguinCardLevel clearDifficulty() { + bitField0_ &= ~0x00000008; + difficulty = 0; + return this; + } + + /** + * optional uint32 Difficulty = 4; + * @return the difficulty + */ + public int getDifficulty() { + return difficulty; + } + + /** + * optional uint32 Difficulty = 4; + * @param value the difficulty to set + * @return this + */ + public ActivityPenguinCardLevel setDifficulty(final int value) { + bitField0_ |= 0x00000008; + difficulty = value; + return this; + } + /** * optional bytes NextPackage = 2047; * @return whether the nextPackage field is set */ public boolean hasNextPackage() { - return (bitField0_ & 0x00000008) != 0; + return (bitField0_ & 0x00000010) != 0; } /** @@ -53672,7 +53719,7 @@ public final class Public { * @return this */ public ActivityPenguinCardLevel clearNextPackage() { - bitField0_ &= ~0x00000008; + bitField0_ &= ~0x00000010; nextPackage.clear(); return this; } @@ -53701,7 +53748,7 @@ public final class Public { * @return internal storage object for modifications */ public RepeatedByte getMutableNextPackage() { - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; return nextPackage; } @@ -53711,7 +53758,7 @@ public final class Public { * @return this */ public ActivityPenguinCardLevel addNextPackage(final byte value) { - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; nextPackage.add(value); return this; } @@ -53722,7 +53769,7 @@ public final class Public { * @return this */ public ActivityPenguinCardLevel addAllNextPackage(final byte... values) { - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; nextPackage.addAll(values); return this; } @@ -53733,11 +53780,76 @@ public final class Public { * @return this */ public ActivityPenguinCardLevel setNextPackage(final byte... values) { - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; nextPackage.copyFrom(values); return this; } + /** + * optional string Data = 5; + * @return whether the data field is set + */ + public boolean hasData() { + return (bitField0_ & 0x00000020) != 0; + } + + /** + * optional string Data = 5; + * @return this + */ + public ActivityPenguinCardLevel clearData() { + bitField0_ &= ~0x00000020; + data.clear(); + return this; + } + + /** + * optional string Data = 5; + * @return the data + */ + public java.lang.String getData() { + return data.getString(); + } + + /** + * optional string Data = 5; + * @return internal {@code Utf8String} representation of data for reading + */ + public Utf8String getDataBytes() { + return this.data; + } + + /** + * optional string Data = 5; + * @return internal {@code Utf8String} representation of data for modifications + */ + public Utf8String getMutableDataBytes() { + bitField0_ |= 0x00000020; + return this.data; + } + + /** + * optional string Data = 5; + * @param value the data to set + * @return this + */ + public ActivityPenguinCardLevel setData(final CharSequence value) { + bitField0_ |= 0x00000020; + data.copyFrom(value); + return this; + } + + /** + * optional string Data = 5; + * @param value the data to set + * @return this + */ + public ActivityPenguinCardLevel setData(final Utf8String value) { + bitField0_ |= 0x00000020; + data.copyFrom(value); + return this; + } + @Override public ActivityPenguinCardLevel copyFrom(final ActivityPenguinCardLevel other) { cachedSize = other.cachedSize; @@ -53746,7 +53858,9 @@ public final class Public { id = other.id; star = other.star; score = other.score; + difficulty = other.difficulty; nextPackage.copyFrom(other.nextPackage); + data.copyFrom(other.data); } return this; } @@ -53766,9 +53880,15 @@ public final class Public { if (other.hasScore()) { setScore(other.score); } + if (other.hasDifficulty()) { + setDifficulty(other.difficulty); + } if (other.hasNextPackage()) { getMutableNextPackage().copyFrom(other.nextPackage); } + if (other.hasData()) { + getMutableDataBytes().copyFrom(other.data); + } return this; } @@ -53782,7 +53902,9 @@ public final class Public { id = 0; star = 0; score = 0; + difficulty = 0; nextPackage.clear(); + data.clear(); return this; } @@ -53794,6 +53916,7 @@ public final class Public { cachedSize = -1; bitField0_ = 0; nextPackage.clear(); + data.clear(); return this; } @@ -53810,7 +53933,9 @@ public final class Public { && (!hasId() || id == other.id) && (!hasStar() || star == other.star) && (!hasScore() || score == other.score) - && (!hasNextPackage() || nextPackage.equals(other.nextPackage)); + && (!hasDifficulty() || difficulty == other.difficulty) + && (!hasNextPackage() || nextPackage.equals(other.nextPackage)) + && (!hasData() || data.equals(other.data)); } @Override @@ -53828,9 +53953,17 @@ public final class Public { output.writeUInt32NoTag(score); } if ((bitField0_ & 0x00000008) != 0) { + output.writeRawByte((byte) 32); + output.writeUInt32NoTag(difficulty); + } + if ((bitField0_ & 0x00000010) != 0) { output.writeRawLittleEndian16((short) 32762); output.writeBytesNoTag(nextPackage); } + if ((bitField0_ & 0x00000020) != 0) { + output.writeRawByte((byte) 42); + output.writeStringNoTag(data); + } } @Override @@ -53846,8 +53979,14 @@ public final class Public { size += 1 + ProtoSink.computeUInt32SizeNoTag(score); } if ((bitField0_ & 0x00000008) != 0) { + size += 1 + ProtoSink.computeUInt32SizeNoTag(difficulty); + } + if ((bitField0_ & 0x00000010) != 0) { size += 2 + ProtoSink.computeBytesSizeNoTag(nextPackage); } + if ((bitField0_ & 0x00000020) != 0) { + size += 1 + ProtoSink.computeStringSizeNoTag(data); + } return size; } @@ -53881,6 +54020,15 @@ public final class Public { score = input.readUInt32(); bitField0_ |= 0x00000004; tag = input.readTag(); + if (tag != 32) { + break; + } + } + case 32: { + // difficulty + difficulty = input.readUInt32(); + bitField0_ |= 0x00000008; + tag = input.readTag(); if (tag != 16378) { break; } @@ -53888,7 +54036,16 @@ public final class Public { case 16378: { // nextPackage input.readBytes(nextPackage); - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; + tag = input.readTag(); + if (tag != 42) { + break; + } + } + case 42: { + // data + input.readString(data); + bitField0_ |= 0x00000020; tag = input.readTag(); if (tag != 0) { break; @@ -53921,8 +54078,14 @@ public final class Public { output.writeUInt32(FieldNames.score, score); } if ((bitField0_ & 0x00000008) != 0) { + output.writeUInt32(FieldNames.difficulty, difficulty); + } + if ((bitField0_ & 0x00000010) != 0) { output.writeBytes(FieldNames.nextPackage, nextPackage); } + if ((bitField0_ & 0x00000020) != 0) { + output.writeString(FieldNames.data, data); + } output.endObject(); } @@ -53966,11 +54129,33 @@ public final class Public { } break; } + case -472001573: { + if (input.isAtField(FieldNames.difficulty)) { + if (!input.trySkipNullValue()) { + difficulty = input.readUInt32(); + bitField0_ |= 0x00000008; + } + } else { + input.skipUnknownField(); + } + break; + } case -2082324045: { if (input.isAtField(FieldNames.nextPackage)) { if (!input.trySkipNullValue()) { input.readBytes(nextPackage); - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; + } + } else { + input.skipUnknownField(); + } + break; + } + case 2122698: { + if (input.isAtField(FieldNames.data)) { + if (!input.trySkipNullValue()) { + input.readString(data); + bitField0_ |= 0x00000020; } } else { input.skipUnknownField(); @@ -54036,7 +54221,11 @@ public final class Public { static final FieldName score = FieldName.forField("Score"); + static final FieldName difficulty = FieldName.forField("Difficulty"); + static final FieldName nextPackage = FieldName.forField("NextPackage"); + + static final FieldName data = FieldName.forField("Data"); } } diff --git a/src/main/java/emu/nebula/GameConstants.java b/src/main/java/emu/nebula/GameConstants.java index 0312dc1..03740eb 100644 --- a/src/main/java/emu/nebula/GameConstants.java +++ b/src/main/java/emu/nebula/GameConstants.java @@ -7,7 +7,7 @@ import emu.nebula.game.inventory.ItemParamMap; import emu.nebula.util.WeightedList; public class GameConstants { - public static final String VERSION = "1.13.0"; + public static final String VERSION = "1.14.0"; public static int DATA_VERSION = 0; public static final ZoneId UTC_ZONE = ZoneId.of("UTC"); diff --git a/src/main/java/emu/nebula/game/activity/ActivityModule.java b/src/main/java/emu/nebula/game/activity/ActivityModule.java index 83bf409..ff5a05a 100644 --- a/src/main/java/emu/nebula/game/activity/ActivityModule.java +++ b/src/main/java/emu/nebula/game/activity/ActivityModule.java @@ -70,9 +70,14 @@ public class ActivityModule extends GameContextModule { //this.activities.add(1010904); // Checking In for A Cozy Summer - this.activities.add(2010301); - this.activities.add(2010303); - this.activities.add(2010304); + //this.activities.add(2010301); + //this.activities.add(2010303); + //this.activities.add(2010304); + + // Surfing Splash: A Sparkling Holiday Adventure! + this.activities.add(1011001); + this.activities.add(1011003); + this.activities.add(1011004); // ===== Joint Drills (Finale Echoing) ===== //this.activities.add(510003); // Causes soft lock in event screen @@ -80,8 +85,8 @@ public class ActivityModule extends GameContextModule { // ===== Etc Events ===== // Trial activities - this.activities.add(700123); - this.activities.add(700124); + this.activities.add(700127); + this.activities.add(700128); // Tower defense activity this.activities.add(102002); // Broken diff --git a/src/main/java/emu/nebula/game/tracehunt/TraceHuntManager.java b/src/main/java/emu/nebula/game/tracehunt/TraceHuntManager.java index b8f35e0..b91e7cb 100644 --- a/src/main/java/emu/nebula/game/tracehunt/TraceHuntManager.java +++ b/src/main/java/emu/nebula/game/tracehunt/TraceHuntManager.java @@ -452,7 +452,7 @@ public class TraceHuntManager extends PlayerManager implements GameDatabaseObjec } // Add exp - this.addExp(150); + this.addExp(100); // Save this.save(); diff --git a/src/main/java/emu/nebula/net/NetMsgId.java b/src/main/java/emu/nebula/net/NetMsgId.java index a535031..712816a 100644 --- a/src/main/java/emu/nebula/net/NetMsgId.java +++ b/src/main/java/emu/nebula/net/NetMsgId.java @@ -940,6 +940,7 @@ public class NetMsgId { public static final int trace_hunt_new_control_notify = 10057; public static final int trace_hunt_state_notify = 10058; public static final int trace_hunt_item_change_notify = 10060; + public static final int score_boss_reset_score_notify = 10061; public static final int activity_mining_apply_req = 11001; public static final int activity_mining_apply_succeed_ack = 11002; public static final int activity_mining_apply_failed_ack = 11003; diff --git a/src/main/resources/versions.json b/src/main/resources/versions.json index ab454fd..5062b72 100644 --- a/src/main/resources/versions.json +++ b/src/main/resources/versions.json @@ -1,7 +1,7 @@ { - "global": 127, - "kr": 133, - "jp": 131, - "tw": 137, - "cn": 127 + "global": 129, + "kr": 135, + "jp": 133, + "tw": 139, + "cn": 129 } \ No newline at end of file