mirror of
https://github.com/sebastian-heinz/Arrowgene.DragonsDogmaOnline
synced 2026-08-03 11:12:41 -04:00
Added the ability to provide reward items using the ItemId enum instead of numeric literals in quest JSON files.
36 lines
1.3 KiB
C#
36 lines
1.3 KiB
C#
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.Linq;
|
|
|
|
namespace Arrowgene.Ddon.GameServer.Handler
|
|
{
|
|
public class InstanceGetDropItemListHandler : GameRequestPacketHandler<C2SInstanceGetDropItemListReq, S2CInstanceGetDropItemListRes>
|
|
{
|
|
private static readonly ServerLogger Logger = LogProvider.Logger<ServerLogger>(typeof(InstanceGetDropItemListHandler));
|
|
|
|
public InstanceGetDropItemListHandler(DdonGameServer server) : base(server)
|
|
{
|
|
}
|
|
|
|
public override S2CInstanceGetDropItemListRes Handle(GameClient client, C2SInstanceGetDropItemListReq request)
|
|
{
|
|
var items = client.InstanceDropItemManager.Fetch(request.LayoutId, request.SetId);
|
|
|
|
return new S2CInstanceGetDropItemListRes()
|
|
{
|
|
LayoutId = request.LayoutId,
|
|
SetId = request.SetId,
|
|
ItemList = items.Select((dropItem, index) => new CDataGatheringItemElement()
|
|
{
|
|
SlotNo = (uint) index,
|
|
ItemId = (uint) dropItem.ItemId,
|
|
ItemNum = dropItem.ItemNum
|
|
// TODO: Other properties
|
|
}).ToList()
|
|
};
|
|
}
|
|
}
|
|
}
|