feat: add affix stigmata roll

This commit is contained in:
Naruse
2025-06-15 21:44:11 +08:00
parent 7b80075e98
commit 6a55234187
8 changed files with 191 additions and 40 deletions

View File

@@ -0,0 +1,17 @@
using KianaBH.GameServer.Server.Packet.Send.Item;
using KianaBH.Proto;
namespace KianaBH.GameServer.Server.Packet.Recv.Item;
[Opcode(CmdIds.RefineStigmataRuneReq)]
public class HandlerRefineStigmataRuneReq : Handler
{
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
{
var req = RefineStigmataRuneReq.Parser.ParseFrom(data);
var player = connection.Player!;
await player.InventoryManager!.GenerateRune((int)req.UniqueId,req.Type,req.TimesType,(int)req.LockRuneIndex);
await connection.SendPacket(new PacketRefineStigmataRuneRsp(player,(int)req.UniqueId, req.TimesType));
}
}

View File

@@ -0,0 +1,21 @@
using KianaBH.GameServer.Server.Packet.Send.Item;
using KianaBH.Proto;
namespace KianaBH.GameServer.Server.Packet.Recv.Item;
[Opcode(CmdIds.SelectNewStigmataRuneReq)]
public class HandlerSelectNewStigmataRuneReq : Handler
{
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
{
var req = SelectNewStigmataRuneReq.Parser.ParseFrom(data);
var player = connection.Player!;
if (req.IsSelect && req.SelectUniqueId > 0)
{
await player.InventoryManager!.SelectRune((int)req.UniqueId, (int)req.SelectUniqueId);
}
await connection.SendPacket(new PacketSelectNewStigmataRuneRsp(req.SelectUniqueId,req.IsSelect));
}
}

View File

@@ -1,13 +0,0 @@
using KianaBH.GameServer.Server.Packet.Send.Test;
using KianaBH.Proto;
namespace KianaBH.GameServer.Server.Packet.Recv.Test;
[Opcode(CmdIds.RefineStigmataRuneReq)]
public class HandlerRefineStigmataRuneReq : Handler
{
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
{
await connection.SendPacket(new PacketRefineStigmataRuneRsp());
}
}

View File

@@ -1,13 +0,0 @@
using KianaBH.GameServer.Server.Packet.Send.Test;
using KianaBH.Proto;
namespace KianaBH.GameServer.Server.Packet.Recv.Test;
[Opcode(CmdIds.SelectNewStigmataRuneReq)]
public class HandlerSelectNewStigmataRuneReq : Handler
{
public override async Task OnHandle(Connection connection, byte[] header, byte[] data)
{
await connection.SendPacket(new PacketSelectNewStigmataRuneRsp());
}
}

View File

@@ -1,15 +1,17 @@
using KianaBH.GameServer.Game.Player;
using KianaBH.KcpSharp;
using KianaBH.Proto;
namespace KianaBH.GameServer.Server.Packet.Send.Test;
namespace KianaBH.GameServer.Server.Packet.Send.Item;
public class PacketRefineStigmataRuneRsp : BasePacket
{
public PacketRefineStigmataRuneRsp() : base(CmdIds.RefineStigmataRuneRsp)
public PacketRefineStigmataRuneRsp(PlayerInstance player,int uniqueId, StigmataRefineTimesType type) : base(CmdIds.RefineStigmataRuneRsp)
{
var proto = new RefineStigmataRuneRsp
{
RuneGroupList = { player.InventoryManager!.Data!.StigmataItems.Find(x => x.UniqueId == uniqueId)!.ToWaitSelectRuneGroup() },
TimesType = type
};
SetData(proto);

View File

@@ -1,15 +1,16 @@
using KianaBH.KcpSharp;
using KianaBH.Proto;
namespace KianaBH.GameServer.Server.Packet.Send.Test;
namespace KianaBH.GameServer.Server.Packet.Send.Item;
public class PacketSelectNewStigmataRuneRsp : BasePacket
{
public PacketSelectNewStigmataRuneRsp() : base(CmdIds.SelectNewStigmataRuneRsp)
public PacketSelectNewStigmataRuneRsp(uint selectUniqueId, bool isSelect) : base(CmdIds.SelectNewStigmataRuneRsp)
{
var proto = new SelectNewStigmataRuneRsp
{
SelectUniqueId = selectUniqueId,
IsSelect = isSelect
};
SetData(proto);