diff --git a/GameServer/Game/Drop/DropService.cs b/GameServer/Game/Drop/DropService.cs new file mode 100644 index 00000000..1f8eb293 --- /dev/null +++ b/GameServer/Game/Drop/DropService.cs @@ -0,0 +1,32 @@ +using EggLink.DanhengServer.Database.Inventory; +using EggLink.DanhengServer.Proto; + +namespace EggLink.DanhengServer.Game.Drop +{ + public class DropService + { + public static List CalculateDropsFromProp() + { + List drops = + [ + new ItemData() + { + ItemId = 1, + Count = 5 + }, + new ItemData() + { + ItemId = 22, + Count = 5 + }, + new ItemData() + { + ItemId = 2, + Count = new Random().Next(20, 100) + }, + ]; + + return drops; + } + } +} diff --git a/GameServer/Game/Player/PlayerInstance.cs b/GameServer/Game/Player/PlayerInstance.cs index c729c527..2387d651 100644 --- a/GameServer/Game/Player/PlayerInstance.cs +++ b/GameServer/Game/Player/PlayerInstance.cs @@ -30,6 +30,7 @@ using EggLink.DanhengServer.Util; using EggLink.DanhengServer.Enums.Avatar; using EggLink.DanhengServer.Server.Packet.Send.Avatar; using EggLink.DanhengServer.Game.Challenge; +using EggLink.DanhengServer.Game.Drop; namespace EggLink.DanhengServer.Game.Player { @@ -335,7 +336,9 @@ namespace EggLink.DanhengServer.Game.Player case PropTypeEnum.PROP_TREASURE_CHEST: if (oldState == PropStateEnum.ChestClosed && newState == PropStateEnum.ChestUsed) { - // TODO: Add treasure chest handling + // TODO: Filter treasure chest + var items = DropService.CalculateDropsFromProp(); + SceneInstance.Player.InventoryManager!.AddItems(items); } break; case PropTypeEnum.PROP_DESTRUCT: