private List<Element> rotateElement(Element element, ElementType.Type elementType, int chance) { List<Element> newElements = new List<Element>(); List<Element> testList = new List<Element>(); Element[,] map = Gameboard.Instance.GetMap(); int frameCount = Gameboard.Instance.GetFrameCount; if (element.PositionX > 0) { if (Random.Next(chance) == chance) { testList.Add(map[element.PositionX - 1, element.PositionY]); } } if (element.PositionX < frameCount - 1) { if (Random.Next(chance) == chance - 1) { testList.Add(map[element.PositionX + 1, element.PositionY]); } } if (element.PositionY > 0) { if (Random.Next(chance) == chance - 1) { testList.Add(map[element.PositionX, element.PositionY - 1]); } } if (element.PositionY < frameCount - 1) { if (Random.Next(chance) == chance - 1) { testList.Add(map[element.PositionX, element.PositionY + 1]); } } foreach (var elementCheck in testList) { if (!elementCheck.HasElement) { newElements.Add(elementCheck); elementCheck.SetElementType(ElementType.GetTypeObject(elementType)); } } return newElements; }
private void expandRessource(Element element, ElementType.Type elementType) { List<Element> firstLayer = new List<Element>(); firstLayer = firstLayer.Concat(rotateElement(element, elementType, 2)).ToList(); foreach (var secondElement in firstLayer) { rotateElement(secondElement, elementType, 3); } }