Пример #1
0
        private static void HandleNewBeauty(GameSession session, PacketReader packet)
        {
            byte       unk          = packet.ReadByte();
            bool       useVoucher   = packet.ReadBool();
            int        beautyItemId = packet.ReadInt();
            EquipColor equipColor   = packet.Read <EquipColor>();

            Item beautyItem = new Item(beautyItemId)
            {
                Color = equipColor, IsTemplate = false
            };
            BeautyMetadata beautyShop = BeautyMetadataStorage.GetCosmeticShopByItemId(beautyItem.Id);

            if (useVoucher)
            {
                if (!PayWithVoucher(session, beautyShop))
                {
                    return;
                }
            }
            else
            {
                if (!PayWithShopItemTokenCost(session, beautyItemId))
                {
                    return;
                }
            }

            ModifyBeauty(session, packet, beautyItem);
        }
Пример #2
0
        private static void HandleModifyExistingBeauty(GameSession session, PacketReader packet)
        {
            byte       unk           = packet.ReadByte();
            bool       useVoucher    = packet.ReadBool();
            long       beautyItemUid = packet.ReadLong();
            EquipColor equipColor    = packet.Read <EquipColor>();

            Item beautyItem = session.Player.GetEquippedItem(beautyItemUid);

            if (beautyItem.ItemSlot == ItemSlot.CP)
            {
                HatData hatData = packet.Read <HatData>();
                beautyItem.HatD = hatData;
                session.FieldManager.BroadcastPacket(ItemExtraDataPacket.Update(session.FieldPlayer, beautyItem));
                return;
            }

            BeautyMetadata beautyShop = BeautyMetadataStorage.GetCosmeticShopByItemId(beautyItem.Id);

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

            beautyItem.Color = equipColor;
            ModifyBeauty(session, packet, beautyItem);
        }
Пример #3
0
        private static bool PayWithShopItemTokenCost(GameSession session, int beautyItemId)
        {
            BeautyMetadata beautyShop = BeautyMetadataStorage.GetCosmeticShopByItemId(beautyItemId);
            BeautyItem     item       = beautyShop.Items.FirstOrDefault(x => x.ItemId == beautyItemId);

            if (!Pay(session, item.TokenType, item.TokenCost, item.RequiredItemId))
            {
                return(false);
            }
            return(true);
        }
Пример #4
0
        private static void HandleModifyExistingBeauty(GameSession session, PacketReader packet)
        {
            byte       unk           = packet.ReadByte();
            bool       useVoucher    = packet.ReadBool();
            long       beautyItemUid = packet.ReadLong();
            EquipColor equipColor    = packet.Read <EquipColor>();
            int        colorIndex    = packet.ReadInt();

            Item           beautyItem = session.Player.Equips.FirstOrDefault(x => x.Value.Uid == beautyItemUid).Value;
            BeautyMetadata beautyShop = BeautyMetadataStorage.GetCosmeticShopByItemId(beautyItem.Id);

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

            beautyItem.Color = equipColor;
            ModifyBeauty(session, packet, beautyItem);
        }