upgrade skill (not throughly tested because the lack of other implementation)

This commit is contained in:
rfi
2023-11-19 21:02:09 +07:00
parent 0705c4373f
commit 897a457584
7 changed files with 132 additions and 17 deletions

View 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);
}
}
}