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)); }
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)); }
public void SwitchToExtras() { currentBucket = queueDefinition.extras; SetCurrentBucket(); }
private void SetCurrentBucket() { currentBucket = GetNextBucket(); currentCount = 0; bag.Clear(); }