void DropNewDots() { if (!dropNewDots) { return; } if (CountDots() >= columns * rows) { EventManager.OnGameOver(); } int leftToDropCount = maxDrop; var candidates = new List <DotScript>(); var randomDots = new List <DotScript>(dots); randomDots.Shuffle <DotScript>(); foreach (DotScript dot in randomDots) { if (leftToDropCount <= 0) { break; } if (dot && dot.color == DotScript.Type.Empty) { var possibleColors = new List <DotScript.Type>(); if (ShouldDropQueen()) { possibleColors.Add(DotScript.Type.Queen); leftToDropCount = 0; } else { possibleColors.AddRange( new List <DotScript.Type> { DotScript.Type.Circle, DotScript.Type.Square, DotScript.Type.Diamond, DotScript.Type.Star } ); } var remainingColors = DropDotCheckRules(dot.currentX, dot.currentY, possibleColors); DotScript.Type color = DotScript.GetRandomColor(remainingColors); dot.SetType(color); leftToDropCount -= 1; } } UpdateConnections(); }
public FieldPattern(int x, int y, DotScript.Type type) { this.x = x; this.y = y; this.type = type; }