Ejemplo n.º 1
0
    public void OnBeginDrag(PointerEventData eventData)
    {
        GameShape gameShape = GetSlotShape();
        ShapeData shapeData = gameShape?.GetShapeData();

        if (canInteract && canSelect && shapeData != null)
        {
            if (!selected)
            {
                GameSlot selectedSlot = GameManager.manager.GetSelectedSlot();
                if (selectedSlot != null && selectedSlot != this)
                {
                    GameManager.manager.DeselectSlot();
                }

                GameManager.manager.SelectSlot(this);
                themeElement.SetElementToHighlighted();
            }

            Color baseColor = gameShape.GetComponent <Image>().color;
            gameShape.GetComponent <Image>().color = new Color(baseColor.r, baseColor.g, baseColor.b, baseColor.a / 2f);

            DragInputManager.dragInputManager.BeginDrag(shapeData, this, gameShape?.GetComponent <Transform>().localScale ?? Vector3.one);
            beganDrag = true;
        }
    }
Ejemplo n.º 2
0
    public static void EditSlotShape(Transform slot, GameShape.ShapeType shapeType, GameShape.ColorType shapeColor, float shapeSize)
    {
        GameShape newShape = slot.GetComponent <GameSlot>().GetSlotShapeTransform().GetComponent <GameShape>();

        newShape.transform.localScale = new Vector3(shapeSize, shapeSize);

        GameShape shapeRef = newShape.GetComponent <GameShape>();

        shapeRef.SetShapeColor(shapeColor);
        shapeRef.SetShapeType(shapeType);
        EditorUtility.SetDirty(shapeRef);

        EditorUtility.SetDirty(shapeRef.GetComponent <Image>());
        EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
    }
Ejemplo n.º 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;
    }