mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-19 18:34:49 +01:00
Choose Avatar & Enter Tower
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
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.TowerEnterLevelReqOuterClass.TowerEnterLevelReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
|
||||
@Opcodes(PacketOpcodes.TowerEnterLevelReq)
|
||||
public class HandlerTowerEnterLevelReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
TowerEnterLevelReq req = TowerEnterLevelReq.parseFrom(payload);
|
||||
|
||||
//session.send(new PacketTowerCurLevelRecordChangeNotify());
|
||||
session.getPlayer().getTowerManager().enterLevel(req.getEnterPointId());
|
||||
|
||||
//session.send(new PacketTowerLevelStarCondNotify());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
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.TowerTeamOuterClass;
|
||||
import emu.grasscutter.net.proto.TowerTeamSelectReqOuterClass.TowerTeamSelectReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketTowerTeamSelectRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.TowerTeamSelectReq)
|
||||
public class HandlerTowerTeamSelectReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
TowerTeamSelectReq req = TowerTeamSelectReq.parseFrom(payload);
|
||||
|
||||
var towerTeams = req.getTowerTeamListList().stream()
|
||||
.map(TowerTeamOuterClass.TowerTeam::getAvatarGuidListList)
|
||||
.toList();
|
||||
|
||||
session.getPlayer().getTowerManager().teamSelect(req.getFloorId(), towerTeams);
|
||||
|
||||
session.send(new PacketTowerTeamSelectRsp());
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,28 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.data.GameData;
|
||||
import emu.grasscutter.data.def.TowerFloorData;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.TowerAllDataRspOuterClass.TowerAllDataRsp;
|
||||
import emu.grasscutter.net.proto.TowerCurLevelRecordOuterClass.TowerCurLevelRecord;
|
||||
import emu.grasscutter.net.proto.TowerFloorRecordOuterClass.TowerFloorRecord;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class PacketTowerAllDataRsp extends BasePacket {
|
||||
|
||||
public PacketTowerAllDataRsp() {
|
||||
super(PacketOpcodes.TowerAllDataRsp);
|
||||
|
||||
|
||||
var list = GameData.getTowerFloorDataMap().values().stream()
|
||||
.map(TowerFloorData::getFloorId)
|
||||
.map(id -> TowerFloorRecord.newBuilder().setFloorId(id).build())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
TowerAllDataRsp proto = TowerAllDataRsp.newBuilder()
|
||||
.setTowerScheduleId(29)
|
||||
.addTowerFloorRecordList(TowerFloorRecord.newBuilder().setFloorId(1001))
|
||||
.addAllTowerFloorRecordList(list)
|
||||
.setCurLevelRecord(TowerCurLevelRecord.newBuilder().setIsEmpty(true))
|
||||
.setNextScheduleChangeTime(Integer.MAX_VALUE)
|
||||
.putFloorOpenTimeMap(1024, 1630486800)
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.TowerEnterLevelRspOuterClass.TowerEnterLevelRsp;
|
||||
|
||||
public class PacketTowerEnterLevelRsp extends BasePacket {
|
||||
|
||||
public PacketTowerEnterLevelRsp(int floorId, int levelIndex) {
|
||||
super(PacketOpcodes.TowerEnterLevelRsp);
|
||||
|
||||
TowerEnterLevelRsp proto = TowerEnterLevelRsp.newBuilder()
|
||||
.setFloorId(floorId)
|
||||
.setLevelIndex(levelIndex)
|
||||
.addTowerBuffIdList(4)
|
||||
.addTowerBuffIdList(28)
|
||||
.addTowerBuffIdList(18)
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.TowerTeamSelectRspOuterClass.TowerTeamSelectRsp;
|
||||
|
||||
public class PacketTowerTeamSelectRsp extends BasePacket {
|
||||
|
||||
public PacketTowerTeamSelectRsp() {
|
||||
super(PacketOpcodes.TowerTeamSelectRsp);
|
||||
|
||||
TowerTeamSelectRsp proto = TowerTeamSelectRsp.newBuilder()
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user