Add home resource gain (#2064)

This commit is contained in:
Thoronium
2023-02-23 21:22:25 -07:00
committed by GitHub
parent 220c23b960
commit b209d91947
13 changed files with 4400 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
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.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketHomeResourceTakeFetterExpRsp;
@Opcodes(PacketOpcodes.HomeResourceTakeFetterExpReq)
public class HandlerHomeResourceTakeFetterExpReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
session.send(new PacketHomeResourceTakeFetterExpRsp(session.getPlayer()));
}
}

View File

@@ -0,0 +1,18 @@
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.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketHomeResourceTakeHomeCoinRsp;
@Opcodes(PacketOpcodes.HomeResourceTakeHomeCoinReq)
public class HandlerHomeResourceTakeHomeCoinReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
session.send(new PacketHomeResourceTakeHomeCoinRsp(session.getPlayer()));
}
}

View File

@@ -0,0 +1,35 @@
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.HomeResourceNotifyOuterClass;
import emu.grasscutter.net.proto.HomeResourceOuterClass.HomeResource;
public class PacketHomeResourceNotify extends BasePacket {
public PacketHomeResourceNotify(Player player) {
super(PacketOpcodes.HomeResourceNotify);
var home = player.getHome();
var level = home.getLevel();
HomeResource coin = HomeResource.newBuilder()
.setNextRefreshTime(home.getNextUpdateTime())
.setStoreLimit(home.getMaxCoin(level))
.setStoreValue(home.getStoredCoin())
.build();
HomeResource fetter = HomeResource.newBuilder()
.setNextRefreshTime(home.getNextUpdateTime())
.setStoreLimit(home.getMaxFetter(level))
.setStoreValue(home.getStoredFetterExp())
.build();
var notify = HomeResourceNotifyOuterClass.HomeResourceNotify.newBuilder()
.setFetterExp(fetter)
.setHomeCoin(coin)
.build();
this.setData(notify);
}
}

View File

@@ -0,0 +1,29 @@
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.HomeResourceTakeFetterExpRspOuterClass;
import emu.grasscutter.net.proto.HomeResourceOuterClass.HomeResource;
public class PacketHomeResourceTakeFetterExpRsp extends BasePacket {
public PacketHomeResourceTakeFetterExpRsp(Player player) {
super(PacketOpcodes.HomeResourceTakeFetterExpRsp);
var home = player.getHome();
home.takeHomeFetter(player);
var fetterExp = HomeResource.newBuilder()
.setNextRefreshTime(home.getNextUpdateTime())
.setStoreLimit(home.getMaxFetter(home.getLevel()))
.setStoreValue(0)
.build();
var proto = HomeResourceTakeFetterExpRspOuterClass.HomeResourceTakeFetterExpRsp.newBuilder()
.setFetterExp(fetterExp)
.build();
this.setData(proto);
}
}

View File

@@ -0,0 +1,29 @@
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.HomeResourceTakeHomeCoinRspOuterClass;
import emu.grasscutter.net.proto.HomeResourceOuterClass.HomeResource;
public class PacketHomeResourceTakeHomeCoinRsp extends BasePacket {
public PacketHomeResourceTakeHomeCoinRsp(Player player) {
super(PacketOpcodes.HomeResourceTakeHomeCoinRsp);
var home = player.getHome();
home.takeHomeCoin(player);
var coin = HomeResource.newBuilder()
.setNextRefreshTime(home.getNextUpdateTime())
.setStoreLimit(home.getMaxCoin(home.getLevel()))
.setStoreValue(0)
.build();
var proto = HomeResourceTakeHomeCoinRspOuterClass.HomeResourceTakeHomeCoinRsp.newBuilder()
.setHomeCoin(coin)
.build();
this.setData(proto);
}
}