Pues exactamente como añadir waterfall y dive, posiblemente puede no necesitar un script si no, eventos, me explico, al dar el objeto de dive puedes activar un interruptor, que permita acceso a eventos de dive, como teleports a los mapas de buceo, en el que esta me parece una solucion simple y funcional, el sprite podrias hacer una ruta de movimiento (no se como se llame en ingles puesto que yo tengo rpg maker en español) y hay una opcion que se llama cambiar apariencia, al bajar la de buceo, y al subir la de surf, en cuanto a waterfall, lo mismo, un interruptor y objeto, y eventos que suban al jugador con una ruta de movimiento, con Atravesar ON, y luego ya seria cuestion de mover al player.
Espero que te sirva, ¡suerte en tu proyecto!