Exemplo n.º 1
0
    public void AddBaseTile(BaseTile.eDirection start, BaseTile.eDirection end)
    {
        int idx = -1;

        for (int i = 0; i < tiles.Length; i++)
        {
            if (tiles[i] == null || tiles[i].transform.parent != tileRoot)
            {
                idx = i;
            }
        }
        if (idx == -1)
        {
            idx = Random.Range(0, 4);
        }


        if (tiles[idx] != null && tiles[idx].transform.parent == tileRoot)
        {
            Destroy(tiles[idx].gameObject);
        }

        BaseTile newTile = Instantiate(baseTilePrefab);

        newTile.name = "BaseTile" + ((int)Random.Range(0.0f, 128.0f));
        newTile.SetDirections(start, end);
        newTile.transform.parent   = tileRoot;
        newTile.transform.position = new Vector3(13.0f, 0, 10.0f + 3.0f * idx);
        tiles[idx] = newTile;
    }
Exemplo n.º 2
0
    public StraightMovement(BaseTile.eDirection direction, Vector3 centerPos, float radius, float speed)
    {
        this.direction = direction;
        this.radius    = radius;
        this.speed     = speed;
        this.centerPos = centerPos;

        switch (direction)
        {
        case BaseTile.eDirection.up:
            startPos = centerPos - radius * new Vector3(0, 0, 1);
            endPos   = centerPos + radius * new Vector3(0, 0, 1);
            break;

        case BaseTile.eDirection.down:
            startPos = centerPos - radius * new Vector3(0, 0, -1);
            endPos   = centerPos + radius * new Vector3(0, 0, -1);
            break;

        case BaseTile.eDirection.left:
            startPos = centerPos - radius * new Vector3(-1, 0, 0);
            endPos   = centerPos + radius * new Vector3(-1, 0, 0);
            break;

        case BaseTile.eDirection.right:
            startPos = centerPos - radius * new Vector3(1, 0, 0);
            endPos   = centerPos + radius * new Vector3(1, 0, 0);
            break;
        }
    }
Exemplo n.º 3
0
    public bool SetDirection(BaseTile.eDirection direction)
    {
        if (queue.Count != 0)
        {
            if ((queue.Peek().transform.position - centerPos).z <= 0.6f)
            {
                return(false);
            }
        }

        this.direction = direction;
        return(true);
    }
Exemplo n.º 4
0
    public TurningMovement(Vector3 tileCenter, float tileRadius, BaseTile.eDirection start, BaseTile.eDirection end, float speed)
    {
        this.tileCenter = tileCenter;
        this.tileRadius = tileRadius;
        this.start      = start;
        this.end        = end;
        this.speed      = speed;

        // Not very elegant but I'm too lazy to come up with a computation...
        switch (start)
        {
        case BaseTile.eDirection.left:
            startPos = tileCenter + tileRadius * new Vector3(-1, 0, 0);
            break;

        case BaseTile.eDirection.right:
            startPos = tileCenter + tileRadius * new Vector3(1, 0, 0);
            break;

        case BaseTile.eDirection.up:
            startPos = tileCenter + tileRadius * new Vector3(0, 0, 1);
            break;

        case BaseTile.eDirection.down:
            startPos = tileCenter + tileRadius * new Vector3(0, 0, -1);
            break;
        }
        switch (end)
        {
        case BaseTile.eDirection.left:
            endPos = tileCenter + tileRadius * new Vector3(-1, 0, 0);
            break;

        case BaseTile.eDirection.right:
            endPos = tileCenter + tileRadius * new Vector3(1, 0, 0);
            break;

        case BaseTile.eDirection.up:
            endPos = tileCenter + tileRadius * new Vector3(0, 0, 1);
            break;

        case BaseTile.eDirection.down:
            endPos = tileCenter + tileRadius * new Vector3(0, 0, -1);
            break;
        }
    }
Exemplo n.º 5
0
    public void AddSpawnPoint(uint x, uint y, BaseTile.eDirection direction, GameObject prefab)
    {
        SpawnPoint spawnPoint = Instantiate(prefab).GetComponent <SpawnPoint>();

        for (int i = 0; i < 5; i++)
        {
            if (i != x)
            {
                if (spawnPoint.transform.Find("spawnBox_fbx") != null)
                {
                    if (spawnPoint.transform.Find("spawnBox_fbx").gameObject.transform.Find("cube" + (i + 1)) != null)
                    {
                        spawnPoint.transform.Find("spawnBox_fbx").gameObject.transform.Find("cube" + (i + 1)).gameObject.SetActive(false);
                    }
                }
            }
        }
        spawnPoint.name = "SpawnPoint";
        GameBoardTile oldTile = tileMatrix.Get(x, y);

        AddTile(spawnPoint, x, y);
        Destroy(oldTile.gameObject);
    }
Exemplo n.º 6
0
    public static string give()
    {
        string output = BuildOutput();

        if (argc < 2)
        {
            return(output + "\nPlease specify what you want!\n" +
                   "give <obj> <type> <typeargs> ; <obj> in {tile}");
        }

        switch (args[1])
        {
        case "tile":
        {
            if (argc < 3)
            {
                return(output + "\nPlease specify what you want!\n" +
                       "give tile <tilename>");
            }

            switch (args[2])
            {
            case "basetile":
            {
                if (argc < 5 || args[3] == args[4])
                {
                    return(output + "\nPlease specify a direction!\n" +
                           "give tile basetile <dir1> <dir2> ; <dir1>, <dir2> in {u,d,l,r}");
                }

                BaseTile.eDirection start = BaseTile.eDirection.up, end = BaseTile.eDirection.down;
                switch (args[3])
                {
                case "u":
                    start = BaseTile.eDirection.up;
                    break;

                case "d":
                    start = BaseTile.eDirection.down;
                    break;

                case "l":
                    start = BaseTile.eDirection.left;
                    break;

                case "r":
                    start = BaseTile.eDirection.right;
                    break;
                }
                switch (args[4])
                {
                case "u":
                    end = BaseTile.eDirection.up;
                    break;

                case "d":
                    end = BaseTile.eDirection.down;
                    break;

                case "l":
                    end = BaseTile.eDirection.left;
                    break;

                case "r":
                    end = BaseTile.eDirection.right;
                    break;
                }

                TileSelectionMenu menu = GameObject.Find("TileSelectionMenu").GetComponent <TileSelectionMenu>();
                menu.AddBaseTile(start, end);
            }
            break;

            case "dispenser":
            {
                TileSelectionMenu menu = GameObject.Find("TileSelectionMenu").GetComponent <TileSelectionMenu>();
                menu.AddDispenserTile();
            }
            break;
            }
        }
        break;
        }

        return(BuildOutput());
    }
Exemplo n.º 7
0
 public SpawnPointMovePattern(BaseTile.eDirection direction, Vector3 centerPos, float radius, float speed, Vector3 startHeightOffset, Vector3 endheightOffset) : base(direction, centerPos, radius, speed)
 {
     startPos += startHeightOffset;
     endPos   += endheightOffset;
 }