public void ClearOffers(PaymentSectionLoadedEvent e, Node node, [JoinAll] GoodsSelectionScreenNode screen)
 {
     screen.goodsSelectionScreen.SpecialOfferDataProvider.ClearItems();
     screen.goodsSelectionScreen.XCrystalsDataProvider.ClearItems();
 }
        public void AddOffer(CollectOfferEvent e, PersonalSpecialOfferPropertyNode personalOfferProperty, [JoinBy(typeof(SpecialOfferGroupComponent))] SpecialOfferNode offer, [JoinAll] GoodsSelectionScreenNode screen)
        {
            StringBuilder builder = new StringBuilder();

            if (offer.itemsPackFromConfig.Pack.Count > 0)
            {
                int num = 0;
                builder.Append("* —");
                bool flag = true;
                foreach (long num2 in offer.itemsPackFromConfig.Pack)
                {
                    ItemInMarketRequestEvent eventInstance = new ItemInMarketRequestEvent();
                    base.ScheduleEvent(eventInstance, offer);
                    if (eventInstance.marketItems.ContainsKey(num2))
                    {
                        if (!flag)
                        {
                            builder.Append(", ");
                        }
                        flag = false;
                        builder.Append(eventInstance.marketItems[num2]);
                        num++;
                    }
                }
                if (num == 0)
                {
                    builder.Append(screen.goodsSelectionScreen.SpecialOfferEmptyRewardMessage);
                }
            }
            if (offer.specialOfferDuration.OneShot && personalOfferProperty.Entity.HasComponent(typeof(PaymentIntentComponent)))
            {
                if (builder.Length > 0)
                {
                    builder.Append("\n");
                }
                builder.Append(screen.goodsSelectionScreen.SpecialOfferOneShotMessage);
            }
            screen.goodsSelectionScreen.SpecialOfferDataProvider.AddItem(offer.Entity, builder.ToString());
        }