Example #1
0
    private void addRedBoxAroundResident(string side, int num)
    {
        //adds a red border around a resident, to draw attention to that resident
        SideHintTile[] row;
        if (side == "top")
        {
            row = gameManager.puzzleGenerator.topHints;
        }
        else if (side == "bottom")
        {
            row = gameManager.puzzleGenerator.bottomHints;
        }
        else if (side == "left")
        {
            row = gameManager.puzzleGenerator.leftHints;
        }
        else
        {
            row = gameManager.puzzleGenerator.rightHints;
        }
        SideHintTile s = row[num];

        s.addRedBorder();
    }
Example #2
0
    public void drawFullPuzzle()
    {
        //draws the visuals for the puzzle tiles, borders, residents, and street corners
        float desiredPuzzleSize = puzzlePositioning.transform.localScale.x;

        if (canvas.GetComponent <RectTransform>().rect.height > canvas.GetComponent <CanvasScaler>().referenceResolution.y)
        {
            desiredPuzzleSize *= (canvas.GetComponent <CanvasScaler>().referenceResolution.y / canvas.GetComponent <RectTransform>().rect.height);
        }


        float   defaultTileScale  = puzzleGenerator.puzzleTilePrefab.GetComponent <BoxCollider2D>().size.x;
        float   currentPuzzleSize = (size + 2) * defaultTileScale;
        float   scaleFactor       = desiredPuzzleSize / currentPuzzleSize;
        Vector2 puzzleCenter      = puzzlePositioning.transform.position;

        //draw puzzle
        Transform parent    = puzzlePositioning.transform;
        float     totalSize = size * scaleFactor * defaultTileScale;

        for (int i = 0; i < size; i++)
        {
            for (int j = 0; j < size; j++)
            {
                Vector2 pos = new Vector2(puzzleCenter.x - (totalSize / 2) + (scaleFactor * defaultTileScale * (j + 0.5f)), puzzleCenter.y + (totalSize / 2) - (scaleFactor * defaultTileScale * (i + 0.5f)));
                puzzleGenerator.tilesArray[i, j].setValues(pos, scaleFactor, parent);
                puzzleGenerator.tilesArray[i, j].transform.Find("Building").gameObject.SetActive(showBuildings);
            }
        }

        //draw hints
        float topy    = puzzleCenter.y + ((totalSize) / 2) + (scaleFactor * defaultTileScale * 0.5f);
        float bottomy = puzzleCenter.y - ((totalSize) / 2) - (scaleFactor * defaultTileScale * 0.5f);
        float leftx   = puzzleCenter.x - (totalSize / 2) - (scaleFactor * defaultTileScale * (0.5f));
        float rightx  = puzzleCenter.x + (totalSize / 2) + (scaleFactor * defaultTileScale * (0.5f));

        for (int i = 0; i < size; i++)
        {
            float        tbx        = puzzleCenter.x - (totalSize / 2) + (scaleFactor * defaultTileScale * (i + 0.5f));
            float        lry        = puzzleCenter.y + ((totalSize) / 2) - (scaleFactor * defaultTileScale * (i + 0.5f));
            SideHintTile topTile    = puzzleGenerator.topHints[i];
            SideHintTile bottomTile = puzzleGenerator.bottomHints[i];
            SideHintTile leftTile   = puzzleGenerator.leftHints[i];
            SideHintTile rightTile  = puzzleGenerator.rightHints[i];
            topTile.setValues(new Vector2(tbx, topy), scaleFactor, parent);
            bottomTile.setValues(new Vector2(tbx, bottomy), scaleFactor, parent);
            leftTile.setValues(new Vector2(leftx, lry), scaleFactor, parent);
            rightTile.setValues(new Vector2(rightx, lry), scaleFactor, parent);
            topTile.rotateHint(0, (totalSize / size));
            bottomTile.rotateHint(180, (totalSize / size));
            leftTile.rotateHint(90, (totalSize / size));
            rightTile.rotateHint(270, (totalSize / size));
        }
        foreach (SideHintTile h in puzzleGenerator.allHints)
        {
            h.addHint();
        }

        //draw street corners
        Vector2 topLeftPos     = new Vector2(leftx, topy);
        Vector2 bottomLeftPos  = new Vector2(leftx, bottomy);
        Vector2 topRightPos    = new Vector2(rightx, topy);
        Vector2 bottomRightPos = new Vector2(rightx, bottomy);

        createCorner(topLeftPos, scaleFactor, 0, parent);
        createCorner(bottomLeftPos, scaleFactor, 90, parent);
        createCorner(topRightPos, scaleFactor, 270, parent);
        createCorner(bottomRightPos, scaleFactor, 180, parent);
    }