Ejemplo n.º 1
0
        private static void SetCoincidenceResults(List <List <FieldCell> > list, DirectionType type)
        {
            foreach (var element in list)
            {
                if (element.Count > 2 && element.Count < 4)
                {
                    GemsController.DeleteGems(element);
                }
                else if (element.Count > 3 && element.Count < 5)
                {
                    var gemType = type == DirectionType.Horizontal ? GemType.HorizontalLine : GemType.VerticalLine;

                    AddNewBonus(element, gemType);
                }
                else if (element.Count > 4)
                {
                    AddNewBonus(element, GemType.Bomb);
                }
            }
        }
Ejemplo n.º 2
0
        private static void AddNewBonus(List <FieldCell> element, GemType gemType)
        {
            FieldCell bonus = null;

            if (GameState.Move != null && GameState.Move.FirstCell != null && element.Contains(GameState.Move.FirstCell))
            {
                bonus = GameState.Move.FirstCell;
            }

            if (GameState.Move != null && GameState.Move.SecondCell != null && element.Contains(GameState.Move.SecondCell))
            {
                bonus = GameState.Move.SecondCell;
            }

            bonus     = bonus ?? element.Last();
            bonus.Gem = GemsController.GetNewGem(bonus.Position, gemType);

            element.Remove(bonus);

            GemsController.DeleteGems(element);
        }