Although I gotta ask... was that last room really necessary as opposed to making it multiple different rooms? It got really repetitive and I wasn't even sure if it wasn't endless and I'm just fighting against 2 lines of looping code.
I still find myself picking up random elements to try to break shields even at the last room as it isn't really intuitive what works against what e.g. following standard fantasy.
But all in all, good work!