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); }
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); }
public override void SetTrap(RaycastHit hit, string tag) { PitFall go = (PitFall)Instantiate(this, hit.point, Quaternion.Euler(hit.normal)); go.EnemyTag = tag; }