public void DropPowerups(Player player)
        {
            FieldCellSlot[] slots      = new FieldCellSlot[GetWidth() * GetHeight()];
            int             slotsCount = GetEmptySlots(slots);

            if (slotsCount == 0)
            {
                return;
            }

            ShuffleSlots(slots, slotsCount);

            PowerupList powerups  = player.powerups;
            int         slotIndex = 0;

            for (int powerupIndex = 0; powerupIndex < Powerups.Count && slotIndex < slots.Length; ++powerupIndex)
            {
                int count = powerups.GetCount(powerupIndex);
                for (int i = 0; i < count && slotIndex < slots.Length; ++i)
                {
                    FieldCellSlot slot = slots[slotIndex++];
                    PowerupCell   cell = new PowerupCell(powerupIndex, slot.cx, slot.cy);
                    AddCell(cell);
                }
            }
        }
        public PowerupsView(PowerupList powerups)
        {
            m_powerups       = powerups;
            m_innactiveColor = new Color(0, 0, 0, 0.5f);

            TextureImage[] images = InitPowerupImages();

            m_powerupViews = new PowerupView[images.Length];
            for (int i = 0; i < images.Length; ++i)
            {
                PowerupView pw = new PowerupView(images[i], powerups.GetCount(i));
                AddView(pw, i * pw.width, 0.0f);
                m_powerupViews[i] = pw;
            }

            ResizeToFitViews();
        }
        private void InitPowerups()
        {
            CVar[] initials = CVars.powerupsInitials;
            CVar[] max = CVars.powerupsMax;

            int totalCount = initials.Length;
            m_powerups = new PowerupList(this, totalCount);
            for (int powerupIndex = 0; powerupIndex < totalCount; ++powerupIndex)
            {
                int initialCount = initials[powerupIndex].intValue;
                int maxCount = max[powerupIndex].intValue;
                m_powerups.Init(powerupIndex, initialCount, maxCount);
            }
        }