void Start() { holder = transform.Find("Holder").gameObject; // plate = transform.Find ("Plate").gameObject; rock = transform.Find("Rock").gameObject; mapController = GameObject.Find("TileMap").GetComponent <TileMapController>(); int minHeightCheck = 4; int maxHeightCheck = 64; bool madeTrap = false; // for (int y = Mathf.RoundToInt(transform.position.y) + minHeightCheck; y < Mathf.RoundToInt(transform.position.y) + maxHeightCheck; y++) { // TileMapController.TileInfo tile = mapController.GetTileAtPosition (transform.position); // if (tile.type == TileMapController.TileType.Empty) { // madeTrap = true; // SetTopOffset (y - Mathf.RoundToInt(transform.position.y)); // break; // } // } for (int y = 1; y < maxHeightCheck; y++) { Vector2 checkPos = gameObject.transform.position; checkPos.y += y; TileMapController.TileInfo tile = mapController.GetTileAtPosition(checkPos, TileMapController.TileLayer.Floor); if (y <= minHeightCheck) { if (tile.type == TileMapController.TileType.Empty) { continue; } else { break; } } else if (y <= maxHeightCheck) { if (tile.type == TileMapController.TileType.Wall) { madeTrap = true; SetTopOffset(y); break; } } } if (!madeTrap) { print("Trap not made"); Destroy(gameObject); } else { print("Trap made"); } }
public override void UseAtPosition(Vector2 position) { for (float x = position.x - slimeRadius; x <= position.x + slimeRadius; x++) { for (float y = position.y - slimeRadius; y <= position.y + slimeRadius; y++) { TileMapController.TileInfo tile = controller.GetTileAtPosition(new Vector2(x, y), TileMapController.TileLayer.Floor); if (tile.type == TileMapController.TileType.Wall) { controller.CreateSlimeAt(new Coordinates(Mathf.RoundToInt(x + Utils.Utils.mapSize.x / 2), Mathf.RoundToInt(y + Utils.Utils.mapSize.y / 2))); } } } controller.Build(); }