update Banners.json and attempt to fix GachaCeiling

This commit is contained in:
Hiro
2023-11-28 04:58:10 +02:00
parent cc9a261323
commit 86ab379559
7 changed files with 1238 additions and 66 deletions

View File

@@ -1,6 +1,7 @@
package emu.lunarcore.game.gacha;
import emu.lunarcore.proto.GachaCeilingOuterClass.GachaCeiling;
import emu.lunarcore.proto.GachaCeilingAvatarOuterClass.GachaCeilingAvatar;
import emu.lunarcore.proto.GachaInfoOuterClass.GachaInfo;
import lombok.Getter;
@@ -13,6 +14,13 @@ public class GachaBanner {
private int[] rateUpItems5;
private int[] rateUpItems4;
private int eventChance = 50;
private GachaCeiling gachaCeiling;
private GachaCeilingAvatar createCeilingAvatarInfo(int avatarId) {
return GachaCeilingAvatar.newInstance()
.setRepeatedCnt(1)
.setAvatarId(avatarId);
}
public GachaInfo toProto() {
var info = GachaInfo.newInstance()
@@ -41,6 +49,20 @@ public class GachaBanner {
}
}
if (this.getId() == 1001) {
GachaCeilingAvatar ceilingavatarinfo1 = createCeilingAvatarInfo(1003);
GachaCeilingAvatar ceilingavatarinfo2 = createCeilingAvatarInfo(1107);
GachaCeilingAvatar ceilingavatarinfo3 = createCeilingAvatarInfo(1211);
GachaCeiling ceilinginfo = GachaCeiling.newInstance()
.addAvatarList(ceilingavatarinfo1)
.addAvatarList(ceilingavatarinfo2)
.addAvatarList(ceilingavatarinfo3)
.setCeilingNum(169);
info.setGachaCeiling(ceilinginfo);
}
return info;
}
}

View File

@@ -0,0 +1,19 @@
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.PacketGetGachaCeilingScRsp;
import emu.lunarcore.proto.GetGachaCeilingCsReqOuterClass.GetGachaCeilingCsReq;
@Opcodes(CmdId.GetGachaCeilingCsReq)
public class HandlerGetGachaCeilingCsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] data) throws Exception {
var req = GetGachaCeilingCsReq.parseFrom(data);
session.send(new PacketGetGachaCeilingScRsp(req.getUnkfield()));
}
}

View File

@@ -0,0 +1,37 @@
package emu.lunarcore.server.packet.send;
import emu.lunarcore.server.packet.CmdId;
import emu.lunarcore.server.game.GameSession;
import emu.lunarcore.server.packet.BasePacket;
import emu.lunarcore.proto.GachaCeilingOuterClass.GachaCeiling;
import emu.lunarcore.proto.GachaCeilingAvatarOuterClass.GachaCeilingAvatar;
import emu.lunarcore.proto.GetGachaCeilingScRspOuterClass.GetGachaCeilingScRsp;
public class PacketGetGachaCeilingScRsp extends BasePacket {
private GachaCeilingAvatar createCeilingAvatarInfo(int avatarId) {
return GachaCeilingAvatar.newInstance()
.setRepeatedCnt(1)
.setAvatarId(avatarId);
}
public PacketGetGachaCeilingScRsp(int unkfield) {
super(CmdId.GetGachaCeilingScRsp);
GachaCeilingAvatar ceilingavatarinfo1 = createCeilingAvatarInfo(1003);
GachaCeilingAvatar ceilingavatarinfo2 = createCeilingAvatarInfo(1107);
GachaCeilingAvatar ceilingavatarinfo3 = createCeilingAvatarInfo(1211);
GachaCeiling gachaceiling = GachaCeiling.newInstance()
.addAvatarList(ceilingavatarinfo1)
.addAvatarList(ceilingavatarinfo2)
.addAvatarList(ceilingavatarinfo3)
.setCeilingNum(169);
var proto = GetGachaCeilingScRsp.newInstance()
.setGachaCeiling(gachaceiling)
.setUnkfield(unkfield);
this.setData(proto);
}
}