Пример #1
0
    private static void HandleRandomHair(GameSession session, PacketReader packet)
    {
        int  shopId     = packet.ReadInt();
        bool useVoucher = packet.ReadBool();

        BeautyShop            beautyShop  = DatabaseManager.BeautyShops.FindById(shopId);
        List <BeautyShopItem> beautyItems = DatabaseManager.BeautyShopItems.FindAllByShopIdAndGender(beautyShop.Id, session.Player.Gender);

        if (!HandleShopPay(session, beautyShop, useVoucher))
        {
            return;
        }

        // Grab random hair
        Random         random     = Random.Shared;
        int            indexHair  = random.Next(beautyItems.Count);
        BeautyShopItem chosenHair = beautyItems[indexHair];

        BeautyHelper.ChangeHair(session, chosenHair.ItemId, out Item previousHair, out Item newHair);

        session.FieldManager.BroadcastPacket(EquipmentPacket.EquipItem(session.Player.FieldPlayer, newHair, ItemSlot.HR));
        session.Send(BeautyPacket.RandomHairOption(previousHair, newHair));
    }
Пример #2
0
    private static bool PayWithShopItemTokenCost(GameSession session, int beautyItemId, BeautyShop beautyShop)
    {
        BeautyShopItem item = beautyShop.Items.FirstOrDefault(x => x.ItemId == beautyItemId);

        return(item != null && Pay(session, item.CurrencyType, item.CurrencyCost, item.RequiredItemId));
    }