Beispiel #1
0
    private BubbleQueueDefinition.Bucket GetNextBucket()
    {
        BubbleQueueDefinition.Bucket returnBucket = null;

        while (returnBucket == null)
        {
            if ((queueDefinition.extras != currentBucket) && (levelState.remainingBubbles > 0))
            {
                if (queueDefinition.buckets.Count > 0)
                {
                    returnBucket = queueDefinition.buckets[0];
                    queueDefinition.buckets.RemoveAt(0);
                }
                else
                {
                    returnBucket        = queueDefinition.reserve;
                    returnBucket.length = levelState.remainingBubbles;
                }
            }
            else
            {
                returnBucket = queueDefinition.extras;
            }

            if ((returnBucket != queueDefinition.extras) &&
                (returnBucket != queueDefinition.reserve) &&
                (returnBucket.counts.Sum() == 0))
            {
                returnBucket = null;
            }
        }

        return(returnBucket);
    }
        public void Initialize(BubbleFactory factory, BubbleQueuePanel panel, BubbleQueueDefinition.Bucket bucket)
        {
            this.bucket = bucket;

            CreateWeightElements(factory, bucket.counts);

            inputField.text      = bucket.length.ToString();
            mandatoryToggle.isOn = bucket.mandatory;

            insertButton.onClick.AddListener(() => panel.InsertBucket(this));
            deleteButton.onClick.AddListener(() => panel.RemoveBucket(this));
        }
Beispiel #3
0
        private BubbleQueueBucket CreateBucket(BubbleQueueDefinition.Bucket bucket, bool canBeMandatory)
        {
            var instance  = Instantiate(bucketPrefab);
            var component = instance.GetComponent <BubbleQueueBucket>();

            instance.transform.SetParent(contentContainer, false);
            component.Initialize(manipulator.BubbleFactory, this, bucket);
            component.ShowMandatoryOption = canBeMandatory;
            component.EnableInsert        = canBeMandatory;
            component.EnableDelete        = canBeMandatory;
            component.OnBucketChanged    += OnBucketChanged;

            return(component);
        }
    override protected BubbleQueue GetBubbleQueue(LevelState levelState)
    {
        var definition = new BubbleQueueDefinition();

        for (var x = 1; x < 3; x++)
        {
            var bucket = new BubbleQueueDefinition.Bucket(1, 1, 1, 1, 1, 1);
            bucket.length = x * 5;
            definition.buckets.Add(bucket);
        }

        definition.extras = new BubbleQueueDefinition.Bucket(1, 1, 1, 1, 1, 1);
        return(new BucketBubbleQueue(levelState, definition));
    }
Beispiel #5
0
 public void SwitchToExtras()
 {
     currentBucket = queueDefinition.extras;
     SetCurrentBucket();
 }
Beispiel #6
0
 private void SetCurrentBucket()
 {
     currentBucket = GetNextBucket();
     currentCount  = 0;
     bag.Clear();
 }