Well, If you look at the game as a whole, the mechanics are fairly simple.
The player moves from left to right, no movement on the y axis, no physics involved. The 8-directions behavior (reduced to a left-right movement) can easily handle all you need.
Only 2 animations are needed, idle and walking, which can be mirrored to switch directions.
A global layout can handle all your text descriptions, neatly stored in an array. An object and game choice inventory can also be stored in arrays.
Your main issue here is to build an event sheet that fits all your layouts which is also neat and tidy. If I were to build a clone of this game, I would build ONE Sprite object with ALL the description hotspots (things that can be looked at, but not picked up or opened), give it 3 instance variables: normalFrameNumber, highlightedFrameNumber and textArrayNumber.
If Player overlapping Hotspot => set Hotspot animation frame to Self.highlightedFrameNumber
sub-event: action button is pressed = set text to textArray.At(Hotspot.textArrayNumber), set text visible, and so on....
Else => set Hotspot animation frame to Self.normalFrameNumber
The same thing can be done for all exits and inventory items:
If Player overlapping Exit => set Exit animation frame to Self.highlightedFrameNumber
sub-event: action button is pressed => show exit animation cut scene, wait 2 secs and go to layout Exit.exitLayoutNumber
Else => set Exit animation to Self.normalFrameNumber
(if you have multiple layout exits, you will want to also note the x,y location on the layout where you want your player to appear)
By spreading out your game one room or area per layout, your game will be much faster to run, and more fun to play. With good planning before you hit the event sheet, you'll save yourself a lot of time and grief.