-
Notifications
You must be signed in to change notification settings - Fork 83
Expand file tree
/
Copy pathEquipGetEquipPresetListHandler.cs
More file actions
64 lines (53 loc) · 2.37 KB
/
Copy pathEquipGetEquipPresetListHandler.cs
File metadata and controls
64 lines (53 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using Arrowgene.Ddon.GameServer.Characters;
using Arrowgene.Ddon.Server;
using Arrowgene.Ddon.Shared.Entity.PacketStructure;
using Arrowgene.Ddon.Shared.Entity.Structure;
using Arrowgene.Ddon.Shared.Model;
using Arrowgene.Logging;
using System.Drawing;
using System.Linq;
namespace Arrowgene.Ddon.GameServer.Handler
{
public class EquipGetEquipPresetListHandler : GameRequestPacketHandler<C2SEquipGetEquipPresetListReq, S2CEquipGetEquipPresetListRes>
{
private static readonly ServerLogger Logger = LogProvider.Logger<ServerLogger>(typeof(EquipGetEquipPresetListHandler));
public EquipGetEquipPresetListHandler(DdonGameServer server) : base(server)
{
}
public override S2CEquipGetEquipPresetListRes Handle(GameClient client, C2SEquipGetEquipPresetListReq request)
{
var results = new S2CEquipGetEquipPresetListRes();
CharacterCommon characterCommon;
if (client.EquipPresetIndex == 0)
{
characterCommon = client.Character;
}
else
{
characterCommon = client.Character.PawnBySlotNo((byte)client.EquipPresetIndex);
}
foreach (var presetInfo in Server.Database.SelectEquipmentPresets(characterCommon.CommonId, characterCommon.Job))
{
var presetItems = Server.Database.SelectEquipmentPresetTemplate(characterCommon.CommonId, presetInfo.Job, presetInfo.PresetNo);
foreach (var presetItem in presetItems)
{
var matches = client.Character.Storage.FindItemByUIdInStorage(ItemManager.AllItemStorages, presetItem.ItemUId);
if (matches == null)
{
// Item was deleted or sold?
continue;
}
var storageType = matches.Item1;
var item = matches.Item2.Item2;
presetItem.ItemId = item.ItemId;
presetItem.Color = item.Color;
presetItem.PlusValue = item.PlusValue;
presetItem.EquipElementParamList = item.EquipElementParamList;
presetInfo.PresetEquipInfoList.Add(presetItem);
}
results.EquipPresetList.Add(presetInfo);
}
return results;
}
}
}