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");
        }
    }
Example #2
0
 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();
 }