mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-19 18:34:49 +01:00
Update Epitomized Path (#1254)
* Update Epitomized Path * Update Epitomized Path * Update Epitomized Path * Refactor doRarePull * Update Epitomized Path Co-authored-by: AnimeGitUserB <AnimeGitUserB@bigblueball.in>
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.game.gacha.GachaBanner;
|
||||
import emu.grasscutter.game.gacha.PlayerGachaBannerInfo;
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.GachaWishReqOuterClass.GachaWishReq;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketGachaWishRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.GachaWishReq)
|
||||
public class HandlerGachaWishReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
GachaWishReq req = GachaWishReq.parseFrom(payload);
|
||||
|
||||
GachaBanner banner = session.getServer().getGachaManager().getGachaBanners().get(req.getGachaScheduleId());
|
||||
PlayerGachaBannerInfo gachaInfo = session.getPlayer().getGachaInfo().getBannerInfo(banner);
|
||||
|
||||
gachaInfo.setFailedChosenItemPulls(0);
|
||||
gachaInfo.setWishItemId(req.getItemId());
|
||||
|
||||
session.send(new PacketGachaWishRsp(req.getGachaType(), req.getGachaScheduleId(), req.getItemId(), 0, banner.getWishMaxProgress()));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,9 +1,12 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.game.gacha.GachaBanner;
|
||||
import emu.grasscutter.game.gacha.PlayerGachaBannerInfo;
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketGachaWishRsp;
|
||||
import emu.grasscutter.server.packet.send.PacketGetGachaInfoRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.GetGachaInfoReq)
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.List;
|
||||
|
||||
import emu.grasscutter.data.common.ItemParamData;
|
||||
import emu.grasscutter.game.gacha.GachaBanner;
|
||||
import emu.grasscutter.game.gacha.PlayerGachaBannerInfo;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.DoGachaRspOuterClass.DoGachaRsp;
|
||||
@@ -13,12 +14,12 @@ import emu.grasscutter.net.proto.RetcodeOuterClass;
|
||||
|
||||
public class PacketDoGachaRsp extends BasePacket {
|
||||
|
||||
public PacketDoGachaRsp(GachaBanner banner, List<GachaItem> list) {
|
||||
public PacketDoGachaRsp(GachaBanner banner, List<GachaItem> list, PlayerGachaBannerInfo gachaInfo) {
|
||||
super(PacketOpcodes.DoGachaRsp);
|
||||
|
||||
ItemParamData costItem = banner.getCost(1);
|
||||
ItemParamData costItem10 = banner.getCost(10);
|
||||
DoGachaRsp p = DoGachaRsp.newBuilder()
|
||||
DoGachaRsp.Builder rsp = DoGachaRsp.newBuilder()
|
||||
.setGachaType(banner.getGachaType())
|
||||
.setGachaScheduleId(banner.getScheduleId())
|
||||
.setGachaTimes(list.size())
|
||||
@@ -28,10 +29,15 @@ public class PacketDoGachaRsp extends BasePacket {
|
||||
.setCostItemNum(costItem.getCount())
|
||||
.setTenCostItemId(costItem10.getId())
|
||||
.setTenCostItemNum(costItem10.getCount())
|
||||
.addAllGachaItemList(list)
|
||||
.build();
|
||||
.addAllGachaItemList(list);
|
||||
|
||||
if(banner.hasEpitomized()) {
|
||||
rsp.setWishItemId(gachaInfo.getWishItemId())
|
||||
.setWishProgress(gachaInfo.getFailedChosenItemPulls())
|
||||
.setWishMaxProgress(banner.getWishMaxProgress());
|
||||
}
|
||||
|
||||
this.setData(p);
|
||||
this.setData(rsp.build());
|
||||
}
|
||||
|
||||
public PacketDoGachaRsp() {
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.GachaWishRspOuterClass.GachaWishRsp;
|
||||
|
||||
public class PacketGachaWishRsp extends BasePacket {
|
||||
|
||||
public PacketGachaWishRsp(int gachaType, int scheduleId, int itemId, int progress, int maxProgress) {
|
||||
super(PacketOpcodes.GachaWishRsp);
|
||||
|
||||
GachaWishRsp proto = GachaWishRsp.newBuilder()
|
||||
.setGachaType(gachaType)
|
||||
.setGachaScheduleId(scheduleId)
|
||||
.setWishItemId(itemId)
|
||||
.setWishProgress(progress)
|
||||
.setWishMaxProgress(maxProgress)
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user