コード例 #1
0
ファイル: GameManager.cs プロジェクト: CGlesmann/ShapeShifter
    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);
        }
    }
コード例 #2
0
    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;
        }
    }
コード例 #3
0
    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;
    }