Esempio n. 1
0
    public void DisableTrap(GameObject trap)
    {
        //for (int i = 0; i < trap.transform.childCount; i++)
        //{
        //    TrapPositionPlacer placer = trap.transform.GetChild(i).gameObject.GetComponent<TrapPositionPlacer>();
        //    if (placer)
        //    {
        //        placer.SetPosition();
        //    }
        //    Destroy(trap.transform.GetChild(i).gameObject);
        //    i--;
        //}
        PitFall  pit  = trap.GetComponent <PitFall>();
        TripWire wire = trap.GetComponent <TripWire>();

        if (pit)
        {
            pit.SetPositioner();
        }
        else if (wire)
        {
            wire.firstSwitch.GetComponent <TrapPositionPlacer>().SetPosition();
        }
        Destroy(trap);
    }
Esempio n. 2
0
        private Maze InitMaze(int idMaze, string[] lines, int length, Sokoban sokoban)
        {
            Maze maze = new Maze();

            maze.MazeNumber = idMaze;
            Tile[,] tiles   = new Tile[lines.Length, length];

            int x = 0;
            int y = 0;

            foreach (String line in lines)
            {
                y = 0;
                foreach (char character in line.ToCharArray())
                {
                    Tile tile = null;
                    switch (character)
                    {
                    case 'x':
                        tile = new Destination();
                        maze.DestinationsAmount++;
                        break;

                    case '.':
                        tile = new Normal();
                        break;

                    case 'o':
                        tile = new Normal();

                        Crate crate = new Crate(tile);
                        tile.Entity = crate;

                        maze.Crates.Add(crate);
                        break;

                    case '@':
                        tile = new Normal();

                        Player player = new Player(tile);
                        tile.Entity = player;

                        maze.Player = player;
                        break;

                    case '#':
                        tile = new Wall();
                        break;

                    case '0':
                        tile = new Destination();

                        crate = new Crate(tile);
                        crate.OnDestination = true;
                        tile.Entity         = crate;

                        maze.Crates.Add(crate);
                        break;

                    case '$':
                        tile = new Normal();

                        Worker worker = new Worker(tile);
                        tile.Entity = worker;

                        maze.Worker = worker;
                        break;

                    case ' ':
                        tile = new Empty();
                        break;

                    case '~':
                        tile = new PitFall(sokoban);
                        break;
                    }

                    tiles[x, y] = tile;
                    y++;
                }

                x++;
            }

            for (int i = 0; i < tiles.GetLength(0); i++)
            {
                for (int j = 0; j < tiles.GetLength(1); j++)
                {
                    Tile tile = tiles[i, j];

                    if (tile == null)
                    {
                        continue;
                    }

                    tile.North = getTile(tiles, i - 1, j);
                    tile.East  = getTile(tiles, i, j + 1);
                    tile.South = getTile(tiles, i + 1, j);
                    tile.West  = getTile(tiles, i, j - 1);

                    if (i == 0 && j == 0)
                    {
                        maze.First = tile;
                    }
                }
            }

            return(maze);
        }
Esempio n. 3
0
    public override void SetTrap(RaycastHit hit, string tag)
    {
        PitFall go = (PitFall)Instantiate(this, hit.point, Quaternion.Euler(hit.normal));

        go.EnemyTag = tag;
    }