mirror of
https://git.lewd.wtf/PGR/ascnet
synced 2025-12-14 00:54:34 +01:00
upgrade skill (not throughly tested because the lack of other implementation)
This commit is contained in:
29
AscNet.GameServer/Handlers/CharacterModule.cs
Normal file
29
AscNet.GameServer/Handlers/CharacterModule.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using AscNet.Common.Database;
|
||||
using AscNet.Common.MsgPack;
|
||||
|
||||
namespace AscNet.GameServer.Handlers
|
||||
{
|
||||
internal class CharacterModule
|
||||
{
|
||||
[RequestPacketHandler("CharacterUpgradeSkillGroupRequest")]
|
||||
public static void CharacterUpgradeSkillGroupRequestHandler(Session session, Packet.Request packet)
|
||||
{
|
||||
CharacterUpgradeSkillGroupRequest request = packet.Deserialize<CharacterUpgradeSkillGroupRequest>();
|
||||
|
||||
var upgradeResult = session.character.UpgradeCharacterSkillGroup(request.SkillGroupId, request.Count);
|
||||
session.inventory.Do(Inventory.Coin, upgradeResult.CoinCost * -1);
|
||||
session.inventory.Do(Inventory.SkillPoint, upgradeResult.SkillPointCost * -1);
|
||||
|
||||
NotifyCharacterDataList notifyCharacterData = new();
|
||||
notifyCharacterData.CharacterDataList.AddRange(session.character.Characters.Where(x => upgradeResult.AffectedCharacters.Contains(x.Id)));
|
||||
|
||||
NotifyItemDataList notifyItemData = new();
|
||||
notifyItemData.ItemDataList.AddRange(session.inventory.Items.Where(x => x.Id == Inventory.Coin || x.Id == Inventory.SkillPoint));
|
||||
|
||||
session.SendPush(notifyCharacterData);
|
||||
session.SendPush(notifyItemData);
|
||||
|
||||
session.SendResponse(new CharacterUpgradeSkillGroupResponse(), packet.Id);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user