Tied up interaction between player & NPCs

Essentially, I made a long set of clauses that begins when the player
starts interaction with a maptile, which checks if they're interacting
with an NPC or not. I decided that the maptile will just have the npc in
it, and I'll make a separate class that generates the NPC
information/location *after* we're done creating the maptiles.

Also, NPC is now the connecting class between it and the player.
Hierarchy of full interaction goes like this:

Player -> Maptile -> NPC -> Player -> NPC -> Dialogue/Shop -> NPC ->
Player, then repeat this loop:

Player -> NPC -> Dialogue/Shop -> NPC -> Player

^ this is purely logic on a functional level and for my own reference