public bool CheckForMatch(GameShape shape1, GameShape shape2) { switch (currentDestoryMethod) { case DestroyMethod.Shape: return(shape1.GetShapeType() == shape2.GetShapeType()); case DestroyMethod.Color: return(shape1.GetShapeColor() == shape2.GetShapeColor()); default: return(false); } }
public override void LoadElement(Theme theme, Theme.ColorMode colorMode) { if (gameShape == null) { gameShape = GetComponent <GameShape>(); } if (elementImage == null) { elementImage = GetComponent <Image>(); } if (theme != null && elementImage != null) { Sprite shapeSprite = theme.gameShapeThemeDictionary.GetElementData(gameShape.GetShapeType()); Color shapeColor = theme.gameShapeThemeDictionary.GetElementData(gameShape.GetShapeColor()).GetValue(colorMode); elementImage.sprite = shapeSprite; elementImage.color = shapeColor; } }
public void TransformSurroundingShapes() { Transform gameBoardParent = gameManager.gameBoardParent; List <int> surroundingShapes = boardManager.CheckForSurroundingShapes(transform.GetSiblingIndex(), gameBoardParent); if (surroundingShapes != null && surroundingShapes.Count > 0) { undoManager.PushBoardData(new BoardData(gameBoardParent, new Vector2Int(boardManager.GetBoardWidth(), boardManager.GetBoardHeight()))); shapesToTransform = new List <GameShape>(); foreach (int shapeIndex in surroundingShapes) { GameShape gameShape = boardManager.GetGameSlot(shapeIndex, gameBoardParent)?.GetSlotShape(); ShapeData shapeData = boardManager.GetBoardShapeData(shapeIndex, gameBoardParent); Image shapeImage = gameShape?.GetComponent <Image>(); if (gameShape != null && shapeData != null && shapeImage != null) { shapesToTransform.Add(gameShape); GameShape.ShapeType shapeType = shapeData.shapeType; int newShapeTypeIndex = (int)shapeType + 1; if (newShapeTypeIndex > Enum.GetNames(typeof(GameShape.ShapeType)).Length - 1) { newShapeTypeIndex = 1; } GameShape.ShapeType newShapeType = (GameShape.ShapeType)newShapeTypeIndex; gameShape.TriggerShapeTransform(newShapeType, gameShape.GetShapeColor()); } } transformerData.transformerCounter--; UpdateCounterText(); gameManager.CheckForVictory(gameManager.gameBoardParent, gameManager.solutionBoardParent); } transforming = false; }