mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-21 03:15:59 +01:00
Levelup City Implementation (#2281)
* add statue promo data * implement levelup city feature * fix get level city when enter game * format code * fix typo, remove some property in the player, add the field cityInfoData to player class
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.LevelupCityReqOuterClass.LevelupCityReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.LevelupCityReq)
|
||||
public class HandlerLevelupCityReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
LevelupCityReq req = LevelupCityReq.parseFrom(payload);
|
||||
|
||||
// Level up city
|
||||
session
|
||||
.getPlayer()
|
||||
.getSotsManager()
|
||||
.levelUpSotS(req.getAreaId(), req.getSceneId(), req.getItemNum());
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,6 @@ package emu.grasscutter.server.packet.send;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.CityInfoOuterClass.CityInfo;
|
||||
import emu.grasscutter.net.proto.GetSceneAreaRspOuterClass.GetSceneAreaRsp;
|
||||
|
||||
public class PacketGetSceneAreaRsp extends BasePacket {
|
||||
@@ -17,9 +16,9 @@ public class PacketGetSceneAreaRsp extends BasePacket {
|
||||
GetSceneAreaRsp.newBuilder()
|
||||
.setSceneId(sceneId)
|
||||
.addAllAreaIdList(player.getUnlockedSceneAreas(sceneId))
|
||||
.addCityInfoList(CityInfo.newBuilder().setCityId(1).setLevel(1).build())
|
||||
.addCityInfoList(CityInfo.newBuilder().setCityId(2).setLevel(1).build())
|
||||
.addCityInfoList(CityInfo.newBuilder().setCityId(3).setLevel(1).build())
|
||||
.addCityInfoList(player.getSotsManager().getCityInfo(1).toProto())
|
||||
.addCityInfoList(player.getSotsManager().getCityInfo(2).toProto())
|
||||
.addCityInfoList(player.getSotsManager().getCityInfo(3).toProto())
|
||||
.build();
|
||||
|
||||
this.setData(p);
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.CityInfoOuterClass.CityInfo;
|
||||
import emu.grasscutter.net.proto.LevelupCityRspOuterClass.LevelupCityRsp;
|
||||
|
||||
public class PacketLevelupCityRsp extends BasePacket {
|
||||
|
||||
public PacketLevelupCityRsp(
|
||||
int sceneId, int level, int cityId, int crystalNum, int areaId, int retcode) {
|
||||
super(PacketOpcodes.LevelupCityRsp);
|
||||
|
||||
LevelupCityRsp proto =
|
||||
LevelupCityRsp.newBuilder()
|
||||
.setSceneId(sceneId)
|
||||
.setCityInfo(
|
||||
CityInfo.newBuilder()
|
||||
.setCityId(cityId)
|
||||
.setLevel(level)
|
||||
.setCrystalNum(crystalNum)
|
||||
.build())
|
||||
.setAreaId(areaId)
|
||||
.setRetcode(retcode)
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user